最会审代码的 AI,也只挑得出三分之一

摘要:Nutanix 的新评测集让八个 AI 评审去认 584 个真实 PR 里埋的缺陷,最强的也只认出三分之一。而另一项重放研究发现,一个强评委能给 63% 跑不起来的代码打 93.95 分。

你让 agent 改完一段代码,再把 diff 丢回去让它自己审。它回你一句:整体没问题,只有一处命名可以更好。

你信了。三天后,那个它没点出来的空指针在凌晨把一批定时任务全带崩了。

回头翻 diff,那个缺陷明晃晃地躺在那里。于是你得出一个结论:这个评审 agent 不够聪明。

这个结论可能是错的。

这周有两份新数据,搁在一起看,指向的是另一件事------不是它不够聪明,是「审代码」这件事本身有个天花板,而你以为能衡量它的那把尺子,也在骗你。

先看天花板

这个月 2 号,Nutanix 的四位研究员放出一份叫 CR-Bench 的评测集(arXiv:2611.02566)。他们没用现成的评审数据集,而是把 SWE-Bench 反过来用:那里每条 issue 背后都是一个真实的 pull request,PR 里确实埋了一个后来被修掉的缺陷。

筛掉「评审根本看不出来」的那些,让每个缺陷都锚定到唯一那个 PR,最后留下 584 条任务,其中 174 条来自 SWE-Bench Verified。

然后让八个评审 agent 上场,跑在四个骨干模型上,另外还拉来了商业产品 Gemini Code Assist。评分用了三个独立的 LLM 评委,看两个轴:有没有认出那个已知缺陷,以及给出的评论里有多少是能执行的。

结果是:最强的也只认出大约三分之一。Gemini Code Assist 是 8.1%。

三分之一是什么概念?如果评审 agent 是你和主干分支之间唯一那道关,三个埋进去的 bug,两个会直接过去。

那换个更强的模型行不行?

这里得停一下,因为第二份数据说的是:问题不在模型那一层。

评分器给 63% 跑不起来的代码打了 93.95 分

1 号,新南威尔士大学的 Masoud Fetanat 发了一篇重放研究(arXiv:2611.01572)。他做的事很朴素------把别人做过的一次评测,原样重跑一遍。

原本的评测是 421 道编程题,模型是 Qwen-2.5-7B-Instruct,外加两个用 GRPO 训出来的版本。一个拿执行测试当奖励,另一个拿一个很强的 LLM 评委当奖励。

重跑之后,基础模型的语法失败率没什么变化。但两个训过的版本,写出的 Python 有 63% 到 67% 是无效的------跑都跑不起来。

那个强评委看出来了吗?它的 Pass@32 从 96.67% 掉到 93.95%。三个点。

更难看的是把尝试次数放大之后。每题给 128 次机会,评委在 96.44% 的题上至少接受了一个「评委训练版」的答案;同一批题交给执行测试,这个数字是 28.27%。

评委为什么会瞎?

因为它读的是「这看起来像不像对的代码」,不是「这段代码跑不跑得起来」。而七成的无效输出恰好是「看起来对」的典型:变量名对、结构对、注释都在位置上,就是括号没闭合。

这里要抄一句作者自己的克制:他说没法确定这批 checkpoint 当初为什么变成这样,也不认为这证明了奖励作弊或者 GRPO 有问题。这是一次重放,样本是一次既有评测。

他给的补丁,成本接近于零

一句话:在每个 LLM 评委的分数旁边,并排报一个数字------有多少答案通过了 Python 的语法检查。

这个检查不要测试、不要执行、不要沙箱,成本接近于零。他也没吹,明写了它不能证明功能正确,只能当第一道筛子。

我觉得这才是这两份材料合起来最值钱的地方。不是「换个更贵的模型再审一遍」,而是用一个不会说谎的检查,去校验那个会说谎的分数。

回到你那个凌晨。

你当时问了 agent「有没有问题」,它说没有。你没做错什么------它确实「觉得」没有问题。你少问的是另一句:这段代码,连解释器这一关都过不了吗?

所以真正该抄回团队的不是哪个工具,是那个习惯:凡是让模型打分的地方,旁边都得放一条确定性的、零成本的、跑起来只会红或者绿的检查。CI 里那句 python -c "import ast; ast.parse(...)",比再多一次 LLM 评审都稳。

边界也得说清楚

语法检查只能抓语法错,逻辑错它抓不到。确定性规则只能抓你已经知道的东西。

所以它不是用来替代评审的,是把「根本不成立」的那部分先剔出去,让人和模型把力气花在剩下那一半上。

那份 CR-Bench 也一样。它测的是「评审能不能认出已知缺陷」,不是「评审有没有用」。三分之一这个上限,说的是你该给它配几道别的关,不是该不该用它。

那么,你团队里现在最便宜、最不会骗人的那条检查,是什么?

参考资料

作者:唐悦玮 | 从后端出发,用 AI 拓展到全栈的工程师。

相关推荐
kaixin_啊啊7 小时前
【零基础学AI】第 25 章课后练习与答案
人工智能
水如烟8 小时前
孤能子视角:逆溯法与传统方法比较
人工智能
jimmyleeee8 小时前
大模型安全之五十一:OWASP LLM Top 10 全景解读
人工智能·安全
许雪里9 小时前
XXL-AI v1.5.0 发布|AI应用开发平台
agent·ai编程
飞哥数智坊9 小时前
DeepSeek-V4.1-Flash-1017 官方许愿案例太吸睛,我也复刻了一个
人工智能
深蓝AI9 小时前
自报提效 12 倍,模型进步加速 1.9 倍:METR 报告到底量了什么
人工智能·程序员
怕浪猫10 小时前
从工具到代理:一张图看懂 2026–2030 年 AI 如何重构 11 个行业
人工智能·程序员·产品
云和数据.ChenGuang10 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
会飞锦鲤11 小时前
工业AI视觉检测项目完整实施方案
人工智能·深度学习·视觉检测·缺陷检测·模型训练·ai项目·工业应用