Skip to content

4.3 Agent 靠谱吗?——评估与测试

小李的 Agent 完成了一个任务:修复了 5 个 Bug。小李很开心,直到他发现——

  • 2 个 Bug 确实修好了
  • 1 个 Bug 「修好了」但引入了新 Bug
  • 1 个 Bug 只是注释掉了报错代码
  • 1 个 Bug 完全没修

Agent 说它修好了,但「修好了」不等于「修对了」。


为什么评估 Agent 这么难

评估一个 Chat 的输出很简单——看它回答对不对就行。但评估一个 Agent 的输出很难,因为:

挑战说明
多步执行Agent 执行了 20 步,错在哪一步?
工具依赖Agent 调用了外部工具,是 Agent 错了还是工具返回了错误数据?
路径多样同一任务可以有 10 条不同的执行路径,哪条更好?
状态变化Agent 修改了代码/数据,怎么验证改对了?
成本考量每次评估都要跑一遍 Agent,成本不低

五个评估维度

一个靠谱的 Agent 评估体系,要覆盖五个维度:

任务完成度
做完了没?做到了什么程度?
执行效率
花了多少步/Token/时间?
🔧
工具使用
工具选对了吗?参数传对了吗?
错误处理
出错时怎么处理的?
🔒
安全合规
有没有违反规则?
维度问什么举例
任务完成度任务做完了没?做到了什么程度?5 个 Bug 修了几个?
执行效率花了多少步/Token/时间?修 5 个 Bug 用了 200 步,是不是太多?
工具使用工具选对了吗?参数传对了吗?该用搜索却用了遍历?
错误处理出错时怎么处理的?文件不存在是报错还是优雅降级?
安全合规有没有违反规则?有没有访问不该访问的文件?

小李回头看 Agent 的表现:

维度评估
任务完成度2/5 真正修好,1/5 引入新问题 → 差
执行效率每个平均 40 步,尚可
工具使用选对了工具,但分析不够深入
错误处理第 4 个 Bug 选择注释掉报错代码而不是修复 → 危险
安全合规没有越权操作 → 合规

三种评估方法

方法一:自动评估——跑测试

最直接的评估方式:写测试用例,看 Agent 能不能通过

测试用例设计:
  - 输入:一个包含 5 个已知 Bug 的代码库
  - 预期:5 个 Bug 全部修复,无新 Bug 引入
  - 验证:运行自动化测试套件 + 代码差异对比

适合有明确预期输出的场景。但 Agent 可能有多种正确的解决方式,自动评估可能误判。

方法二:人工评估——逐行审查

人类审查 Agent 的每一步操作:

评分项1 分3 分5 分
步骤必要性大量冗余偶有冗余每步都有价值
决策正确性多步判断错误大部分正确判断精准
错误处理忽略或掩盖基本处理优雅处理
代码质量不可用可用但粗糙可直接提交

最准确,但成本最高。适合关键任务的评估。

方法三:LLM-as-Judge——AI 评估 AI

用一个 LLM 来评估 Agent 的输出:

评估提示词:
你是一个代码质量审查员。请评估以下 Agent 的执行结果:

任务:修复 5 个 Bug
Agent 输出:[执行轨迹和修改结果]

请从以下维度评分(1-5):
1. Bug 是否真正被修复?
2. 是否引入了新问题?
3. 代码质量如何?
4. 执行过程是否高效?

速度快,成本低,但评估 LLM 本身可能有偏见或遗漏。适合快速筛选,不替代人工审查


执行轨迹分析——看过程不只是看结果

Agent 的执行轨迹(Execution Trace)是评估的金矿。它记录了 Agent 每一步做了什么:

步骤 1:搜索 "console.log" → 找到 23 处
步骤 2:读取 app.js → 发现 3 处 console.log
步骤 3:修改 app.js → 删除 3 处 console.log
步骤 4:读取 utils.js → 发现 5 处 console.log
步骤 5:修改 utils.js → 删除 5 处 console.log
  ⚠️ 但其中 2 处是正式日志,不是调试语句
步骤 6:运行测试 → 2 个测试失败
  ⚠️ 因为删除了正式日志
步骤 7:修改 utils.js → 恢复 2 处正式日志
步骤 8:运行测试 → 全部通过

从轨迹中可以发现:

分析维度发现
步骤必要性步骤 5 删除了不该删的 → 判断失误
决策正确性步骤 5 误判了「正式日志」和「调试日志」
错误处理步骤 6-7 发现问题并修正 → 错误恢复能力好
路径效率可以在步骤 4 就区分日志类型,避免步骤 5-7 的弯路

轨迹分析的价值

结果好 ≠ 过程好。 Agent 可能通过「运气」得到了正确结果,但过程低效或危险。轨迹分析帮你找到真正的改进点。


持续评估体系

评估不应该是一次性的,而应该贯穿 Agent 的整个生命周期:

开发阶段单元测试工具
迭代阶段A/B 测试
生产阶段实时监控 + 审计日志

常见问题诊断清单

问题可能原因诊断方法
任务未完成提示词不够清晰 / 工具不足检查系统提示词和工具配置
无限循环缺少终止条件 / 判断逻辑有误检查循环终止条件和步骤计数
走偏提示词缺少边界 / 记忆检索无关信息检查系统提示词和记忆检索结果
高 Token 消耗步骤冗余 / 上下文膨胀分析轨迹,找出可压缩的部分
静默失败错误处理不当 / 异常被吞检查错误处理逻辑

评估基准

学术和工业界有一些标准化的 Agent 评估基准:

基准覆盖范围特点
AgentBench8 个子任务(购物、浏览、操作系统等)学术标准,全面
WebArena真实网页环境贴近真实场景
ToolBench工具使用/API 调用专注工具能力
SWE-bench软件工程任务代码修复专项

这些基准对大多数开发者来说偏学术化,但了解它们有助于理解 Agent 的评估方法论。


本节核心要点

  • 评估 Agent 的五个维度:任务完成度、执行效率、工具使用、错误处理、安全合规
  • 三种评估方法:自动评估(跑测试)、人工评估(逐行审查)、LLM-as-Judge(AI 评估 AI)
  • 执行轨迹分析是评估的金矿——看过程不只是看结果
  • 评估应该持续贯穿 Agent 的整个生命周期
  • 结果好 ≠ 过程好,轨迹分析帮找到真正的改进点

思考题:你有没有遇到过 AI 编程工具「看起来做对了但其实做错了」的情况?你会用什么方法来发现这种问题?


下一节预告:前面讲的都是「怎么做对」。现在让我们看看「为什么做错」——9 种 Agent 失败模式,每一种都可能在你放松警惕时出现。

下一节:九种失败模式 →