Toward Training Superintelligent Software Agents through Self-Play SWE-RL

📄 arXiv: 2512.18552v1 📥 PDF

作者: Yuxiang Wei, Zhiqing Sun, Emily McMilin, Jonas Gehring, David Zhang, Gabriel Synnaeve, Daniel Fried, Lingming Zhang, Sida Wang

分类: cs.SE, cs.AI, cs.CL, cs.LG

发布日期: 2025-12-21


💡 一句话要点

提出Self-play SWE-RL,通过自博弈强化学习训练超智能软件Agent

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 自博弈学习 强化学习 软件Agent 代码修复 超智能 LLM 软件测试

📋 核心要点

  1. 现有软件Agent依赖人工标注数据,限制了其智能水平,难以达到超智能。
  2. Self-play SWE-RL (SSR) 通过自博弈强化学习,使Agent在真实代码库中自主学习。
  3. 实验表明,SSR在软件Bug修复任务中实现了显著的自我提升,超越了人工数据基线。

📝 摘要(中文)

本文提出Self-play SWE-RL (SSR),旨在探索训练超智能软件Agent的新范式。与依赖人工标注数据(如GitHub issue和pull request)的现有方法不同,SSR仅需沙盒化的代码仓库及依赖项,无需人工标注的issue或测试。该方法基于真实代码库,通过自博弈强化学习训练LLM Agent,使其迭代地注入并修复复杂度递增的软件Bug,每个Bug由测试补丁而非自然语言描述来形式化定义。在SWE-bench Verified和SWE-Bench Pro基准测试中,SSR实现了显著的自我提升(分别提升10.4和7.8个点),并在整个训练过程中始终优于人工数据基线,尽管评估是在自博弈中未出现的自然语言issue上进行的。这些初步结果表明,Agent可以通过自主地从真实软件仓库中获取广泛的学习经验,最终实现超越人类能力的超智能系统,从而理解系统构建方式、解决新挑战并自主创建新软件。

🔬 方法详解

问题定义:现有软件Agent的训练依赖于大量人工标注的数据,例如GitHub issues和pull requests,以及人工设计的测试用例。这种依赖限制了Agent的学习能力和泛化能力,使其难以达到超智能水平。现有的方法也难以模拟真实软件开发中的复杂场景和挑战。

核心思路:本文的核心思路是利用自博弈强化学习,让Agent在真实的代码库中自主学习。Agent通过不断地注入和修复软件Bug,来提升其对代码的理解和修复能力。这种自博弈的方式可以模拟真实软件开发中的迭代过程,使Agent能够更好地适应各种复杂场景。

技术框架:SSR的整体框架包括以下几个主要模块:1) 环境:沙盒化的代码仓库,包含源代码和依赖项。2) Agent:基于LLM的Agent,负责注入和修复Bug。3) 奖励函数:根据Agent修复Bug的成功率来计算奖励。4) 自博弈循环:Agent不断地注入Bug,然后尝试修复自己或其他Agent注入的Bug,通过强化学习来优化策略。

关键创新:SSR最重要的技术创新点在于其自博弈的学习方式。与传统的监督学习方法不同,SSR不需要人工标注的数据,而是通过Agent之间的博弈来生成训练数据。这种方式可以大大降低对人工标注的依赖,并且可以模拟真实软件开发中的复杂场景。另一个创新点是使用测试补丁来形式化定义Bug,而不是使用自然语言描述。这种方式可以提高Bug的准确性和可复现性。

关键设计:在SSR中,Agent使用LLM作为其核心模型,并使用强化学习算法(例如Proximal Policy Optimization, PPO)来优化其策略。奖励函数的设计至关重要,需要平衡Agent注入Bug的难度和修复Bug的成功率。此外,还需要设计合适的探索策略,以鼓励Agent尝试不同的Bug注入和修复方法。具体的参数设置和网络结构在论文中有详细描述,但此处不赘述。

🖼️ 关键图片

img_0

📊 实验亮点

Self-play SWE-RL在SWE-bench Verified和SWE-Bench Pro基准测试中取得了显著的成果。在SWE-bench Verified上,SSR实现了10.4个点的自我提升,在SWE-Bench Pro上实现了7.8个点的自我提升。此外,SSR在整个训练过程中始终优于人工数据基线,表明其具有强大的学习能力和泛化能力。

🎯 应用场景

Self-play SWE-RL具有广泛的应用前景,例如自动化软件测试、代码修复、漏洞挖掘和软件开发。通过训练超智能软件Agent,可以显著提高软件开发的效率和质量,降低开发成本。此外,该方法还可以应用于其他领域,例如机器人控制、游戏AI和自然语言处理。

📄 摘要(原文)

While current software agents powered by large language models (LLMs) and agentic reinforcement learning (RL) can boost programmer productivity, their training data (e.g., GitHub issues and pull requests) and environments (e.g., pass-to-pass and fail-to-pass tests) heavily depend on human knowledge or curation, posing a fundamental barrier to superintelligence. In this paper, we present Self-play SWE-RL (SSR), a first step toward training paradigms for superintelligent software agents. Our approach takes minimal data assumptions, only requiring access to sandboxed repositories with source code and installed dependencies, with no need for human-labeled issues or tests. Grounded in these real-world codebases, a single LLM agent is trained via reinforcement learning in a self-play setting to iteratively inject and repair software bugs of increasing complexity, with each bug formally specified by a test patch rather than a natural language issue description. On the SWE-bench Verified and SWE-Bench Pro benchmarks, SSR achieves notable self-improvement (+10.4 and +7.8 points, respectively) and consistently outperforms the human-data baseline over the entire training trajectory, despite being evaluated on natural language issues absent from self-play. Our results, albeit early, suggest a path where agents autonomously gather extensive learning experiences from real-world software repositories, ultimately enabling superintelligent systems that exceed human capabilities in understanding how systems are constructed, solving novel challenges, and autonomously creating new software from scratch.