AI News HubLIVE
站内改写3 分钟阅读

当AI编写并审查代码时

Anthropic称Claude编写了其生产代码库中超过80%的代码。传统的人工同行评审正被AI原生变更管理(ANCM)所取代,后者将评审从diff转移到规范、验证计划和自动化策略上。文章分析了旧控制(PR点击)的五个功能,并提出了每个功能的新控制与审计证据。

来源Hacker News AI作者: ryanSrich

Anthropic近日表示,其AI助手Claude编写了该公司生产代码库中超过80%的代码。而在2025年2月Claude Code刚推出时,这一比例仅为个位数。与此同时,越来越多的代码审查工作也由AI代理完成,人类逐行阅读输出内容的情况已大为减少。

然而,几乎所有的SOC 2或ISO 27001认证项目中仍然包含类似的条款:“变更在部署前需由第二个合格人员审查并批准。”这种控制语言已不再反映实际工作。

传统的同行评审通过PR审批来提供变更管理的证据:一名工程师打开PR,另一名工程师评论或点击批准,平台记录下带有两个名字的整洁记录。审计人员喜欢这种形式,因为它易于阅读:有时间戳、审批人以及清晰的变更前后对比。但现在,这一记录往往只反映一种仪式而非真正的审查。如果代码由AI代理编写,并由一群AI代理审查,那么人类的“批准”要么缺失,要么只是形式上的。这种控制或许仍能通过审计,但其含义已与当初大家所认同的完全不同。

这会导致两种结果:要么是“做戏”,要么是“发现”。工程师们不加阅读地机械批准diff,以维持证据的持续出现;或者审计人员在审查过程中发现“第二评审人”其实已经数月没有真正审查过任何内容。做戏会从内部腐蚀整个体系,而发现通常会导致仓促而尴尬的补救。更好的做法是在这两种情况发生之前重新设计控制。

要替换旧控制,我们需要诚实地审视其实际功能。同行评审实际上将五个任务合并到了一个GitHub点击中:缺陷检测(在代码进入生产前捕捉错误)、意图验证(确认变更解决了正确的问题)、独立性(由无作者偏见的第二方审查工作)、知识传递(让第二个人理解变更)以及问责制(将名字附在批准上)。其中,缺陷检测通常被视为首要理由,但实际上是最薄弱的环节——人类在面对大型diff时往往只是略读,审查效率在diff达到几百行后急剧下降。审计人员之所以接受PR审批,并非因为它能可靠地捕捉错误,而是因为审批提供了其他四个功能(尤其是独立性和问责制)的清晰证据。

现在的问题是,这五个功能如今存在于何处。它们仍然重要,但diff不再是寻找它们的地方。AI代理既编写代码和测试,又由其他代理审查PR。专门的工具会扫描逻辑错误、安全漏洞和回归问题,并按严重程度排序,自动合并通过必要门槛的变更。自动化的正确性检查变得更便宜、更好,而人类的注意力成本不变。让高级工程师阅读2000行AI编写的diff,既增加了微小的保障,又浪费了稀缺的高级判断力。逐行审查机器输出是一种昂贵的、捕捉极少错误的方式。

审查并未消失,而是转移了:对工作产品的验证已自动化,人类的注意力移到了diff之上的决策。人们不再问“AI代理是否正确地编写了代码”,而是花更多时间问“它是否在正确的规则下构建正确的东西”。独立性面临的一个明显问题是,同一个模型既编写代码又审查代码,相当于一个头脑在检查自己的工作。这种风险是真实的,但模型并非确定性——它们会根据不同指令产生不同类型的回答。“交付这个功能”和“找出导致回滚的缺陷”会创造不同的工作。重要的是写作者和审查者的失败在多大程度上相关。可以通过三种方式降低相关性:赋予角色不同目标(写作者让变更工作,审查者试图破坏它);为审查者提供干净的上下文(不继承作者的理由或心智模型);使用独立于作者的测试工具(属性测试、合约测试、模糊测试、静态分析等)。

对抗性提示无法解决所有独立性问题,因为作者和审查者可能共享模型训练中嵌入的误解。这就是为什么工具链比增加另一次审查更重要:属性测试、模糊测试、静态分析和执行不是模型,因此不共享模型的盲点。一个被两个代理角色都相信的错误,仍然需要通过它们都未编写的检查。当然,工具链不能捕捉所有问题,新的逻辑和判断仍依赖对抗性角色和干净上下文。

作者提出,AI原生变更管理(ANCM)框架将人类审查从diff转移到三个关键工件:描述工作及其约束的规范;定义变更必须通过的门槛的验证计划;以及设置自动合并条件的自动化策略。在这种模式下,人类批准的是意图和治理实施的验证体系,而非具体的代码diff。这并非损失,因为人们可以比快速浏览大型diff更仔细地审查规范和策略。一个带有版本历史记录的已批准规范,加上执行它的审查运行记录,会留下比PR考古更完整的证据链。

文章还列出了每个同行评审功能的旧控制、新控制以及审计证据。例如,缺陷检测的旧控制是评审人对diff的签署,新控制是代理审查舰队根据定义的严重性门槛运行,并伴有独立于作者的测试和模糊测试,审计证据为审查运行日志、发现结果和门槛结果。意向验证的旧控制是假设PR匹配意图,新控制是在实施前由负责任的负责人审查和批准规范,审计证据为带版本历史记录的已批准规范等。

作者将这个新的控制集称为AI原生变更管理(ANCM),因为它需要一个稳定的名称才能存在于风险管理框架中。它并不要求审计人员接受更少的保证,而是将新的证据映射到他们已使用的标准上。引导审计人员检查每个控制产生的证据以及每个工件满足的标准,比要求所有人假装形式化的点击仍然算作审查要更有说服力。