Skip to content

Agent 的评估 ​

不能度量就不能改进。但 Agent 评估比传统软件测试难得多:非确定性、长轨迹、开放环境。本章先建立框架,下一节盘点基准与方法。

为什么 Agent 评估难 ​

传统单元测试是确定性的:固定输入,断言输出。Agent 至少打破了三件事:

  1. 输出非确定。同样的输入,两次运行走不同的路径、给出不同的答案。断言从“等于什么”变成“满足什么性质”。
  2. 正确性依赖轨迹。最终答案对,不代表过程对——可能碰巧对、可能修改了不该改的文件、可能烧了十倍预算。只看结果会漏掉一半问题。
  3. 环境有状态。Agent 修改的文件、调用的 API 是有状态的真实世界,测试之间会互相污染。

因此 Agent 评估的核心思路是:​从断言输出,转向评估过程与性质的组合​。

评估的三层对象 ​

层次评估什么典型手段
组件层单次调用的质量prompt 回归测试、工具选择正确率
轨迹层整个执行过程轨迹回放、步骤数/成本/转折点分析
结果层最终交付物端到端基准、验收标准通过率

轨迹评估是 Agent 特有且最值得投入的一层:把一次运行的完整记录(每轮 prompt、响应、工具调用与结果)当作数据。典型检查点:

  • 该用工具时用了吗?选对工具了吗?参数对吗?
  • 从错误中恢复了几轮?有没有空转(连续重复动作)?
  • 上下文被压缩后还保有任务关键信息吗?

LLM-as-judge 是轨迹评估的主力:用一个强模型按评分标准(rubric)给轨迹打分。它把不可枚举的“过程好坏”变成可批量执行的检查,但要警惕 judge 本身的偏差(偏长答案、偏自信表述),对关键场景要用人工校准。

评估进开发循环 ​

Agent 开发把评估变成日常工具,而不是发布前的大考:

text
改 prompt / 换模型 / 调 Harness 参数
        │
        ▼
跑评测集(几十个代表性任务 + 断言 + 轨迹检查)
        │
        ▼
对比指标:通过率 / 平均步数 / 平均成本 / 注入拦截率
        │
        └──▶ 回归则定位(轨迹回放)→ 修复 → 再跑

这要求评测集本身被精心维护:覆盖典型与边界场景、每次失败案例转化为新用例、版本化以对比历史。

下一节:基准与方法 ​

基准与评估方法盘点可拿来就用的公开基准(SWE-bench、GAIA 等)、自建评测的设计要点,以及在线评估(A/B 与监控)如何补齐离线评测的盲区。

参考 ​

最近更新