![]()
新智元报道
![]()
你可能不信,Claude Code 现在差不多 90% 的代码,是 Claude 自己敲的。
你要是写代码的,第一反应估计跟很多人一样,那谁审?
答案是,大部分也是 AI。
而且你猜怎么着,6 月到 9 月,Claude Code 合进去的 PR 翻了一倍多,要回滚的反倒少了四成多。
![]()
中间还闹过一出,俩 AI 互相 Review,一个挑刺一个改,一宿干了 50 多轮,谁也不服谁。
你肯定想说,AI 写完 AI 审,人看都不看,这不就是学生自己批自己卷子嘛。
这么想一点毛病没有,好多线上事故回头一查,就是瞄一眼就能看出来的傻得冒泡的低级错误。
Anthropic 最近这篇博客,就是来回应这个疑问的,讲清楚 Claude Code 到底是如何自动审代码的。
![]()
问题从一开始就问错了
5 月的时候,Anthropic 大仓库一天合进去 2500 个左右的改动,而到 9 月,一天 3 万多个。
Claude Code 不在那个大仓库里,但也是差不多的势头。
这么多东西靠人一行行看,看到明年也看不完,所以他们干脆不纠结人到底看没看了。
Anthropic 开发团队在博客中说,人看没看过,只是个不太准的替代指标。
![]()
真正该琢磨的,是这次改动万一出事会怎么出,然后让最合适的那道检查去拦它,至于那道检查是测试是 AI 还是人,看情况。
时间点也跟着变了。
以前的流程大家都熟,写完、提 PR、干等同事有空。
现在 Claude 是边写边查,有点像打字时候自动标红的拼写检查,很多改动等到有人来看的时候,Claude 早就自己查过改过一遍了。
那省下来的人力怎么算?
他们的账是这么算的,看代码费时间,烂代码上线以后去救火也费时间,前一头省了,后一头又冒出来,那就是白折腾。
最后他们就看两个数,回滚率跟事故率,只要这俩指标没往上走,就算没白干。
七层检查,挑三层说
原文一共列了七层,全讲太长,挑三层。
![]()
PR 提之前,Claude 得先拿出证据。
光一句搞定了不算数,测试跑出来什么结果、Build 有没有过,改界面的还得拿截图跟设计稿对一对。
Claude Code 之父 Boris Cherny 讲过,给 Claude 一个能自己检验结果的办法,大概是让它把活干好最要紧的一件事,他估计效果能好上两三倍。
![]()
PR 提上去以后,先过 AI 这一关。
这里不是一个 Claude 自己说了算,几个 Agent 分头找 Bug,找出来的东西再交给另一拨 Agent 投票,票不够就不发,纯属修改代码风格灌水的也不发。
这功能刚推出预览版那会儿,内部有实质性审查意见的 PR,占比从 16% 一下子涨到了 54%。
还有个挺贴心的小设计,每条意见会打标签,其中一种叫 Pre-existing,意思是这毛病早就在了,不是这次 PR 搞出来的,作者不用背这个锅。
最后才是人。
这一层有条死规矩,Agent 点的 Approve,不算数。
哪怕 AI 审得再好,需要人签字的那一栏,它也填不进去。
另外,是谁让 Agent 写的这段代码,谁就得算进审批人里头,跟自己亲手写的没两样。
人要不要上、上几个,也看风险。
改个文档跟改自动更新器,显然不是一回事。
风险低的,自动检查和安全检查都绿了就能合并,普通改动得一个人点头,最要命的那几块要两个人。
风险等级是分类器看改动本身判定的,跟谁提交的没关系。
这么一层一层摞起来,有点像航空和医疗安全里常提及的瑞士奶酪模型。
![]()
每片奶酪都有洞,可洞的位置各不一样,摞够了,很少有问题能从第一片一路漏到最后一片。
就算真漏下去了,底下还有 Feature Flag 和一键回滚兜着。
纯人工手搓放慢速度确实能少犯错,不过主要是因为你啥都干得少了。
两个 AI 吵了一整晚
前面提了一嘴,两个 Agent 吵了 50 多轮。
其实是个 CLI 的 PR,写代码的是 Agent,审代码的也是 Agent。
一个提意见,一个改,改完再审,审完又提,一个晚上就这么来回拉扯了 50 多轮。
最后还是 PR 的主人发现了,手动给停了。
为什么会这样?
原文的解释是,人看到一条可改可不改的 Nit(小毛病),扫一眼也就算了,Agent 偏偏较真,真去改,一改就多一个 Commit,新 Commit 又把 Review 叫起来,Review 又挑出点新东西。
他们后来拿 Git Blame 回头查,Reviewer 一轮一轮揪出来的问题,差不多 59% 在第一轮审的时候就已经存在了。
等于它不是在找新 Bug,是每轮多翻出几个老的 Bug。
原文还挺坦诚,说这里面也有他们团队自己的锅,之前习惯了默认多审几轮,觉得每多一轮总能多抓点东西。
现在改成最多三轮,三轮过不去,就让作者别改了,退一步想想方案本身是不是有问题。
这么一改,一个 PR 平均要审的轮数从 2.08 降到 1.32,要审五轮以上的,原来差不多每 11 个里有 1 个,现在不到 2%。
![]()
人现在干点啥
代码大部分交给机器看了,人也没闲下来,只是活变了。
最典型的,是判断这东西到底该不该做。
![]()
原文提到,有个团队都已经宣布审查瓶颈解决了,团队外面的人提的改动,还是留着人工审,就是为了有人能问一句,这事真有必要做吗?
计费、自动更新器、CI 这些出了事会造成重大事故的代码,照样要人盯着;会被别人当模板抄的架构也是一样。
现阶段,人还是被 AI 大人所需要的。
参考资料:
https://claude.dev/blog/solving-code-review-at-anthropic/
编辑:马可
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.