产出速度太快验不过来:用 Agent 验 Agent
测试先行、Trophy 测试、持续反馈,这些机制在单个 Agent 的工作流中运转良好。但当产出速度提上来,一个新的瓶颈出现了:你验不过来。
一个 Agent 一天产出的代码量可能相当于一个程序员一周的产出。即使有了自动化测试,人类仍然需要审查测试本身是否合理、规约是否被正确理解、实现方式是否符合架构意图。当这些审查任务堆积到超过人类的处理能力时,要么审查质量下降,要么审查成为整个流程的瓶颈。
对抗式验证提供了一种解法。核心思路借鉴自 NASA 的独立验证与确认(IV&V)项目:验证必须由独立于开发者的主体执行。在 Agent 驱动的开发中,这意味着用一个独立的 Agent 来验证另一个 Agent 的产出。
具体做法是:编码 Agent 完成实现后,将产出代码和原始规约一起交给一个独立的验证 Agent。验证 Agent 的任务是对照规约逐条检查实现,标注任何偏离、遗漏或可疑的决策。验证 Agent 只有规约和代码,看不到编码 Agent 的推理过程,因此它的判断完全基于规约和实现之间的匹配度。
跨模型验证进一步降低了共享盲区的风险。如果编码 Agent 使用的是 Claude,验证 Agent 可以使用 GPT,反之亦然。不同模型家族有不同的训练数据和推理偏好,使用不同模型进行交叉验证,可以捕获单一模型可能忽略的问题。
对抗式验证的产出是一份差异报告:哪些验收标准被满足了,哪些存在偏差,哪些完全缺失。人类审查的对象从代码本身变成了这份差异报告。这大幅降低了人类的审查负担:你不再需要逐行阅读代码,而是聚焦在验证 Agent 标注的差异点上。
自动化验证是后续规模化的前提。当你开始运行多个 Agent 并行开发(第五章的主题),人类逐一审查每个 Agent 的产出在物理上就变得不可能了。对抗式验证体系在这个阶段将从"有用的辅助"变成"必要的基础设施"。