内容提要
AI代理流水线中,代码与测试由同一需求生成,天然一致,下游关卡只能验证是否符合规格,无法发现规格本身的错误。作者植入错误需求后,六项测试与追溯门禁全部通过,系统却违背核心承诺。真正的防线是人工记录决策与未决问题,并确保追溯配置生效。
延伸解读
规格错误为何能穿透所有自动化关卡
文章指出,AI代理流水线中代码与测试由同一需求生成,天然一致,因此下游关卡只能验证是否符合规格,无法发现规格本身的错误。作者植入错误需求后,六项测试与追溯门禁全部通过,系统却违背核心承诺。这揭示了一个架构性缺陷:所有护栏都以规格为输入,规格错误时它们会一致地认可错误,而非提出异议。
人工监督应聚焦于需求定义与决策记录
文章强调,人工监督应从编写代码转向定义需求。具体做法包括:在范围会议中记录所有决策与未决问题,明确每项未决问题的负责人;当争议解决时,要求有人对着录音明确陈述结论。这些记录成为后续AI生成代码和测试的源头,确保错误需求在进入流水线前被拦截。
追溯门禁的局限与配置陷阱
追溯门禁仅验证每个标准是否有测试声明,不验证测试是否真正断言该标准。作者用六个空测试通过门禁,证明其可被轻易满足。此外,若未注册自定义标记并启用严格模式,拼写错误只会产生警告而非错误,导致门禁形同虚设。文章建议编写元测试,确保门禁在应失败时确实失败。
流程成本与适用边界
文章承认,完整规格驱动流程可能比常规方法慢约10倍,对于简单修改可跳过。但其价值在于当多个工程师有不同意见时,强制他们在可记录的环境中解决冲突。若规格仅由一人提示生成,则只是昂贵镜子,无法暴露基础假设错误。因此,该流程适用于跨团队、需求复杂的场景。
Q&A
为什么说AI代理流水线中下游关卡无法发现需求本身的错误?
因为代码和测试都由同一需求生成,它们天然一致,下游关卡只能验证是否符合规格,无法发现规格本身的错误。
作者如何演示错误需求能通过所有自动化检查?
作者植入一个错误需求(AC-05:当同意查询无结果时,默认视为同意并发送通知),让实现和测试从该需求生成,结果六项测试全部通过,追溯门禁也通过,但系统违背了核心承诺(不向撤回同意者发送通知)。
在AI代理流水线中,人工决策应该集中在哪些环节?
人工决策应集中在两个环节:一是决定意图和范围(如记录范围会议),二是检查意图(如规格评审)。其中规格阶段是最后一个人类决策点。
范围文档中哪两个部分能防止错误需求到达代理?
一是列出故意未决定的事项并指定负责人,作为围栏;二是记录书面需求文档与会议最终结论之间的分歧,包括裁决和理由。
为什么让代理主动询问不确定性不能作为主要控制手段?
因为模型在判断歧义时表现不佳:被明确要求判断时成功率60%-80%,但自然回应时超过95%给出确定性答案,且提供检索上下文反而降低澄清率。
追溯门禁有什么局限性?
追溯门禁只能确认测试声明了它断言某个标准,但无法验证测试是否真正断言了该标准。例如,六个空测试(assert True)也能通过门禁。
为什么说“一个静默降级为警告的护栏比没有护栏更糟”?
因为它显示绿色对勾,而实际上硬性阻止已失效,让人误以为规则仍在执行。例如pytest的strict-markers配置失效时,错误变成警告,测试套件变绿,无人察觉。