Will It Survive? Deciphering the Fate of AI-Generated Code in Open Source
与人工智能生成的代码是可丢弃的这一假设相反,对 201 个开源项目的生存分析表明,智能体编写的代码实际上比人类编写的代码持续时间更长,尽管它面临着略高的修正修改率,这表明组织实践而非生成质量才是其长期演化的主要瓶颈。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下软件开发是一个繁忙、喧闹的建筑工地,建筑物(代码库)正在不断地被建造、翻修和维修。多年来,施工经理(软件工程师)一直有一个挥之不去的担忧:如果他们开始使用“机器人建筑工”(AI 智能体)来铺设砖块,这些砖块会很脆弱。人们担心机器人会随手拼凑出一面墙,而人类监工为了赶进度会迅速批准它,然后,一旦机器人走开,这面墙就会坍塌或需要立即拆除。这种想法被称为**“一次性代码”假设(disposable code hypothesis)**——即认为 AI 生成的代码只是临时的填充物,无法持久。
这篇题为《它能生存吗?解读开源领域 AI 生成代码的命运》的论文,来到了这个建筑工地,去检查那些已经铺好的砖块。研究人员不仅观察了机器人在施工时墙面盖得如何,还观察了这面墙数月之久,以测试它能否经受住时间的考验。
以下是他们的发现,通过简单的故事进行了解析:
1. “幽灵砖块”现象(生存能力)
迷思: 人们认为 AI 砖块会被很快拆除或更换。
现实: AI 砖块实际上比人类的砖块更持久。
研究人员追踪了 201 个不同项目中的超过 20 万行代码(单个砖块)。他们发现,由 AI 编写的代码行比人类编写的代码行更不容易被修改或删除 16%。
原因何在?“别碰我的代码”规则。
论文提出了一个有趣的心理学原因:人类通常会对他们没有亲手编写的代码感到犹豫。这就像租客搬进一栋房子后,因为不知道隐藏的电线在哪里,所以不敢重新布置家具一样。
- 人类代码: 当一个人写下一行代码时,他们会产生所有权感。如果稍后发现一个小问题,他们会觉得有义务立即修复它。
- AI 代码: 当 AI 写下一行代码时,没有单个人类会对它负责。它变成了一种“幽灵砖块”。除非它彻底坏了,否则人类不太愿意去动它,因此它会在那里静静地放置很久,无人问津。
注: 这并不适用于所有的机器人。那些“Copilot 式”的机器人(辅助人类编写代码的机器人)产生的砖块最稳定。然而,全自动机器人(如试图独立完成整个工作的“Devin”)产生的砖块实际上比人类的砖块更容易被修改,这可能是因为它们更具实验性。
2. 修理背后的“动机”(意图)
当这些砖块最终被修改时,研究人员询问了:为什么?
他们查看了“维修订单”(提交信息/commit messages),以查看这些变化是在修复错误、添加新功能,还是仅仅在更新旧工具。
- 人类砖块: 人类倾向于通过修改代码来适应新环境(比如因为新的锁系统需要,而更换门把手)。这被称为“适应性”(Adaptive)维护。
- AI 砖块: 当 AI 代码被修改时,它更有可能是为了修复 Bug(纠错性/Corrective)或安全补丁(预防性/Preventive)。
- 陷阱: 这种差异并不大。并不是说 AI 代码“更差”或“更好”;它只是有着略微不同的维修特征。此外,不同的 AI 工具表现迥异。一种 AI 工具生成的代码可能需要 44% 的 Bug 修复,而另一种可能只需要 13%。具体的工具比“它是 AI”这一事实更为重要。
3. 我们能预测未来吗?(预测)
研究人员尝试建立一个水晶球,来预测两件事:
- 哪些砖块会坏?(我们能识别出脆弱的代码行吗?)
- 它们什么时候会坏?(我们能预测时间吗?)
- 识别弱点(成功): 他们取得了中等程度的成功。通过观察代码的“词汇表”(使用的特定单词和命令),他们可以猜测哪些行可能会被修改。例如,连接到特定且多变的外部服务(如云 API)的代码会被标记为“高风险”,容易在未来发生变更。
- 预测时间(失败): 他们无法预测变更何时发生。知道一块砖可能会坏很容易;但要通过代码本身来预测它是在明天还是在六个月后坏掉,是不可能的。
- 隐喻: 这就像知道一个汽车零件容易磨损(代码内容),但你无法预测修理工会在下周还是明年去修理它(时间)。这个时间取决于修理工的日程安排(组织动态),而不是零件本身。
核心结论
论文得出结论,对“一次性 AI 代码”的恐惧在很大程度上是一个迷思。AI 生成的代码实际上比人类代码存活时间更长,主要是因为人类不敢轻易触碰它。
然而,真正的瓶颈不在于 AI 编写的代码质量,而在于组织机构如何管理它。如果一家公司没有为 AI 的工作分配一个人类“所有者”,那么这些代码可能会在很长一段时间内无人问津,并不是因为它完美无缺,而是因为没有人对此负责。让 AI 代码持久的关键不仅仅在于更好的机器人,更在于更好的管理制度和明确的所有权归属。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。