DevOps-Gym: Benchmarking AI Agents in Software DevOps Cycle
本文介绍了 DevOps-Gym,这是首个包含 30 多个 Java 和 Go 项目中 700 多个真实世界任务的端到端基准测试,用于评估 AI 智能体在完整 DevOps 工作流中的表现,并揭示了当前的尖端模型在处理诸如问题解决、测试生成、监控和构建配置等复杂任务时表现得非常吃力。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你有一位才华横溢的新学徒,他非常擅长编写单个句子和段落。当你要求他写一个故事时,他完成得非常出色。但现在,你想看看他是否能经营一整家出版社。这不仅涉及编写故事,还包括搭建印刷机、观察机器运行以防过热、修理卡住的机器,并编写一份清单以确保下一本书不会出现同样的卡顿。
这正是 DEVOPS-GYM 这篇论文所测试的内容。
核心理念:从“作家”到“工厂经理”
一段时间以来,AI 在编写代码方面表现出色(就像学徒编写句子一样)。但真正的软件不仅仅是关于编写;它关乎整个生命周期,即所谓的 DevOps。这包括:
- 构建 (Building): 让代码能够编译并运行。
- 监控 (Monitoring): 观察运行中的程序,看它是否表现异常(比如机器过热)。
- 修复 (Fixing): 调试并修补问题。
- 测试 (Testing): 确保修复确实有效,且没有破坏其他部分。
研究人员构建了 DEVOPS-GYM,一个巨大的“健身房”或训练场,其中包含 700 多个真实的挑战。他们希望看到 AI 智能体能否扮演一名全职的工厂经理,处理上述所有四个步骤,而不仅仅是编写部分。
“健身房”设置
研究人员使用由 Java 和 Go(这是大公司常用的两种语言,不同于 AI 训练中常用的 Python)编写的真实软件项目,创建了一个真实的模拟环境。
他们设计了四种类型的训练:
- “设置”训练(构建与配置): AI 必须将一个混乱的项目正确地构建起来。这就像是在没有说明书的情况下组装一件复杂的家具,或者从一种工具品牌切换到另一种品牌。
- “监视”训练(监控): AI 必须观察一个正在运行的程序,并发现细微的问题,比如内存泄漏(程序慢慢吃掉所有计算机内存的情况)或网络连接变慢。这就像一名保安,必须在地下室被淹没之前注意到管道的轻微泄漏。
- “修理”训练(问题解决): AI 必须根据一份报告找到 Bug 并修复代码。
- “质量检查”训练(测试生成): AI 必须编写一个测试,以证明 Bug 已被消除。
他们甚至创建了端到端流水线 (End-to-End Pipeline) 任务,这就像一场接力赛。AI 必须连续完成设置、监视、修理和质量检查,且中途不能掉棒。
结果:学徒仍只是个新手经理
研究人员测试了目前最智能的 AI 智能体(使用像 Claude、OpenAI 的 o4-mini 等模型)。以下是他们的发现:
- “设置”很难: 即便是最好的 AI,在让项目正确构建方面也表现挣扎。它们经常会对编译代码的复杂规则感到困惑。表现最好的智能体成功率也仅为 52% 左右。
- “监视”是一场噩梦: 这是最大的失败点。AI 在观察运行中的系统方面表现极差。它们经常无法注意到问题,或者会被分散注意力。成功率低得惊人,通常只有 0% 到 20%。这就像一名保安睡着了,或者盯着错误的摄像头看。
- “修理”具有语言依赖性: AI 擅长修复 Python 中的 Bug(因为它在训练中见过很多 Python),但当切换到 Java 和 Go 时,性能显著下降。这就像一位翻译官,说法语很流利,但在被要求翻译一份德语技术手册时却会磕磕绊绊。
- 接力赛完全失败: 当被要求连续执行这四个步骤时,0% 的 AI 智能体取得了成功。它们无法在脑海中保持全局观。它们可能会修复构建过程,但随后会忘记检查监控;或者修复了 Bug,却未能编写测试。
为什么会失败?
论文提出了这些“工厂经理”尚未准备就绪的几个原因:
- 它们不懂工具: AI 在使用特定系统工具(如检查内存使用情况或管理构建文件)方面的训练还不够。
- 它们容易分心: 在长时间观察系统时,AI 会丢失对观察对象的追踪。它们无法处理系统运行数小时的“长篇故事”。
- 它们缺乏深度知识: 它们可以修复简单的拼写错误,但不理解大型软件系统是如何构建和运行的深层、复杂的规则。
底线结论
DEVOPS-GYM 是一次现实检验。虽然 AI 在编写代码片段方面非常出色,但目前它尚未准备好独立运行整个软件工厂。它在处理构建、监视、修复和测试真实软件这些混乱、复杂且长期的任务时表现挣扎。研究人员表示,在 AI 真正实现全自动化软件开发周期之前,我们还需要做大量的工作。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。