Anthropic Engineering · 2026-01-09

讲解:Demystifying evals for AI agents

这篇文章的核心不是“多做几个 benchmark”,而是把 Agent 变成一个可度量、可回放、可比较、可长期维护的工程系统:任务定义清楚,环境可复现,评分器组合使用,轨迹被阅读,评测结果持续进入产品迭代。

“Evals turn ‘the agent feels worse’ into something actionable.” —— Anthropic 这句话可以理解为:把主观质量争论,转成可复跑的任务、轨迹和分数。

Evaluation anatomy

一套 Agent eval 到底由什么组成?

Anthropic 先统一术语,因为大多数评测失败不是模型问题,而是任务、评分器、环境或成功标准没有定义好。

任务 Task一个有输入和成功标准的 test case,也叫 problem。关键是两位领域专家应能独立判断通过/失败。
试验 Trial同一个任务的一次尝试。因为模型输出有随机性,通常需要多次 trial 才能估计稳定表现。
轨迹 Transcript完整消息数组、工具调用、推理片段、环境反馈和中间结果。失败分析必须读轨迹。
结果 Outcome最终环境状态,例如数据库里是否真的生成订单,而不是 agent 是否声称“已完成”。
评分器 Grader对 transcript 或 outcome 打分的逻辑;多个 grader 可以组合成 suite。
Harness matters

评的是 Agent harness + model,不只是模型

Claude Code 这样的 agent harness 会决定工具如何暴露、循环如何执行、状态如何写入。因此“Claude 通过/失败”往往其实是“Claude + scaffold + tools + environment”共同通过/失败。

Outcome first

不要只看 agent 说了什么

航班 agent 说“票已订好”不等于数据库里有 reservation;代码 agent 解释“我修复了”不等于测试通过。Agent eval 要尽量检查状态和产物。

Why it matters

为什么不靠手测和直觉?

早期 dogfooding 很有用,但一旦 agent 扩大到真实用户,纯手测会进入 Anthropic 所说的 reactive loop。

Reactive loop

没有 eval:线上报错 → 手工复现 → 修一个坏另一个

团队无法判断“用户感觉变差”是真退化还是噪声,也无法在每次 prompt / tool / model 改动前跑几百个场景。

Compound value

有 eval:失败样例变成回归测试

Claude Code 早期靠员工和外部用户反馈迭代,后来把 concision、file edits、over-engineering 等行为做成 eval,才更系统地支撑产品和研究协作。

Model upgrade

新模型出来时可以几天内升级

没有 eval 的团队需要数周手测;有 eval 的团队能快速看新模型优势、调 prompt、测成本/延迟/错误率,并决定是否切换。

Graders

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

Anthropic 的建议是:能用确定性就用确定性;需要判断开放质量时用 LLM;用人类专家做校准和高价值抽检。

类型适合评什么优点风险
代码型评分器
Code-based graders
exact/regex/fuzzy match、unit tests、static analysis、outcome verification、tool calls verification、transcript metrics。快、便宜、客观、可复现、容易 debug,适合代码 agent 和有明确状态的任务。容易脆:合法变体可能被误杀;对主观质量缺少 nuance。
模型型评分器
Model-based graders
rubric-based scoring、自然语言断言、pairwise comparison、reference-based evaluation、多 judge 共识。灵活、可规模化、能评开放输出和“是否有帮助/是否完整/是否语气合适”。非确定、成本更高,必须用人工标注校准;rubric 模糊会导致评分快速漂移。
人工评分器
Human graders
SME review、crowdsourcing、spot-check、A/B test、inter-annotator agreement。最接近真实专家和用户判断,可作为 LLM judge 的 gold standard。慢、贵、难规模化,复杂领域需要专家。
关键设计原则:不要过度要求 agent 按固定步骤或固定工具顺序行动。Agent 经常会找到评测设计者没想到、但有效的路径。更好的默认是评估产物和最终状态,而不是强行规定路径;路径检查只在安全、合规或必要工具使用上加。

Capability vs Regression

能力评测和回归评测不是一回事

这是文章里对产品团队最重要的区分:一个给研究爬坡,一个守住线上质量。

Capability eval

问:这个 agent 能做到什么?

应该从低通过率开始,挑 agent 目前挣扎的任务,让团队有 hill to climb。若很快 100%,就不能再衡量能力进步,只能说明任务太简单或已经饱和。

Regression eval

问:它还会不会做以前会做的事?

应该接近 100% pass rate,用来保护不倒退。能力评测里已经稳定通过的任务,后续可以毕业进入回归套件,在 CI/CD 中持续跑。

Agent families

四类 Agent 的评测方法

Anthropic 把可落地的 agent 大致分成 coding、conversational、research、computer use。不同类型混合不同 grader。

Coding Agent

代码型:用测试验证 outcome,再补质量 rubric

SWE-bench Verified 和 Terminal-Bench 都体现了这个思路:给真实代码任务,运行测试套件判定是否修复且不破坏旧功能。额外可加 static analysis、工具调用检查和 LLM 代码质量评分。

task: fix-auth-bypass
主要 grader:
  - deterministic_tests
  - static_analysis
  - state_check: security_logs
  - llm_rubric: code_quality
metrics: n_turns, n_toolcalls, tokens, latency
Conversational Agent

对话型:目标完成 + 交互质量一起评

客服、销售、教练类 agent 不只要完成任务,还要语气、解释、上下文状态和工具调用正确。常需要另一个 LLM 模拟用户,比如 τ-Bench / τ2-Bench 的多轮场景。

refund support eval:
  - llm_rubric: empathy, clarity, groundedness
  - state_check: ticket resolved, refund processed
  - tool_calls: verify_identity, process_refund
  - transcript: max_turns <= 10
Research Agent

Research Agent:用 groundedness / coverage / source quality 组合

研究质量取决于任务语境:市场扫描、尽调、科学综述标准都不同。可用 claims 是否被来源支持、关键事实覆盖率、来源权威性、开放综合质量来评;LLM rubric 必须经常和专家判断校准。

这对 Auto Research 特别直接:不能只看报告“写得像不像”,还要看来源是否权威、是否覆盖必要事实、是否把不确定性说清楚、是否适合下一步工程决策。

Computer Use Agent

电脑/浏览器使用型:检查真实 GUI 环境状态

WebArena 用 URL、页面状态和后端状态检查浏览器任务;OSWorld 检查文件系统、应用配置、数据库和 UI 元素。文章还提醒:DOM 工具快但 token 多,截图工具慢但可能更省 token,评测要检查 agent 是否选对工具。

Non-determinism

随机性:pass@k 和 pass^k 讲的是相反问题

Agent 同一任务多跑几次可能一次成功一次失败,所以不要只看单次结果。

pass@k

k 次里至少成功一次的概率。适合“多给几次,只要找到一个有效解就行”的任务。

pass^k

k 次都成功的概率。适合用户每次都期待稳定成功的客服、生产系统和高可靠 agent。

42.1875%

若单次成功率 75%,连续 3 次都成功是 0.75³ = 42.1875%;而 3 次至少一次成功是 98.4375%。同一 agent 在两个指标下叙事完全不同。

Roadmap

从 0 到 1:建立可信 Agent eval 的 8 步

这部分是文章最像 playbook 的地方,可以直接转成团队流程。

Start early:不要等到有几百个任务

Anthropic 建议 20–50 个来自真实失败的简单任务就能起步。早期系统改动 effect size 大,小样本也能发现方向。

从你已经手测的行为开始

把 release 前人工检查、bug tracker、support queue、用户投诉转成 eval tasks,并按用户影响排序。

写清晰任务和 reference solution

任务应让两个专家独立得出相同 pass/fail;评分器检查的内容必须在任务描述中明示。0% pass@100 常常是坏任务或坏 grader 信号。

构造 balanced problem sets

既测试“该发生时发生”,也测试“不该发生时不发生”。只测应该搜索,会训练出什么都搜索的 agent。

稳定 eval harness 和隔离环境

每个 trial 从干净环境开始,避免共享缓存、旧文件、git history、资源耗尽等让 trial 不独立或虚高。

精心设计 grader,允许 partial credit

优先确定性,必要时 LLM,人类校准;多组件任务要有部分分,否则无法区分“差一点成功”和“完全失败”。

读 transcripts

分数不涨时,必须读轨迹确认失败是否公平:是真错、有效解被误杀、任务含糊,还是 harness 限制了模型。

监控饱和并长期维护

100% 的 eval 只能做回归,不能测能力。eval suite 是活文档,应由 eval infra 团队拥有框架,产品/领域专家贡献任务。

Failure modes

文章中特别值得记的坑

很多“模型能力差”的结论,后来被证明是评测自己坏了。

把有效解法误判为失败

Opus 4.5 在 τ2-bench 航班预订题里找到 policy loophole,按静态 eval 算失败,但对用户可能是更好解法。

过于 rigid 的 grader

CORE-Bench 里曾出现把 96.12 因不等于 96.124991… 判错、任务含糊、随机任务不可复现等问题。修复后 Opus 4.5 分数从 42% 跳到 95%。

agent 能“hack”评测

任务和 grader 要让通过必须真的解决问题,而不是利用漏洞;同时也不要把 agent harness 约束得过死,压制模型真实能力。

Holistic evaluation

自动化 eval 只是多层防线之一

Anthropic 用类似 Swiss Cheese Model 的视角:每一层都有洞,多层组合才能覆盖真实质量。

方法主要价值主要限制
自动化 evals可复现、可在每次改动和模型升级前跑、不会影响真实用户。前期投入高,若任务不贴近真实使用会制造虚假信心。
Production monitoring看到真实用户行为和线上错误,发现 synthetic eval 漏掉的问题。偏 reactive,问题先影响用户;缺少明确 ground truth。
A/B testing衡量真实用户指标,如留存、任务完成、业务转化。慢,需要足够流量;不一定解释“为什么”。
User feedback暴露意料之外的问题,并提供真实样例。稀疏、自选择偏差强,用户常不解释失败原因。
Manual transcript review建立失败模式直觉,校准“好”的标准。耗时、不可规模化、覆盖不稳定。
Systematic human studies主观复杂任务的 gold standard,可校准 LLM grader。贵、慢、专家难找,评分者分歧需要仲裁。

Auto Research implications

放到 FJ Auto Research 里,应该怎么落地?

这篇文章对“自动调研/自动报告系统”的启发非常直接:我们要评的是调研 agent 的全流程,而不是最终 HTML 是否好看。

Eval suite design

为 Auto Research 建三层任务库

  • 回归层:已知来源、固定答案、固定页面生成和链接解析,目标接近 100%。
  • 能力层:开放研究问题,例如比较多个论文方向、从碎片源中形成投资/研究结论,目标一开始允许低通过率。
  • 压力层:来源冲突、信息过时、网页不可访问、X/Twitter 噪声、用户临时改 scope。
Graders for research

不要只用一个 LLM judge

  • 代码型:链接是否可访问、引用是否存在、页面是否生成、HTML 是否含设计 token、路径是否在 public 下。
  • 模型型:claim 是否被 source 支持、coverage 是否满足 checklist、是否区分事实/推断/建议。
  • 人工型:抽样阅读高价值报告,校准模型评分和产品口径。
Trace review

保存和阅读轨迹,而非只保存报告

需要记录搜索 query、被排除来源、抽取内容、冲突证据、评分器输出和最终编辑决策。这样当报告出错时,能知道是检索错、抽取错、综合错,还是 HTML 发布错。

Metrics

把质量、成本和稳定性一起看

除了 pass/fail,还跟踪来源数量、权威来源比例、unsupported claim rate、重复信息率、生成耗时、token 成本、人工修改量、用户后续采纳率。

一句话执行建议:下一步可以为 Auto Research 建一个最小 eval bank:20 个真实历史任务 + 每个任务的期望产物 checklist + 静态链接/路径 grader + groundedness LLM grader + 每周人工抽检。先让它在小任务上稳定,再逐步加入开放调研能力题。

Framework appendix

文章提到的实现工具

框架能省基础设施时间,但 Anthropic 的结论很明确:框架只和你放进去的任务一样好。

Harbor

面向容器化 agent eval,支持云上大规模 trials 和标准任务/评分器格式;Terminal-Bench 2.0 通过 Harbor registry 分发。

Braintrust / LangSmith / Langfuse

覆盖离线 eval、production observability、tracing、dataset management;Langfuse 偏自托管开源。

Phoenix / Arize AX

Phoenix 是开源 tracing/debug/eval 平台,AX 是面向规模化优化和监控的 SaaS。

Bottom line

最终 takeaway

Agent eval 的成熟标志不是“有一个分数”,而是:真实失败持续进入任务库;任务能被 reference solution 通过;grader 公平且可校准;环境隔离;每次改动都能跑;分数异常时有人读 transcript;能力题饱和后转为回归题,并继续补更难的新题。