从双螺旋困境到评估驱动:AI Agent 的质量可观测性
功能迭代在制造问题,效果优化在追赶问题,而评估体系在照亮问题。
一、一个问题的后续
前段时间我写了一篇关于 AI 产品中功能迭代与效果优化之间结构性矛盾的文章。核心观察是:在 Agentic AI 产品里,功能开发的速度被 AI 辅助工具从根本上改变了,但效果优化的速度被问题本质决定了——修改提示词、等模型跑、观察输出、分析问题、再来一轮。这两条线天然跑在不同的速度上,而且功能每迭代一次,效果的问题空间就膨胀一圈。
那篇文章停在了「一些初步的思考」——归因分层、回归测试、稳定窗口、自动化评估。方向有了,但具体怎么做,当时没有展开。
最近重新读了 Anthropic 年初发的一篇文章:Demystifying Evals for AI Agents1。万字长文,系统性地阐述了 AI Agent 评估的方法论——从概念定义到分类型实战,从零到一的路线图,再到评估在整个质量保障体系中的位置。
我当时读过一遍,但没有太深的感觉。直到写完双螺旋那篇文章之后,再回头看它,才意识到这篇文章回应的恰好就是我留下的那个未完成的思考。同一个问题,从不同的位置出发,最终指向了同一个方向。
但我觉得这个方向指向的东西,比「Eval」这个词本身更大。
二、Anthropic 的方法论
Anthropic 这篇文章做的第一件事,是把 Agent 评估的概念体系理清楚了。这也是他们在 Agent 工程化方向上持续输出的一部分——此前他们对 Agent 架构模式的系统性梳理2,为这套评估方法论提供了设计基础。
一个评估由这些东西组成:task(测试任务)、trial(每次尝试)、grader(评分器)、transcript(完整执行记录)、outcome(最终状态)。把这些组合在一起运行的基础设施叫 eval harness,一组相关的测试任务叫 eval suite。
概念本身不复杂。真正有价值的是接下来的部分。
三类评分器
Agent 评估用三类 grader:
Code-based grader——确定性检查。测试通不通过、类型对不对、状态变没变。快、便宜、客观,但刚性强,对「正确但出人意料」的解法不友好。
Model-based grader——用 LLM 来评判。基于 rubric 打分、自然语言断言、对比评估。灵活,能处理开放性任务,但不确定性高,需要定期和人工校准。
Human grader——专家评审。金标准,但慢、贵、难规模化。
文章的建议是:能用确定性检查的尽量用,必须用模型评判的再用,人工做校准和兜底。
这个分层让我想起了上篇文章里提到的 Descript 的做法——Don’t break things → Do what I asked → Do it well。本质上是同一个思路:先用成本最低的方法排除确定性问题,再用成本更高的方法处理需要判断的问题。
两种评估节奏
Anthropic 区分了两种 eval:
Capability eval(能力评估):问「这个 Agent 能做到什么?」,通过率应该从低开始,给团队一座要爬的山。
Regression eval(回归评估):问「这个 Agent 还能做到之前能做的吗?」,通过率应该接近 100%,下降就是警报。
随着 Agent 成熟,能力评估中通过率足够高的任务会「毕业」,进入回归套件。曾经用来衡量「能不能做到」的测试,变成了衡量「还能不能稳定做到」的测试。
这个动态迁移的设计很精巧。它解决了一个实际问题:评估套件如果不演化,要么太难看不到进步,要么太简单失去信号。
非确定性的处理
Agent 的行为每次都有变化,同一个任务跑十次可能五次过五次不过。Anthropic 引入了两个指标:
pass@k——k 次尝试中至少一次成功的概率。k 越大,分数越高——多给几次机会总有一次能行。适合「只要能找到一个方案就够」的场景。
pass^k——k 次尝试全部成功的概率。k 越大,分数越低——要求每次都靠谱是更高的标准。适合面向用户的场景,因为用户不会在意你十次里有九次成功,他们只会记住那一次失败。
这两个指标在 k=1 时完全相同,但随着 k 增大,它们讲述完全相反的故事。一个趋近 100%,一个趋近 0%。选哪个,取决于你的产品对「偶尔失败」的容忍度。
从零到一的路线图
文章给了八步:
- 尽早开始——20-50 个从真实失败中提取的任务就够起步
- 从手动测试转化——你已经在手动做的检查,就是第一批 eval
- 写无歧义的任务——两个专家独立看,应该给出相同的 pass/fail 判断
- 构建平衡的测试集——不只测「该触发的场景」,也测「不该触发的场景」
- 搭稳定的 eval harness——每次试验从干净环境启动,不让共享状态引入噪音
- 设计 grader 要克制——评判结果而不是路径,允许 Agent 用你没想到的方式解题
- 读 transcript——不读执行记录,你永远不知道 grader 判对了还是判错了
- 持续维护 eval suite——eval 是活的,需要有人持续贡献任务和淘汰过时的测试
这八步里,第六步让我停了一下。
“There is a common instinct to check that agents followed very specific steps like a sequence of tool calls in the right order. We’ve found this approach too rigid… it’s often better to grade what the agent produced, not the path it took.”
评判产出,而不是路径。 这句话看起来简单,但做起来需要克制——因为当 Agent 出了问题,人的直觉反应是「它应该先做 A 再做 B 再做 C」,然后就会把这个路径硬编码进 eval。结果是惩罚了所有走不同路径但同样正确的解法。
Anthropic 自己也踩过这个坑。Opus 4.5 在 CORE-Bench 上一开始只拿了 42%3,后来发现是 eval 本身有问题——grading 太刚性、任务有歧义、随机性任务无法精确复现。修复 eval 之后,分数跳到了 95%。0% pass@100 通常说明是 eval 坏了,不是 Agent 不行。
三、比 Eval 更大的东西
读完 Anthropic 的文章,我一直在想一个问题:这套东西的本质是什么?
表面上看,它是一套测试方法论——和软件工程里的单元测试、集成测试没有本质区别。但如果只是这样,它不值得 Anthropic 写一万字来讲。
我觉得它指向的是一个更底层的范式转移。
从 monitoring 到 observability
云原生领域在过去几年经历了一次重要的认知升级:从 monitoring(监控)到 observability(可观测性)。
监控是预设的。你提前定义好指标(CPU、内存、延迟)、设好阈值(>90% 告警)、等着看红灯亮不亮。它假设你已经知道可能出什么问题,然后针对性地监测。
可观测性不一样。它的理念是:系统应该自身产出足够丰富的信号——traces、logs、metrics——使得任何问题都能事后回溯,包括你事先没有预料到的问题。你不需要提前知道会出什么错,只需要确保当错误发生时,有足够的数据来还原现场。
这两者的核心区别不是技术手段,而是认知模型。监控假设问题空间是已知的、可穷举的;可观测性假设问题空间是未知的、持续变化的。
回看双螺旋困境:功能迭代在不断扩大效果的问题空间。每加一个功能,就多一类可能出现的效果问题。在这种环境下,传统的「预设指标 + 阈值告警」式的质量监控显然不够用——你不可能提前穷举所有效果可能退化的方式。
这正是 Anthropic 的 Eval 体系在做的事情:不是预设「Agent 必须通过这些测试」,而是构建一套基础设施,让质量的变化被系统性地照亮——无论这些变化是你预料到的还是意料之外的。

Eval 体系 = 质量可观测性
把 Anthropic 的 Eval 框架和可观测性的三大支柱做个映射:
Transcript = Distributed Trace。 一次 Agent 执行的完整记录——每一步推理、每一次工具调用、每一个中间结果。和分布式系统里的 trace 一样,它让你能够还原一次请求的完整路径,而不是只看到最终输出。当 Agent 的最终结果「不太对」的时候,你不需要猜是哪一步出了问题——打开 transcript 看就行。
Grader = Metric + Alert。 自动化的质量度量。Code-based grader 像是系统指标(确定性、客观、低成本),Model-based grader 像是业务指标(需要理解语义、带主观判断),Human grader 像是人工巡检(高成本但高质量的兜底)。它们共同构成了一个多层次的质量度量体系。
Eval Harness = Observability Platform。 提供一个稳定的、可复现的运行环境,把 Agent 放进去跑,收集所有信号,聚合结果。每次试验从干净环境启动,确保观测到的是 Agent 本身的行为,不是环境噪音。
Eval Suite = SLO(Service Level Objective)。 定义「什么叫好」的操作性标准。SLO 说「99.9% 的请求延迟 < 200ms」,Eval Suite 说「这 50 个核心任务的通过率 > 95%」。两者做的是同一件事:把模糊的质量期望变成可衡量、可追踪的数字。
这个映射不是为了概念上的优雅。它指向一个实际的转变:质量保障的方式,正在从「出了问题去追查」变成「让质量的变化在系统内部持续可见」。
回扣双螺旋
用可观测性的框架重新审视双螺旋困境,几个核心问题的出路变得更清晰了。
归因困难? 有了 transcript,归因从「猜」变成「查」。从前要猜「是功能链路断了还是提示词的问题」,现在打开执行记录,看到底是哪一步输出了异常。分层 grader 进一步降低了归因成本——code-based grader 先排除确定性的功能问题,通过了之后再用 model-based grader 评估效果质量。这就是 Descript 三层模型的工程化实现。
功能迭代在制造效果问题? Regression eval suite 就是自动化的早期预警。每次 Agentic 核心有变更,自动跑一遍基线测试。如果核心场景的通过率下降,在效果团队手动发现问题之前,信号就已经出来了。功能团队可以自己看到「这次改动影响了这些效果指标」,而不是等效果团队撞到 bug 再反馈。信息对称问题解决了。
效果工作的价值不可见? Eval 指标就是效果团队最直接的产出物。「这组场景的通过率从 72% 提升到 89%」——这比「写作风格更自然了」要可沟通得多。效果优化有了可量化、可追踪、可展示的结果,它在组织里的可见度自然就不一样了。
效果优化需要稳定环境? Eval harness 天然提供隔离。每次试验从干净环境启动,不受其他变更的干扰。效果团队可以在 eval 环境里做深度调优,不需要等「底盘不动」的窗口——因为 eval 环境本身就是一个底盘不动的沙箱。
四、一个具体的场景
概念映射说完了,但「质量可观测性」到底意味着什么?不如走一遍具体场景。
假设你在做一个 AI 写作产品。某天,效果团队发现一批用户反馈:「生成的文章里出现了重复段落」。这是一个典型的效果问题。
在没有质量可观测性的情况下,排查路径大概是这样的:效果团队先试着复现——随机输入几个 prompt,有时候能复现有时候不能。然后猜:是不是提示词的问题?改了一版提示词,跑了几个 case,好像好了一点,又好像没好。提给研发看看?研发排查了半天,说并行生成模块最近改过一版合并策略,但「功能本身是正常的」。效果团队不确定到底是合并策略的问题还是提示词的问题,两边各自调了两天,最后发现是合并策略在特定上下文长度下会重复拼接同一个片段。整个过程耗时一周,其中大部分时间花在归因上。
在有质量可观测性的情况下,同样的问题会这样被发现:研发提交合并策略的改动后,CI 自动触发 regression eval suite。50 个核心写作任务跑完,其中 8 个任务的「内容重复率」grader 报红——code-based grader 检测到输出中存在连续 3 句以上的重复文本。研发在合并代码之前就看到了这个信号。打开其中一个失败任务的 transcript,看到并行生成的第 3 步和第 5 步返回了相同的片段,合并策略没有去重。定位到根因,修复,重新跑 eval,全绿。整个过程在代码合并之前就完成了,效果团队甚至不知道这件事发生过。
两个场景的差别不在于问题本身——同样的 bug,同样的根因。差别在于问题被发现的时机和归因的成本。前者是用户投诉驱动、人工排查、一周;后者是系统自动检测、transcript 定位、半天。
这就是从「出了问题去追查」到「让质量变化在系统内部持续可见」的实际含义。
当然,这个场景有一个前提:你需要事先定义好「内容重复率」这个 grader,并且把它纳入 regression suite。如果这类问题从来没出现过,你可能不会想到要检测它——而这恰好是可观测性理念中「不需要提前知道所有问题」的边界。eval 能覆盖的是你已知的失败模式;对于未知的失败模式,你仍然需要用户反馈、人工审查、和持续扩展 eval suite 来应对。
没有哪个体系能预见所有问题。可观测性做的事情是:让已知问题不再需要人工发现,从而把人的精力释放给未知问题。
五、落地的距离
上面的场景把理想情况走了一遍。但回到现实,Agent 的质量可观测性有几个绕不过去的难题。
效果评估标准本身是模糊的
代码 Agent 有天然优势——测试通不通过是二值判断。但对于写作 Agent、客服 Agent、研究 Agent 这类输出开放性强的系统,「做得好」的标准本身就是模糊的。
「风格自然」怎么定义成 grader?「回答全面」的边界在哪里?「语气恰当」用什么 rubric 来评分?
Anthropic 也承认 LLM-as-judge 需要频繁和人工校准。他们的建议是:给 LLM 留退路(可以回答「无法判断」),用结构化 rubric 拆分评估维度,每个维度独立打分而不是一个 LLM 评所有方面。这些做法降低了噪音,但没有消除根本问题——在「好」和「不够好」的边界上,不同人的判断也不一样。
Descript 的做法是定期用人工评分校准 LLM 评分器,随着时间推移逐步减少人工介入的频率。这可能是当前最务实的路径:不追求一开始就完美,接受评估标准会随着理解加深而演化。
Eval 的维护本身就是一笔投入
Anthropic 在文章里说 eval suite 是 “living artifact”,需要持续维护和有人负责。对 Anthropic 这种体量的公司,这不是问题。但对大多数团队来说,维护一套不断演化的评估体系本身就是一个需要人力的工程项目。
eval task 会过时——产品变了,旧任务不再有意义。grader 会漂移——你依赖的 LLM 自己也在更新,评分标准可能在你不知道的情况下悄悄变了。eval suite 会膨胀——加任务容易删任务难,时间长了跑一遍 eval 可能要好几个小时。
这不是说不值得做,而是说做的时候要对成本有清醒的认知。Anthropic 的路线图第一步——「20-50 个从真实失败中提取的任务就够起步」——之所以重要,不只是因为降低了门槛,更因为它明确了一个信息:先跑起来比追求完备更重要。
覆盖率的幻觉
eval 通过了不代表没问题。Opus 4.5 在 CORE-Bench 上从 42% 跳到 95% 的例子,说明的不是模型进步了,而是 eval 之前就有问题。
反过来,eval 没通过也不代表一定有问题。Agent 可能用了一种 eval 设计者没有预料到的方式解决了问题,但被过于刚性的 grader 判了失败。Anthropic 文章里提到的 τ2-bench4 案例就是如此——Opus 4.5 在订机票任务中发现了政策漏洞,给了用户一个更好的解法,但因为不符合 eval 的预期路径而「失败」了。
这意味着 eval 分数不能无脑地当作质量信号。它是一个有用的指示器,但不是真理。文章里反复强调的「读 transcript」——手动检查执行记录——本质上是在弥补自动化评估的盲区。再好的 eval 体系,也替代不了人对样本的直接观察。
模型漂移让基线不稳
这可能是最棘手的问题。你的 grader 依赖 LLM(model-based grading),但 LLM 本身也在变——大模型厂商在持续更新模型,每次更新都可能微妙地改变评分标准。上个月 LLM 评 85 分的输出,这个月可能评 80 或 90,不是因为输出变了,而是评委变了。
这和我在双螺旋那篇文章里描述的「底层变了,上层不可预测」是同一个结构。只不过这次不稳的不是 Agentic 核心,而是评估系统自身的基线。
应对方式大概是:code-based grader 尽量承担更多比例(它不漂移)、model-based grader 定期和人工校准、保留一组 golden dataset 作为评估的锚点。但坦率地说,这个问题目前没有优雅的解法。
六、质量作为基础设施
我最近一直在想一个类比。

功能是一座建筑——有结构、有外观、有楼层、有房间。每加一个功能就是盖一层楼。它是显性的、可展示的,所有人都看得到。
质量是地基和管线——供水、供电、消防、排污。你看不到它们,但它们出问题的时候,整栋楼都没法住。
双螺旋困境的本质,也许不是功能太快或效果太慢。而是质量缺少和功能同等的基础设施支持。
功能开发有成熟的基础设施——CI/CD、版本管理、feature flag、A/B 测试框架——这些工具经过多年演化,已经形成了完整的工程体系。相比之下,效果优化的工具链还在非常早期的阶段。大多数团队的效果工作仍然依赖手动记录、经验判断和口头沟通。这不是某个团队的问题,而是整个行业在 Agent 效果工程化上还没有跑出成熟的范式。已经有团队在探索「速度与质量并重」的 Agent 工程模式5,但整体仍处于实践积累的早期。
Eval 体系——或者用一个更精确的词,质量可观测性——就是在补这块基础设施。Transcript 让执行链路可查,Grader 让质量变化可测,Eval Suite 让质量标准可定义可追踪,Eval Harness 让评估可复现可规模化。
和云原生可观测性的演进一样,这不是一朝一夕的工程。Prometheus + Grafana 不是一天搭起来的,OpenTelemetry 标准不是一天定好的。但回头看,那些在早期就开始投资可观测性的团队,在系统规模化之后获得了巨大的红利——因为他们能看到别人看不到的东西。
AI Agent 的质量可观测性可能处在一个类似的早期阶段。大多数团队还在手动测试、凭直觉调优。少数团队开始搭建评估体系。极少数团队——如 Anthropic、Descript、Bolt——已经在系统性地运营 eval 并从中获益。
差距会在规模化之后显现。当 Agent 承担的任务越来越复杂、用户对质量的期望越来越高、功能迭代的速度越来越快——那些缺乏质量可观测性的产品,会越来越多地回到「出了问题去追查」的被动循环。而那些提前投资的产品,能更快地发现问题、更快地定位原因、更快地验证修复。
未来 Agent 产品的竞争,很可能不在谁的功能多,而在谁能更快地发现和修复质量问题。
这个判断和双螺旋困境的结论一脉相承——速度差是结构性的,追不上就换方式。不是让效果「追上」功能,而是给质量建设它自己的基础设施。Eval 体系是这个基础设施的第一块砖。
张昊辰 (Astralor) & 霄晗 (🌸) · 2026.03.09
参考文献
Footnotes
-
Anthropic. Demystifying Evals for AI Agents. 2026. https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents ↩
-
Anthropic. Building Effective Agents. 2024. https://www.anthropic.com/research/building-effective-agents ↩
-
Sayash Kapoor. CORE-Bench scoring issues with Opus 4.5. 2026. https://x.com/sayashk/status/1996334941832089732 ↩
-
Sierra Research. τ2-Bench: Evaluating Agents in Multi-turn Interactions. 2025. arXiv:2506.07982 ↩
-
CodeScene. Agentic AI Coding: Best Practice Patterns for Speed with Quality. 2025. https://codescene.com/blog/agentic-ai-coding-best-practice-patterns-for-speed-with-quality ↩
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!