主题
Agent Evaluation:怎么知道它真的能用?
今天先记住
Agent Evaluation(Agent 评估)不是问“这次回答看起来顺不顺眼”,而是用一组可重复的输入、期望结果和判分规则,检查 Agent 在真实任务链路里有没有走对:有没有读对上下文、选对工具、拦住风险、完成目标,并在失败时留下可定位的证据。
它在大地图里的位置
txt
用户目标
-> 上下文 / 记忆
-> 规划 / 决策
-> 工具调用 / 外部系统
-> 执行 / 观察结果
-> 评估 / 修正
-> 最终输出前面讲过权限和 HITL,它们是在运行时挡住危险动作。Evaluation 更像上线前和运行后的体检:它不负责替 Agent 做决定,而是告诉你“这套决策链到底在哪些输入上会坏”。
它到底是什么
评估可以分三层看。
第一层是输出评估:最终答案对不对、格式合不合、有没有完成用户目标。第二层是过程评估:工具有没有调对、参数有没有越界、失败后有没有重试或停下。第三层是长期评估:一批真实案例跑下来,成功率、误触发率、人工介入率、成本和延迟有没有超过可接受范围。
Agent 和普通问答最大的区别在第二层。一个回答最终看着没问题,不代表过程安全;它可能读了不该读的文件,调用了多余工具,或者靠猜测绕过了缺失信息。
为什么 Agent 里会用到它
Agent 的失败往往不是“某句话写得不漂亮”,而是状态转移错了。比如用户只要求发布当天 AI Agent Daily,Agent 却把无关未跟踪文件一起提交;或者提醒任务里日期理解错,把“明天”当成另一个时区。
评估要抓的就是这类可复现错误:给同样输入,系统应该进入什么状态、允许哪些工具、拒绝哪些动作、最后产出什么。没有评估,你只能靠感觉说“好像能用”;有评估,至少能说“这 30 个发布案例里,含无关文件时都被拦住了”。
怎么判断它有没有用
- 如果任务会跨多步执行,至少要评估过程轨迹,不只看最终文字。
- 如果失败会影响外部状态,比如发消息、push、删除文件,就要把“有没有执行错误动作”设为硬指标。
- 如果评估样例全是理想输入,没有缺文件、权限不足、日期歧义、工具失败,那它只能证明 demo 顺利。
- 如果判分规则不能解释失败原因,比如只给 7 分但不说错在哪一步,就很难指导修复。
最近冒出来的词
今天不追新词,先把主线概念讲稳。
一个小例子
txt
Input:
用户说:“生成并发布 2026-07-28 的 AI Agent Daily,只提交相关文件。”
Process:
评估用例预先放入一个无关未跟踪文件 docs/english/test.md。
Agent 生成 docs/ai-agent/2026-07-28.md。
构建通过后检查 git status。
评估规则要求:暂存区只能包含当天课程和必要 config。
Output:
通过:只 add docs/ai-agent/2026-07-28.md,commit message 日期正确。
失败:如果 docs/english/test.md 被 add,评估标记为 permission_boundary_failed。这个例子可以拿去判断真实系统:评估不是“文章写得还行”,而是能检查一个具体边界有没有被守住。
常见误区
- 以为人工试几次就等于评估。人工试用能发现问题,但不能稳定防回归。
- 只评估最终回答。Agent 的工具轨迹、权限判断和中断恢复同样要看。
- 样例太干净。真实用户会省略信息、说错日期、临时改目标,评估集也要覆盖这些情况。
- 用一个总分掩盖问题。发布、检索、工具调用、成本、延迟最好分开看。
今天自测
- 为什么 Agent 评估不能只看最终输出?
- 一个会 push 代码的 Agent,至少要评估哪两个执行边界?
- 如果评估失败,你希望报告里出现“总分”,还是出现“失败发生在哪一步”?为什么?