Active-SWE: Benchmarking Coding Agents for Proactive Bug Fixing without Issue Reports
本文介绍了 Active-SWE,这是一个旨在通过涵盖多个类别和语言的 1,663 个任务,来评估编码智能体在没有问题报告的情况下进行主动修复 Bug 能力的新型基准测试,并揭示了当前的尖端智能体在缺乏详细指导的情况下,在定位、解决和发现 Bug 方面存在显著困难。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一个软件就像是由数百万人建造的、繁忙且熙熙攘攘的大都市的世界。有时,一栋建筑会出现隐藏的裂缝,一座桥梁会有一个松动的螺栓,或者交通灯在应该变红时却卡在了绿灯。在现实世界中,我们通常要等到有人大喊:“嘿,桥坏了!”之后才会派维修队去修理。在数字世界中,这种“大喊”被称为问题报告(issue report)。它是一份由人类编写的详细笔记,准确描述了错误发生在哪里、弹出了什么错误消息,以及软件本应如何运行。
长期以来,计算机科学家一直在训练超级智能的 AI 助手,即编程智能体(coding agents),让他们充当维修队。这些智能体使用强大的类脑模型(称为大语言模型)来阅读代码并修复问题。但问题在于:到目前为止,大多数对这些智能体的训练和测试都假设了一个完美的、详细的“大喊”(问题报告)始终在等着它们。这就像是在训练一名机械师,但给他的全是已经被拖到修理厂、并附带便条说“引擎发出敲击声”的汽车。
但在现实世界中,情况并不总是如此顺利。有时,漏洞非常隐蔽,甚至在没人察觉之前就溜进了最终产品中,引发大规模的混乱。还有时候,人类留下的笔记非常模糊、令人困惑,或者缺失关键细节。这提出了一个重大且令人兴奋的问题:这些 AI 维修队能否在任何人意识到问题之前,就发现并修复这些损坏的部分?它们能否像主动的侦探一样,自行扫描代码,发现裂缝并修复它们,而无需任何说明书?
这正是论文**《基准测试无需问题报告的主动式缺陷修复编程智能体》(Benchmarking Coding Agents for Proactive Bug Fixing without Issue Reports)**所要探索的内容。作者们是一群来自大学和独立实验室的研究人员,他们引入了一个名为 Active-SWE 的新挑战。你可以把它想象成一个巨大的、高风险的视频游戏关卡,旨在测试 AI 智能体是真正的侦探,还是仅仅是听话的机械师。
研究人员没有给 AI 提供一份需要修复的“损坏清单”,而是交给它们一个庞大的代码库——包含跨越六种缺陷类型和八种不同编程语言的 1,663 个不同任务——并告诉它们:“去寻找问题并修复它们。祝好运,不准给提示。”
研究人员通过两种方式构建了这个挑战。首先,他们创建了一个“简单设置(Simple Setting)”,在这种设置下,AI 必须在一个代码库中找到并修复一个隐藏的缺陷,就像在小说中寻找一个特定的错别字。然后,他们提高了难度,设计了一个“困难设置(Hard Setting)”,在这种设置下,AI 必须同时追踪多个缺陷,就像一名侦探试图在一个夜晚破解一系列连环犯罪。他们还测试了 AI 在“潜在缺陷(Potential Bugs)”上的表现——即在 AI 可能会发现一个甚至不在原始已知问题清单上的问题的情况下,询问:“你是否发现了一个实际上确实存在的新问题?”
为了确保 AI 不仅仅是在瞎猜,研究人员使用了一个巧妙的“双轨”评分系统。一条轨道检查 AI 是否找到了他们已知存在的缺陷(记录缺陷)。另一条轨道则更难:如果 AI 声称发现了一个新缺陷,系统会强制要求 AI 编写一个测试来证明它。如果 AI 无法通过测试来证明该缺陷的存在,那么这次发现就不计入得分。这就像侦探声称发现了一个隐藏的保险箱;他必须拿出钥匙并打开它,才能向你证明它是真实的。
结果如何?事实证明,即使是目前最聪明、最先进的 AI 智能体,在进行这种主动侦探工作时仍然显得力不从心。当研究人员测试顶尖模型(如 Claude Opus 4.8、GPT-5.5 等)时,他们发现,在没有引导的情况下,大多数模型只能修复大约 20% 的已知缺陷。与给予详细问题报告的情况相比,这是一个巨大的跌幅。
这项研究表明,虽然这些 AI 智能体在遵循指令方面做得越来越好,但在观察一个凌乱的房间并自行判断哪里坏掉时,它们仍然表现得很差。它们经常在代码中迷失方向,无法精准定位问题所在(这种技能被称为“定位”),并且难以同时处理多个问题。有趣的是,AI 在处理某些类型的缺陷(如与逻辑或数据流相关的缺陷)时表现稍好,但在处理涉及系统“状态”(例如交通灯卡住)的缺陷时,几乎一窍不通。
或许最重要的一点是,这篇论文表明,发现缺陷仅仅是成功的一半。数据表明,如果 AI 不能准确地定位损坏的代码部分,它几乎永远无法正确修复。这就像是在不知道哪根水管漏水的情况下尝试修理漏水的管道;你可能会最后只是拧紧了错误的管子。
简而言之,这篇论文并不是声称 AI 已经解决了软件修复问题。相反,它发出了一个警报:当前这一代的编程智能体仍然过于依赖人类来指出问题。那个“主动式”的梦想——即 AI 扫描代码并在崩溃发生前修复问题——仍然是一个正在进行中的工程。研究人员总结道,虽然这些智能体功能强大,但在我们能够信任它们在没有安全网的情况下守护数字城市之前,它们需要变得更加独立,成为真正的侦探。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。