返回知识库知识库

15 Golden Dataset、Trace、可观测与评估基础设施

理解 evaluation as infrastructure:评估不是上线前一次测试,而是贯穿开发、发布和生产监控的基础设施。

15 Golden Dataset、Trace、可观测与评估基础设施

章节目标

理解 evaluation as infrastructure:评估不是上线前一次测试,而是贯穿开发、发布和生产监控的基础设施。

为什么重要

生产 Agent 最大风险不是单次输出不好,而是无法复现、无法解释、无法回归、无法发现漂移。没有 Trace 和评估,用户会成为测试人员。

开篇案例:一次 Prompt 优化导致的退化

团队为了让客服回复更自然,改了一版 Prompt。新版本在演示样本上更像真人,但上线试用后,高风险投诉工单的转人工率下降了,几个应该升级的工单被生成了普通回复。问题不是 Prompt 改坏了语气,而是没有回归测试:团队只看了几个成功样本,没有用高风险 Golden Dataset 跑一遍。

这就是 evaluation as infrastructure 的意义。AI 系统每次改模型、Prompt、检索、工具或知识库,都可能改变行为。没有评估和 Trace,团队只能靠用户报错发现退化。

EDD:评估驱动开发

Evaluation-Driven Development(EDD) 让 AI 项目从“感觉调参”变成指标驱动迭代:

  1. 先定义业务指标和 Ground Truth(通常由 AIBP / 业务专家确认)。
  2. 再搭建最小链路和 Golden Dataset。
  3. 每次 Prompt、检索或工具变更都跑回归。
  4. 未过阈值则阻断发布。

五层评估

在三层评估(组件 / 任务 / 业务)基础上,生产项目可细化为五层:

层级评估对象示例
L1 解析 / ETL文档解析、切分质量表格还原率、元数据完整率
L2 检索召回与引用召回率、引用准确率
L3 生成答案与结构格式合规、事实一致性
L4 工具调用与执行工具成功率、参数正确率
L5 业务端到端任务任务完成率、人工修改率、采纳率

五类 Golden Dataset

类型用途
典型样本覆盖主路径 happy path
边界样本模糊问法、多意图、缺字段
失败样本已知历史败例,防回归
高风险样本合规、资金、承诺类必过人审
对抗样本诱导幻觉、越权、注入

PoC 阶段可先用 20–50 条,生产前扩展到 100–300 条。

LLM-as-Judge

可用 LLM 作评审员加速评估,但必须:

  • 使用明确 Rubric(打分维度与阈值)。
  • 用人工标注集校准 Judge 偏差。
  • 高风险结论仍以人工为准。

Judge 适合大规模初筛,不适合替代合规终审。

回归门禁

推荐三类检查:

  • PR 快速检查:工具是否调用正确,输出结构是否合规。
  • 夜间回归测试:核心样本是否退化。
  • 生产监控:漂移、失败率、成本和高风险输出是否异常。

Trace 记录

一次任务应能回放:用户输入、检索内容、Prompt 版本、模型输出、工具调用、人审结果、最终输出、成本与延迟。

评估报告模板

## 本次评估范围

- 场景:
- 模型 / Prompt 版本:
- 知识库版本:
- 工具版本:

## 样本分布

| 类型 | 数量 | 通过率 |
| --- | --- | --- |
| 典型 | | |
| 边界 | | |
| 失败回归 | | |
| 高风险 | | |
| 对抗 | | |

## 主要失败类型

- 检索失败:
- 引用错误:
- 工具参数错误:
- 风险判断错误:

## 是否允许发布

- 结论:
- 阻断项:
- 下次改进:

评估不是为了追求 100 分

PoC 阶段最重要的是找出失败边界,而不是把分数包装得好看。一个诚实的评估报告应该告诉客户:

  • 哪些任务已经稳定。
  • 哪些任务只能建议,不能自动执行。
  • 哪些样本必须人审。
  • 哪些指标还不足以上线。

这类透明度反而会提高客户信任。

实操任务

为你的场景设计:

  • 20 条 Golden Dataset。
  • 5 类失败样本。
  • Trace 字段。
  • 发布阈值。
  • 生产告警规则。

交付物

  • Golden Dataset 表。
  • 失败样本分类。
  • Trace 字段表。
  • 评估仪表盘草图。

常见误区

  • 只看最终答案,不看中间步骤。
  • 只用人工主观判断,不设阈值。
  • 没有版本化 Prompt 和知识库。
  • 没有回归测试。

检查清单

  • 是否能复现一次失败?
  • 是否知道是检索错、工具错还是生成错?
  • 是否能阻止效果退化上线?
  • 是否能跟踪 cost per task?