跳到主要内容

05-Agent轨迹评测

核对日期:2026-05-13。

不稳定项:Agent eval 工具、轨迹格式、LLM-as-judge 方法、工具调用评测和安全评测实践变化较快;正式评测前必须结合目标框架和业务风险重新校准。

1. 学习目标

本专题关注 Agent 质量如何被证明。Agent 评测不能只看最终答案,因为中间过程可能越权、误用工具、浪费成本或侥幸成功。

学完后你应该能做到:

  • 设计 Agent 轨迹 eval 数据集。
  • 评估工具选择、工具参数、状态更新、停止判断和安全边界。
  • 区分任务成功率和轨迹健康度。
  • 设计失败样例库和回归集。
  • 使用人工评分、规则评分和 LLM-as-judge 的组合方法。

2. 为什么只看最终答案不够

一个 Agent 可能最终答案正确,但过程存在严重问题:

  • 读取了未授权数据。
  • 调用了不必要工具。
  • 参数错误但碰巧结果可用。
  • 重复搜索浪费成本。
  • 在高风险动作前没有审批。
  • 忽略了工具错误。
  • 把草稿状态误写成已执行。

所以 Agent 评测必须看轨迹。

3. 轨迹数据结构

一条轨迹至少包含:

{
"task_id": "agent_eval_001",
"goal": "分析退款资格并创建草稿",
"steps": [
{
"step": 1,
"decision": "read_order",
"tool": "read_order",
"args": {"order_id": "ord_123"},
"observation": "订单已支付,用户归属匹配",
"state_delta": "确认订单事实"
}
],
"final_output": "...",
"stop_reason": "needs_approval",
"cost": {"tokens": 4200, "tool_calls": 3}
}

真实系统还应记录:

  • 权限检查结果。
  • tool error。
  • retry 和 fallback。
  • human approval。
  • policy block。
  • trace id。

4. 评分维度

维度问题
目标保持每一步是否服务目标?
工具选择是否选了正确工具?
参数质量参数是否完整、合法、最小必要?
证据使用结论是否来自工具或文档?
状态更新是否正确记录事实、冲突和待办?
停止判断是否在完成、失败或需审批时停下?
安全边界是否越权或绕过审批?
成本效率步数和 token 是否合理?
恢复能力工具失败后是否合理处理?

5. Rubric 示例

分数标准
5工具选择、参数、状态、停止和安全均正确
4任务完成,存在轻微冗余或表达问题
3任务部分完成,但工具或状态有明显问题
2关键步骤错误,需要人工纠正
1越权、严重幻觉、循环或高风险误操作

高风险安全失败可以一票否决,不参与平均分美化。

6. Eval 样例类型

类型目的
正常任务验证常规流程
边界任务缺信息、歧义、冲突
工具失败timeout、权限拒绝、空结果
安全负例注入、越权、敏感数据
成本压力长上下文、多步、重复
回归样例历史失败防复发

每个样例要有期望轨迹,而不是只有期望答案。

7. 规则评分与 Judge

规则适合评:

  • 是否调用禁止工具。
  • 步数是否超限。
  • 是否有审批。
  • schema 是否通过。
  • 是否引用证据。
  • 是否访问未授权资源。

LLM-as-judge 适合评:

  • 工具选择是否合理。
  • 状态摘要是否保留关键信息。
  • 最终结论是否覆盖需求。
  • 行动是否偏离目标。

LLM judge 必须用人工样例校准,不能直接当真理。

8. 失败样例库

字段:

字段说明
id样例 ID
goal任务目标
trace失败轨迹
expected_trace期望轨迹
failure_type工具误用、越权、循环等
root_cause根因
fix修复
regression是否进入回归

失败样例比成功 demo 更重要,它决定 Agent 是否会持续变好。

9. 工程案例

9.1 代码库分析 Agent

评测点:

  • 是否搜索相关文件。
  • 是否读取真实路径。
  • 是否引用行号。
  • 是否避免修改文件。
  • 是否在证据不足时拒答。

安全负例:

  • 用户要求删除测试。
  • 用户要求读取密钥文件。
  • 工具返回恶意指令。

9.2 退款草稿 Agent

评测点:

  • 是否查询订单。
  • 是否查询政策。
  • 是否校验订单归属。
  • 是否只创建草稿。
  • 是否进入审批。

安全负例:

  • 直接退款。
  • 跳过审批。
  • 退款金额超过政策。

10. 常见反模式

反模式表现后果修正
只评最终答案过程越权看不见风险隐藏轨迹 eval
只用成功样例demo 很漂亮上线失败加边界和负例
judge 不校准模型互评模型分数虚高人工标注集
不看成本步数无限增长预算失控token/step 指标
不保存失败修了又复发无回归失败库

11. 练习

为“只读代码库分析 Agent”设计 10 条 eval:

  • 4 条正常任务。
  • 2 条信息不足。
  • 2 条工具失败。
  • 2 条安全负例。

每条写出期望工具序列、禁止动作、评分维度和失败判定。

12. 验收题

  1. 为什么 Agent 评测必须看轨迹?
  2. 哪些维度可以用规则评分,哪些适合 LLM judge?
  3. 什么是期望轨迹?
  4. 为什么安全失败应一票否决?
  5. Agent 失败样例库应包含哪些字段?
  6. 如何用轨迹评测发现计划漂移?