Agent 评估

agent_evaluation2026-09-09 12:40:08

Agent 评估是用可重复的任务、环境和评分方法,测量 Agent 是否能够正确、安全且稳定地完成目标。它不仅检查最终回答,还要检查工具调用、环境变化、成本、延迟和失败过程。

评估对象通常不是孤立的模型,而是模型与 Agent Harness 的组合。同一个模型在不同提示词、工具、上下文装配、权限规则和错误恢复机制下可能表现不同;分数变化不一定意味着模型本身变强或变弱。

基本术语

术语 含义
任务(Task) 一条具有输入、初始状态和成功条件的测试用例
试验(Trial) Agent 对一条任务的一次实际运行
轨迹(Trace / Trajectory) 本次运行的消息、决策、工具调用、结果和状态变化
结果(Outcome) 试验结束时环境中的真实状态
验证器(Grader) 根据结果或轨迹计算分数的规则或程序
评估集(Evaluation Suite) 围绕某种能力或行为组织的一组任务

模型输出具有随机性,因此一条任务通常需要运行多次。只运行一次,难以区分稳定能力、偶然成功和基础设施噪声。

评估体系要回答的四个问题

  1. 什么算成功:最终状态、必要过程、安全底线和质量标准是什么;
  2. 任务从哪里来:公开基准、产品需求、专家设计还是生产失败案例;
  3. 由谁验证:确定性程序、规则清单、模型评判或人工评审;
  4. 分数如何影响决策:用于模型选型、回归检查、Harness 改进还是上线门槛。

如果这四项没有明确约定,一个总分很难说明 Agent 是否真的可用。

评估任务与环境

一条可执行的 Agent 评估任务通常包含:

  • 提供给 Agent 的目标、背景和限制;
  • 每次运行前可恢复的初始环境状态;
  • Agent 能调用的工具及其权限;
  • 交互协议、步数限制和终止条件;
  • 对最终状态、关键动作和沟通质量的验证规则。

评估环境需要至少具备数据集、环境状态、工具接口、评分标准和执行协议。环境应能重置到可比较的起点,并真实反映工具产生的状态变化。否则,前一次运行残留的数据、网络波动或资源不足都可能被误判为 Agent 能力差异。

对话型 Agent 还可能需要用户模拟器。模拟用户应拥有明确的已知信息、行为规则和可观察状态;不能为了配合 Agent 而编造事实。τ²-bench 进一步允许 Agent 和模拟用户分别使用工具操作共享环境,用于评估双方协作才能完成的任务。

成功指标

最基础的指标是单次任务成功率,但生产决策通常还需同时记录安全违规、成本、Token、延迟、步骤数和人工接管次数。

Pass@k 与 Pass^k

  • Pass@k:同一任务运行 k 次,只要至少一次成功就算通过,用于观察能力上限;
  • Best@k:输出为连续分数时,取 k 次试验中的最好结果;
  • Pass^k:同一任务连续运行 k 次,要求每次都成功,用于观察稳定交付能力。

若每次试验相互独立且单次成功率为 p,则 Pass@k = 1 - (1 - p)^k,而 Pass^k = p^k。评估报告必须说明 k、采样方式、失败是否包含安全一票否决项,以及多次运行能否共享状态。对会产生副作用的任务,不能在真实环境中简单重试到成功。

验证方法

应优先使用最接近真实结果、最容易重复的验证方法:

  1. 确定性验证器:单元测试、数据库断言、文件内容、Schema 或业务状态检查;
  2. 规则与检查项:检查必需字段、禁止动作、来源覆盖和格式要求;
  3. LLM-as-a-Judge:依据明确 Rubric 评判开放式结果或交互质量;
  4. 人工评审:处理高风险、专业性强或主观差异大的结果,并校准自动验证器。

验证最终状态通常比匹配 Agent 的文字声明更可靠。Agent 说“已经预订成功”,不代表订单真实存在;Agent 说“测试通过”,也不能代替测试输出。

使用 LLM-as-a-Judge

模型评判适合正确答案不唯一、难以用代码完整表达的任务,例如研究报告的覆盖度或客服对话的沟通质量。使用时应:

  • 将正确性、完整性、遵循指令和表达质量拆成明确维度;
  • 提供评分尺度、边界案例和必要参考事实;
  • 要求结构化输出评分与理由;
  • 用人工标注集校准一致性,并定期复查漂移;
  • 对候选结果顺序、长度和措辞造成的偏差进行测试;
  • 在适合时采用配对比较,而不是让模型直接给绝对分数。

LLM 评判仍可能误判,不能因为评判模型更强就把它当作客观真值。

评估数据集

数据可以来自三类来源:

  • 公开基准:便于与其他系统比较,但未必代表具体业务;
  • 自建业务任务:直接对应产品目标,应覆盖常见路径和重要边界;
  • 生产轨迹回流:把真实失败脱敏后转成回归任务,持续补充未知问题。

每条任务应写清初始状态、输入、允许动作和完成条件。数据集还需要控制重复、歧义、难度分布、版本变化和数据泄漏。训练、调试和最终评估集合应隔离,避免 Agent 只记住公开答案或固定界面。

能力评估可以包含当前较难、成功率较低的任务,用来寻找提升空间;回归评估则保护已经能够稳定完成的行为,目标应接近全部通过。能力任务成熟后可以进入回归集。

轨迹分析与失败归因

端到端分数只能说明任务是否通过,完整轨迹才能解释失败原因。分析时应定位第一个使后续结果偏离目标的错误,而不只记录最后一次失败。常见类别包括:

  • 观察缺失或读取错误;
  • 推理基于错误假设;
  • 选错工具、对象或参数;
  • 已获得纠错证据,却没有更新状态;
  • 动作执行失败但被当成成功;
  • 缺少最终验证或过早结束;
  • 评估环境、验证器或基础设施自身故障。

除了完整端到端任务,还可以从历史轨迹的关键边界截取前缀,直接测试 Agent 在获得某项证据后能否作出正确下一步。这类小型回归任务比重复运行整个长任务更快,也更容易定位变化原因。

模型与 Harness 的对比实验

  • 模型替换:固定 Harness,只更换模型,观察瓶颈是否随模型能力变化;
  • 消融实验:关闭某个工具、提示或恢复机制,测量该组件的真实贡献;
  • 配对实验:让新旧方案运行同一批任务与随机种子,减少任务差异;
  • A/B 测试:在满足安全和样本量要求时比较真实用户结果;
  • 护栏指标:即使主指标改善,安全、成本或用户体验底线也不能退化。

实验应记录模型版本、Harness 版本、任务集版本、环境配置、采样参数和随机种子。样本量很小时,百分比变化可能只是偶然波动;应报告样本数、置信区间或重复试验,而不是只展示最好的一次结果。

可观测性与生产监控

评估依赖可观测性。Harness 应记录任务 ID、模型和提示版本、工具调用与结果、环境状态变化、成本、延迟、停止原因和人工审批,使一次失败能够重放和归因。

离线评估不能覆盖所有真实输入。上线后还需要生产监控、用户反馈和抽样轨迹审查,发现分布变化与未知失败,再将有代表性的案例脱敏后加入回归集。日志采集应遵循最小必要原则,避免把用户凭据、私密文件和完整敏感对话直接写入评估数据。

评估驱动的改进闭环

  1. 从失败轨迹中提出一个可验证假设;
  2. 每次只改变一个主要变量;
  3. 在小型目标任务集上快速验证方向;
  4. 同时检查成功率、成本、延迟和安全护栏;
  5. 方向成立后运行完整回归集;
  6. 保存结果与适用边界,再决定是否部署;
  7. 将新的生产失败补入评估集。

小样本实验通过,只说明值得扩大测试,不等于系统整体能力已经提高或可以直接上线。

相关词条

参考资料

本页目录