跳转至

SWE-rebench: An Automated Pipeline for Task Collection and Decontaminated Evaluation of Software Engineering Agents

会议: NeurIPS 2025
arXiv: 2505.20411
代码: https://huggingface.co/datasets/nebius/SWE-rebench
领域: Agent / 代码生成
关键词: SWE-bench, 数据污染, 自动化流水线, Agent评估, 软件工程

一句话总结

构建全自动化流水线从 GitHub 持续挖掘真实软件工程交互任务,生成 21,000+ 可执行 Python 任务的 SWE-rebench 数据集和去污染 benchmark,揭示部分模型在 SWE-bench Verified 上的性能存在污染膨胀问题(如 DeepSeek-V3 在 SWE-bench 上 39.7% vs SWE-rebench 上 21.3%)。

研究背景与动机

领域现状:基于 LLM 的软件工程 Agent 在 SWE-bench 等 benchmark 上取得进展,但训练数据(特别是交互式任务数据)稀缺且多为手动策划(如 SWE-Gym 仅 ~2400 任务),评估方面 SWE-bench 自 2023 年底公开后面临数据污染风险。

现有痛点: - 训练数据:RL 训练需要交互式 + 可验证的任务,但软件工程的环境配置复杂性使得大规模自动化采集困难 - 评估污染:静态 benchmark 随新模型发布迅速过时,模型可能在预训练/后训练中暴露于 SWE-bench 数据 - 评估不可比:不同团队使用不同脚手架、重试机制、best-of-N 策略,难以公平比较模型原始能力 - 结果方差大:Agent 轨迹的随机性导致单次运行结果不具代表性

核心矛盾:SWE 领域缺乏像数学那样的大规模可验证交互数据集,现有 benchmark 的污染问题使评估结果可信度降低。

本文目标 构建一个全自动化、可持续的 SWE 任务挖掘流水线,同时提供不断更新的去污染评估基准。

切入角度:四阶段自动化流水线——从 GitHub Archive 采集 PR → LLM 自动生成环境配置指令 → 执行验证 → 质量评估。通过持续更新保持基准新鲜度。

核心 idea:全自动化从 GitHub 挖掘可执行 SWE 任务,持续更新以避免污染,并用标准化脚手架公平评估模型真实能力。

方法详解

整体框架

四阶段流水线:(1) 初步任务采集——从 GitHub Archive 下载 PR 并过滤;(2) 自动环境配置——用 LLM(Qwen2.5-72B)从 README/Dockerfile 等提取安装指令;(3) 执行验证——在容器中安装环境、运行测试、验证任务可解性;(4) 质量评估——用微调的 LLM 自动评估 issue 清晰度、难度、测试正确性。

关键设计

  1. 全自动环境配置(Stage 2)

    • 功能:用 LLM 自动从仓库文件(README、setup.py、Dockerfile 等)提取安装指令,替代人工配置
    • 核心思路:LLM 扫描仓库文件 → 提取结构化 JSON 安装配方 → 生成最多 3 个候选配方。如果安装/测试失败,LLM 分析错误日志并修正配方。按 major.minor 版本分组共享环境
    • 设计动机:SWE-bench 和 SWE-Gym 都依赖人工配置环境,限制了规模(SWE-bench 仅 12 个仓库)。自动化使覆盖 3468 个仓库成为可能,31% 的仓库成功配置
  2. 执行验证(Stage 3)

    • 功能:在容器中安装环境、运行测试补丁、验证"先失败后通过"的模式
    • 核心思路:三个条件——(a) 至少一个测试在补丁前失败;(b) 失败的测试在补丁后全部通过;(c) 补丁前通过的测试补丁后仍通过。用 TractoAI 分布式平台并行执行
    • 设计动机:确保任务确实可解且测试有效——这是 RL 训练的基础要求,否则 Agent 可能因为任务缺陷而被错误惩罚
  3. 自动质量评估(Stage 4)

    • 功能:用微调的 Qwen 2.5-72B 预测三个质量标签:Issue 清晰度(79% acc)、任务复杂度(81% acc)、测试正确性(67% acc)
    • 核心思路:使用 SWE-bench Verified 的人工标注训练,输入 issue 描述 + 解法补丁 + 测试补丁,预测质量标签
    • 设计动机:21K 任务不可能全部人工检查。自动标签虽不完美,但比启发式方法(如文件修改数)更精确,给用户提供了灵活的过滤能力
  4. 去污染 Benchmark 设计

    • 功能:294 个可执行任务(来自 169 个仓库),使用标准化 ReAct 脚手架评估所有模型
    • 核心思路:
      • 统一脚手架:所有模型用相同的最小 ReAct 框架、相同提示、默认超参、128K 上下文
      • 时间戳去污染:精确追踪 issue/PR 创建时间,标记可能受污染的评估
      • 多次运行统计:每个模型运行 5 次,报告均值 ± SEM 和 pass@5
    • 设计动机:消除脚手架差异对评估的影响,揭示模型的"裸能力"

损失函数 / 训练策略

本文主要是数据集和指标管道,不涉及 Agent 训练。质量评估的 Qwen 微调用 SWE-bench Verified 的标注做监督学习。

实验关键数据

主实验(SWE-rebench Mar-Apr 2025 去污染子集)

模型 Resolved% SEM Pass@5%
GPT-4.1 26.7 1.09 39.0
DeepSeek-V3-0324 21.3 0.98 32.4
DeepSeek-V3-1226 21.9 1.44 31.4
Qwen3-235B no-think 16.6 0.93 25.7
Qwen3-32B no-think 13.7 1.03 26.7
LLaMA-4-Maverick 12.2 1.69 27.6
LLaMA-3.3-70B 11.2 0.47 22.9
Qwen2.5-72B 9.3 1.26 19.0

污染对比(SWE-bench Verified vs SWE-rebench)

模型 SWE-bench Verified SWE-rebench 差距
DeepSeek-V3-0324 39.7% 21.3% -18.4%
Qwen2.5-72B 24.2% 9.3% -14.9%
LLaMA-3.3-70B 19.6% 11.2% -8.4%
Qwen2.5-Coder-32B 11.0% 3.2% -7.8%

关键发现

  • 部分模型在 SWE-bench Verified 上可能存在严重的性能膨胀:DeepSeek-V3-0324 在 SWE-bench 上 39.7% 但在去污染的 SWE-rebench 上仅 21.3%(差距 18.4%),强烈暗示数据污染
  • DeepSeek V3 两个版本在 SWE-rebench 上性能相近(~21%),但在 SWE-bench 上差异大(35% vs 40%):后者可能是3月版本被更多 SWE-bench 数据污染
  • Qwen3 的 think 模式没有优势:no-think 版本甚至略优,说明 SWE 任务中长思考不一定有帮助
  • LLaMA-4-Maverick 的 pass@5 远高于 Resolved:表明模型有潜力但缺乏可靠性
  • Qwen2.5-Coder 在脚手架跟随方面很弱:经常幻觉环境响应或陷入格式错误循环

亮点与洞察

  • 全自动化流水线是最大贡献:从手动策划 12 个仓库(SWE-bench)到自动覆盖 3468 个仓库,这种规模化能力对 RL 训练 SWE Agent 的意义重大
  • 时间戳去污染是简单但有效的设计:通过追踪 issue 创建日期与模型发布日期的关系来标记污染,虽然不完美(模型可能在发布前就见过数据),但提供了有用的透明度
  • 标准化评估范式的价值:统一脚手架让我们看到模型的"裸能力"——很多在 SWE-bench 上表现好的模型其实是被工程化的脚手架加持,而不是模型本身更强
  • 21K 任务的数据集对 RL 训练 SWE Agent 非常有价值:之前 SWE-Gym 仅 2400 任务,SWE-rebench 提供了近 10 倍的规模

局限与展望

  • 仅覆盖 Python 项目(>75% Python LOC),未扩展到其他语言
  • 环境配置成功率仅 31%——大量有价值的任务因环境问题被丢弃
  • 质量评估模型的准确率有限(测试正确性仅 67%),可能引入噪声
  • 去污染方法依赖时间戳,无法检测模型是否在训练时见过被修改的版本
  • Benchmark 仅 294 个任务(vs SWE-bench Verified 500 个),统计能力有限
  • 未实际用 SWE-rebench 数据集训练 Agent 来验证其作为 RL 训练数据的效果

相关工作与启发

  • vs SWE-bench: SWE-bench 是手动策划的标杆,SWE-rebench 是自动化的替代方案。两者的性能差距量化了污染风险
  • vs SWE-Gym: SWE-Gym ~2400 任务来自少量仓库,SWE-rebench 21K+ 任务来自 3468 仓库,规模和多样性大幅提升
  • vs LiveCodeBench(代码生成): 类似的"持续更新避免污染"理念,但 SWE-rebench 针对的是更复杂的交互式 Agent 任务而非单次代码生成

评分

  • 新颖性: ⭐⭐⭐⭐ 全自动化流水线和去污染 benchmark 的组合是重要的系统贡献,但技术上没有根本性创新
  • 实验充分度: ⭐⭐⭐⭐ 覆盖 13 个模型 × 多次运行,污染分析令人信服;但缺少 Agent 训练实验
  • 写作质量: ⭐⭐⭐⭐ 流程描述清晰,表格信息密度高
  • 价值: ⭐⭐⭐⭐⭐ 为 SWE Agent 社区提供了急需的大规模训练数据和可信评估框架

实验关键数据