SWE Atlas: Benchmarking Coding Agents Beyond Issue Resolution
本文介绍了 SWE Atlas,这是一套新的基准测试套件,旨在通过评估功能正确性和软件工程质量,来衡量编码代理在代码库问答、测试编写和重构等代表性不足的专业工作流中的表现,结果显示尽管顶级模型处于领先地位,但在处理边缘案例和遵循最佳实践方面仍存在重大挑战。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
以下是《SWE Atlas》论文的解释,已用通俗易懂的语言并辅以富有创意的类比进行翻译。
宏观视角:从“补丁工人”到“总建筑师”
想象一下,你雇佣了一支极其聪明、速度超快的建筑机器人团队(这些就是AI 编程代理),来协助建设和维护一座庞大的城市(即软件代码库)。
在过去几年里,我们通过给这些机器人分配简单、具体的工作来测试它们:“修好这扇破窗户”或“安装这扇新门”。如果机器人修好了窗户且没有弄坏窗框,我们就给它发一枚金星星。这就是之前的测试(如 SWE-Bench)所做的事情。它们衡量的是机器人能否修补问题。
SWE Atlas 说:“等一下。成为一名优秀的建筑工人不仅仅是修补破窗户。它还包括理解整座城市、编写安全手册,以及重新设计旧建筑,以确保它们在十年内不会倒塌。”
研究人员构建了一个名为 SWE Atlas 的更难的测试,旨在考察这些机器人能否像专业工程师那样思考,而不仅仅是充当补丁工人。
三大新挑战(“Atlas”任务)
SWE Atlas 不再仅仅让机器人修复漏洞,而是赋予它们三种类型的专业工作:
1. 代码库问答:“城市导游”
- 旧方式:“这是一张地图。告诉我图书馆在哪里。”(机器人只是阅读地图)。
- SWE Atlas 方式:“我是新来的。我需要知道当下雨且电网故障时,交通信号灯会如何表现。我不只想要一张地图;我要你驾驶汽车,实时观察交通信号灯,并告诉我当事情出错时究竟会发生什么。”
- 关键点:机器人必须实际运行软件,观察其在压力下的挣扎表现,并解释实时行为。它不能仅靠阅读代码来猜测。
2. 测试编写:“安全检查员”
- 旧方式:“写一个测试以确保门能打开。”(机器人编写一个检查门是否打开的测试)。
- SWE Atlas 方式:“写一个测试,试图破坏这扇门。如果有人试图在门锁着的时候打开它怎么办?如果铰链生锈了怎么办?如果风刮得太猛怎么办?”
- 关键点:机器人必须充当对手。它需要构思出每一个可能导致崩溃的怪异、边缘案例场景。如果机器人编写的测试只检查“快乐路径”(即一切完美运行的情况),它就无法通过测试。
3. 重构:“翻新专家”
- 旧方式:“把墙漆成蓝色。”(机器人改变颜色)。
- SWE Atlas 方式:“这个房间一团糟。电线缠绕在一起,管道位置不对,家具挡住了门。重新布置整个房间,使其更易于居住,但不要移动任何一件家具,也不要改变房间的功能。此外,扔掉所有我们不再需要的旧工具。”
- 关键点:机器人必须清理代码(使其易于维护),同时不能意外破坏任何当前正常运行的功能。这就像在患者跑马拉松的同时为其进行心脏手术。
他们如何给机器人打分(“评分标准”)
过去的测试就像多项选择题:代码运行了吗?是/否。
SWE Atlas 使用的是教师评分表。想象一位严厉的艺术老师正在给学生的画作打分。
- 你画天空了吗?(是/否)
- 你使用了正确的笔触吗?(是/否)
- 你把画笔留在地板上了吗?(是/否——这是一个“负面评分项”,因为这是不良习惯)。
研究人员使用第二个 AI(作为“裁判”)来审视机器人的工作并检查这些详细的选项。他们关注的是:
- 整洁度:机器人是否留下了“死代码”(垃圾)?
- 组织性:新代码是否易于人类日后阅读?
- 完整性:机器人是否遗漏了任何边缘案例?
他们的发现(结果)
研究人员测试了当时最先进的人工智能模型(如 GPT-5.4 和 Opus 4.7)以及一些开源模型。以下是裁决结果:
“补丁工人”很出色,但“工程师”仍在挣扎:
顶尖的 AI 模型在修复简单漏洞(即“修补”工作)方面表现出色。但当被要求从事专业工程师那种混乱、复杂的工作(如深度重构或编写稳健的测试)时,它们的得分显著下降。“一致性”问题:
如果你让一个顶级机器人解决同一个问题 3 次,它可能只有一次做对,其余两次失败。它们还不足以可靠到被信任去处理关键基础设施。“探索”差距:
表现最好的机器人之所以成功,是因为它们不仅仅阅读代码;它们运行了代码。它们搭建软件、破坏它、修复它,并观察日志。那些只“阅读”代码而不运行它的机器人,在“代码库问答”任务中失败了。“快乐路径”陷阱:
在编写测试时,机器人倾向于编写仅检查事物是否正常运行的测试。它们未能编写检查灾难情况的测试(即缺乏“对抗性”思维)。开源与闭源模型:
最强大、最昂贵、来自大科技公司的“闭源”模型,其表现远优于免费、开放的“开源”模型。开源模型往往过于困惑,无法处理复杂的多步骤任务。
核心结论
SWE Atlas 是一个警钟。它告诉我们,虽然 AI 在编写小段代码或修复简单错误方面变得非常擅长,但它尚未准备好成为一名专业软件工程师。
它仍然在以下方面存在挣扎:
- 提前思考可能会出现什么问题。
- 清理混乱的代码而不破坏它。
- 理解系统在现实世界中的行为(而不仅仅是在纸面上)。
该论文总结道,我们需要停止只问“它运行了吗?”,转而开始问“这是好的工程吗?”,因为 AI 编程的未来取决于后者。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。