Skip to content
AI-Daily-Builder

2026-09-09 — views

ExecCritic:分離測試與修復代理以提升程式碼效能

為什麼值得讀 將測試生成與程式碼修復分離,可防止錯誤共識與虛假信心,顯著提升代理可靠性。

ExecCritic 使用獨立的測試與修復代理及強化學習,提升 SWE-bench Verified 上的成功率。

聯合軌跡的問題

執行反饋是引導程式碼代理修復儲存庫的強大工具。然而,這種指導僅在測試準確捕捉問題所要求的行為時才有效。當代理生成的測試編碼了不完整或不正確的行為目標時,會產生重大挑戰。當同一軌跡同時編寫修補程式和測試時,它們的錯誤可能會一致,造成危險的虛假信心。這種一致性掩蓋了潛在問題,導致代理誤以為已解決問題,實際上卻未解決。

ExecCritic 架構

為了解決這個問題,研究人員引入了 ExecCritic,這是一個結合測試-驗證-修訂架構與角色特定強化學習配方的框架。核心創新在於將測試構建與原始碼修復分離。此架構採用兩個不同的代理,均以 Qwen-3.5-35B-A3B 為後端,並分別進行訓練。

第一個角色是測試代理,它獨立生成儲存庫原生的測試。這些測試隨後通過閉鎖式測試套件的篩選,以資格認證並凍結它們。第二個角色是修復代理,它根據凍結測試的執行反饋來修訂原始碼。關鍵在於,修復代理不會更改測試,確保在修復過程中評估標準保持穩定。

訓練與結果

該框架利用兩個不同的訓練階段。在「學習測試」階段,測試代理學習生成行為上有效的測試,這些測試能有效區分正確與錯誤的修補程式。在「測試改進」階段,修復代理學習直接解決任務和基於反饋的修訂。

在 SWE-bench Verified 上的評估突顯了測試質量的重要性。當保持基礎修復代理固定時,基礎測試代理生成的測試實際上將解決率從無測試基準的 61.2% 降低到 57.3%。相比之下,GPT-5.6-sol 生成的測試將解決率提高到 65.3%。這表明低劣的測試質量會主動損害效能。

角色特定的後訓練帶來了顯著的改進。後訓練的 Qwen 測試代理將其從基礎到黃金的成功率從 22.2% 提高到 62.2%。當組合兩個後訓練的 Qwen 代理時,系統達到了 72.6% 的成功率。這代表相對於原始無測試基準獲得了 11.4 個點的增益,且未在使用更強大的模型或評估時的 Oracle 反饋。ExecCritic 的程式碼已在 GitHub 上公開。

實戰筆記

開發人員應考慮在代理工作流程中將測試生成與程式碼修復解耦,以防止錯誤共識。投資於高質量、行為上有效的測試至關重要,因為低劣的測試會主動降低代理效能,而非提升它。


來源

標籤

請喝咖啡