长期以来,我们一直在测试新的 AI 机器人,看它们是否能胜任这些“建筑师”的角色。但本论文提出了一个不同的问题:这些 AI 机器人也能成为优秀的“施工经理”吗?
作者 Anwar Ghammam 和 Mohamed Almukhtar 决定对 AI 的“施工管理”技能进行实战测试。他们研究了大量的真实世界施工日志(GitHub pull requests),其中 AI 代理尝试修复或更新“施工手册”(构建文件,如 Maven、Gradle 和 Makefiles)。
以下是他们的发现,通过简单的方式进行了拆解:
1. “气味”测试:AI 是否搞砸了?
在编程世界中,“代码异味”(code smell)并不是指真实的异味。把它想象成食谱中的坏习惯。
好习惯: “加入 2 杯面粉。”
坏习惯(异味): “加入车库里那袋面粉”(硬编码路径)或“使用剩下的任何面粉”(通配符用法)。
研究人员发现,当 AI 代理尝试编写这些施工手册时,它们有时会引入坏习惯。
问题所在: 在大约 66 个案例中,AI 创造了新的“异味”。最常见的坏习惯是缺乏错误处理(如果没有发生故障,没有 B 计划)和硬编码路径(在代码中写入特定的地址,如果搬家了,这些地址就无法工作)。
罪魁祸首: 并非所有的 AI 机器人都表现一致。其中一个名为“Copilot”的机器人引入了最多的坏习惯。另一个名为“Claude”的机器人则没有引入任何坏习惯,但它只尝试了三个文件,因此很难下定论。
2. “修理”团队:AI 是否清理了现场?
研究人员还想知道,AI 是否可以像专业的房屋检查员一样,移除已经存在的坏习惯。
结果: 是的!在 31 个案例中,AI 成功清理了施工手册。
它是如何做到的? AI 表现得像一个聪明的翻修工。它将杂乱、分散的指令进行了整理。例如,它没有直接在手册中写下秘密密码(这是一种安全风险),而是将其移动到了安全的“保险库”中(外部属性)。它还移除了不再使用的工具,并更新了陈旧、失效的指令。
核心要点: AI 不仅仅是一个混乱的建造者;有时它是一个非常高效的重构者(即重新组织事物以使其变得更好的人)。
3. 人类老板:人类是否认可?
最后,团队询问了:人类施工经理信任 AI 吗?
结论: 令人惊讶的是,是的。超过 61% 的 AI 建议被立即接受并合并。
反应: 人类评审员经常只是说“我觉得没问题”(LGTM),甚至开玩笑说:“你现在可以接替我的工作了!”在批准 AI 的工作之前,他们很少需要进行修改。这表明,目前人类信任 AI 来处理这些施工物流工作,且几乎不需要多少监督。
大局观
把这项研究看作是一份关于 AI 代理试图管理软件项目“管道与布线”的成绩单。
好消息: AI 非常擅长清理杂乱的指令并组织构建过程。人类信任它,足以让它在大多数时候承担这项工作。
警示: AI 并不完美。它有时会留下“坏习惯”,比如缺失安全检查或使用过时的工具。
结论: 我们不应该盲目地让 AI 管理施工现场。我们需要构建更好的“安全检查员”(工具),以便在 AI 的坏习惯成为最终房屋的一部分之前将其拦截。目标是在保留 AI 清理能力的同时,阻止它意外制造出新的混乱。
技术摘要:AI 构建,我们分析
问题陈述
随着大型语言模型(LLM)和 AI 编程智能体(AI coding agents)在软件开发工作流中的快速集成,研究人员针对 AI 生成的源代码的质量、正确性和可维护性进行了广泛的研究。然而,理解这些智能体对**构建系统(build systems)**影响的研究仍存在关键空白。构建工具(如 Maven、Gradle、CMake、Make)对于管理依赖、编译、打包和部署至关重要,但 AI 生成的构建代码的质量在很大程度上仍未得到充分探索。具体而言,目前缺乏实证证据来表明 AI 智能体是引入了还是消除了构建特定的代码质量问题(代码异味/smells),以及人类开发者在实践中如何响应自动化的构建代码生成。