跳到內容

Technology

新聞|HarnessAdapt-RL:強化學習時一起演化 coding agent 的工具與 hook

一篇新的 arXiv 論文把 coding agent 當成「模型加 harness」一起訓練:老師模型在 GRPO 訓練中途依當前策略的軌跡改工具與 hook,另外給不含答案的「機制層級」修復提示。整理方法、SWE-bench 三個版本的數字、幾個關鍵對照與限制。

Published: at 09:00 AM
編輯本頁下載圖卡

重點

要解決的問題

coding agent 由兩部分組成:模型決定動作,harness 提供指引、工具與執行回饋。常見的訓練只更新模型、harness 固定。另一條路線(Meta-Harness、HarnessEvolve 等)反過來,固定模型只優化 harness。Co-Harness 則是輪流更新 harness 與對軌跡做 SFT。

作者的觀察是,訓練過程中暴露的問題會隨著策略改變。一個例子:第二個 epoch 時策略跑的驗證測試變少,即使測試工具與提醒都還在。

配置(第二個 epoch 的 harness)第 1 epoch第 2 epoch變化
GRPO(H₀)2.871.58−45%
Skill-Mechanism(H₀)3.161.78−44%
H₁+Mechanism(H₁)2.831.21−57%

(每條訓練軌跡平均執行測試次數,取各 epoch 前 10 次更新。)

固定的 harness 跟不上這種變化,所以他們讓 harness 在強化學習中途跟著調整。

方法

兩個老師模型各管一件事。

修復提示(skill):凍結的 GLM-5.3-Flash 比較同一個任務的兩條當前策略軌跡(盡量一成一敗),寫出「什麼情況下、為什麼要用某種修復策略」,去掉檔案路徑、程式符號與程式碼。提示平均約 100 個英文字,抓到洩漏答案就重生成。提示只在訓練時用,評測與部署時拿掉。

工具與 hook 演化:GPT-5.6 Sol 透過 Codex 讀當輪所有軌跡,找出跨任務重複出現的互動問題,設計並實作一個候選修改。程式碼不經人工修改,先過格式、schema 與 smoke test,再拿來跟現有 harness 比:同一個策略、同一批 46 個任務、每邊 184 條 rollout。

選擇規則看兩個比率:

候選修改只有在兩者都沒下降、至少一個上升時才採用。每個 epoch 開頭最多五輪演化,之後 harness 固定,策略繼續用 GRPO 訓練。

訓練設定:

主要數字

pass@1(%),評測時不給提示,各配置保留自己的最終 harness:

配置VerifiedMultilingualPro平均
基底模型42.219.331.831.1
GRPO47.824.733.335.3
OpenHands-GRPO51.433.332.339.0
Skill-Hint(接近答案)45.422.330.432.7
Skill-Mechanism(機制層級)52.228.034.638.3
Skill-Bank(通用技能庫)48.220.333.834.1
Pre-Evolved55.233.037.041.7
H₁+Mechanism55.432.737.741.9
HarnessAdapt-RL57.637.339.744.9

幾個對照各自回答一個問題:

演化出了什麼

兩個 epoch 共九個候選,採用六個。

第一個 epoch 主要是管 context 與提交:

第二個 epoch 轉向測試與修正:

被拒絕的例子也有參考價值。一個「請策略對照需求自我審查」的 hook 讓通過率相對提高 2.7%,可訓練率卻降 7.0%,因此被拒;之後老師把審查跟 view_diff 綁在一起重新提案,兩個比率都上升才被採用。

部署時要帶著哪些東西

把訓練好的模型權重固定,分別配上基礎 harness H₀ 與最終的 H₂:

模型HarnessVerifiedMultilingualPro
Skill-MechanismH₀52.228.034.6
Skill-MechanismH₂54.233.336.9
HarnessAdapt-RLH₀52.829.635.0
HarnessAdapt-RLH₂57.637.339.7

兩個觀察:

另外,把已經演化出來的 H₂ 拿去從頭訓練新的策略(Frozen-H₂+Mechanism),分數與完整方法差距在 1 個百分點內。一旦找到 harness,下一次訓練不必重跑演化。但在基底模型上先搜尋的 Pre-Evolved 找不到同樣好的 harness,所以這個重用結果仍需要先跑過一次訓練中的演化。

成本

整個訓練排程的 rollout 數:

配置訓練準備(用來生提示)比較候選合計
GRPO16,9280016,928
Skill 系列8,4646,280014,744
HarnessAdapt-RL8,4646,2803,31218,056

提示生成另需 1,570 次老師請求,harness 演化 10 次老師呼叫;論文沒有報告老師的 token 用量。rollout 數也不等於算力,因為各配置的軌跡長度不同。部署時不用老師,只多了工具與 hook。

限制

參考資料

註釋

編輯本頁

Podcast

關於語音摘要

此語音摘要由 Google NotebookLM 提供,不完全代表作者本人對文章的理解。