← 最新论文
💬 NLP

Is Agent Code Less Maintainable Than Human Code?

本文介绍了 CodeThread 框架,旨在证明由 AI 智能体生成的代码其可维护性低于人类代码,因为后续智能体由于在错误处理和输入验证方面存在细微的行为差异(而非传统的软件指标问题),从而难以在其基础上进行构建。

原作者: Shaswat Patel, Betty Li Hou, Arun Purohit, Kai Xu, Jane Pan, He He, Valerie Chen

发布于 2026-06-23
📖 1 分钟阅读☕ 轻松阅读

原作者: Shaswat Patel, Betty Li Hou, Arun Purohit, Kai Xu, Jane Pan, He He, Valerie Chen

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你正在盖一座房子。通常情况下,你会雇佣一位高级木匠(人类开发者)来搭建墙壁框架,然后雇佣第二位木匠来安装屋顶。如果第一位木匠活干得比较粗糙——比如墙壁稍微有点歪,或者钉子钉在了奇怪的位置——那么即使第二位木匠同样技术精湛,也可能会在安装屋顶时感到吃力。

这篇论文提出了一个类似的关于软件的问题:如果一个 AI 智能体构建了代码“房子”的第一部分,那么与第一部分由人类构建相比,第二个 AI 智能体在其之上构建屋顶是否会变得更加困难?

以下是他们研究结果的拆解,使用了简单的类比:

实验:“两步接力赛”

研究人员创建了一个名为 CodeThread 的框架。你可以把它想象成一场接力赛,而代码就是那根接力棒。

  1. 第一棒 (PR1): 有人需要修复一个特定的漏洞或添加一个功能。他们要么以人类身份完成,要么以 AI 智能体身份完成。
  2. 第二棒 (PR2): 第二个 AI 智能体尝试在那个第一阶段的修复之上进行构建,以解决一个的问题。

他们使用四种不同的顶级 AI 模型和不同类型的编程任务进行了四次这样的比赛。

主要发现:“智能体对智能体”的差距

结果显示,当第二个 AI 试图在第一个 AI 编写的代码之上进行构建时,它的失败率比在人类编写的代码之上构建时更高。

  • 跌幅: 当第一棒由 AI 完成时,成功率下降了高达 13.1%
  • 类比: 这就像第一位 AI 木匠造了一面看起来很直、并通过了初步检查的墙,但墙里隐藏着缺陷(比如地面稍微不平)。当第二位木匠试图建造屋顶时,这个隐藏的缺陷导致整个结构坍塌。

为什么会这样?(“隐藏的缺陷”)

研究人员原本预期 AI 代码会在显而易见的地方更“乱”,比如冗余过多(过于啰嗦)或过于复杂(像一团乱麻)。他们使用标准的软件工具测量了这些指标。

  • 令人惊讶的是: 这些标准测量指标并不能解释为什么第二个 AI 会失败。这种“混乱感”在人类编写和 AI 编写的第一部分中看起来是一样的。

相反,问题在于微妙的行为漂移,就像是“游戏规则”发生了变化:

  1. “隐形规则变更”(输入/错误处理): 想象一下,人类木匠会说:“如果你尝试在不戴手套的情况下锤钉子,我会阻止你。”而 AI 可能会悄悄地将这条规则改为:“如果你尝试在不戴手套的情况下锤钉子,我只会忽略你并继续进行。”
    • 对于第一次测试来说,两者看起来都正常。
    • 但当第二个 AI 试图使用这面墙时,它预期会收到“停止”信号。因为规则变了,第二个 AI 感到困惑并失败了。
  2. 过度编辑: 当第二个 AI 试图在第一个 AI 的代码之上进行修复时,它倾向于做出比处理人类代码时更大、更混乱的改动。

这意味着什么?

论文得出结论,AI 代码的“可维护性”较低(针对未来的 AI 智能体而言)。

  • 仅仅因为 AI 的代码在今天通过了测试,并不意味着它的代码是一个良好的基础,可以用于明天。
  • AI 引入的“技术债”(隐藏的混乱)并不总是体现在代码的大小或复杂度上;它往往存在于代码行为方式与人类编写方式之间那些细微且不可见的差异中。

总结

如果你依赖 AI 来编写代码,你可能在今天得到了一个快速的修复方案,但你可能也在为下一个试图在上面进行构建的 AI(或人类)设置陷阱。论文建议,我们不能仅仅检查代码现在是否可行,还必须开始检查它在未来是否易于构建。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →