如果没有评测集,AI Agent 的每次升级几乎都像一次下注。
你也许会有这些东西:
- 几条线上事故样本
- 一些用户反馈截图
- 一份“我们感觉这次变好了”的主观印象
但这些都不等于一套能持续发现退化的 Eval Dataset。
真正可用的评测集,不只是收集问题样本,而是让团队能在版本变化后回答:
$$ 这次改动,究竟让系统在哪些任务上更好,在哪些任务上更差? $$
建议先看 AI Agent 评估框架完全指南、AI Agent Session Replay 调试指南、AI Agent 可观测性与 Tracing 实战 和 AI Agent 记忆淘汰与摘要策略。
一、Eval Dataset 不是题库,而是系统行为样本
很多团队会把评测集做成“问答题库”,然后发现它对真实 Agent 没什么帮助。
原因在于 Agent 不是单轮问答系统,它通常包含:
- 上下文组装
- 工具选择
- 状态迁移
- 权限判断
- 最终输出或执行动作
所以评测集样本也应该覆盖这些层,而不是只测一句最终回答。
二、一个样本至少要包含什么
| 字段 | 作用 |
|---|---|
task_id | 唯一样本标识 |
input | 用户输入或触发事件 |
context_snapshot | 当时关键上下文 |
expected_behavior | 希望系统做出的行为 |
assertions | 可以被机器验证的断言 |
risk_level | 样本风险等级 |
如果没有 expected_behavior 和 assertions,你的评测集最终会退化成“看人工感觉”的样本仓库。
三、典型失败案例:只测回答正确,不测动作是否安全
某团队给客服 Agent 做回归测试时,只验证“最终回复是否看起来合理”。
结果某次升级后,系统在文本上更流畅了,但工具调用策略变得更激进:
- 本来应该先审批的动作被直接执行
- 本来只该查只读数据,却调用了写工具
如果你的断言只覆盖回答质量,不覆盖执行安全,很多退化根本不会被发现。
四、样本从哪里来
推荐四个来源混合:
- 线上高价值成功样本:验证核心链路不退化
- 线上失败样本:确保老问题不会回来
- 边界条件样本:极长上下文、异常输入、冲突证据
- 人工构造样本:覆盖还没大规模出现但高风险的场景
评测集不要只采“最常见问题”,还要覆盖“最危险问题”。
五、断言怎么写才有工程价值
可以把断言拆成三层:
| 层级 | 示例 |
|---|---|
| 结构断言 | 是否返回了必填字段、是否符合 schema |
| 行为断言 | 是否调用了正确工具、是否进入正确状态 |
| 结果断言 | 是否完成任务、是否满足质量阈值 |
这样即使最终结果没完全失败,你也能看到它是在哪一层开始偏离的。
六、Eval Dataset 要和版本管理绑在一起
每次变更下面这些内容,都应该跑回归:
- prompt
- policy
- tool schema
- memory strategy
- routing / state machine
否则你再好的评测集,也只能在事故之后补救,而不能在上线前发现退化。
七、最值得追踪的评测指标
task_success_rateassertion_pass_ratesafety_violation_rateregression_case_reopen_ratecost_per_eval_run
其中 regression_case_reopen_rate 很关键。它反映的是:已经修过的问题,有没有在后来又回来。
八、AI Agent Eval Dataset 上线清单
- 样本覆盖成功链路、失败链路和高风险边界条件
- 每个样本都有明确的期望行为和机器可验断言
- 断言不只测回答质量,也测工具、状态和安全行为
- 版本变更后会自动跑回归评测
- replay 中的高价值失败 run 能沉淀回评测集


