SWE-Chain: Benchmarking Coding Agents on Chained Release-Level Package Upgrades
作者: Man Ho Lam, Chaozheng Wang, Hange Liu, Jingyu Xiao, Haau-sing Li, Jen-tse Huang, Terry Yue Zhuo, Michael R. Lyu
分类: cs.SE, cs.AI, cs.CL
发布日期: 2026-05-14
💡 一句话要点
SWE-Chain:用于评估代码智能体在链式发布级软件包升级任务上的性能基准
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码智能体 软件维护 软件包升级 基准测试 链式任务
📋 核心要点
- 现有代码智能体基准测试缺乏对软件包发布级别持续维护的模拟,未能捕捉版本迭代中变更的继承和累积。
- SWE-Chain通过构建链式发布升级任务,并设计分而治之的流程对齐发布说明和代码差异,生成基于实际代码变更的升级需求。
- 实验结果表明,现有代码智能体在SWE-Chain上表现不佳,表明其在复杂软件维护任务中仍面临挑战,SWE-Chain具有区分性。
📝 摘要(中文)
本文提出了SWE-Chain,一个用于评估代码智能体在链式发布级软件包升级任务上的基准。该基准模拟了真实的软件维护场景,其中每次升级都建立在智能体之前的代码库之上。为了生成升级规范,作者设计了一个分而治之的合成流程,将发布说明与每个版本过渡的代码差异对齐,确保需求基于实际代码更改,对智能体具有信息性,并且可以实现。SWE-Chain包含9个真实Python软件包的12个升级链,具有155个版本过渡和1,660个有根据的升级需求。在九种前沿智能体模型配置中,智能体在Build+Fix机制下平均达到44.8%的解决率,65.4%的精度和50.2%的F1分数,其中Claude-Opus-4.7(Claude Code)以60.8%的解决率,80.6%的精度和68.5%的F1分数领先。这些结果表明SWE-Chain既可行又具有区分性,并揭示了当前的智能体仍然难以在链式软件包发布中进行正确的升级,而不会破坏现有功能。
🔬 方法详解
问题定义:现有代码智能体基准测试主要关注孤立的问题解决,缺乏对真实软件维护中链式软件包升级场景的模拟。在实际软件开发中,软件包的升级是连续的,每个新版本都依赖于之前的版本,并且需要维护现有功能。现有方法难以评估智能体在处理此类复杂依赖关系和长期维护任务中的能力。
核心思路:SWE-Chain的核心思路是构建一个链式的软件包升级基准,其中每个升级任务都建立在智能体之前完成的代码库之上。通过模拟真实的软件发布流程,可以更全面地评估智能体在软件维护任务中的能力。同时,采用分而治之的策略,将复杂的升级任务分解为更小的、可管理的子任务,降低了任务的难度,使得智能体更容易理解和执行。
技术框架:SWE-Chain的整体框架包括以下几个主要阶段:1) 数据收集:收集真实Python软件包的历史版本和对应的发布说明。2) 需求合成:设计一个分而治之的合成流程,将发布说明与每个版本过渡的代码差异对齐,生成升级需求。该流程包括需求提取、需求对齐和需求验证等步骤。3) 任务构建:基于合成的升级需求,构建链式的软件包升级任务。每个任务包含一个初始代码库和一个或多个升级目标。4) 评估:使用预定义的评估指标(如解决率、精度和F1分数)评估智能体在SWE-Chain上的性能。
关键创新:SWE-Chain的关键创新在于其链式升级任务的设计和分而治之的需求合成流程。链式升级任务能够模拟真实的软件维护场景,更全面地评估智能体的能力。分而治之的需求合成流程能够将复杂的升级任务分解为更小的、可管理的子任务,降低了任务的难度,使得智能体更容易理解和执行。
关键设计:在需求合成流程中,关键的设计包括:1) 使用自然语言处理技术从发布说明中提取关键信息。2) 使用代码差异分析技术识别代码变更。3) 使用对齐算法将发布说明中的信息与代码变更进行匹配。4) 使用验证机制确保合成的升级需求是可行和一致的。评估指标包括解决率(解决的任务比例)、精度(正确解决的任务比例)和F1分数(精度和召回率的调和平均值)。
🖼️ 关键图片
📊 实验亮点
实验结果表明,现有代码智能体在SWE-Chain上的平均解决率为44.8%,精度为65.4%,F1分数为50.2%。其中,Claude-Opus-4.7(Claude Code)表现最佳,解决率为60.8%,精度为80.6%,F1分数为68.5%。这些结果表明,SWE-Chain具有区分性,能够有效评估代码智能体在复杂软件维护任务中的能力。
🎯 应用场景
SWE-Chain可用于评估和改进代码智能体在软件维护、代码迁移、自动化测试等领域的应用。通过SWE-Chain的评估,可以推动代码智能体在真实软件开发场景中的应用,提高软件开发的效率和质量。该基准还可以促进对代码智能体长期维护能力的深入研究。
📄 摘要(原文)
Coding agents powered by large language models are increasingly expected to perform realistic software maintenance tasks beyond isolated issue resolution. Existing benchmarks have shifted toward realistic software evolution, but they rarely capture continuous maintenance at the granularity of package releases, where changes are bundled, shipped, and inherited by subsequent versions. We present SWE-Chain, a benchmark for evaluating agents on chained release-level package upgrades, where each transition builds on the agent's prior codebase. To produce upgrade specifications, we design a divide-and-conquer synthesis pipeline that aligns release notes with code diffs for each version transition, ensuring the requirements are grounded in actual code changes, informative to agents, and feasible to implement. SWE-Chain contains 12 upgrade chains across 9 real Python packages, with 155 version transitions and 1,660 grounded upgrade requirements. Across nine frontier agent-model configurations, agents achieve an average of 44.8% resolving, 65.4% precision, and 50.2% F1 under the Build+Fix regime, with Claude-Opus-4.7 (Claude Code) leading at 60.8% resolving, 80.6% precision, and 68.5% F1. These results show that SWE-Chain is both feasible and discriminative, and reveal that current agents still struggle to make correct upgrades across chained package releases without breaking existing functionality.