原文:Demystifying evals for AI agents
来源:Anthropic Engineering
发布日期:2026-01-09
作者:Mikaela Grace、Jeremy Hadfield、Rodrigo Olivares、Jiri De Jonghe
原文链接:https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents

说明:本文是基于原文结构与观点整理的中文技术导读,采用语义级转述与专业术语本地化,不是逐段逐句的替代性译文。文中配图来自原网页,版权归 Anthropic 或相应权利人所有,仅随本资料作学习与研究引用。

摘要

让 Agent 真正有用的特性——自主决策、多轮行动、工具调用、环境状态修改和动态适应——也正是它难以评测的原因。传统的“输入一个提示、检查一次输出”已经不足以覆盖 Agent 的真实行为。可靠的 Agent 评测通常需要同时考察:

  • 最终是否完成任务;
  • 中间过程是否合理、安全且高效;
  • 多次运行是否稳定;
  • 评分器是否公平、可复现、难以被投机绕过;
  • 评测环境是否与生产环境足够一致。

Anthropic 的核心建议可以概括为:尽早开始、从真实失败中收集任务、优先评最终结果而不是固定路径、组合多类评分器、反复阅读执行轨迹,并把评测套件当作需要长期维护的软件资产。


1. 为什么 Agent 评测比普通 LLM 评测更难

单轮模型评测通常只有三个要素:输入、模型输出和评分逻辑。Agent 则会在多轮循环中读取信息、调用工具、修改文件或数据库、观察中间结果,再决定下一步行动。

这会带来几类额外复杂性:

  1. 错误会沿轨迹传播:早期一次错误调用,可能导致后续所有行动建立在错误状态之上。
  2. 结果与表述可能不一致:Agent 可以声称“预订成功”,但真正的成功标准应是后台数据库中确实出现了有效订单。
  3. 正确路径不唯一:更强的模型可能找到评测设计者没有预料到的合理方案,甚至发现规则中的漏洞;僵硬的评分方式可能把优质方案误判为失败。
  4. 行为具有随机性:相同任务多次运行,结果可能不同,因此一次通过或失败不能代表稳定能力。
  5. 被评测对象是一个组合系统:实际表现不仅取决于模型,还取决于工具、提示词、上下文管理、Agent 脚手架、运行环境和错误恢复策略。

在这里插入图片描述

图 1:单轮评测与 Agent 评测的区别。 单轮评测主要检查回答;Agent 评测还必须提供工具和环境,并验证执行后的实际状态。


2. Agent 评测的基本结构与术语

一个完整的 Agent 评测系统通常包含以下对象。

术语推荐译法含义
Eval / Evaluation评测向 AI 系统提供输入,并使用评分逻辑衡量表现的测试过程
Task / Test case任务 / 测试用例一条具有明确输入、约束和成功标准的测试
Trial试验轮次 / 一次运行Agent 对某个任务的一次完整尝试;同一任务通常需要运行多次
Grader评分器对表现的某一方面打分或判定的逻辑,可包含多个断言
Assertion / Check断言 / 检查项评分器内部的具体判定条件
Transcript / Trace / Trajectory执行轨迹一次运行的完整记录,包括消息、工具调用、推理过程和中间结果
Outcome最终结果 / 最终环境状态运行结束后环境中的真实状态,而不是 Agent 自己声称完成了什么
Evaluation harness评测执行框架负责分发任务、运行试验、记录轨迹、调用评分器并汇总结果的基础设施
Agent harness / ScaffoldAgent 运行框架 / 脚手架让模型能够使用工具、处理输入并持续行动的系统
Evaluation suite评测套件围绕某种能力或行为组织的一组任务

在这里插入图片描述

图 2:Agent 评测的组成部分。 评测套件由多个任务组成;每个任务可运行多次并产生轨迹,评分器结合轨迹和最终状态输出分数。

一个重要认识是:当团队说“评测某个 Agent”时,实际评测的是模型与 Agent 运行框架的整体组合。提示词编排、工具接口、上下文截断、重试机制和环境配置都会影响结果。


3. 为什么值得尽早建立评测体系

原型阶段仅靠人工试用、内部使用和直觉,往往也能推进很快;但当产品进入生产、用户数量扩大、系统行为变复杂后,这种方式会迅速失效。

没有评测时,团队容易陷入典型的反应式循环:用户投诉某个问题,工程师手工复现并修复,然后只能祈祷没有引入新的回归。团队无法可靠地区分真实退化与随机波动,也很难在发布前对数百种场景进行自动验证。

成熟的评测体系会产生复利效应:

  • 把模糊的产品要求转成可执行的成功标准;
  • 在上线前暴露行为变化;
  • 将生产故障沉淀成永久回归用例;
  • 为模型升级、提示词调整和工具变更提供可比较的基线;
  • 持续跟踪延迟、Token 用量、成本、错误率等工程指标;
  • 让产品、工程与研究团队围绕同一组指标协作;
  • 缩短新模型的评估与迁移周期。

早期成本看得见,而收益通常在后续版本中持续累积,因此评测的长期价值很容易被低估。


4. 三类评分器:代码、模型与人类

可靠的 Agent 评测往往不是依赖一种评分方式,而是把三类评分器组合起来。

4.1 基于代码的评分器

常见方式包括:精确或模糊字符串匹配、正则表达式、单元测试、静态分析、最终状态检查、工具调用检查,以及对轮数、Token 和延迟的轨迹分析。

优势:速度快、成本低、客观、可复现、便于调试。
局限:容易对合法变体过于敏感,难以理解语义和主观质量,也可能因规则过于僵硬而误判。

4.2 基于模型的评分器

常见方式包括:按量表评分、自然语言断言、成对比较、参考答案对照,以及多个模型裁判投票。

优势:灵活、可扩展,适合开放式输出、交互质量和复杂语义。
局限:具有非确定性,成本高于代码评分,而且必须用人类专家结果进行校准。

4.3 人类评分

常见方式包括:领域专家审查、众包判断、抽样复核、A/B 测试和标注者间一致性分析。

优势:能提供最接近真实用户与专家判断的高质量基准,也是校准模型评分器的重要依据。
局限:昂贵、缓慢,专业领域还需要稀缺专家参与。

4.4 如何组合

评分可以采用:

  • 加权评分:各维度合成总分,达到阈值即通过;
  • 全量通过:所有关键评分器都必须通过;
  • 混合模式:安全和正确性采用硬门槛,质量和效率采用加权分。

工程上通常应遵循:能用确定性规则验证的,就优先用代码;需要判断语义与质量时再用 LLM;用人类抽检和标定确保模型评分器没有漂移。


5. 能力评测与回归评测

这两类评测回答的问题不同。

能力评测(Capability / Quality Eval)

它关注:“这个 Agent 目前能把多难的任务做好?”

  • 初始通过率可以较低;
  • 应包含具有挑战性的任务;
  • 作用是为团队提供明确的改进方向;
  • 当分数过高时,需要持续加入更难任务,避免饱和。

回归评测(Regression Eval)

它关注:“过去已经能做好的事情,现在是否仍然可靠?”

  • 目标通过率应接近 100%;
  • 每次修改或模型升级后持续运行;
  • 分数下降通常意味着某处出现了退化;
  • 已经被充分攻克的能力任务,可以转入回归套件。

两者必须同时存在:只追求新能力可能破坏旧功能,只做回归又无法衡量能力上限的提升。


6. 不同类型 Agent 的评测方法

6.1 编码 Agent

编码任务适合使用确定性评分器,因为软件产物通常可以直接执行和测试。关键做法包括:

  • 编写清晰、可复现的任务描述;
  • 使用隔离且稳定的代码环境;
  • 通过单元测试验证功能正确性;
  • 同时确保新代码没有破坏既有测试;
  • 使用 lint、类型检查和安全扫描补充质量信号;
  • 必要时用 LLM 量表评估可读性、过度设计、工具使用和用户沟通。

像 SWE-bench Verified 和 Terminal-Bench 这类基准,核心都在于让 Agent 完成真实工程任务,再通过自动测试检查结果。

一个实用的评测配置可以抽象为:

task:
  id: repair-authentication-edge-case
  objective: 修复空凭证导致的认证绕过

  graders:
    - type: unit_tests
      required:
        - reject_empty_credentials
        - reject_null_credentials

    - type: static_analysis
      tools: [linter, type_checker, security_scanner]

    - type: outcome_check
      expect:
        audit_event: authentication_blocked

    - type: llm_rubric
      dimensions:
        - code_quality
        - change_scope
        - explanation_quality

  metrics:
    - turns
    - tool_calls
    - total_tokens
    - latency

这不是原文示例的逐句翻译,而是按其方法重新整理的通用模板。

6.2 对话型 Agent

客服、销售、辅导等对话 Agent 不仅要完成任务,还要保证交互本身的质量,因此常常需要第二个 LLM 扮演用户并进行多轮模拟。

可同时检查:

  • 工单或订单的最终状态是否正确;
  • 是否调用了身份验证、退款、确认通知等必要工具;
  • 是否在合理轮数内完成;
  • 语气是否恰当;
  • 是否清楚解释处理结果;
  • 回答是否基于工具返回的政策或数据,而不是编造。

由于许多对话任务存在多个合理答案,模型评分器通常比精确字符串匹配更合适,但仍应通过状态检查锁定关键业务结果。

6.3 研究型 Agent

研究 Agent 负责检索、综合和分析信息,其质量难以用单一正确答案判断。不同任务对“全面”“可靠”和“正确”的定义也不同。

有效评测通常结合:

  • 有据性检查:重要论断是否能被检索到的来源支持;
  • 覆盖度检查:是否包含任务要求的关键事实或维度;
  • 来源质量检查:是否优先使用权威、原始和相关来源;
  • 精确答案检查:对于客观数值或实体,可使用精确或容错匹配;
  • 综合质量评分:由 LLM 判断结构、连贯性、完整性与矛盾;
  • 专家校准:定期将 LLM 评分与领域专家判断进行对照。

研究内容和外部网页会持续变化,因此参考答案也需要维护,不能假设“真值”永久静止。

6.4 计算机操作 Agent

计算机操作 Agent 通过截图、鼠标、键盘和滚动来使用图形界面,而不是直接调用 API。评测时必须在真实或沙箱化的软件环境中运行,并验证其是否真正完成目标。

常见检查包括:

  • 页面 URL、导航状态和 UI 元素;
  • 后端数据库是否发生预期变化;
  • 文件系统、应用配置或生成文件是否正确;
  • Agent 是否根据场景选择了更合适的交互方式。

在浏览器场景中,DOM 读取通常速度快但可能消耗大量 Token;截图交互较慢,却可能更节省上下文。评测应覆盖工具选择是否合理,而不只是最终是否完成任务。


7. 如何处理非确定性:pass@k 与 pass^k

Agent 的表现会随运行而变化,因此“某次通过”不能等同于“稳定可靠”。原文重点区分了两个指标。

pass@k:多次尝试中至少成功一次

它衡量在 k 次尝试中至少出现一次成功的概率。随着尝试次数增加,pass@k 通常上升。

在每次试验独立、单次成功率为 p 的简化假设下:

[
\mathrm{pass@k}=1-(1-p)^k
]

适合场景:允许生成多个候选,只要其中一个可用即可,例如搜索解、候选代码或创意方案。

pass^k:连续 k 次全部成功

它衡量 k 次运行全部成功的概率。随着 k 增加,要求会快速变严格。

在相同简化假设下:

[
\mathrm{passk}=pk
]

例如单次成功率为 75%,连续三次全部成功的概率约为 0.75³ ≈ 42%

适合场景:用户期望每次都可靠的生产级 Agent,例如客服退款、支付操作或关键业务流程。

在这里插入图片描述

图 3:pass@k 与 pass^k 会随着试验次数增加而走向相反方向。 前者强调“至少一次成功”,后者强调“一致成功”。

产品需要先确定自己真正关心的是“找到一个可行解”,还是“每次都稳定完成”,再选择指标。


8. 从零到一建立 Agent 评测体系

在这里插入图片描述

图 4:优秀评测体系的路线图。 工作分为评测套件建设、执行框架建设和长期维护三个阶段。

第 0 步:立即开始,不要等到“准备充分”

初期并不需要几百个任务。来自真实失败的 20~50 个简单任务就足以建立第一版基线。早期系统改动的影响通常较大,小样本也能提供明显信号。

第 1 步:把现有人工测试转成用例

从每次发布前已经会手工验证的行为开始。若系统已经上线,应优先查看缺陷列表、客服工单和用户反馈,把真实失败转成测试任务,并按用户影响排序。

第 2 步:任务必须明确,并准备参考解

好的任务应让两位领域专家独立判断时得到相同的通过/失败结论。任务描述中必须写明评分器真正会检查的要求,不能让 Agent 因隐藏假设而失败。

每个任务最好准备一个已知可行的参考解,用于证明:

  • 任务确实可完成;
  • 测试环境可用;
  • 评分器配置正确;
  • 通过标准没有自相矛盾。

对于前沿模型,如果一个任务经过大量尝试仍然完全无法通过,首先应怀疑任务、环境或评分器是否有问题,而不是立即断言模型没有能力。

第 3 步:建立平衡的数据集

不仅要测试“应该触发某行为”的场景,也要测试“不应该触发”的场景。

例如评测 Web 搜索功能时,既要覆盖必须搜索的实时问题,也要覆盖无需搜索即可回答的稳定事实。只测一侧会导致过度触发或触发不足。

第 4 步:构建稳定、隔离的评测环境

评测中的 Agent 应尽量与生产版本一致。每次试验都应从干净环境开始,避免残留文件、缓存、共享数据库、资源耗尽或历史记录造成相关性错误。

如果多个任务因为同一个环境瓶颈同时失败,这些试验并不独立,评测结果也就不能准确反映 Agent 能力。

第 5 步:谨慎设计评分器

几条关键原则:

  • 能验证最终结果时,优先评结果,而不是强制固定的工具调用顺序;
  • 不要因为 Agent 采用了未预料但合法的方案就扣分;
  • 多组件任务应支持部分得分;
  • LLM 裁判应按维度拆分量表,避免一个模型一次判断所有内容;
  • 当信息不足时,允许评分器返回“未知”,而不是被迫猜测;
  • 定期用人类专家标定模型评分器;
  • 设计防投机机制,确保通过评测必须真正解决问题。

很多看似“模型能力低”的结果,实际来自模糊任务、精度过高的字符串判断、不可复现的随机环境或 Agent 脚手架限制。因此不能只看总分,必须检查评分逻辑。

第 6 步:阅读执行轨迹

评分器是否合理,只有通过阅读大量轨迹和评分结果才能确认。

当任务失败时,轨迹可以帮助区分:

  • Agent 真的做错了;
  • Agent 给出了合法方案但评分器不接受;
  • 工具或环境出现故障;
  • 任务描述存在歧义;
  • 评分器被意外绕过。

一个健康的失败应该“看起来公平”:能够明确说清错在哪里,以及为什么应当判失败。

第 7 步:监控能力评测饱和

当能力评测接近 100% 时,它只能继续充当回归测试,无法为进一步提升提供信号。此时应加入更长、更复杂、更贴近真实分布的任务。

饱和还可能掩盖真实进步:剩余任务极难时,模型能力的大幅提升只会表现为总分的小幅变化。因此评测难度要随模型能力同步演进。

第 8 步:长期维护并明确所有权

评测套件是一项持续演进的工程资产,需要负责人、审查机制和贡献流程。

一个有效的组织方式是:由专门团队维护核心基础设施,领域专家、产品经理、客户成功和工程团队共同贡献任务。最接近用户和产品要求的人,往往最适合定义“什么算成功”。

原文提倡评测驱动开发:在功能尚未完全实现之前,先用评测任务定义目标能力,然后迭代系统直到达到标准。


9. 评测不能单独工作:建立多层质量防线

自动化评测可以在不影响真实用户的情况下快速运行大量任务,但它只能覆盖预先想到的风险。完整的 Agent 质量体系还需要其他方法配合。

方法主要价值主要局限
自动化评测迭代快、可复现、可进入 CI/CD、上线前大规模验证前期建设和长期维护成本高;任务分布失真时会产生虚假信心
生产监控反映真实用户行为,能发现合成任务没有覆盖的问题偏事后,问题已经影响用户;信号噪声大,且常缺少明确真值
A/B 测试使用真实流量比较方案,能衡量留存和任务完成等业务结果达到统计显著性需要时间和流量;只能测试已部署版本
用户反馈暴露未预料的问题,并附带真实案例稀疏、自选择偏差明显,用户通常不会完整说明失败原因
人工轨迹审查建立对失败模式的直觉,发现自动规则遗漏的细微质量问题耗时、难扩展、覆盖不一致,通常偏定性
系统化人类研究为主观任务提供高质量基准,并校准模型评分器成本高、周期长;专业领域需要专家参与

在这里插入图片描述

图 5:质量保障的“瑞士奶酪模型”。 每一层都有盲区,多层方法叠加后,某一层漏掉的问题有机会被其他层捕获。

不同阶段的推荐组合:

  • 开发和上线前:自动化评测作为第一道防线;
  • 上线后:生产监控捕获分布漂移和真实世界异常;
  • 重大版本比较:使用 A/B 测试验证实际业务影响;
  • 持续运营:定期处理用户反馈并抽查轨迹;
  • 主观或高风险领域:安排系统化人类研究和专家校准。

10. 实践中的常见反模式

根据原文案例,可以归纳出以下高频问题:

  1. 只检查 Agent 说了什么,不检查环境中真正发生了什么。
  2. 把工具调用顺序写死,惩罚合法的新路径。
  3. 任务描述没有公开评分器暗中要求的条件。
  4. 只测试正例,导致系统过度触发某种行为。
  5. 多次试验共享状态,造成数据泄漏或相关性故障。
  6. 用单一总分掩盖关键安全维度的失败。
  7. 使用未经人类校准的 LLM 裁判。
  8. 只看排行榜分数,不阅读轨迹和失败样本。
  9. 能力评测已经饱和,却继续把微小分差当作主要进步信号。
  10. 没有明确的维护负责人,导致任务、环境和产品逐渐失配。

11. 一份可直接采用的评测设计清单

任务设计

  • 每个任务都有明确输入、约束和成功标准。
  • 两位领域专家能独立得到一致的通过/失败判断。
  • 评分器检查的每项要求都能从任务描述中得知。
  • 每个任务至少有一个已验证的参考解。
  • 数据集同时包含正例、反例和边界情况。
  • 任务来自真实用户场景、生产故障或手工测试。

环境与运行

  • 评测中的模型、提示词、工具和 Agent 框架与生产版本一致。
  • 每次试验从干净、隔离的环境开始。
  • 外部依赖和随机因素被固定、模拟或记录。
  • 同一任务运行多个试验轮次。
  • 记录完整轨迹、工具参数、最终状态、延迟和成本。

评分器

  • 正确性优先使用确定性检查。
  • 语义质量使用结构化 LLM 量表。
  • 关键安全条件采用不可被平均分抵消的硬门槛。
  • 支持部分得分,并区分不同失败层级。
  • LLM 评分器允许输出“未知”。
  • 模型评分定期与人类专家结果对齐。
  • 评分器经过防投机和绕过测试。

长期运营

  • 每次发布或模型升级自动运行回归套件。
  • 定期阅读失败和随机抽样的成功轨迹。
  • 将生产问题持续转成新测试用例。
  • 监控能力评测是否接近饱和。
  • 明确评测基础设施和任务集的所有者。
  • 定期删除、修复或更新失效任务。

12. 原文附录提到的评测框架

工具原文概述
Harbor面向容器化 Agent 运行,支持跨云大规模试验,并提供标准化任务与评分器格式
Braintrust结合离线评测、生产可观测性和实验追踪,提供常见预置评分器
LangSmith提供轨迹追踪、离线和在线评测、数据集管理,并与 LangChain 生态紧密集成
Langfuse提供类似的可观测与评测能力,支持自托管,适合有数据驻留要求的团队
Arize Phoenix / AXPhoenix 面向开源追踪、调试和评测;AX 提供面向规模化优化与监控的托管能力

原文的态度很务实:框架能减少基础设施工作,但框架本身不会自动产生高质量评测。真正决定价值的是任务、评分器和持续迭代质量。


13. 术语对照表

英文推荐中文备注
agentic evaluationAgent 化评测 / 智能体评测强调多轮行动、工具和环境状态
deterministic grader确定性评分器输出由代码规则决定,可复现
model-based grader模型评分器通常指 LLM-as-judge
human calibration人类标定 / 人类校准用专家评分校验模型裁判
rubric评分量表 / 评分准则应按维度写清等级定义
state check状态检查验证数据库、文件或应用状态
trajectory执行轨迹与 trace、transcript 常互换使用
groundedness有据性 / 可溯源性判断论断是否被来源支持
coverage覆盖度判断必要事实或维度是否齐全
regression回归 / 退化原有能力因修改而下降
capability eval能力评测衡量上限和可改进空间
regression eval回归评测确保已有能力持续稳定
eval saturation评测饱和大多数可解任务均已通过,失去区分度
scaffold脚手架让模型成为 Agent 的运行与编排层
harness执行框架负责端到端运行评测或 Agent
partial credit部分得分反映任务完成程度,而非只有二元结果
signal-to-noise ratio信噪比有效能力信号相对于环境和评分噪声的比例
eval-driven development评测驱动开发先定义可测能力,再迭代实现

14. 结论

没有评测的 Agent 团队容易陷入“修复一个问题、制造另一个问题”的循环,也难以判断变化来自真实退化还是随机噪声。尽早建立评测后,失败会逐步沉淀成测试用例,测试用例又会阻止同类回归,团队的讨论也会从“感觉变差了”转成可定位、可比较、可优化的指标。

无论 Agent 属于编码、研究、对话还是计算机操作类型,基础原则都相同:

  • 从真实任务和真实失败出发;
  • 明确定义成功,不把隐藏假设塞进评分器;
  • 优先验证最终结果,避免过度限制路径;
  • 混合确定性、模型和人类评分;
  • 通过多次试验衡量稳定性;
  • 阅读轨迹,持续修复评测本身;
  • 让任务难度随模型能力提升;
  • 把评测当作与产品代码同等重要的长期资产。

Agent 评测仍处于快速演进阶段。随着任务变得更长、多 Agent 协作增多、工作内容更加主观,评测方法也必须持续调整。


参考资料

  1. Anthropic Engineering, Demystifying evals for AI agents: https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents
  2. Anthropic, Building effective agents: https://www.anthropic.com/research/building-effective-agents
  3. SWE-bench Verified: https://www.swebench.com/
  4. Terminal-Bench: https://www.tbench.ai/
  5. WebArena: https://arxiv.org/abs/2307.13854
  6. OSWorld: https://os-world.github.io/
  7. BrowseComp: https://arxiv.org/
Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐