Do These Violent Delights Have Violent Ends? Measuring the Post-Merge Fate of Agentic Code
这项针对 182 个代码仓库的纵向研究表明,尽管智能体代码贡献实现的合并率与人类代码相当,但随后会产生显著更高的修正维护负担,并引入更多的安全漏洞,尤其是在代码审查率较低的项目中。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你刚刚雇佣了一支由超级快速、不知疲倦的机器人助手组成的编队,来帮助你建造一座宏大的、规模庞大的代码之城。这些机器人由最新的“智能体(agentic)”AI驱动,能够在眨眼之间就能打造出整个软件社区。科技巨头们正欢欣鼓舞,称这些机器人正在为他们的城市编写30%到75%的代码。各项指标看起来非常惊人:机器人生成拉取请求(建筑许可)的速度快到让人数不过来,而且大多数都被批准并合并到了城市规划中。
但转折在于:当许可证签署完毕,且建筑正式成为城市的一部分后,会发生什么?
这正是这项研究调查的内容。研究人员并没有仅仅计算机器人建造了多少建筑,而是像侦探追踪嫌疑人一样,对182个真实世界的项目进行了长达一年的代码追踪(从2025年5月到2026年5月)。他们追踪了每一行代码,并提出了以下问题:这行代码是存活了下来,还是被拆除重建了?如果它坏了,谁来修理它?它是否隐藏了危险的陷阱?
巨大的惊喜:重点不在于“量”,而在于“质”
你可能会预料到,机器人编写的代码会是一场彻底的灾难,立即崩塌;或者,你会认为它是完美的。事实却更为微妙。
研究发现,总体而言,机器人代码被“拆除”(终止)的速率与人类代码并没有显著差异。 如果你只看代码存在时长(寿命)的原始数据,机器人的表现和人类似乎是不相上下的。
然而,一旦深入观察代码被修改的原因,情况就发生了剧变。
- “缺陷修复”磁铁: 机器人代码是纠错工作的磁铁。研究发现,智能体代码接收到的纠错性维护(修复损坏的部分)比人类代码多出46%。
- “缺陷修复”的具体细节: 具体来说,机器人代码获得的缺陷修复(bug fixes)多出了45%。虽然人类代码也会有很多缺陷修复,但机器人似乎引入了更多的缺陷。
- “陷阱”因素: 机器人代码也更容易引入安全漏洞和危险的依赖关系。研究使用了Semgrep和OSV-Scanner等工具进行了测量。机器人代码引入安全问题的速率是人类代码的1.14倍,而高严重性(极其严重)问题的引入速率则是人类代码的1.51倍。
可以这样理解:机器人很擅长砌墙,但它们经常忘记安装火警报警器,或者使用了易燃涂料。建筑物虽然矗立在那里,但后续需要更多的消防检查和维修。
“无评审”危险区
关于代码是如何被批准的,有一个至关重要的发现。研究人员观察了项目在没有人工评审的情况下合并代码的情况。
他们发现了一个直接联系:一个项目合并的代码中,未经人工评审的部分越多,其维护负担就越重。
- 具体而言,对于项目“无评审率”每增加10个百分点,智能体代码的维护负担就会增加约6%。
这表明,机器人不仅仅是在犯错;它们犯下的错误是只有人类评审员才能发现的那种错误。当你跳过评审环节时,你就是在让机器人肆意妄为,而修复它们错误的账单会在稍后结算。
“生成-评审不对称”问题
该论文认为我们创造了一种危险的失衡,他们称之为“生成-评审不对称(generation-review asymmetry)”。
- 生成(编写): 机器人可以无限快地编写代码,不受人类疲劳的限制。
- 评审(检查): 人类仍然是检查工作的人。他们会疲劳,会忙碌,且阅读速度有限。
研究表明,试图通过仅仅“加快评审速度”或“自动化评审”来解决这个问题并不是答案。如果你让机器人编写代码的速度超过了人类检查的速度,你最终会积累大量的隐藏缺陷。论文认为,解决方案不是让评审过程变得更薄弱,而是要改进工具本身,使其从一开始就能生产出真正安全且可维护的代码。
这篇论文排除了哪些情况
了解这项研究没有发现什么也很重要:
- 它并未发现机器人代码在所有方面都普遍“更差”。整体生存率(代码在被修改前持续存在的时间)与人类代码在统计学上是相似的。区别在于修改的类型(更多的缺陷修复,而非更多的功能添加)。
- 它并未发现问题是随机发生的。维护负担并非单纯的运气不好,它与特定的项目特征(如合并代码中未经评审的部分)密切相关。
- 它并未证明机器人是“邪恶的”或“无用的”。它只是衡量出目前的机器人会引入更多的缺陷和安全漏洞,从而需要人类进行清理。
核心结论
研究结论是,虽然机器人在生成代码方面令人印象深刻,但目前它们在代码的稳定性方面却不够可靠。衡量这些工具“成功”的标准不应该是它们生成了多少代码或合并了多少拉取请求。相反,真正的测试是:代码在合并后是否保持安全和稳定?
论文建议,随着我们对这些智能体的依赖程度增加,我们应该停止庆祝生成的效率,而开始关注清理的成本。机器人很快,但如果它们留下了一路的缺陷和安全漏洞,那么必须去清理它们的那些人类将会加班加点。目标不应是建造一座在第一天看起来很漂亮的城市,而应是建造一座在一年后不需要频繁进行紧急维修的城市。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。