背景:AI代码占比高,传统审核失效
Anthropic近期发布文章《How the Claude Code team does code review》,揭示了其团队90%的代码由AI编写背景下如何保证质量。由于代码审核并非孤立环节,而是与发布流程紧密相连,因此该文章实际上介绍了一套完整的从编写到上线的全流程。传统软件开发中,代码发布通常分为四个阶段:PR前(提交申请前)、PR中(审核期间)、合并时以及合并后。Claude Code团队沿用这一框架,但针对AI写代码的特性调整了每个阶段的具体执行动作。
PR前:自动化验证与独立Agent审核
PR前的核心目标是确保产品正常运行及代码质量。第一步是赋予AI验证能力,通过提供运行程序、查看网页或截图等工具,让AI在生成代码后自行验证产品效果。第二步是使用全新Agent进行质量检查。虽然让原生成代码的AI自查看似自然,但其固有的上下文会导致思维定势,容易遗漏问题。Anthropic采取的策略是创建一个拥有全新上下文的独立AI Agent,仅向其提供目标和代码改动。这种“不知情”的状态反而保证了审核的客观性,使其能更有效地发现潜在风险。
PR中:CI、AI审核与安全审批的三重关卡
进入PR阶段后,代码需经过CI自动检查、AI审核、安全审核及按风险人工审批。其中,AI审核包含发现问题、筛选问题和处理问题三个步骤。为优化效果,Anthropic实施了三项关键策略:一是建立基于线上问题的评测集,通过对比AI发现的问题与真实引入的Bug来计算基准分,量化评估提示词或模型调整的有效性;二是识别并减少无效意见。通过统计PR作者反馈(如“已修改”、“故意如此”等)或利用无问题PR测试,计算无效意见比例,确保AI少提无用建议;三是控制审核轮数以防死循环。数据显示,应用优化规则后,一轮通过的PR比例从65%涨到了78%。
审核轮次控制与风险分级审批机制
为解决AI审核陷入无限修改循环的问题,Anthropic制定了四条规则:超过三轮需暂停反思整体思路;后续轮次仅关注新改动部分而非全量扫描,以避免重复发现旧问题;同类错误一次性全部指出;不再重复提出已反馈的意见。这些措施有效收敛了审核范围,使流程得以正常结束。此外,PR还经过安全审核这一独立自动关卡检查安全隐患。最后环节是按风险分级审批:低风险改动(如文档修改)自动通过;中风险改动需一人批准;高风险代码则需两人审批,以保障系统稳定性。
合并队列:拦截集成风险的最后一道防线
在 Pull Request (PR) 的合并阶段,系统采用了一种严格的队列机制来确保主分支的稳定。每当一个 PR 等待合入时,系统会将其与最新的主分支代码进行实时合并测试。这种机制的核心优势在于解决“单独通过但集成失败”的问题:有些 PR 在孤立状态下测试无误,一旦与主分支最新代码结合便会出现冲突或错误。通过强制每个 PR 都在包含前序所有已合并 PR 的最新主分支上重新运行测试,系统能够提前拦截那些存在集成风险的代码。只有当测试完全通过后,该 PR 才会真正合入主分支;若失败,则退回给作者修改。这一过程确保了主分支始终处于可正常运行的状态,避免了因代码冲突导致的构建断裂。
渐进式发布:功能开关与渠道隔离策略
代码进入主分支后,并未直接面向所有用户开放,而是通过设置功能开关、逐步上线和观察回滚三个步骤实现安全发布。首先,新功能代码被隐藏在功能开关之后,初期仅对 Anthropic 内部员工开放。由于内部员工每天大量使用 Claude Code,他们能比外部用户更早发现潜在问题。待内部验证稳定后,开关才对全员开放。其次,发布渠道分为 latest(最新版)和 stable(稳定版)。新版本先推送至 latest 渠道供尝鲜用户测试,通常经过一周左右的时间验证确认无重大问题后,才正式推送至 stable 渠道。这种分层发布策略极大地降低了大规模故障的风险。
全链路防御:从 PR 前到上线后的八重关卡
回顾整个流程,一个带有 Bug 的改动必须闯过重重关卡才能到达用户手中。在 PR 前阶段,AI 先运行测试确保基础功能正常,再由 Agent 检查代码质量。进入 PR 中阶段后,CI 系统执行几十项自动化检查,随后是 AI 审核与安全审核。若涉及重要代码变更,还需经过人工风险审批。合并时,合并队列再次在最新主分支上复测以拦截集成 Bug。上线后,功能开关机制允许团队远程快速关闭故障功能作为最快修复方案;若需彻底解决,则重新构建无 Bug 版本发布。即使 Bug 漏网至用户端,持续的观察机制也能触发快速回滚或开关关闭。正如文中所述:
“这些关卡里面其实没有哪一道是绝对完美的,单看任何一步的话都有可能会漏掉问题。但是把它们串在一起、层层把关,一个 Bug 想一路混到用户的手里就非常难了。”
人机分工重构:人类聚焦关键决策与责任
尽管自动化流程严密,但人的角色并未消失,而是被重新定义为把控最关键决策与承担最终责任。Anthropic 明确了人类在 AI 辅助开发中的五项核心职责:第一,判断产品方向、品味和功能范围等机器无法决策的事项;第二,审核高风险代码(如计费、自动更新逻辑),因其出错影响巨大;第三,把关架构设计,防止错误样板被 AI 批量复制蔓延;第四,阅读相关证据而非逐行代码,评估测试输出、截图和 AI 发现是否充分以决定下一步行动;第五,为最终结果负责。这种分工体现了“Humans steer, Agents execute”(人来掌舵,AI 来执行)的核心理念。数据显示,在 6 月到 9 月期间,Anthropic 合并的 PR 数量翻了一倍多,但需要回滚的比例反而下降了 40% 以上。这证明了在减少人工干预的同时,通过优化流程依然能显著提升代码质量与开发效率。
“他们设计的这一整套流程其实都是围绕同一个目标,那就是在保证产品质量的前提下尽量减少人的参与。毕竟无论怎样,人的时间和注意力才是最宝贵的东西。”
结论
该流程证明,通过构建从PR前验证到合并队列拦截、再到渐进式发布的八重自动化关卡,可在AI代码占比高达90%的背景下有效保障产品质量。其核心优势在于利用独立Agent消除思维定势,并通过风险分级审批与人机分工重构(人类聚焦关键决策与责任),在提升效率的同时降低回滚率。数据显示,6月至9月PR合并量翻倍且回滚比例下降超40%,证实了该体系在减少人工干预下的有效性。然而,单点审核并非绝对完美,其成功依赖于全链路层层把关的协同效应及内部员工等早期验证渠道的支持。