工程进阶 · 可靠 Agent 的工程模式

为什么评测比训练更重要

没有评测,修一个 bug 制造三个。Anthropic 的 Eval 方法论

本页解决的问题

先给结论

「为什么评测比训练更重要」要解决的关键问题是什么?

没有评测,修一个 bug 制造三个。Anthropic 的 Eval 方法论

判断标准

让这个结论先证明自己值得留下。 把这一页当成决策工具,而不是需要背下来的定义。把概念连到一个真实任务、一个可观察结果,以及一个能改变你判断的失败上。

下一步

写下一个问题:试完这个方法后,你能用什么证据回答它?

常见误区

结论听起来很完整,却没有检查最关键的假设。

没有评测的后果
飞行盲区:修一个 Bug,制造三个新的
没有评测体系的团队,每次改动都是一场赌博。你修了用户 A 反馈的问题,却可能悄悄破坏了用户 B、C、D 依赖的功能。更糟的是:你根本不知道自己破坏了什么,直到下一波用户投诉涌来。
真实场景
用户反馈「Agent 这周明显变差了」,团队翻了三天 commit 记录,试了十几种回滚方案,最后发现是两周前一个看起来无害的 Prompt 微调导致的。如果有评测,这个问题会在合并代码前就被发现。
猜测-检查循环
没有评测的调试过程是:猜问题在哪 -> 改一下 -> 手动试几个 Case -> 感觉好像行了 -> 上线 -> 发现又坏了。这种循环可以持续数周,消耗大量工程资源却毫无信心保障。
评测的价值时间线
早期 -- 定义成功
评测的第一个价值是迫使团队定义成功长什么样,测试反而是其次。当你写不出 eval,往往说明你对任务的理解还不够清晰。这个过程本身就能帮助产品经理更好地理解需求。
中期 -- 回归测试 & 变更验证
每次改 Prompt、换模型、调参数,都能在几分钟内知道改动对整体性能的影响。回归测试防止你在优化一个维度时不小心破坏其他维度;变更验证让你有数据支撑每一次决策。
后期 -- 新模型快速采纳
当新模型发布时(比如 Claude Opus 4.6、GPT-5),有完善评测的团队可以几天内完成迁移:跑一遍 eval suite,确认性能不降,直接切换。而没有评测的团队,需要花数周甚至数月手动验证,错过最佳窗口期。
评测的核心概念

理解这 7 个术语,你就掌握了整个评测体系的语言。

Task(任务)
一个测试用例。包含输入(给 Agent 的指令)和成功标准(怎样算完成)。
Trial(试验)
同一个 Task 的一次执行尝试。因为模型输出有随机性,同一个 Task 需要跑多次 Trial 才有统计意义。
Grader(评判器)
打分逻辑。可以是代码规则、LLM 评审、或人工打分。决定一次 Trial 的结果是通过还是失败。
Transcript(记录)
完整的执行轨迹:Agent 的每一步推理、每一次工具调用、每一个中间结果,全部记录下来。
Outcome(结果)
环境中的最终状态。不只看 Agent 说了什么,更看它实际做了什么:文件是否正确修改、API 是否正确调用。
Harness(脚手架)
运行评测的基础设施。负责创建沙箱环境、启动 Agent、收集结果、调用 Grader 打分。
Suite(套件)
一组相关 Task 的集合。例如「文件编辑能力 Suite」包含 20 个不同难度的文件编辑任务。
Claude Code 的评测演进故事
从 Dogfooding 到系统化评测
起初 靠内部工程师日常使用(dogfooding)收集反馈。「感觉最近写的代码质量不如上周」,这种直觉有用,但不精确、不可扩展。
第一步 加入简洁性和文件编辑的 eval。终于能量化「生成的代码是不是太啰嗦了」和「文件编辑是不是准确」。
进阶 发现用户抱怨「过度工程化」,于是专门加了过度工程化 eval:测量 Agent 是否在简单任务上引入了不必要的复杂度。
效果 评测帮助团队聚焦改进方向:判断从「感觉哪里不对」升级为「简洁性从 72 分提升到 85 分,但过度工程化指标从 3% 恶化到 7%,需要回退」。
关键建议
先从 20 条开始
不要等到有几百条测试用例才开始做评测。20 条精心设计的 Task,就能覆盖你最核心的场景。关键在于开始,数量是其次。一个有 20 条 eval 的团队,比一个有 0 条 eval 但「计划做 500 条」的团队,领先了一整个时代。
评测也是产品理解的手段
写评测用例的过程,会逼你回答最难的产品问题:「用户到底想要什么结果?」「什么算好,什么算不好?」「边界情况怎么处理?」很多团队在写 eval 的过程中,反而理清了长期模糊的产品定义。
评测的价值是复利:前期每一分钟的投入,后期都会在回归测试、模型迁移、团队协作中持续产生收益。最好的开始时间是三个月前,次好的是现在。

「没有评测的后果」里的算法代价曲线

「没有评测,修一个 bug 制造三个。Anthropic 的 Eval 方法论」真正训练的不是背诵步骤,而是识别重复工作:输入变大时,程序到底多做了多少次比较、移动或递归。

先找重复工作,再谈快慢

「没有评测,修一个 bug 制造三个。Anthropic 的 Eval 方法论」可以拆成输入规模、每轮做什么、以及是否能缩小下一轮范围三个问题。Big-O 是描述增长趋势的语言,不是对每台机器的精确计时;常数、内存和真实数据分布也会影响最终结果。

别把理论最优当成无条件最优

面对 AI 写出的算法,先用小输入手算一遍,再用逐渐放大的数据做基准测试。这样才能把「没有评测,修一个 bug 制造三个。Anthropic 的 Eval 方法论」从一句结论变成可检查的性能判断。

从「没有评测的后果」走到「评测的价值时间线」

「没有评测的后果」先把问题落在「飞行盲区:修一个 Bug,制造三个新的 没有评测体系的团队,每次改动都是一场赌博。你修了用户 A 反馈的问题,却可能悄悄破坏了用户 B、C、D 依赖的功能。更糟的是: 你根本不知道自己破坏了什么 ,直到下一波用户投诉涌来。 真实场景 用户反馈「Agent 这周明显变差了」,团队翻了三天 commit 记录,试了十几种回滚方案,最后发现是两周前一个看起来无害的 Prompt 微调导致的。如果有评测,这个问题会在合并代码…」上;到了「评测的价值时间线」,讨论继续推进到「早期 -- 定义成功 评测的第一个价值是 迫使团队定义成功长什么样 ,测试反而是其次。当你写不出 eval,往往说明你对任务的理解还不够清晰。这个过程本身就能帮助产品经理更好地理解需求。 中期 -- 回归测试 & 变更验证 每次改 Prompt、换模型、调参数,都能在几分钟内知道改动对整体性能的影响。 回归测试 防止你在优化一个维度时不小心破坏其他维度; 变更验证 让你有数据支撑每一次决策。 后期 -- 新模型快速采…」。两段连起来,重点就不只是记住一个结论,而是看清它成立所依赖的条件。

把这条判断带到下一个场景

算法题换成真实任务后,先找出重复工作,再问输入规模如何变化,最后用一个小基准验证理论判断。这样不会把复杂度记成脱离场景的标签。

  • 「没有评测的后果」:飞行盲区:修一个 Bug,制造三个新的 没有评测体系的团队,每次改动都是一场赌博。你修了用户 A 反馈的问题,却可能悄悄破坏了用户 B、C、D 依赖的功能。更糟的是: 你根本不知道自己破坏了什么 ,直到下一波用户投诉涌来。 真实场景 用户反馈「Agent 这周明显变差了」,团队翻了三天 commit 记录,试了十几种回滚方案,最后发现是两周前一个看起来无害的 Prompt 微调导致的。如果有评测,这个问题会在合并代码…
  • 「评测的价值时间线」:早期 -- 定义成功 评测的第一个价值是 迫使团队定义成功长什么样 ,测试反而是其次。当你写不出 eval,往往说明你对任务的理解还不够清晰。这个过程本身就能帮助产品经理更好地理解需求。 中期 -- 回归测试 & 变更验证 每次改 Prompt、换模型、调参数,都能在几分钟内知道改动对整体性能的影响。 回归测试 防止你在优化一个维度时不小心破坏其他维度; 变更验证 让你有数据支撑每一次决策。 后期 -- 新模型快速采…
  • 「关键建议」:先从 20 条开始 不要等到有几百条测试用例才开始做评测。 20 条精心设计的 Task,就能覆盖你最核心的场景。 关键在于开始,数量是其次。一个有 20 条 eval 的团队,比一个有 0 条 eval 但「计划做 500 条」的团队,领先了一整个时代。 评测也是产品理解的手段 写评测用例的过程,会逼你回答最难的产品问题:「用户到底想要什么结果?」「什么算好,什么算不好?」「边界情况怎么处理?」很多团队在写 eva…

最后的「关键建议」把讨论落到「先从 20 条开始 不要等到有几百条测试用例才开始做评测。 20 条精心设计的 Task,就能覆盖你最核心的场景。 关键在于开始,数量是其次。一个有 20 条 eval 的团队,比一个有 0 条 eval 但「计划做 500 条」的团队,领先了一整个时代。 评测也是产品理解的手段 写评测用例的过程,会逼你回答最难的产品问题:「用户到底想要什么结果?」「什么算好,什么算不好?」「边界情况怎么处理?」很多团队在写 eva…」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。

标记为已学完 阅读进度会自动记录
← 上一篇下一篇 →

继续阅读

同一条线上的下一篇。

文章讨论

读到这里,留下一个判断。

把刚想明白的地方、还没想通的问题,留给下一位一起学习的人。

正在讨论 为什么评测比训练更重要 可靠 Agent 的工程模式
3条讨论文章讨论 · 与共学社区同步
在共学社区查看
AM
Asha Morgan内容编辑
观点实践记录

我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。

文章讨论7 有帮助
LH
Lin Harper独立开发者
观点观点

读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。

文章讨论5 有帮助
KM
Kiki Moore产品运营
问题问题

如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。

文章讨论4 有帮助