AI代码审查工具对自己错误的遗漏有多严重?
简短的回答是:非常糟糕。一项名为SWE-PRBench的严格2026年基准测试,对8个前沿AI模型在350个来自开源项目的真实拉取请求上进行了评估,并将其审查结果与人工标注的基准真相进行了对比[3]。排名前四的模型——即目前最顶尖的可用模型——仅检测出了人类审查员标记问题的14.7%至15.3%。这意味着它们遗漏了大约85%的实际问题。而四个较弱的模型表现更差,得分仅为11.3%或更低。因此,即便是当今最先进的AI代码审查工具,也只能捕捉到人类能发现的问题中大约七分之一。
这不仅仅是遗漏问题——AI工具还频繁“谎报军情”。2023年的一项研究将ChatGPT与11种传统静态代码分析工具进行对比,针对OWASP十大安全风险中的92个已知PHP漏洞进行了测试[1]。ChatGPT发现了其中62%至68%的漏洞,远优于表现最好的传统工具(32%)。但问题在于:ChatGPT的误报率高达91%。这意味着它每标记10个问题,就有9个其实是正常的。而误报率最高的传统工具也仅为82%,可见ChatGPT在精确性上反而更差。如果让AI工具审查自己生成的代码,其大部分警告都将沦为噪音,真正的问题反而会被淹没。
为什么AI工具在审查自己的代码时表现如此糟糕?
核心问题在于,AI代码审查者并不能像人类那样真正“理解”代码——它们只是基于训练数据进行模式匹配,且容易因上下文过多而陷入混乱。SWE-PRBench研究揭示了一个既有趣又令人担忧的现象:当AI模型获得更多代码上下文(如完整文件内容或整个项目)时,其表现反而会下降[3]。这被称为“注意力稀释”——模型被长输入淹没,难以抓住关键细节。研究发现,在所有8个模型中,简短聚焦的提示(2000个token)均优于更长更丰富的提示(2500个token)。因此,给AI提供更多信息来帮助其审查自身代码,反而会适得其反。
另一个原因是,AI工具擅长发现通用的表层问题(如语法错误或常见的不安全模式),但在处理上下文相关的问题时却力不从心——这类错误只有结合代码的具体逻辑才能理解。SWE-PRBench研究发现,从配置A(仅差异)到配置B(差异加文件内容)的性能骤降,正是由于对“Type2_Contextual”类型问题的检测能力崩溃所致[3]。而这类问题恰恰是AI可能在其自身代码中引入的、基于逻辑的细微错误。与此同时,描述AI代码审查系统(如“AI代码审查助手”和“AI代码向导”)的论文声称准确率很高(其中一例达到92%),但这些说法均来自自我报告式评估,而非基于人类专家的独立基准测试[2][5]。独立证据所揭示的情况则要谨慎得多。
如今,你对AI代码审查能抱有哪些实际期待?
将AI代码审查视为一位有用但不可靠的初级助手——它无法替代人类的判断。证据表明,AI能够捕捉到传统静态分析工具遗漏的某些问题。在2023年的一项研究中,ChatGPT发现的漏洞数量约为最佳传统静态分析器的两倍(62-68%对比32%)[1]。而《AI代码审查系统》论文指出,与传统工具相比,AI在理解上下文和提供更智能的建议方面具有优势[4]。因此,AI可以成为你工具链中的有益补充,尤其在捕捉常见安全漏洞或提出改进建议方面。
但数据已经说明一切:你不能依赖AI来审查自己编写的代码,也不能用它替代人工审查。目前最优秀的AI模型仍会漏掉人类能发现的85%的问题[3],同时还会产生大量误报,白白浪费你的时间。2023年的一项研究指出,混合模式或许是最佳方案——将传统静态分析工具与AI结合,取两者之长[1]。就目前而言,实际操作的底线是:将AI代码审查作为快速、粗筛的工具来捕捉明显问题,但最终审查必须由人工完成,尤其是涉及安全关键代码时。并且,绝不能让AI成为它自己编写代码的唯一审查者。
关于这些来源
该答案基于5篇经同行评审的研究——发表于2023年至2026年间,其中4篇为2024年或之后发表——这些研究是从5篇通过质量筛选的文献中选出的最具相关性的成果,而该筛选过程则源于从超过5亿篇论文的数据库中检索到的40篇文献。
本文引用的文献
旧代码的新把戏:AI聊天机器人能否取代静态代码分析工具?
在92个PHP漏洞上对ChatGPT与11款静态分析工具进行了测试:ChatGPT发现了62%-68%的漏洞(传统工具最佳为32%),但误报率高达91%(传统工具最差为82%),这表明AI在代码审查方面虽有潜力,但准确性不足。
AI代码审查助手:基于现代Web的自动化代码分析与开发者生产力提升解决方案
描述了一个基于Next.js和Groq AI API构建的AI代码审查助手,声称代码问题检测准确率达92%,用户满意度达85%,但这些指标均来自系统自身的评估报告,并非独立基准测试结果。
SWE-PRBench:基于拉取请求反馈的AI代码审查质量基准测试
提出了SWE-PRBench基准测试,包含350个人工标注真实结果的拉取请求;8个前沿AI模型仅能检测出15-31%的人类标记问题,且随着上下文增加,由于注意力稀释,性能出现下降。
AI代码审查系统
提出了一种基于大语言模型的AI代码审查系统(ACRS),该系统能够提供即时反馈和代码质量评分;并论证了AI在理解上下文和提供更智能建议方面,相较于传统静态分析工具具有明显优势。
AI-Code Wizard:一款AI代码审查与生成助手
描述了一款基于React和TypeScript构建的网页端AI代码审查与生成助手——AI-Code Wizard,具备实时错误检测与AI建议功能;相关声明基于系统设计,而非与人工审查员的独立测试对比。
