讓 AI 自己打怪升級,Meta 用 Self-play RL 把 Coding 推向超級智慧

大家好,我是 PaperAgent,不是 Agent!

Meta FAIR & Meta TBD Lab & 卡內基等:朝著「超級智慧軟體工程 Agent」邁出了第一步。圖片

SSR(Self-play SWE-RL) 首次讓大模型在「零人類標註」的情況下,僅靠自生成 Bug + 自修復的左右互搏,就能在 SWE-bench 系列 benchmark 上穩定碾壓人類資料基線

為什麼這件事很重要?

Figure 1 展示了 SSR 的核心循環:

圖片

> 左:Bug-Injection Agent 生成含測試補丁的「Bug 制品」;右:Bug-Solving Agent 僅透過「測試補丁的逆」作為規格說明進行修復;二者共享同一套 LLM 權重,用 RL 同時更新。

資料標著天花板
舊範式(SFT/RLHF)
新範式(SSR Self-Play)
依賴 GitHub Issue/PR、人類寫好的自然語言描述與測試用例
只需要一份能跑起來的 Docker 鏡像(原始碼+依賴)
學的是「人類怎麼修 Bug」
學的是「自己如何製造並解決更難 Bug
資料隨訓練無限增殖

方法精要

3.1 最小假設——「裸倉庫」即可

  • 輸入:一個打好依賴的 Docker 鏡像
  • 不需要現成測試命令、Issue 描述、測試解析器、甚至語言類型標籤
  • 所有測試發現/解析/運行命令,都由 Injection Agent 現場探索出來

3.2 Bug 制品(Artifact)長什麼樣?

檔名
作用
bug_inject.diff
在業務程式碼裡植入 Bug
test_weaken.diff
會暴露 Bug 的斷言刪掉或弱化,製造「測試盲區」
test_script.sh
可執行腳本,跑測試並輸出文字日誌
test_parser.py
把文字日誌轉換成 {test_id: pass/fail} 的 JSON,供 RL 獎勵計算
test_files.txt
記錄哪些測試檔參與驗證,防止 Agent 靠改測試「作弊」

Figure 2 給出一個 test_weaken.diff 及其逆補丁——這就是Solver 端唯一收到的「規格說明書」

圖片

3.3 自博弈訓練流程

圖片
  1. Injection 角色
    • 策略:程式碼整體刪除 or git history 反 revert
    • 獎勵:r<sub>inject</sub> = ⎩⎨⎧ −1.0  −α  1−(1+α)s  一致性失敗  Bug 不可解(s=0)或太簡單(s=1)  理想難度(0<s<1)
    • 目標:把 solve-rate s 拉到 ~0.2(理論最優見論文 §B)
圖片
  1. Solver 角色
    • 只看到「逆測試補丁」+ 報錯倉庫
    • 獎勵:二進位制,全部測試通過 +1,否則 -1
    • 失敗嘗試 → 直接當成高階 Bug餵給下一輪自己,形成「錯題本
圖片
  1. 參數共享 + 同時 RL 更新兩個角色梯度一起回傳,讓模型同時學會「造難」和「解難」。
圖片

實驗結果

4.1 主結果

Figure 8 顯示在整個 150-step 訓練軌跡上,SSR 穩定自我提升,並全程壓制人類資料基線:

圖片
Benchmark
CWM-sft 起點
人類資料 RL
SSR(Self-Play)
Δ
SWE-bench Verified
22.1 %
25.3 %
35.7 %
+10.4
SWE-Bench Pro
21.1 %
24.4 %
32.2 %
+7.8

> 註:人類資料 RL = 同款鏡像 + 自然語言 Issue + 人工測試腳本;SSR 完全沒有這些。

4.2 消融實驗

Figure 9 給出三把 ablation 小刀:

圖片
  1. Injection-Only 或 Repair-Only 都會掉分 → 必須雙角色一起練
  2. Bug 植入策略
    • 直接瞎改 →  collapse 到一行 trivial 改值
    • Removal+History 融合 git 反 revert → 最逼真、分最高
  3. Solver 反饋 給 Injection 獎勵帶來的提升微弱;真正關鍵的是線上共同演化的分佈,而不是單點雜訊訊號。

理論洞察: challenger 的「最優解」

論文在 Appendix B 用博弈論證明:

  • 只要 challenger 的動作空間夠大(例如可以改測試),就能構造偽隨機 fail的 dominant strategy,讓 solver 永遠只能達到目標 solve-rate p*≈0.2,無法真正學到修復能力
  • 緩解方案:把 challenger 錨定在真實、多樣的程式碼庫上,並限制其策略空間不偏離「自然 Bug」——SSR 正是這樣做的。
圖片

最後

Self-play SWE-RL 第一次把「左右互搏」從圍棋、象棋搬到真實軟體倉庫,用零標註的方式讓模型自己製造課程、自己攻克難關,並持續拉出學習曲線。雖然離真正的「超級智慧」還有距離,但它給出了可落地的路徑:

讓 Agent 在無盡的真實程式碼裡自己「打怪升級」,而不是背誦人類的 Debug 筆記。

https://github.com/facebookresearch/cwmhttps://arxiv.org/pdf/2512.18552Toward Training Superintelligent Software Agents through Self-Play SWE-RL

延伸閱讀

    動手設計 AI Agents:(編排、記憶、外掛、workflow、協作)

    大模型雖好,但恕我直言:在 OCR 面前,開源小模型更香

    2026,新風向: 世界模型  × 具身智慧 最新綜述

    一篇最新自演化 AI Agents 全新範式系統性綜述


    每天一篇大模型 Paper 來鍛鍊我們的思維~已經讀到這了,不妨點個👍、❤️、↗️三連,加個星標⭐,不迷路哦~

    分享網址
    AINews·AI 新聞聚合平台
    © 2026 AINews. All rights reserved.