LLM 幻觉对 AI 代码审查
构成严重风险
AI 代码审查工具以惊人的频率生成不正确、虚构或危险的建议——29-45% 的 AI 生成代码包含安全漏洞,近 20% 的包推荐指向不存在的库。
好消息是,2024-2025 年的研究发现了将幻觉降低至 96% 的策略——然而没有任何工具能完全消除幻觉,供应商声明与独立研究结果之间的差距仍然很大。
29-45%
AI 生成的代码包含安全漏洞
19.7%
包推荐是虚构的(不存在)
96%
通过组合措施可降低幻觉率
信任侵蚀循环:当 AI 代码审查变得适得其反
这是 AI 代码审查幻觉的残酷讽刺:它不是在节省开发者的时间,而是在积极浪费时间。AI 代码审查的承诺很简单——减轻审查者的负担、更早发现问题、更快交付。但当 AI 自信地标记一个不存在的问题时,它会触发一连串徒劳的努力,比完全没有 AI 还要糟糕。
幻觉时间税
开发者收到 AI 关于"严重问题"的评论
开发者中断工作并切换上下文进行调查
调查开始——但问题并不存在
开发者不会立即意识到这是幻觉。他们会深入挖掘、检查文档、追踪代码路径、咨询同事
意识到:"这是幻觉"
经过 15-30 分钟的调查,开发者得出结论:AI 错了。时间被浪费了,挫败感也在积累
信任崩塌
经过 3-5 次类似事件后,开发者停止信任 AI 输出。他们开始完全忽略评论——包括合理的评论
这是 AI 代码审查工具最糟糕的结果。你为一个本应帮助开发者的服务付费,但结果是:
时间被浪费而非节省
调查幻觉问题比找到真实问题花费更多时间——因为你在寻找不存在的东西
真正的问题被忽视
一旦开发者开始忽略 AI 评论,他们也会错过合理的发现——这完全违背了初衷
开发者体验受损
没有什么比收到关于不存在的 bug 的消息更令人沮丧的了。花 20 分钟证明 AI 错了是很恼火的
投资损失
开发者忽略的工具投资回报率为零——无论实施成本如何
为什么 diffray 投资于验证
这就是为什么 diffray 在我们的审查流程中包含专门的验证阶段。在专业代理生成发现后,验证代理会在向开发者展示之前,根据实际代码上下文检查每个问题。
是的,这需要额外的时间。是的,这会消耗更多的 token,成本不低。但质量是我们的最高优先级——因为我们理解,一个幻觉评论可能会破坏数周建立起来的信任。
每一个被阻止的误报都能让开发者免于陷入沮丧的螺旋。每一个经过验证的发现都带着值得调查的信心而来。这就是开发者信任的工具与他们学会忽略的工具之间的区别。
为什么 LLM 会产生幻觉:根本性问题
LLM 产生幻觉是因为它们被优化为自信的应试者,而非谨慎的推理者。Kalai 等人于 2025 年 9 月发表的 OpenAI 论文表明,幻觉源于训练激励:当错误的陈述在评估过程中无法与事实区分时,模型学会了自信的猜测比承认不确定性更有回报。作者得出结论:"LLM 产生幻觉是因为训练和评估程序奖励猜测而非承认不确定性。"
这不是可以修复的 bug——这是结构性特征。2024 年新加坡国立大学的论文从数学上证明,当 LLM 被用作通用任务求解器时,幻觉是不可避免的。研究人员使用可计算性理论证明,LLM 无法学习所有可计算函数,因此在超出训练分布时会产生错误输出。
代码审查幻觉分类法
事实性错误
模型自信地断言不正确的信息——如 Google Bard 错误地声称詹姆斯·韦伯太空望远镜拍摄了第一张系外行星图像。
虚构来源
GPT-4 的引用准确率仅为 13.4%——这意味着 86.6% 生成的学术引用是部分或完全虚构的。
推理错误
回应中的逻辑不一致,根据 Huang 等人的 ACM 综述,约占幻觉的 19%。
提示诱导错误
模型遵循用户输入中的错误前提,表现出谄媚式认同而非纠正。
Vectara 幻觉排行榜(2025年10月)
摘要任务的幻觉率——但这些数字低估了特定领域的问题:
注意:特定领域的比率要高得多——斯坦福 HAI 发现 LLM 在 69-88% 的特定法律问题上产生幻觉。
代码审查呈现出特别危险的幻觉场景
代码审查幻觉以可能危及安全、破坏生产系统并摧毁开发者信任的方式表现出来。
生成代码中的安全漏洞
40%
GitHub Copilot 生成的程序包含可利用的安全漏洞(纽约大学对 1,692 个程序的研究)
45%
AI 生成的代码未能通过安全测试(Veracode 2025 年对 100 多个 LLM 的 80 个编码任务的研究)
语言很重要:C 代码显示约 50% 的漏洞率,而 Python 为 39%。Java 的失败率为 72%,其中 XSS 漏洞在 86% 的情况下失败。
"Slopsquatting":虚构包攻击向量
德克萨斯大学圣安东尼奥分校、弗吉尼亚理工大学和俄克拉荷马大学的联合研究在 576,000 个代码样本上测试了 16 个代码生成 LLM。他们发现 19.7% 的推荐包(共 205,000 个)是虚构的,根本不存在。
58% 的幻觉包在多个查询中重复出现,这使得攻击者可以通过注册虚构的包名来利用它们。一个幻觉包"huggingface-cli"在三个月内被下载超过 30,000 次,尽管其中没有任何代码。
5-15%
AI 代码审查的标准误报率
6.1 小时
每周用于分类安全工具警报的时间
130万美元
企业管理误报的年度成本
真实安全事件
- CamoLeak(2025年6月):CVSS 9.6 的严重漏洞在 GitHub Copilot 中允许通过不可见的 Unicode 提示注入秘密泄露机密和源代码。
- Backdoor Rules File(2025年3月):Pillar Security 发现攻击者可以使用双向文本标记在 Cursor 和 Copilot 配置文件中注入隐藏的恶意指令。
缓解策略显示前景,但需要多层方法
2024-2025 年的研究表明,结合多种缓解技术比任何单一方法都能产生显著更好的结果。斯坦福的研究发现,将 RAG、RLHF 和防护栏结合使用,与基础模型相比可以减少 96% 的幻觉。
检索增强生成(RAG)
将 LLM 输出锚定到检索到的文档和代码上下文。将函数、类和文档索引为嵌入向量,然后在生成之前检索相关上下文。
多代理架构
专门用于生成、验证和修正的代理。微软的 CORE 框架将误报减少了 25.8%,并成功验证了 59.2% 的 Python 文件。
静态分析集成
IRIS 框架(ICLR 2025)发现了 55 个漏洞,而 CodeQL 仅发现 27 个。LLM 驱动的 SAST-Genius 将误报从 225 个减少到 20 个。
验证链(CoVe)
Meta AI 的四阶段流程:生成基础、规划验证问题、独立回答、生成验证后的响应。在 Wikidata 任务上的准确率翻了一倍多。
供应商与开发者之间的信任差距
开发者信任度下降
来源:Stack Overflow 开发者调查 2024-2025(65,000+ 开发者)
生产力悖论
JetBrains 2024:59% 因安全问题而不确定,42% 有道德顾虑,28% 的公司限制 AI 工具使用
给技术领导者的建议
多层防御架构
输入层
传统静态分析,以高精确度捕获确定性问题
检索层
RAG 结合代码上下文、文档和静态分析结果(减少 60-80% 幻觉)
生成层
带有思维链提示和结构化输出格式的 LLM
验证层
多代理交叉验证或高风险建议的自检
输出层
在呈现给开发者之前的防护栏和确定性验证
需要跟踪的指标
- 每次审查会话的幻觉率
- 建议更改的精确率/召回率
- 用户对建议的接受率
- 调查误报所花费的时间
- 发现的与引入的安全漏洞对比
供应商评估标准
- 已发布的准确性指标及方法论
- 静态分析集成能力
- 上下文检索架构详情
- 误报处理机制
- 部署选项(云端 vs 自托管)
需要持怀疑态度
声称 95%+ 准确率但未发布方法论的工具值得怀疑——独立基准测试持续显示实际性能较低。
diffray 如何解决幻觉风险问题
AI 代码审查中的 LLM 幻觉代表的是结构性问题,而非暂时性限制。最有效的缓解方法结合了检索增强(减少 60-80%)、静态分析集成(混合方法达到 89.5% 精确度)和验证管道(提升 28%)——总共可以实现高达 96% 的幻觉减少。
diffray 的多层方法
diffray 实施了经研究证明可将幻觉减少高达 96% 的策略——精心策划的上下文、基于规则的验证和多代理验证。
上下文策划
- 每个代理仅接收与领域相关的上下文
- 上下文保持在 25K token 以下(有效窗口)
- 规则提供结构化的验证标准
- 没有"中间丢失"的退化问题
多代理验证
- 10 个专业代理交叉验证发现
- 去重层消除矛盾
- 静态分析集成确保确定性
- 人工监督作为最终仲裁者
前进的道路要求将 AI 代码审查视为需要人工监督的生产力倍增器,而非人类判断的自主替代品。