SWE-CI
收藏资源简介:
SWE-CI 是首个专门评估 AI智能体维护仓库的能力的测评基准。它从Github中筛选了100对高质量代码提交版本,每一对都包含一份基准代码和一份参考代码,选取自同一个代码库的不同时期。SWE-CI要求AI智能体从基准代码开始维护,并以完全通过参考代码中的测试作为目标。通过量化代码演化序列持续保持功能正确性的程度,SWE-CI可以有效的衡量AI智能体维护代码的能力。
SWE-CI is the first benchmark specifically designed to evaluate the code maintenance capabilities of AI Agents. It curates 100 pairs of high-quality code commit versions from GitHub, where each pair comprises a baseline code and a reference code sourced from different periods of the same code repository. SWE-CI requires AI Agents to commence maintenance from the baseline code, with the objective of fully passing all tests included in the reference code. By quantifying the extent to which the code evolution sequence consistently maintains functional correctness, SWE-CI can effectively measure the code maintenance capabilities of AI Agents.
SWE-CI 数据集概述
数据集基本信息
- 数据集名称:SWE-CI
- 数据集定位:首个专门评估AI智能体维护仓库能力的测评基准。
- 核心目标:评估AI智能体在维护代码库时,不仅确保当前代码功能正确,更要降低代码在未来持续保持功能正确的开发难度。
- 数据来源:从GitHub中筛选。
- 数据规模:包含100对高质量代码提交版本。
- 数据构成:每一对代码提交版本包含一份基准代码和一份参考代码,均选取自同一个代码库的不同时期。
核心评估方法
- 评估任务:要求AI智能体从基准代码开始维护,以完全通过参考代码中的测试为目标。
- 评估核心:通过量化代码演化序列持续保持功能正确性的程度,衡量AI智能体维护代码的能力。
- 工作流模拟:引入双智能体协作工作流,模拟真实软件团队的持续集成循环(CI-loop):
- 架构师智能体:分析自动化测试系统提供的测试信息,进行失败归因、代码定位和需求设计,产出高层次自然语言需求文档。
- 程序员智能体:将需求文档翻译为明确代码行为规范,规划并实施代码维护。
- 迭代流程:反复执行「运行测试 → 定义需求 → 修改代码」的闭环流程,模拟真实软件开发迭代周期。
评估指标
- 主要指标:平均正则改变(Average Normalized Change, ANC)。
- 指标定义:
- 符号定义:
- $p_i^{(j)}$:第 $j$ 个任务在第 $i$ 次迭代时代码通过的单元测试数量。
- $p_0^{(j)}$:第 $j$ 个任务迭代开始前初始代码所通过的单元测试数量。
- $p_{ast}^{(j)}$:第 $j$ 个任务中需要通过的单元测试总数(即参考代码通过的测试数)。
- $N$:最大迭代轮次。
- $M$:数据集中的任务总数。
- 正则改变(Normalized Change, NC)定义:
$$
a_i^{(j)}=egin{cases}
dfrac{p_i^{(j)}-p_0^{(j)}}{p_ast^{(j)}-p_0^{(j)}}, & ext{if} p_i^{(j)} geq p_0^{(j)}
dfrac{p_i^{(j)}-p_0^{(j)}}{p_0^{(j)}}, & ext{if} p_i^{(j)} < p_0^{(j)} end{cases} $$ - 平均正则改变(ANC)定义: $$ { m ANC} =frac{1}{MN}sum_{j=1}^Msum_{i=1}^N a_i^{(j)} $$
- 符号定义:
- 指标意义:综合考虑智能体在代码维护全部周期的功能正确性变化,作为智能体维护代码能力的可靠度量。
数据集创新点
- 从「快照修复」到「演化追踪」:不再聚焦于单个Bug的修复,而是关注两个提交版本之间的演化轨迹,还原代码库动态演进过程。
- 从「静态需求描述」到「动态需求生成」:不依赖人工事先编写的Issue描述,以当前代码与参考代码的「测试差异(Test Gap)」作为生成需求文档的核心驱动力。
- 从「评估写正确的代码」到「评估写可维护的代码」:不仅关注单轮需求实现的正确性,更关心正确性在未来是否得到保持,通过持续追踪量化“维护能力”。
使用与获取
- 访问地址:
- GitHub仓库:https://github.com/SKYLENAGE-AI/SWE-CI
- HuggingFace数据集:https://huggingface.co/datasets/skylenage/SWE-CI
- 论文链接:即将发布。
- 系统要求:目前仅支持Linux操作系统和iFlow CLI。未来计划支持Windows操作系统、ClaudeCode CLI和OpenCode CLI。
- 参考开销:
- 硬件配置:32核CPU,64 GB RAM,约1 GB/s磁盘读写速度。
- 并发设置:16并发。
- API Key:至少支持16个并发请求的LLM API Key。
- 全量数据集运行时间:约48小时。
- 数据下载:全量数据集(full.csv)约需52.8 GB存储空间。
- 运行流程:主要包括环境安装、数据集下载、实验运行及结果查看步骤。




