返回列表
🧠 阿头学 · 🪞 Uota学 · 💬 讨论题

AI Agent自动合入的六步关卡:从评判者偏见到影响范围分级

文章声称通过六步评估关卡即可实现AI Agent代码“无需人类阅读即可合入”,但其论证存在显著的虚构数据、成本回避和可靠性跃迁未证明的问题;不过,其“轨迹重于答案”“按影响范围分级”“跨家族评判”等具体工程原则具有扎实的实践价值。
打开原文 ↗

2026-08-05 原文链接 ↗
阅读简报
双语对照
完整翻译
原文
讨论归档

核心观点

  • 评判者偏见是结构性缺陷而非临时噪声 同模型家族评判存在+90%到-38%的系统性偏差,且存在冗长偏见,因此必须采用跨家族评判者小组,并将任何客观可检查项交给代码而非模型评判。
  • 评估必须是嵌入运行的“恒温器”而非事后“温度计” 只有将评分实时转化为结构性动作(拦截分支、降级权限、强制转人工),关卡才具备生产价值,否则只是将猜测洗白成数字的虚假仪表盘。
  • 轨迹与组件级评估比最终答案更关键 Agent可能通过破碎路径(循环调用、冗余步骤)碰巧得出正确结果,因此必须同时监控端到端结果、路径合理性(Trajectory)和组件健康度(Component),其中忠实度(是否基于工具真实返回)是隐藏的核心风险。
  • 开启关卡的决策变量是影响范围而非置信度 应按“可逆且可控/可逆但影响面广/难以逆转”三级对变更分类,文案测试可最先自动合入,涉及生产数据或资金的操作无论分数如何都不应开启自动关卡。
  • 生产日志是比空想更高效的测试来源 从追踪中有策略地抽取四类运行(干净完成、用户纠正、工具异常或重复调用、外部超时),用四行字强制归因并转化为永久测试,比凭空发明失败模式更有效。

跟我们的关联

  • 对ATou:架构必须从“结果正确”下沉为“路径干净” 这意味着你构建的Agent系统不能止步于输出正确,而必须在设计层植入三层评估和基于Blast Radius的分级护栏;下一步应在现有工作流中先引入“轨迹忠实度”检查,将工具返回空值时的模型编造行为设为一级拦截项。
  • 对Uota:评估者自身必须被持续评估与锁定 这意味着你所依赖的LLM Judge存在家族偏见和版本漂移风险,跨家族评判和版本锁定是Uota建立可信镜像的前提;下一步应将反思能力外化为具体SOP,例如用四行字归因模板把每次失败转化为永久测试用例,而非停留在抽象复盘。
  • 对Neta:自动化放手的瓶颈是错误成本而非模型智商 这意味着Agent的自动化合入不是“等模型够聪明再放手”,而是“让错误足够便宜再放手”;下一步应在任何自动决策场景中复制Blast Radius分级逻辑,将低影响、高可逆的决策通道优先自动化,同时保持高影响通道的人工兜底。

讨论引子

1. 如果跨家族评判者小组本身也对“看起来正确”的代码风格产生一致偏见,我们是否还需要一个更高阶的元评判者,还是这注定陷入无限回归? 2. 当轨迹评估成为硬性门槛时,Agent是否会开始优化“路径美观度”而非“结果正确性”,从而在新的维度上触发古德哈特定律?如何设计防博弈的轨迹指标? 3. 在组织现实中,“无需人类阅读即可合入”往往与合规审计和责任归属要求冲突——技术层面的充分条件是否永远无法跨越制度层面的必要条件?

最终状态很容易描述。Agent 完成变更,提交变更,无需人类阅读即可合入。

不是因为任何人决定信任模型。而是因为一道关卡(Gate)阅读了证据并据此制定了规则。

几乎没有人拥有那样的关卡,原因并非缺乏勇气。

它需要阅读的证据在大多数系统中尚不存在。

在你能开启它之前,必须满足以下六个步骤的条件。

步骤 1 - 你正在阅读的分数部分取决于你的评判者(Judge)

自动化评估始于一个坚实的结果。

UC Berkeley 的 Zheng 及其同事在 2023 年表明,GPT-4 与人类评分员的一致率超过 80%,这大致相当于人类之间的一致率。行业几乎在一夜之间转向了 API 调用。

后续研究发现,评判者会对面前内容之外的事物做出反应。

前沿评判者会系统性地抬高其自身模型家族输出的分数。

在 2026 年的一项基准测试中,GPT-5.2 和 Gemini 3.1 Pro 给予其自身家族 75% 到 84% 的胜率。Claude Opus 4.7 则相反,以 10.6% 到 41.2% 的比例低估其自身家族。

在 ArenaHard 上,测得的评判者偏差范围从 -38% 到 +90%。

同一基准测试将一组输出交给两个不同的评判者。在一个评判者下,模型得分 93.3%。在另一个下,相同的输出得分 39.5%。

冗长偏见(Verbosity bias)也随之而来:评判者会奖励长度,无论多余的词语是否包含信息。

这并不意味着该方法无用。它使得设置变得至关重要,三条规则涵盖了大部分情况:

  • 使用与生成模型不同的模型家族进行评判。同一家族意味着共享盲点。
  • 对于任何高风险事项,使用来自不同供应商的评判者小组,而不是单一评判者。跨家族平均是打破相关错误的关键。
  • 任何客观可检查的事物都交给代码,而不是评判者。测试是否通过,文件是否存在,状态是否改变。

由有偏见的评判者驱动的关卡比没有关卡更糟糕。

它将猜测洗白成一个数字,然后据此行动。

步骤 2 - 不改变运行的裁决只是一份报告

大多数团队只差一步就停下了。

他们得到一个数字,放在仪表盘上,而仪表盘没有改变任何人的行为。

2026 年成熟的转变是在 Agent 内部运行评估(evals),而不是在它运行之后。预生产评估被提升为生产护栏,分数控制 Agent 接下来可以做什么:它可以访问哪些工具,移交是否被接受,运行是否升级给人工处理。

这就是温度计和恒温器的区别。

每个裁决都对应于正在进行的运行的一项结构性动作。

Grounding 不足会拒绝移交。

Schema 失败会阻断边缘。

疑似捏造会将该分支隔离,而不是让其合并到主线程中。

只有经过验证的完成才被允许结束运行。

停止调用工具的 Agent 只是结束了它的回合。这不同于完成任务,只有外部检查知道其中的区别。

这是关卡复用的第一件事。裁决已经指导运行的系统,在合并时才拥有值得阅读的裁决。

步骤 3 - 评估路径,而不仅仅是答案

仅对最终响应进行评分,会导致 Agent 通过破碎的序列得出正确答案,而一个月都没人注意到。

Agent 评估分为三个层级,你需要全部三个。

端到端(End to end)询问任务是否成功。

轨迹(Trajectory)层级询问路径是否合理,这是循环、冗余调用和浪费步骤浮现的地方。

组件(Component)层级询问哪个检索器、工具或子 Agent 坏了。这是唯一告诉你去哪里修复问题的层级。

三个指标足以开始。

忠实度(Faithfulness),意味着答案基于工具实际返回的内容,而不是工具返回空时模型填补的内容。

工具参数准确性,意味着正确的工具配有正确的参数。

任务完成度,根据真实信号判断,而不是 Agent 自己的声明。

忠实度是隐藏的那一个。一个写得干净但发明了汇率的 Agent,在你的仪表盘上每个质量指标上得分都很高,而这种捏造只有在客户据此行动时才会显露。

对于关卡来说,轨迹比最终答案更重要。

通过干净路径到达的变更,与经过四十步折腾后到达的相同变更,风险截然不同,即使 diff 看起来一样。

步骤 4 - 你最好的测试已经在你的日志里了

你在桌前发明的测试保护你免受你已经想象到的失败。

昂贵的测试此刻正坐在你的追踪(traces)里,上面带着时间戳。

抽取一小部分完整的运行,并挑选它们,以便让正常和异常的行为并列呈现:

一个干净完成的请求,作为正常工作的基准。

一个用户重述或纠正的请求,因为纠正是一个免费的标签。

一个工具返回空值,或使用相同参数被调用两次的运行。

一个外部事物超时的运行,其中唯一被测试的是当世界说“不”时你的 Agent 如何表现。

用四行字写下每一个:Agent 做了什么,什么起效了什么没起效,原因是你的 Agent 还是依赖项,以及评估应该保护哪种能力。

归因是人们损失一周时间的地方。

使用相同参数进行两次相同的查找是你 Agent 中的循环。

返回的速率限制是别人的问题,只有当你的 Agent 应该从中恢复时,它才成为你的评估内容。

两条规则保持诚实。

追踪告诉你你的 Agent 做了什么,从不说它应该做什么,所以答案键来自测试、记录、策略或人员。

在信任验证者之前先测试它。喂给它一个明显正确的结果和一个看似合理的错误结果。如果任何一个走向错误,那是评分标准(rubric)坏了,而不是 Agent。

以这种方式转化的每一个失败,都是关卡不会再感到惊讶的事情。

步骤 5 - 锁定评判者,否则输掉这一个月

评判者是带有版本的软件。

静默升级的评判者会让前后所有的分数变得无法比较。

失败是悄无声息的。评判者某个月升级了一个小版本,下个月升级了一个大版本,你的套件不断产生数字,而这些数字几周前就不再意味着同样的东西了。

锁定版本并将其记录在每个分数旁。

将评分标准写成一行,形式为“如果独立可观察的结果发生则通过”,而不是一堆代理分数。

永远不要奖励答案的形式。长度、关键词出现、引用数量或与参考的相似度不得分。

最后一点不是风格偏好。

针对评判者进行足够硬核的优化,Agent 就会学会看起来正确而不是真正正确,这将把你的防御变成攻击面。模型参与循环的古德哈特定律(Goodhart's law)。

在依赖自我审查之前,还有一件事值得了解。

DeepMind 的 Huang 及其同事在 ICLR 2024 表明,内在自我纠正——即要求模型在没有外部依据的情况下审查和修订自己的工作——并不可靠,往往会使情况变糟。

依据必须来自模型外部。

调整套件规模以便它能经受实际接触。

2026 年的实用指南建议在信任聚合数字之前至少要有 500 个案例,且运行时间要足够短,以至于没人需要围绕它做计划。

耗时超过一次咖啡时间的套件会变成季度仪式。

步骤 6 - 基于影响范围(Blast Radius)而非置信度开启关卡

这是大多数文章出错的地方。

他们构建一个置信度分数,设定一个阈值,让任何高于阈值的东西通过。

置信度是该决策中最弱的变量。

强变量是如果变更错误会发生什么。

根据撤销错误的成本对工作进行分类,并对每个通道进行不同的关卡设置:

  • 可逆且可控。文案变更、测试、有覆盖的隔离函数。一次错误的合并只需一次回滚。这个通道可以最先开启。
  • 可逆但影响面广。共享工具、Schema 添加、任何被数十个调用者触及的事物。对此通道的关卡设置基于确定性检查加上干净的轨迹。
  • 难以逆转。迁移、删除、任何写入生产数据或转移资金的事物。无论分数如何,此通道都不开启。

在开启的通道内,关卡阅读的是证据,而不是观点。

首先是确定性结果,因为没有模型参与:测试、类型、Schema、沙盒执行。

然后是该 Agent 版本的评估轨迹。

然后是历史,即该 Agent 在此领域的工作以前被回滚的频率。

模型自身的评估是关卡应该权重最低的输入,因为它是模型唯一能影响的输入。

小心开启。

首先在影子模式下运行,关卡对每个变更评分但不合并任何一个,直到你有足够的真实流量进行对比。

追踪关卡与人工审查者分歧的频率,只要该数字显著高于零,就保持关闭。

并记住一个警告。套件可能完全变绿,而它守护的产品却在崩溃,因为测试收敛于测试本身而不是规格说明。

绿色是证据,不是证明。

你正在构建的诚实版本不是对 Agent 的信任。

它是一个足够紧的约束,以至于信任不再是问题。

三句话守住纪律。

衡量路径,而不仅仅是它得出的答案。

不改变接下来运行内容的裁决只是一份报告。

任何你不转化为永久测试的失败,都会再次遇到。

你账单上的模型是租来的。它周围的审查者才是你唯一保留的部分。

关注我了解更多关于 Agent 内部机制的内容,并订阅我的 Telegram 频道:

https://t.me/+75nMf005jRpjMDU1

The end state is easy to describe. An agent finishes a change, opens it, and it goes in without a human reading it.

Not because anyone decided to trust the model. Because a gate read the evidence and had a rule for it.

Almost nobody has that gate, and the reason is not courage.

The evidence it would need to read does not exist yet in most systems.

Here is what has to be true before you can open it, in six steps.

最终状态很容易描述。Agent 完成变更,提交变更,无需人类阅读即可合入。

不是因为任何人决定信任模型。而是因为一道关卡(Gate)阅读了证据并据此制定了规则。

几乎没有人拥有那样的关卡,原因并非缺乏勇气。

它需要阅读的证据在大多数系统中尚不存在。

在你能开启它之前,必须满足以下六个步骤的条件。

Step 1 - the score you are reading is partly about your judge

Automated evaluation started from a solid result.

Zheng and colleagues at UC Berkeley showed in 2023 that GPT-4 agreed with human raters over 80% of the time, roughly the rate at which humans agree with each other. The industry moved to API calls almost overnight.

What the follow-up work found is that judges respond to things other than the content in front of them.

Frontier judges systematically inflate scores for outputs from their own model family.

In one 2026 benchmark, GPT-5.2 and Gemini 3.1 Pro handed 75 to 84% win rates to their own families. Claude Opus 4.7 went the other way and under-rated its own family at 10.6 to 41.2%.

On ArenaHard the measured bias across judges spans from -38% to +90%.

The same benchmark ran one set of outputs past two different judges. Under one, the model scored 93.3%. Under the other, the identical outputs scored 39.5%.

Verbosity bias runs alongside it: judges reward length whether or not the extra words carry information.

None of this makes the method useless. It makes the setup load-bearing, and three rules cover most of it:

  • Judge from a different model family than the one generating. Same family means shared blind spots.

  • For anything high-stakes, use a panel of judges from different vendors instead of one. Averaging across families is what breaks correlated errors.

  • Anything objectively checkable goes to code, not to a judge. Did the test pass, does the file exist, did the state change.

A gate fed by a biased judge is worse than no gate.

It launders a guess into a number and then acts on it.

步骤 1 - 你正在阅读的分数部分取决于你的评判者(Judge)

自动化评估始于一个坚实的结果。

UC Berkeley 的 Zheng 及其同事在 2023 年表明,GPT-4 与人类评分员的一致率超过 80%,这大致相当于人类之间的一致率。行业几乎在一夜之间转向了 API 调用。

后续研究发现,评判者会对面前内容之外的事物做出反应。

前沿评判者会系统性地抬高其自身模型家族输出的分数。

在 2026 年的一项基准测试中,GPT-5.2 和 Gemini 3.1 Pro 给予其自身家族 75% 到 84% 的胜率。Claude Opus 4.7 则相反,以 10.6% 到 41.2% 的比例低估其自身家族。

在 ArenaHard 上,测得的评判者偏差范围从 -38% 到 +90%。

同一基准测试将一组输出交给两个不同的评判者。在一个评判者下,模型得分 93.3%。在另一个下,相同的输出得分 39.5%。

冗长偏见(Verbosity bias)也随之而来:评判者会奖励长度,无论多余的词语是否包含信息。

这并不意味着该方法无用。它使得设置变得至关重要,三条规则涵盖了大部分情况:

  • 使用与生成模型不同的模型家族进行评判。同一家族意味着共享盲点。
  • 对于任何高风险事项,使用来自不同供应商的评判者小组,而不是单一评判者。跨家族平均是打破相关错误的关键。
  • 任何客观可检查的事物都交给代码,而不是评判者。测试是否通过,文件是否存在,状态是否改变。

由有偏见的评判者驱动的关卡比没有关卡更糟糕。

它将猜测洗白成一个数字,然后据此行动。

Step 2 - a verdict that does not change the run is a report

Most teams stop one step short.

They get a number, put it on a dashboard, and the dashboard changes nobody's behavior.

The shift that matured in 2026 is running evals inside the agent rather than after it. Pre-production evaluations get promoted into production guardrails, and the score controls what the agent may do next: which tools it can reach, whether a handoff is accepted, whether the run escalates to a person.

That is the difference between a thermometer and a thermostat.

Each verdict maps to a structural action on the run in progress.

Low grounding rejects the handoff.

A schema failure blocks the edge.

A suspected fabrication quarantines that branch instead of letting it merge into the main thread.

Verified completion is the only thing allowed to end the run.

An agent that stops calling tools has ended its turn. That is not the same as finishing the task, and only an external check knows the difference.

This is the first thing the gate reuses. A system where verdicts already steer runs has verdicts worth reading at merge time.

步骤 2 - 不改变运行的裁决只是一份报告

大多数团队只差一步就停下了。

他们得到一个数字,放在仪表盘上,而仪表盘没有改变任何人的行为。

2026 年成熟的转变是在 Agent 内部运行评估(evals),而不是在它运行之后。预生产评估被提升为生产护栏,分数控制 Agent 接下来可以做什么:它可以访问哪些工具,移交是否被接受,运行是否升级给人工处理。

这就是温度计和恒温器的区别。

每个裁决都对应于正在进行的运行的一项结构性动作。

Grounding 不足会拒绝移交。

Schema 失败会阻断边缘。

疑似捏造会将该分支隔离,而不是让其合并到主线程中。

只有经过验证的完成才被允许结束运行。

停止调用工具的 Agent 只是结束了它的回合。这不同于完成任务,只有外部检查知道其中的区别。

这是关卡复用的第一件事。裁决已经指导运行的系统,在合并时才拥有值得阅读的裁决。

Step 3 - grade the path, not just the answer

Grading only the final response is how an agent reaches a correct answer through a broken sequence and nobody notices for a month.

Agent evaluation splits into three levels and you need all three.

End to end asks whether the task succeeded.

Trajectory level asks whether the path was sound, which is where loops, redundant calls and wasted steps surface.

Component level asks which retriever, tool or sub-agent broke. It is the only level that tells you where to go and fix something.

Three metrics are enough to start.

Faithfulness, meaning the answer is grounded in what the tools actually returned rather than in what the model filled in when a tool came back empty.

Tool parameter accuracy, meaning right tool with right arguments.

Task completion, judged against a real signal rather than the agent's own claim.

Faithfulness is the one that hides. An agent that writes cleanly and invents an exchange rate scores well on every quality metric on your board, and the invention only surfaces when a customer acts on it.

For the gate, trajectory matters more than the final answer.

A change that arrived through a clean path is a different risk from an identical change that arrived after forty steps of thrashing, even when the diff looks the same.

步骤 3 - 评估路径,而不仅仅是答案

仅对最终响应进行评分,会导致 Agent 通过破碎的序列得出正确答案,而一个月都没人注意到。

Agent 评估分为三个层级,你需要全部三个。

端到端(End to end)询问任务是否成功。

轨迹(Trajectory)层级询问路径是否合理,这是循环、冗余调用和浪费步骤浮现的地方。

组件(Component)层级询问哪个检索器、工具或子 Agent 坏了。这是唯一告诉你去哪里修复问题的层级。

三个指标足以开始。

忠实度(Faithfulness),意味着答案基于工具实际返回的内容,而不是工具返回空时模型填补的内容。

工具参数准确性,意味着正确的工具配有正确的参数。

任务完成度,根据真实信号判断,而不是 Agent 自己的声明。

忠实度是隐藏的那一个。一个写得干净但发明了汇率的 Agent,在你的仪表盘上每个质量指标上得分都很高,而这种捏造只有在客户据此行动时才会显露。

对于关卡来说,轨迹比最终答案更重要。

通过干净路径到达的变更,与经过四十步折腾后到达的相同变更,风险截然不同,即使 diff 看起来一样。

Step 4 - your best tests are already in your logs

Tests you invent at a desk protect you from failures you already imagined.

The expensive ones are sitting in your traces right now, with a timestamp on them.

Pull a small set of complete runs and pick them so working and broken behavior sit next to each other:

A request that finished cleanly, as your baseline for what working looks like.

A request the user rephrased or corrected, because the correction is a free label.

A run where a tool returned empty, or got called twice with identical arguments.

A run where something external timed out, where the only thing tested is how your agent behaves when the world says no.

Write each one up in four lines: what the agent did, what worked and what did not, whether the cause was your agent or a dependency, and which capability the eval should protect.

Attribution is where people lose a week.

The same lookup twice with identical arguments is a loop in your agent.

A rate limit coming back is somebody else's problem, and it only becomes your eval if your agent was supposed to recover from it.

Two rules keep this honest.

The trace tells you what your agent did, never what it should have done, so the answer key comes from tests, records, policy or a person.

And test the verifier before trusting it. Feed it one clearly correct result and one plausible wrong one. If either goes the wrong way, the rubric is broken, not the agent.

Every failure converted this way is something the gate cannot be surprised by twice.

步骤 4 - 你最好的测试已经在你的日志里了

你在桌前发明的测试保护你免受你已经想象到的失败。

昂贵的测试此刻正坐在你的追踪(traces)里,上面带着时间戳。

抽取一小部分完整的运行,并挑选它们,以便让正常和异常的行为并列呈现:

一个干净完成的请求,作为正常工作的基准。

一个用户重述或纠正的请求,因为纠正是一个免费的标签。

一个工具返回空值,或使用相同参数被调用两次的运行。

一个外部事物超时的运行,其中唯一被测试的是当世界说“不”时你的 Agent 如何表现。

用四行字写下每一个:Agent 做了什么,什么起效了什么没起效,原因是你的 Agent 还是依赖项,以及评估应该保护哪种能力。

归因是人们损失一周时间的地方。

使用相同参数进行两次相同的查找是你 Agent 中的循环。

返回的速率限制是别人的问题,只有当你的 Agent 应该从中恢复时,它才成为你的评估内容。

两条规则保持诚实。

追踪告诉你你的 Agent 做了什么,从不说它应该做什么,所以答案键来自测试、记录、策略或人员。

在信任验证者之前先测试它。喂给它一个明显正确的结果和一个看似合理的错误结果。如果任何一个走向错误,那是评分标准(rubric)坏了,而不是 Agent。

以这种方式转化的每一个失败,都是关卡不会再感到惊讶的事情。

Step 5 - pin the judge or lose the month

Judges are software with versions.

A judge that silently upgrades makes every score before and after incomparable.

The failure is quiet. The judge bumps a minor version one month and a major version the next, your suite keeps producing numbers, and those numbers stopped meaning the same thing weeks ago.

Pin the version and log it with every score.

Write the rubric as one line, in the form of pass if the independently observable outcome happened, rather than a bundle of proxy scores.

And never reward the shape of an answer. No points for length, keyword presence, citation count or similarity to a reference.

That last one is not a style preference.

Optimize hard enough against a judge and the agent learns to look right instead of be right, which turns your defense into an attack surface. Goodhart's law with a model in the loop.

One more thing worth knowing before you lean on self-review.

Huang and colleagues at DeepMind showed at ICLR 2024 that intrinsic self-correction, asking a model to review and revise its own work with no external grounding, does not reliably help and often makes things worse.

The grounding has to come from outside the model.

Size the suite so it survives contact.

The 2026 working guidance is at least 500 cases before trusting an aggregate number, and a run short enough that nobody plans around it.

A suite that takes longer than a coffee break becomes a quarterly ritual.

步骤 5 - 锁定评判者,否则输掉这一个月

评判者是带有版本的软件。

静默升级的评判者会让前后所有的分数变得无法比较。

失败是悄无声息的。评判者某个月升级了一个小版本,下个月升级了一个大版本,你的套件不断产生数字,而这些数字几周前就不再意味着同样的东西了。

锁定版本并将其记录在每个分数旁。

将评分标准写成一行,形式为“如果独立可观察的结果发生则通过”,而不是一堆代理分数。

永远不要奖励答案的形式。长度、关键词出现、引用数量或与参考的相似度不得分。

最后一点不是风格偏好。

针对评判者进行足够硬核的优化,Agent 就会学会看起来正确而不是真正正确,这将把你的防御变成攻击面。模型参与循环的古德哈特定律(Goodhart's law)。

在依赖自我审查之前,还有一件事值得了解。

DeepMind 的 Huang 及其同事在 ICLR 2024 表明,内在自我纠正——即要求模型在没有外部依据的情况下审查和修订自己的工作——并不可靠,往往会使情况变糟。

依据必须来自模型外部。

调整套件规模以便它能经受实际接触。

2026 年的实用指南建议在信任聚合数字之前至少要有 500 个案例,且运行时间要足够短,以至于没人需要围绕它做计划。

耗时超过一次咖啡时间的套件会变成季度仪式。

Step 6 - open the gate on blast radius, not on confidence

Here is where most write-ups go wrong.

They build a confidence score, set a threshold, and let anything above it through.

Confidence is the weakest variable in that decision.

The strong one is what happens if the change is wrong.

Sort work by how expensive the mistake is to undo, and gate each lane differently:

  • Reversible and contained. A copy change, a test, an isolated function with coverage. One bad merge costs a revert. This lane can open first.

  • Reversible but wide. A shared utility, a schema addition, anything a dozen callers touch. Gate this on the deterministic checks plus a clean trajectory.

  • Hard to reverse. Migrations, deletions, anything that writes to production data or moves money. This lane does not open, regardless of score.

Inside an open lane the gate reads evidence, not opinions.

Deterministic results first, because no model is involved: tests, types, schema, sandbox execution.

Then the eval trajectory for this agent version.

Then the history, meaning how often work from this agent on this surface has been rolled back before.

The model's own assessment is the one input the gate should weight least, because it is the only one the model can influence.

Turn it on carefully.

Run in shadow first, where the gate scores every change and merges none of them, until you have enough real traffic to compare against.

Track how often the gate and the human reviewer disagree, and keep it closed while that number is meaningfully above zero.

And keep one warning in view. A suite can go entirely green while the product it guards falls apart, because the tests converge on the tests rather than on the spec.

Green is evidence, not proof.

The honest version of what you are building is not trust in the agent.

It is a constraint tight enough that trust stops being the question.

步骤 6 - 基于影响范围(Blast Radius)而非置信度开启关卡

这是大多数文章出错的地方。

他们构建一个置信度分数,设定一个阈值,让任何高于阈值的东西通过。

置信度是该决策中最弱的变量。

强变量是如果变更错误会发生什么。

根据撤销错误的成本对工作进行分类,并对每个通道进行不同的关卡设置:

  • 可逆且可控。文案变更、测试、有覆盖的隔离函数。一次错误的合并只需一次回滚。这个通道可以最先开启。
  • 可逆但影响面广。共享工具、Schema 添加、任何被数十个调用者触及的事物。对此通道的关卡设置基于确定性检查加上干净的轨迹。
  • 难以逆转。迁移、删除、任何写入生产数据或转移资金的事物。无论分数如何,此通道都不开启。

在开启的通道内,关卡阅读的是证据,而不是观点。

首先是确定性结果,因为没有模型参与:测试、类型、Schema、沙盒执行。

然后是该 Agent 版本的评估轨迹。

然后是历史,即该 Agent 在此领域的工作以前被回滚的频率。

模型自身的评估是关卡应该权重最低的输入,因为它是模型唯一能影响的输入。

小心开启。

首先在影子模式下运行,关卡对每个变更评分但不合并任何一个,直到你有足够的真实流量进行对比。

追踪关卡与人工审查者分歧的频率,只要该数字显著高于零,就保持关闭。

并记住一个警告。套件可能完全变绿,而它守护的产品却在崩溃,因为测试收敛于测试本身而不是规格说明。

绿色是证据,不是证明。

你正在构建的诚实版本不是对 Agent 的信任。

它是一个足够紧的约束,以至于信任不再是问题。

Three lines hold the discipline.

Measure the path, not only the answer it landed on.

A verdict that does not change what runs next is a report.

Any failure you do not turn into a permanent test, you will meet again.

The model on your card statement is a rental. The examiner around it is the only part you keep.

Follow me for more on agent internals, and subscribe to my Telegram channel:

https://t.me/+75nMf005jRpjMDU1

三句话守住纪律。

衡量路径,而不仅仅是它得出的答案。

不改变接下来运行内容的裁决只是一份报告。

任何你不转化为永久测试的失败,都会再次遇到。

你账单上的模型是租来的。它周围的审查者才是你唯一保留的部分。

关注我了解更多关于 Agent 内部机制的内容,并订阅我的 Telegram 频道:

https://t.me/+75nMf005jRpjMDU1

The end state is easy to describe. An agent finishes a change, opens it, and it goes in without a human reading it.

Not because anyone decided to trust the model. Because a gate read the evidence and had a rule for it.

Almost nobody has that gate, and the reason is not courage.

The evidence it would need to read does not exist yet in most systems.

Here is what has to be true before you can open it, in six steps.

Step 1 - the score you are reading is partly about your judge

Automated evaluation started from a solid result.

Zheng and colleagues at UC Berkeley showed in 2023 that GPT-4 agreed with human raters over 80% of the time, roughly the rate at which humans agree with each other. The industry moved to API calls almost overnight.

What the follow-up work found is that judges respond to things other than the content in front of them.

Frontier judges systematically inflate scores for outputs from their own model family.

In one 2026 benchmark, GPT-5.2 and Gemini 3.1 Pro handed 75 to 84% win rates to their own families. Claude Opus 4.7 went the other way and under-rated its own family at 10.6 to 41.2%.

On ArenaHard the measured bias across judges spans from -38% to +90%.

The same benchmark ran one set of outputs past two different judges. Under one, the model scored 93.3%. Under the other, the identical outputs scored 39.5%.

Verbosity bias runs alongside it: judges reward length whether or not the extra words carry information.

None of this makes the method useless. It makes the setup load-bearing, and three rules cover most of it:

  • Judge from a different model family than the one generating. Same family means shared blind spots.

  • For anything high-stakes, use a panel of judges from different vendors instead of one. Averaging across families is what breaks correlated errors.

  • Anything objectively checkable goes to code, not to a judge. Did the test pass, does the file exist, did the state change.

A gate fed by a biased judge is worse than no gate.

It launders a guess into a number and then acts on it.

Step 2 - a verdict that does not change the run is a report

Most teams stop one step short.

They get a number, put it on a dashboard, and the dashboard changes nobody's behavior.

The shift that matured in 2026 is running evals inside the agent rather than after it. Pre-production evaluations get promoted into production guardrails, and the score controls what the agent may do next: which tools it can reach, whether a handoff is accepted, whether the run escalates to a person.

That is the difference between a thermometer and a thermostat.

Each verdict maps to a structural action on the run in progress.

Low grounding rejects the handoff.

A schema failure blocks the edge.

A suspected fabrication quarantines that branch instead of letting it merge into the main thread.

Verified completion is the only thing allowed to end the run.

An agent that stops calling tools has ended its turn. That is not the same as finishing the task, and only an external check knows the difference.

This is the first thing the gate reuses. A system where verdicts already steer runs has verdicts worth reading at merge time.

Step 3 - grade the path, not just the answer

Grading only the final response is how an agent reaches a correct answer through a broken sequence and nobody notices for a month.

Agent evaluation splits into three levels and you need all three.

End to end asks whether the task succeeded.

Trajectory level asks whether the path was sound, which is where loops, redundant calls and wasted steps surface.

Component level asks which retriever, tool or sub-agent broke. It is the only level that tells you where to go and fix something.

Three metrics are enough to start.

Faithfulness, meaning the answer is grounded in what the tools actually returned rather than in what the model filled in when a tool came back empty.

Tool parameter accuracy, meaning right tool with right arguments.

Task completion, judged against a real signal rather than the agent's own claim.

Faithfulness is the one that hides. An agent that writes cleanly and invents an exchange rate scores well on every quality metric on your board, and the invention only surfaces when a customer acts on it.

For the gate, trajectory matters more than the final answer.

A change that arrived through a clean path is a different risk from an identical change that arrived after forty steps of thrashing, even when the diff looks the same.

Step 4 - your best tests are already in your logs

Tests you invent at a desk protect you from failures you already imagined.

The expensive ones are sitting in your traces right now, with a timestamp on them.

Pull a small set of complete runs and pick them so working and broken behavior sit next to each other:

A request that finished cleanly, as your baseline for what working looks like.

A request the user rephrased or corrected, because the correction is a free label.

A run where a tool returned empty, or got called twice with identical arguments.

A run where something external timed out, where the only thing tested is how your agent behaves when the world says no.

Write each one up in four lines: what the agent did, what worked and what did not, whether the cause was your agent or a dependency, and which capability the eval should protect.

Attribution is where people lose a week.

The same lookup twice with identical arguments is a loop in your agent.

A rate limit coming back is somebody else's problem, and it only becomes your eval if your agent was supposed to recover from it.

Two rules keep this honest.

The trace tells you what your agent did, never what it should have done, so the answer key comes from tests, records, policy or a person.

And test the verifier before trusting it. Feed it one clearly correct result and one plausible wrong one. If either goes the wrong way, the rubric is broken, not the agent.

Every failure converted this way is something the gate cannot be surprised by twice.

Step 5 - pin the judge or lose the month

Judges are software with versions.

A judge that silently upgrades makes every score before and after incomparable.

The failure is quiet. The judge bumps a minor version one month and a major version the next, your suite keeps producing numbers, and those numbers stopped meaning the same thing weeks ago.

Pin the version and log it with every score.

Write the rubric as one line, in the form of pass if the independently observable outcome happened, rather than a bundle of proxy scores.

And never reward the shape of an answer. No points for length, keyword presence, citation count or similarity to a reference.

That last one is not a style preference.

Optimize hard enough against a judge and the agent learns to look right instead of be right, which turns your defense into an attack surface. Goodhart's law with a model in the loop.

One more thing worth knowing before you lean on self-review.

Huang and colleagues at DeepMind showed at ICLR 2024 that intrinsic self-correction, asking a model to review and revise its own work with no external grounding, does not reliably help and often makes things worse.

The grounding has to come from outside the model.

Size the suite so it survives contact.

The 2026 working guidance is at least 500 cases before trusting an aggregate number, and a run short enough that nobody plans around it.

A suite that takes longer than a coffee break becomes a quarterly ritual.

Step 6 - open the gate on blast radius, not on confidence

Here is where most write-ups go wrong.

They build a confidence score, set a threshold, and let anything above it through.

Confidence is the weakest variable in that decision.

The strong one is what happens if the change is wrong.

Sort work by how expensive the mistake is to undo, and gate each lane differently:

  • Reversible and contained. A copy change, a test, an isolated function with coverage. One bad merge costs a revert. This lane can open first.

  • Reversible but wide. A shared utility, a schema addition, anything a dozen callers touch. Gate this on the deterministic checks plus a clean trajectory.

  • Hard to reverse. Migrations, deletions, anything that writes to production data or moves money. This lane does not open, regardless of score.

Inside an open lane the gate reads evidence, not opinions.

Deterministic results first, because no model is involved: tests, types, schema, sandbox execution.

Then the eval trajectory for this agent version.

Then the history, meaning how often work from this agent on this surface has been rolled back before.

The model's own assessment is the one input the gate should weight least, because it is the only one the model can influence.

Turn it on carefully.

Run in shadow first, where the gate scores every change and merges none of them, until you have enough real traffic to compare against.

Track how often the gate and the human reviewer disagree, and keep it closed while that number is meaningfully above zero.

And keep one warning in view. A suite can go entirely green while the product it guards falls apart, because the tests converge on the tests rather than on the spec.

Green is evidence, not proof.

The honest version of what you are building is not trust in the agent.

It is a constraint tight enough that trust stops being the question.

Three lines hold the discipline.

Measure the path, not only the answer it landed on.

A verdict that does not change what runs next is a report.

Any failure you do not turn into a permanent test, you will meet again.

The model on your card statement is a rental. The examiner around it is the only part you keep.

Follow me for more on agent internals, and subscribe to my Telegram channel:

https://t.me/+75nMf005jRpjMDU1

📋 讨论归档

讨论进行中…