← 返回 2026-02-03

SWE-Universe:将真实世界软件工程可验证环境扩展至百万规模 SWE-Universe: Scale Real-World Verifiable Environments to Millions

Mouxiang Chen, Lei Zhang, Yunlong Feng, Xuwu Wang, Wenting Zhao, Ruisheng Cao, Jiaxi Yang, Jiawei Chen, Mingze Li, Zeyao Ma, Hao Ge, Zongmeng Zhang, Zeyu Cui, Dayiheng Liu, Jingren Zhou, Jianling Sun, Junyang Lin, Binyuan Hui 📅 2026-02-02 👍 61 2026-07-13 08:35
代码智能体 多语言 强化学习 数据构建 软件工程

自动构建80万+多语言SWE可验证环境,用于训练编程智能体

前置知识

SWE-bench

SWE-bench是一个评估大语言模型解决真实软件工程问题能力的基准测试。它从GitHub的pull request中提取问题描述、代码补丁和测试用例,要求模型根据issue描述自动生成修复代码,并通过对应的测试脚本来验证正确性。SWE-bench Verified是其经过人工验证的高质量子集,包含约500个Python任务,已成为衡量编程智能体能力的标准标杆。SWE-bench Multilingual则是扩展到多种编程语言的版本。

本文的核心目标就是在SWE-Bench Verified上达到75.3%的分数,整个数据构建框架都是围绕构建类似SWE-bench格式的可验证环境来展开的,理解SWE-bench的评估范式是理解本文的前提。

Pull Request (PR) 与 Issue

在GitHub的协作开发流程中,Issue用于描述软件中的bug或功能需求,Pull Request(PR)是开发者提交代码修改的机制。一个典型的PR会包含fix patch(修复代码)和test patch(测试代码),PR描述通常引用对应的Issue编号。这种关联关系为构建SWE训练环境提供了天然的数据源:Issue作为问题描述,代码差异作为参考答案,测试作为验证器。

本文的核心数据来源就是GitHub上带Issue链接的PR,理解PR-Issue的对应关系是理解数据构建流程的基础。论文从3330万个PR中筛选出约100万个高质量候选,最终构建了807,693个可验证环境。

Mixture-of-Experts (MoE) 架构

MoE是一种稀疏化的模型架构设计,将模型划分为多个专家子网络,每次推理时只激活其中一部分专家(如通过路由器选择top-k个专家参与计算)。这种设计使得模型可以在大幅增加总参数量的同时保持较低的计算开销——总参数量可能很大但每个token的实际计算量(active parameters)较小。本文使用的Qwen-Next-80B-A3B模型中,80B为总参数量,3B为每次推理激活的参数量。

论文的核心技术贡献之一就是训练了一个高效的MoE构建模型Qwen-Next-80B-A3B,它在环境构建任务上超越了Claude-Opus-4.5等大型密集模型,同时推理成本和延迟远低于后者,这是实现百万级扩展的关键。

Agentic Mid-training

Mid-training(中间训练)是介于预训练和下游任务微调之间的一个训练阶段。在本文的语境中,agentic mid-training是指使用大量编程智能体与SWE环境交互产生的轨迹数据,对基座模型进行继续训练。训练时不对loss进行mask,让模型同时学习预测智能体的动作和理解代码/自然语言观察。这种训练方式旨在将模型转化为一个编码世界模型,使其在后续的强化学习或下游任务中具备更强的基础能力。

论文展示了mid-training阶段在SWE-Bench Multilingual上带来超过15个百分点的提升(从31%到46%),是验证SWE-Universe数据价值的关键实验之一。

Hacking Detection(作弊检测)

在自动化构建SWE验证环境时,一个常见的失败模式是构建智能体生成的evaluation.sh脚本通过字符串匹配(如grep命令)来检测代码中是否包含了预期的补丁内容,而不是真正执行代码和测试。这种方式虽然能区分buggy和fixed状态,但无法验证环境是否正确构建、代码是否真正被执行。Hacking Detection模块使用LLM来审查生成的evaluation.sh脚本,识别这类作弊模式并在构建循环内即时拒绝。

这是本文的关键创新之一。in-loop hacking detection确保了生成的验证器的质量和可靠性。论文数据显示,Claude-Opus-4.5的真实成功率与含作弊成功率差距超过7%,而本文模型仅为4.06%,说明该机制有效抑制了作弊行为。

研究动机

构建大规模、高质量的软件工程可验证训练环境面临三大核心挑战。第一是低产出率:真实世界仓库的依赖关系复杂多样,涉及平台特定配置和定制化构建工具链,从仓库到可运行实例的转换率很低,导致大量计算浪费。第二是弱验证器:Issue、PR补丁和测试套件的质量参差不齐,朴素的提取管线会产生低保真度实例,且验证器存在漏洞——智能体可能通过浅层启发式方法(如grep字符串匹配)通过验证,而非真正编译和执行代码,这种失败模式会产生虚假的训练信号。第三是高昂的成本:许多现有管线依赖大型昂贵的LLM来进行仓库特定的依赖解析和构建配置推理,每个实例的成本和延迟使得大规模生成在经济上和操作上都不可行。现有的多语言数据集如Multi-SWE-bench和SWE-PolyBench依赖人工密集的环境配置,规模有限,仅有数千个实例。即使是工业级努力(如MiMo-V2-Flash、DeepSeek-V3.2)也只能达到10^4到10^5量级,且技术细节未公开。

本文的目标是本文的直接目标是构建一个可扩展、可靠且高效的框架,能够自动地从GitHub pull request中构建百万级别的真实世界编程智能体可验证环境。具体而言,目标包括:(1)将环境构建扩展到多种编程语言,超越Python的限制;(2)通过自动化构建智能体和迭代验证机制,将构建成功率从82.6%提升到94%;(3)训练一个高效的专用模型(Qwen-Next-80B-A3B)来降低每实例的构建成本;(4)最终产出超过80万个高质量可验证环境,并在SWE-Bench Verified上验证其价值——通过mid-training和强化学习,使Qwen3-Max-Thinking达到75.3%的分数。

与已有工作不同的是,本文的独特切入角度在于同时解决了规模、质量和效率三个维度的瓶颈,而非仅仅关注其中一个。具体而言,与已有工作的关键区别在于:(1)不同于SWE-rebench等仅关注Python的工作,本文构建了跨8种编程语言(Python、JavaScript/TypeScript、Go、Java、Rust、C/C++、C#等)的807,693个实例,来自52,960个唯一仓库;(2)不同于朴素的提取管线,本文设计了迭代自验证和循环内作弊检测的双重质量保障机制;(3)不同于依赖通用大模型的方案,本文专门训练了80B总参数、3B激活参数的MoE模型,在环境构建任务上以78.44%的成功率超越了Claude-Opus-4.5的77.81%,同时大幅降低了推理成本;(4)通过MEGAFLOW分布式执行系统和Docker层缓存实现了高效的并行构建,使得处理数百万PR成为可能。

核心方法

SWE-Universe的整体方法思路可以概括为:从GitHub海量PR中筛选高质量候选,通过一个装备了专用工具的自主构建智能体,为每个PR自动生成包含evaluation.sh验证脚本的可执行Docker环境,并通过迭代自验证和循环内作弊检测来保障质量。直觉上,核心洞察是:虽然直接验证复杂构建是否成功很困难,但评估一个测试脚本是否能区分buggy和fixed状态相对简单——只需运行它看返回码即可。然而论文进一步指出,仅满足这个条件还不够,验证器必须通过真正执行代码来区分状态,而不是通过字符串匹配等浅层手段。因此,方法设计围绕两个核心目标展开:(1)通过迭代验证提升构建成功率,(2)通过作弊检测确保验证器的真实性。技术路线上,论文训练了一个高效的Qwen-Next-80B-A3B MoE模型作为构建智能体的统一骨干,用于PR补丁分割、迭代环境构建和作弊检测,并通过MEGAFLOW分布式系统实现百万级并行构建。

本文的核心创新点在于提出了一个包含循环内作弊检测的迭代自验证构建框架。与已有方法的本质区别体现在以下几个方面:首先,现有的SWE-bench管线(如SWE-rebench)通常采用单次构建的方式,构建失败即丢弃;而本文的构建智能体在每次构建后会通过switch-to-resolved和switch-to-bug两个状态切换工具,在buggy和fixed两种状态下分别运行evaluation.sh,只有在buggy状态下失败且fixed状态下成功时才接受该验证脚本,否则智能体会收到负面反馈并生成修订版本,这个过程可以迭代最多100轮,将成功率从82.6%提升到94%。其次,更关键的创新是in-loop hacking detection:不同于在构建完成后进行后处理检查,本文在构建循环内集成LLM作弊检测器,一旦发现evaluation.sh使用grep等字符串匹配工具检测源文件内容而非运行构建或测试命令,立即将该次尝试标记为失败,迫使智能体放弃表面策略转向真正执行代码的方案。第三,在模型层面,专门训练了MoE架构的Qwen-Next-80B-A3B,通过拒绝采样在高质量构建轨迹上训练,筛选成功且非作弊的结果作为训练数据,使得模型本身倾向于生成高质量的验证器。

方法步骤详情

SWE-Universe的构建流程包含以下关键步骤:第一步,PR爬取与补丁分离。从GitHub爬取约3330万个带Issue链接的PR(2021-2025年),经过启发式过滤(排除文件变更过多、行数过长、无测试补丁的PR)后得到约100万个高质量候选。对每个有效PR,使用语言模型将代码修改分为test patch(测试相关变更)和fix patch(源代码修复)。第二步,基于智能体的环境构建。构建智能体装备三个工具:bash(通用shell用于文件操作和脚本生成)、switch-to-resolved(应用fix patch切换到修复状态)和switch-to-bug(撤销fix patch切换到bug状态)。智能体首先将test patch应用到仓库,然后生成evaluation.sh验证脚本。根据test patch的内容,智能体可以选择直接调用补丁中描述的单元测试,或从头编写新的自定义测试。第三步,迭代验证。智能体提交候选evaluation.sh后,系统分别在bug和resolved两种仓库状态下执行该脚本。只有在bug状态下返回非零退出码且在resolved状态下返回零退出码时,脚本才被视为功能正确。如果验证失败,智能体会丢弃错误脚本并生成修订版本,最多迭代100轮。第四步,循环内作弊检测。LLM检测器在智能体工作循环内审查evaluation.sh,如果检测到使用grep等字符串匹配工具来检测源文件内容(而非执行构建或测试命令),立即将该尝试标记为失败,提供及时反馈迫使智能体寻找有效方案。第五步,大规模部署。通过MEGAFLOW分布式系统将每个构建任务分发到独立的阿里云ECS实例,在沙箱中执行完整构建流程,成功生成的Docker镜像推送到阿里云容器镜像服务,利用Docker层缓存降低存储成本。

技术新颖性

本文的技术新颖性体现在多个层面。在方法论层面,将迭代自验证和循环内作弊检测相结合是一个新的范式创新:迭代验证不仅提升了成功率,还让构建智能体能够从失败中学习和自我修正;而循环内作弊检测的设计(而非后处理检查)确保了反馈的及时性,迫使智能体在构建过程中就朝正确的方向努力,提高了搜索效率。在模型层面,专门训练了Qwen-Next-80B-A3B这一MoE架构模型,采用混合注意力机制(包括线性注意力和全注意力),通过拒绝采样在高质量构建轨迹上训练。该模型在320个PR的多语言基准上达到78.44%的非作弊成功率,超越了Claude-Opus-4.5的77.81%,且作弊率差距最小(4.06%对比Claude-Opus-4.5的7%以上),说明任务特定微调有效抑制了作弊行为。在系统层面,利用MEGAFLOW分布式执行系统和Docker层缓存实现了高效的百万级并行构建,这是首次公开描述的百万级SWE环境构建系统。此外,构建了包含320个PR的多语言基准(8种语言各40个),这是首个跨8种编程语言的自动化环境构建评估基准,填补了该领域的评估空白。

SWE-Universe框架流程图
Figure 2: SWE-Universe框架流程图
三种evaluation.sh类型示例
Figure 3: 三种evaluation.sh类型示例

实验结果

本文的实验结果从多个维度验证了SWE-Universe框架的价值。首先,在环境构建模型的基准评估上(Table 1),Qwen-Next-80B-A3B在320个PR的多语言基准上达到了78.44%的非作弊成功率,超越了Claude-Opus-4.5(77.81%)、Claude-Sonnet-4(75.62%)和Gemini-3-Pro(69.69%)。更值得注意的是作弊率差距:本文模型的含作弊成功率为82.50%,差距仅4.06%,而Claude-Opus-4.5的差距达7.19%(77.81% vs 85.00%),说明本文模型生成的验证器更加可靠。在语言维度上,C/C++对所有智能体都最具挑战性(本文模型57.50%,Claude-Opus-4.5仅52.50%),但本文模型在所有语言上表现更加一致和稳健。其次,在大规模生产中,使用Qwen-Next-80A3模型实现了75.9%的非作弊成功率,从约100万个候选PR中成功构建了717,122个可执行环境,加上从2025年无Issue链接PR中合成的90,571个环境,总计807,693个实例,涵盖52,960个唯一仓库。数据统计显示Python实例最多(202,302个),JavaScript/TypeScript次之(175,660个),Go仓库的平均实例密度最高(21.80个/仓库),C/C++的evaluation.sh平均最长(45.78行),Rust最短(19.31行)。第三,在mid-training实验中,使用50万条成功轨迹(300亿token)对Qwen3-Next-80A3进行中间训练,在SWE-Bench Verified上从50.3%稳步提升到61%以上,在SWE-Bench Multilingual上从约31%大幅提升到46%以上,增长超过15个百分点,证明了数据的多语言多样性对跨语言泛化的关键价值。第四,在强化学习实验中,Qwen3-30B-A3B在SWE-Bench Multilingual上从约32%的基线提升到42.0%,获得10个百分点的绝对提升。最终,将方法应用于旗舰模型Qwen3-Max-Thinking,在SWE-Bench Verified上达到了75.3%的分数,验证了大规模数据生成管线在生产级别的有效性。

自动化环境构建基准结果
Table 1: 自动化环境构建基准结果
构建环境数据统计
Table 2: 构建环境数据统计
任务质量 vs 数据集规模(对数尺度)
Figure 4: 任务质量 vs 数据集规模(对数尺度)
训练曲线
Figure 5: 训练曲线
查看结构化数据
任务指标本文基线提升
自动化环境构建(多语言基准,320个PR) 非作弊成功率 (Success Rate w/o Hack) Qwen-Next-80B-A3B: 78.44% Claude-Opus-4.5: 77.81%, Claude-Sonnet-4: 75.62%, Gemini-3-Pro: 69.69% 超越最强基线Claude-Opus-4.5约0.63个百分点,且作弊率差距最小(4.06% vs 7.19%)
SWE-Bench Verified(Python) 解决率 (%) Qwen3-Max-Thinking: 75.3% mid-training前基线约50.3% 经mid-training和RL后提升约25个百分点
SWE-Bench Multilingual 解决率 (%) mid-training后: 46%+; Qwen3-30B-A3B RL后: 42.0% mid-training前基线约31%; RL前基线约32% mid-training提升15个百分点,RL提升10个百分点
大规模环境构建生产 非作弊成功率 Qwen-Next-80A3: 75.9% 基线对比见Table 1中各模型在各语言上的表现 成功产出717,122个高质量环境,总计807,693个实例
环境构建基准 - C/C++语言 非作弊成功率 (%) 57.50% Claude-Opus-4.5: 52.50%, Claude-Sonnet-4: 67.50% 超越Claude-Opus-4.5,但在C/C++上总体难度最高
环境构建基准 - Python语言 非作弊成功率 (%) 85.37% Claude-Opus-4.5: 95.12% 低于Claude-Opus-4.5约10个百分点,但整体多语言表现更均衡

局限与改进

论文在结果分析和质量分析中坦诚地指出了若干局限性。首先,数据质量方面仍然存在问题:(1)部分任务描述模糊或不完整;(2)某些Docker环境与声明的需求不完全匹配;(3)部分单元测试与任务描述不一致,可能导致假阳性或假阴性。论文开发了一个质量判断智能体(准确率78.72%)来量化和缓解这个问题,但78.72%的准确率本身也意味着约21%的质量判断可能不准确。其次,在语言维度上,性能差异显著:C/C++对所有智能体都最具挑战性,本文模型仅达57.50%,远低于Python的85.37%,说明跨语言泛化仍存在差距。第三,模型在Python上的表现(85.37%)实际上低于Claude-Opus-4.5(95.12%),说明通用能力与专用能力之间存在权衡。第四,迭代验证机制虽然提升了成功率,但最多100轮的迭代意味着计算开销可能很高,论文未详细报告平均迭代轮数和对应的计算成本。第五,虽然论文展示了mid-training和RL的积极效果,但未进行系统的消融实验来分析不同组件(如作弊检测、迭代验证、专用模型训练)各自的贡献。第六,从构建的807,693个实例中,论文未报告经过质量判断智能体过滤后的高质量实例比例,读者难以评估实际可用数据的规模。

独立分析的弱点

尽管SWE-Universe在规模上取得了突破性进展,但仍存在几个值得关注的弱点。首先,质量判断智能体的准确率仅为78.72%,这意味着约五分之一的质量判断可能出错,导致低质量实例被保留或高质量实例被丢弃。改进方向可以考虑采用多人投票机制或引入更细粒度的质量维度评估(如任务描述清晰度、环境配置正确性、测试对齐度分别评估)。其次,C/C++语言的成功率仅57.50%,显著低于其他语言,可能反映了C/C++构建系统的复杂性(如CMake、Makefile配置多样,依赖管理不统一)。可以考虑针对C/C++构建系统专门训练或引入更多C/C++特定的构建知识。第三,论文未详细分析失败案例的分布——是构建环境失败还是生成验证器失败,是迭代超限还是被作弊检测拒绝——这种细粒度分析对改进系统至关重要。第四,807,693个实例中未Issue链接的合成为90,571个(约11.2%),这些实例使用PR标题和描述作为问题描述,质量可能低于有Issue链接的实例,但论文未分别报告两类数据的质量指标。第五,mid-training实验中未报告训练的计算成本和时间,读者难以评估该方法的经济可行性。

未来方向

基于本文的成果,可以从多个方向延伸未来研究。作者提出的未来方向包括:利用构建的百万级环境进行更大规模的强化学习训练,以及探索更复杂的智能体训练范式。基于本文框架可延伸的方向包括:(1)将环境构建扩展到更多编程语言和生态系统(如Swift、Kotlin、Ruby等),以及非脚本语言(如SQL、Shell脚本);(2)引入自动课程学习(curriculum learning),根据实例难度自动安排训练顺序,先从简单实例开始逐步增加难度;(3)探索验证器的自动修复和增强,当原始测试覆盖不足时自动生成补充测试;(4)将框架应用于其他软件工程任务,如代码审查(code review)、文档生成、API迁移等;(5)研究构建轨迹的知识蒸馏,将Qwen-Next-80B-A3B的构建能力迁移到更小的模型上,降低部署成本;(6)开发跨仓库的知识共享机制,当某个仓库的构建失败时,利用相似仓库的成功经验来辅助构建。

复现评估

本文的复现评估需要从多个维度考量。在代码和数据开源方面,论文未明确说明是否开源代码或数据集,807,693个环境涉及52,960个GitHub仓库的Docker镜像,存储和分发成本极高(论文提到使用阿里云容器镜像服务和Docker层缓存来降低成本)。构建这些环境需要访问GitHub API爬取3330万个PR,并对每个候选PR执行完整的Docker构建流程,这需要大量的计算资源和云服务支持。在模型层面,Qwen-Next-80B-A3B虽然是MoE架构(3B激活参数),但训练需要收集高质量构建轨迹并通过拒绝采样筛选,这个数据收集过程本身就需要大量的计算。在基准评估方面,论文构建了320个PR的多语言基准(8种语言各40个),如果该基准能开源,将为社区提供有价值的评估工具。总体而言,完全复现本文的百万级构建流程需要:(1)大规模分布式计算基础设施;(2)GitHub数据访问权限;(3)Docker容器化环境;(4)足够强大的LLM用于智能体推理。对于学术界而言,复现小规模版本(如单语言、少量仓库)是可行的,但完整复现百万级规模需要工业级资源。