AI生成的拉取请求对生产软件维护来说足够可靠吗?

AI生成的拉取请求在简单任务中可能可靠,但对于复杂的生产代码仍需人工审查。该结论基于8项研究证据。

直接答案

在软件生产维护中,AI生成的拉取请求尚不足以完全信赖,但若配合人工审查,仍可成为实用工具。综合多项研究来看,被拒绝的AI拉取请求中,仅有约35.7%源于实际代理错误,其余则归因于工作流程问题或原因不明[1]。从积极方面看,AI生成的拉取请求描述能加快审查速度并提高合并率[4],而Dependabot等工具提供的自动化安全更新有65%的合并率,且通常在一天内完成[7]。关键在于:AI贡献能节省常规或明确任务的时间,但复杂变更与长期代码健康仍需人工监督。

7篇文献引用

本文由 WisPaper 驱动的搜索和论文分析生成。

何时可以信任AI生成的拉取请求?

AI拉取请求最适合处理范围明确、重复性高的任务,例如更新依赖项或生成描述性摘要。一项针对2904个JavaScript项目的研究发现,Dependabot自动生成的安全拉取请求有65.42%被接受,通常会在一天内合并,且仅有3.2%导致构建失败[7]。这表明,对于常规的依赖项更新,AI具有很高的可靠性。

类似地,GitHub的拉取请求Copilot功能可自动生成PR描述。在18,256个PR中,该功能缩短了审查时间,并提高了合并率[4]。使用该工具的开发者通常会在AI生成的文本基础上添加手动输入,这表明AI更适合作为起点,而非最终成品[4]

然而,即便在这些成功案例中,人类的判断依然不可或缺。Dependabot的研究发现,拒绝安全补丁请求的主要原因并非机器人错误,而是人类同时对同一依赖项进行了修改[7]。这意味着AI的建议在技术层面是正确的,但人类的具体情境否决了它。

AI 拉取请求在哪些环节容易引发问题?

与人类编写的代码相比,AI生成的代码随着时间的推移往往得到的维护更少,这对于需要持续维护的生产软件来说是一个危险信号。一项对来自100个热门代码仓库的1000多个AI生成文件的分析发现,这些文件的更新频率较低,且即便更新,也主要是功能添加而非错误修复——这与人类维护的代码恰恰相反[6]。这表明AI代码可能会引入隐藏的技术债务。

另一项研究发现,像Copilot和Devin这样的AI编程助手常常需要审阅者明确介入——在已合并的AI拉取请求中,有15.4%需要人工反馈或直接提交才能被接受[1]。这意味着,即便AI生成的PR最终被合并,它往往也无法独立达到可接受的标准。

代码审查代理同样存在信噪比低的问题:当被要求找出所有隐藏问题时,它们会产生大量误报,从而浪费开发者的时间[5]。该研究的作者警告称,仅以“发现的问题数量”来衡量成功,可能会掩盖虚假发现带来的实际成本[5]

团队应如何在生产环境中使用AI拉取请求?

证据指向一种混合模式:用AI完成初稿或常规任务,但始终需要人工审核。AI拉取请求的驳回率高得具有误导性——仅有35.7%的驳回源于实际代理故障,而31.2%是由合并冲突或CI失败等工作流限制导致的[1]。这意味着许多被驳回的AI拉取请求在技术上是合理的,却成了流程问题的牺牲品。

像GitHub Actions这类自动化工具实际上可能会提高PR的拒绝率并延长审查时间,因此在AI之上叠加更多自动化反而可能适得其反[3]。关键在于设计一个工作流程,让AI的建议先经过人工审查者过滤,从而筛除干扰信息并捕捉细微错误。

最后,由于AI编程代理会留下可检测的行为特征——例如特定的提交信息模式或代码结构——团队可以利用这些特征追踪哪些贡献是由AI生成的,并对其采用不同的审查标准[2]。这种治理方式有助于在保持代码质量的同时,依然享受AI带来的速度优势。

关于这些来源

该答案基于7项研究(3篇经同行评审,4篇为预印本)构建而成——这些研究发表于2021年至2026年间,其中5项为2024年或之后发表,1项发表于Q1–Q2期刊,累计被引用76次——从通过质量筛选的8项研究中选为最相关成果,这些研究又源自从超过5亿篇论文的数据库中检索出的37篇文献。

本文引用的文献

1

为何自主拉取请求被合并或拒绝?一项实证研究

分析了9,799个人工审核的AI拉取请求后发现,仅有35.7%的拒绝是由于实际的智能体错误;31.2%源于工作流限制,而33.1%没有明确理由[1]。

2

对GitHub上的AI编码代理进行指纹识别

通过对五款AI编程智能体生成的33,580个拉取请求进行指纹识别,在识别代码生成来源时达到了97.2%的F1分数,揭示了诸如Codex独特的多行提交模式等不同行为特征[2]。

3

GitHub Actions:对拉取请求流程的影响

研究了1489个使用GitHub Actions的仓库,发现采用该工具后,拉取请求被拒绝的比例增加,已接受的拉取请求中沟通更频繁,且拉取请求被接受所需的时间更长[3]。

4

生成式AI在拉取请求描述中的应用:采纳情况、影响及开发者干预措施

研究分析了18,256个包含AI生成描述的PR,发现它们所需的审查时间更短,且合并可能性更高,不过开发者通常会额外添加手动输入内容[4]。

5

CR-Bench:评估AI代码审查智能体在真实场景中的实用性

提出了用于代码审查智能体的CR-Bench和CR-Evaluator,发现当智能体试图找出所有隐藏问题时,信噪比较低,且在问题解决与虚假发现之间存在权衡[5]。

6

智能体生成的代码在多大程度上需要维护?一项实证研究

分析了来自100个代码库的1000多份AI生成文件后发现,AI代码的维护频率低于人类编写的代码,且更新主要集中在功能扩展而非错误修复上[6]。

7

关于Dependabot安全拉取请求的使用

研究了2,904个使用Dependabot的JavaScript项目,发现65.42%的安全拉取请求被接受,且通常在一日内完成,仅有3.2%导致构建失败[7]。