跳转至

daVinci-Env: Open SWE Environment Synthesis at Scale

日期: 2026-03-13
arXiv: 2603.13023
代码: OpenSWE
领域: LLM Agent / 软件工程
关键词: SWE agent, environment synthesis, Docker, training data, difficulty-aware curation

一句话总结

发布 OpenSWE——最大规模全透明 SWE Agent 训练框架,包含 45320 个可执行 Docker 环境(12.8K 仓库),通过多 Agent 合成管线 + 质量-难度感知过滤,用约 $1.47M 构建约 13000 条高质量轨迹,训练出的 32B/72B 模型在 SWE-bench Verified 上达 62.4%/66.0% SOTA。

研究背景与动机

  1. 领域现状: SWE Agent(自主修 bug、写代码)需要可执行可验证的 Docker 环境提供动态反馈。SWE-bench 开创了此方向,但只有几百个环境。

  2. 现有痛点:

    • 工业方案(SWE-Universe 等)规模大但不开源,基础设施不透明
    • 开源替代品(SWE-rebench)规模和仓库多样性不足
    • 环境构建成本极高,大多数学术组无法承担
    • 更关键的是:原始环境存在 PR-Issue 不对齐(PR 实际没解决 issue)和太过简单(issue 直接给出了答案)的质量问题
  3. 核心矛盾: 单纯扩大规模不够——不可解和太简单的环境浪费训练资源,需要恰当难度的环境才能最大化学习效率。

  4. 切入角度: 规模化构建 + 难度感知过滤——先大量合成,再精心筛选。

  5. 核心 idea: 多 Agent 合成管线(64 节点集群自动化)+ 质量-难度感知过滤(排除不可解/太简单的环境)→ 开源全部基础设施。

方法详解

整体框架

GitHub PR 收集 → 四阶段过滤 → 仓库探索 Agent → Dockerfile 构建 Agent → 评估脚本构建 Agent → 测试分析 Agent → 迭代修复 → 难度感知过滤 → 轨迹采样 → SFT 训练。

关键设计

  1. 多 Agent 合成管线:

    • 仓库探索 Agent:受限 API(browse/search/digest)进行低成本目标检索
    • Dockerfile Agent:预构建 Python 2.7-3.14 基础镜像 + 本地仓库缓存 + 层感知 prompt 优化
    • 评估脚本 Agent:识别相关测试并合成新测试用例,嵌入退出码标记
    • 测试分析 Agent:解析执行结果,提供反馈驱动迭代修复
    • 64 节点分布式集群部署
  2. 质量-难度感知过滤:

    • 排除 PR-Issue 不对齐:PR 解决的不是 issue 描述的问题
    • 排除 trivial 实例:issue 直接指明了修改文件和内容
    • 难度评估:用基线模型试解,保留难度适中的环境
    • 从 45320 个环境筛选到约 9000 个高质量环境
  3. 成本投入:

    • 环境构建:$891K
    • 轨迹采样和策展:$576K
    • 总计:约 $1.47M
    • 最终产出:~13000 条高质量训练轨迹

训练策略

  • 基于 Qwen2.5 系列(32B/72B)做 SFT
  • 在 OpenHands/SWE-agent 两种 scaffold 上评测

实验关键数据

SWE-bench Verified

模型 SWE-bench Verified
OpenSWE-72B 66.0%
OpenSWE-32B 62.4%
SWE-rebench 训练 ~55%

数据规模分析

训练数据量 性能
2K 轨迹 ~52%
6K 轨迹 ~58%
13K 轨迹 ~62%
趋势 对数线性,无饱和

关键发现

  • 数据规模和难度过滤互补:单独增加规模或单独过滤都不够,两者结合效果最佳
  • 对数线性 scaling:额外高质量环境持续带来收益,未观察到饱和
  • 跨域迁移增益:SWE 训练意外提升数学推理(+12 分)和科学推理(+5 分),不损害事实回忆
  • 超越 SWE-rebench 训练的模型在所有设置下

亮点与洞察

  • 全透明开源是最大亮点:不只开放数据,还开放完整合成管线和所有 Dockerfile——社区可以复现和扩展
  • 难度感知过滤的洞察很重要:不是所有真实 GitHub PR 都适合训练——太简单/不可解的环境不仅浪费算力,还可能引入噪声
  • SWE→数学/科学的正迁移出乎意料——解 real-world bugs 训练的推理能力可以泛化

局限性 / 可改进方向

  • 仅覆盖 Python,其他语言(Java、C++、TypeScript)未涉及
  • $1.47M 的成本对大多数团队仍然昂贵
  • 难度评估依赖基线模型的通过率,可能受模型偏差影响
  • 环境时效性:GitHub 仓库随时间变化,环境可能失效

评分

  • 新颖性: ⭐⭐⭐⭐ 多 Agent 合成管线+难度感知过滤的系统工程创新
  • 实验充分度: ⭐⭐⭐⭐⭐ 规模分析、消融、跨域迁移、多 scaffold 覆盖全面
  • 写作质量: ⭐⭐⭐⭐ 系统描述详尽
  • 价值: ⭐⭐⭐⭐⭐ 对 SWE Agent 社区价值巨大——填补了大规模开源训练数据的空白