five

SWE-Chain

收藏
github2026-05-07 更新2026-05-15 收录
下载链接:
https://github.com/CUHK-ARISE/SWE-Chain
下载链接
链接失效反馈
官方服务:
资源简介:
SWE-Chain是一个用于评估编码代理在连续包版本升级中的基准数据集,包含多步包版本升级的规范,例如Flask从2.0.0到2.3.3的版本链。代理在Docker隔离环境中实施每个升级步骤,并根据目标版本的测试套件进行评分。

SWE-Chain is a benchmark dataset for evaluating coding agents in continuous package version upgrades. It contains specifications for multi-step package version upgrades, such as the version chain of Flask from 2.0.0 to 2.3.3. Agents execute each upgrade step in Docker-isolated environments, and are scored against the test suite of the target version.
创建时间:
2026-05-04
原始信息汇总

SWE-Chain 数据集概述

数据集简介

SWE-Chain 是一个用于评估编码代理(如 Claude Code、OpenCode、Codex)在连续软件包版本升级任务中表现的基准测试数据集。

核心任务

编码代理需要接收连续版本对的升级规范(例如 Flask 2.0.0 → 2.0.1 → ... → 2.3.3),在 Docker 隔离环境中逐步实现每个版本的升级,最终根据目标版本的测试套件进行评分。

数据集存储

工作流程模块

模块 功能 入口
Collection(收集) 获取变更日志和源代码,提取差异和每版本测试基线 collect.pybuild.pyvalidate_baseline.pyvalidate_cross.py
Synthesis(合成) 将差异片段匹配到发布说明任务,合成代理可读的升级规范 synthesize.py
Generation(生成) 在 Docker 环境中逐步运行代理完成升级链 run.shgenerate/chain.py
Evaluation(评估) 回放每一步的差异,运行目标测试套件,计算得分 eval.shevaluation/

评分分类体系

对于每个升级步骤 v_prev → v_next,使用 v_next 的测试套件对代理的 prevcurr 代码库进行测试,将每个基线通过的测试分为六类:

类别 定义
resolved(已解决) 与升级相关的测试,代理当前代码已通过
unresolved(未解决) 与升级相关的测试,代理当前代码仍失败
regressed(回归) 非升级相关测试,在上一通过但当前失败
preserved(保持) 非升级相关测试,之前和现在均通过
recovered(恢复) 非升级相关测试,之前失败但当前通过
unrecovered(未恢复) 非升级相关测试,之前和现在均失败

支持的代理工具

  • Claude Code:安装 Claude Code CLI,配置 CLAUDE_CODE_OAUTH_TOKEN 环境变量
  • Codex:安装 Codex CLI,认证后复制 ~/.codex/auth.json~/.codex/config.toml
  • OpenCode:安装 OpenCode,认证后复制 ~/.local/share/opencode/auth.json

快速开始

bash

1. 安装依赖

pip install -r requirements.txt

2. 从 Hugging Face 拉取数据集

python load_dataset.py

3. 运行代理执行升级链

bash run.sh data/flask_2.0.0_to_2.3.3_specs_chain.jsonl claudecode anthropic claude-sonnet-4-6 high

4. 评分运行结果

bash eval.sh results/flask_2.0.0_to_2.3.3/claudecode-anthropic-claude-sonnet-4-6/chain.json

自定义升级链构建流程

  1. 配置包信息:在 packages.yaml 中添加 Dockerfile 版本范围、测试文件夹、执行超时和保护路径
  2. 编写 Dockerfile:在 dockerfiles/ 目录下创建覆盖版本范围的 Dockerfile
  3. 编写变更日志获取器:在 fetchers/changelog_fetcher.py 中编写获取函数并注册

构建命令

bash

1. 收集元数据

python collect.py flask --from 2.0.0 --to 2.3.3

2a. 为每个版本构建 Docker 镜像

python build.py metadata/flask_2.0.0_to_2.3.3

2b. 运行每个版本的黄金测试

python validate_baseline.py metadata/flask_2.0.0_to_2.3.3 --workers 5

2c. 运行跨版本测试

python validate_cross.py metadata/flask_2.0.0_to_2.3.3 --workers 5

3. 合成代理可读的规范链

python synthesize.py metadata/flask_2.0.0_to_2.3.3 --model gpt-5.4 --workers 3

搜集汇总
数据集介绍
main_image_url
构建方式
SWE-Chain数据集的构建始于对目标软件包(如Flask)及其版本链的选取,涵盖了从初始版本到目标版本的连续升级路径。构建过程分为三大阶段:首先通过Collection模块从社区获取发布日志与源码,提取版本间差异并建立每个版本的测试基线;接着利用Synthesis模块将差异片段与发布说明中的任务相匹配,借助大语言模型将技术变更转化为编码智能体可理解的升级规范链;最后通过Generation模块在Docker隔离环境中逐步骤执行升级任务,并在每个版本节点上对智能体产生的代码变更进行回放与测试。整个流程确保了每个升级步骤的上下文完整性与可重复性。
特点
该数据集的核心特色在于其多步骤连续升级的评测范式,区别于传统仅关注单一版本变更的数据集,SWE-Chain要求编码智能体在完整的版本链上逐步实施迁移。每个版本对之间的测试结果被细化为六个精细化指标——包括与升级直接相关的已解决、未解决状态,以及与非升级相关的回归、保持、恢复、未恢复等类别,从而多维度刻画智能体在升级任务中的表现。此外,数据集支持Claude Code、Codex和OpenCode三种主流编码智能体的开箱评测,并通过Docker容器化环境保证评测的隔离性与可复现性。
使用方法
使用者可以通过Hugging Face平台下载SWE-Chain数据集中的JSONL格式规范文件,随后在主机上安装并认证所选的编码智能体CLI工具。运行评测时,执行run.sh脚本并传入规范文件路径、智能体名称及模型标识,系统将自动在Docker容器中按版本顺序驱动智能体逐个完成升级任务。完成后,通过eval.sh脚本对生成的变更记录进行回放,执行目标版本的测试套件并依据预定分类指标计算得分。对于希望自定义评测链的研究者,数据集提供了完整的pipeline模块,支持通过packages.yaml配置新软件包、编写Dockerfile及Changlog抓取器,从而扩展至任意版本升级场景。
背景与挑战
背景概述
SWE-Chain数据集由研究团队于2025年创建,专注于评估编码智能体在连续软件包版本升级任务中的效能。在现代软件开发生态中,依赖库的持续迭代给项目维护带来严峻挑战,开发者需频繁处理多版本间API变更、功能弃用与兼容性修复。该数据集围绕Flask等代表性包构建从2.0.0至2.3.3的连续版本链,通过Docker隔离环境模拟真实升级场景,要求Claude Code、Codex、OpenCode等智能体逐步完成每个版本对的代码迁移。SWE-Chain的提出填补了多步升级基准的空白,为自动化代码迁移研究提供了标准化评估框架,对推动软件维护领域的智能体应用具有里程碑意义。
当前挑战
SWE-Chain致力于攻克两大核心挑战。领域层面,连续软件包升级涉及接口语义理解、变更影响分析与测试套件兼容性维护,现有基准多聚焦单步修复,难以评估智能体在多步上下文中的路径规划与错误回滚能力。构建过程中,团队需从海量发布说明与GitHub提交中提取结构化变更信息,通过差分分析匹配代码修改与测试用例的关联性,并合成智能体可理解的升级规范链。此外,跨版本测试基线的验证要求对每个版本独立构建Docker镜像并执行全量测试,确保评估的准确性,这一过程面临版本依赖冲突与计算资源消耗的双重挑战。
常用场景
经典使用场景
在软件工程与人工智能交叉领域,SWE-Chain数据集被广泛用于评估和优化代码生成智能体在连续软件包版本升级任务中的表现。该数据集精心设计了从低版本到高版本的渐进式升级链条,如Flask从2.0.0至2.3.3的序列,要求智能体在Docker隔离环境中逐步实施每个版本的变更。研究者通过该数据集可系统性地测试Claude Code、Codex、OpenCode等前沿编码智能体在多步骤、多版本升级场景下的代码修正能力、版本兼容性处理技巧以及跨版本知识迁移效果,为评估智能体的鲁棒性和细粒度软件维护能力提供了标准化的基准平台。
解决学术问题
SWE-Chain数据集精准解决了现有代码生成评测体系中缺乏对连续版本升级任务系统评估的学术空白。传统基准测试多聚焦于单步骤修复或孤立函数生成,忽略了实际软件维护中常见的多版本链式升级场景。该数据集通过构建升级相关测试与非升级相关测试的六类评分体系,使研究者能够量化分析智能体在解决升级特定问题的同时是否保持了原有功能的稳定性,从而揭示了智能体在版本演进过程中存在的回归问题与修复偏好。这一评测框架推动了代码智能体研究从静态任务向动态软件演化的范式转变,为理解智能体在复杂维护场景下的行为规律提供了关键理论支撑。
衍生相关工作
SWE-Chain数据集的提出催生了多项创新性的衍生研究工作。在数据层面,研究者借鉴其版本链条构建方法论,拓展出针对Java、Go等语言生态的跨包依赖升级数据集,形成更广泛的软件演进基准族。在算法层面,基于该数据集涌现出分层任务分解策略,将长链升级拆解为可并行处理的子任务集合,显著提升了智能体在长版本序列中的完成率。评测框架方面,后续工作引入了更加细粒度的代码变更类型分类,将升级任务进一步划分为API签名变更、配置参数迁移、测试用例适配等多维度能力评估,推动了代码智能体从黑盒测试向可解释性评估的深化发展。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作