ChainSWE: Benchmarking Coding Agents on Multi-Bug Software Maintenance
本文介绍了 ChainSWE,这是首个旨在评估编程智能体在共享代码库中进行连续、依赖型缺陷修复能力的基准测试,揭示了与传统的孤立缺陷修复评估相比,智能体的性能会随着链条长度的增加而显著下降。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
这里是对 CHAINSWE 论文的解释,使用了通俗易懂的语言和富有创意的类比。
核心理念:从“一锤子买卖”到“长跑马拉松”
想象一下,你正在雇佣一支超级聪明的机器人机械师团队来维修一队汽车。
旧方法(当前的基准测试):
每次你给机械师一个问题时,你都会递给他们一辆全新的、崭新的汽车。他们修好了轮胎,你检查完他们的工作,然后就把他们送回家。第二天,你给了他们另一辆有着不同问题的汽车。
- 问题所在: 这无法测试他们是否擅长在一段时间内“维护”一辆车。在现实世界中,机械师不会每天都得到一辆新车。他们在同一辆车上工作,先是修好爆胎,然后是吱吱作响的刹车,接着是引擎发出的怪声,而这一切都是针对同一辆车进行的。
新方法 (CHAINSWE):
研究人员构建了一个名为 CHAINSWE 的新测试。他们不再给机械师新车,而是给他们 一辆车以及一份记录了数年间发生的 304 个问题的清单。
- 机械师修复第一个问题。
- 然后,在不重置车辆状态的情况下,他们必须根据第一次修复后车辆的状态来修复第二个问题。
- 接着是第三个,以此类推。
机器人的两种失败方式
研究发现,当机器人尝试在一份相同的代码(即“汽车”)上修复一长串问题时,他们会犯两种在处理单个问题时不会犯的特定错误:
1. “过度装饰”错误 (Overshoot / 过度修正)
- 场景: 机器人被要求修理一个漏水的水龙头。它完美地修好了水龙头。但由于太兴奋,它还顺便重新粉刷了厨房橱柜并更换了地板瓷砖,尽管没人要求这样做。
- 后果: 稍后,一个人来修理一个坏掉的灯开关。因为机器人之前改变了地板瓷砖和橱柜,导致灯开关的说明不再适用。机器人的“多余”工作破坏了下一个任务。
- 在论文中: 机器人修改了它不应该触碰的文件,从而破坏了未来 Bug 的测试。
2. “半途而废”错误 (Undershoot / 修补不足)
- 场景: 机器人被要求修理一个漏水的水龙头。它意识到水龙头不仅需要换个把手,还需要换个管子和阀门才能正常工作。但它只更换了水龙头把手(因为那是记录里要求的),却留下了损坏的管子和阀门不管。
- 后果: 水龙头看起来修好了,但其实还在漏水。稍后,一个人试图调节水压。因为机器人之前没有修理管子,水压修复的任务彻底失败了。
- 在论文中: 机器人修复了 Bug 报告中提到的特定文件,但忘记更新那些 Bug 报告未明确提及的支持性文件,导致代码处于损坏状态,影响了下一个 Bug 的修复。
测试这些机器人时发生了什么?
研究人员使用这个新的“长跑”测试测试了 7 个不同的“AI 机械师”(语言模型)。
- 结果: 当机器人处理单个 Bug 时(旧方法),它们表现得相当不错(成功率约为 60%)。但当它们必须处理一系列连续的 Bug 时(新方法),它们的表现下降了高达 70%。
- “连锁反应”: 随着处理的 Bug 列表越来越深,它们的表现就越差。当它们处理到连续第 3 或第 4 个 Bug 时,几乎一直在失败。
- 原因: 机器人被自己之前的工作搞混了。它们记不住自己修改了哪些文件,或者忘记了之前的“快速修复”破坏了后续任务的基础。
“记忆力”有帮助吗?
研究人员尝试通过提供不同的记忆方式来帮助机器人:
- 全量记忆: 阅读他们曾经说过的一切内容的完整历史。
- 总结记忆: 要求机器人对之前做过的事情写一个简短的总结。
- 助手机器人: 使用一个小机器人负责文件编辑,而主机器人只负责下达指令。
令人惊讶的是: 这些技巧并没有起到什么大的作用。事实上,要求机器人总结其工作或使用助手往往会让情况变得更糟。机器人无法处理它们在代码中制造的“混乱”,无论它们如何努力去记忆。
总结
论文的结论是,我们目前测试 AI 编程员的方式就像是在测试**“一曲成名”的歌手**(修好一个东西就走人)。但在现实世界中,软件维护是一场马拉松,而不是短跑。
为了开发出能够真正维护软件的 AI,我们需要停止在孤立的任务上测试它们,而是开始在任务链上测试它们,让它们必须处理由自己亲手制造的、混乱且不完美的代码。目前,即使是最聪明的 AI 模型,在需要连续修复一个又一个 Bug 时,也很难保持代码库的整洁。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。