機器之心編輯部
從大模型的提示詞到智能體的 Skills,看著進化了,但又沒有完全進化。
在智能體應用中,越來越多的程序員開始花大量時間寫 CLAUDE.md、Codex的 skill 文件、各種 Agent 的 system prompt。
手寫這些技能文檔,本質上是一種試錯的手工活。寫一版,跑幾個任務看看效果,覺得哪里不對再改,改完再跑。這個過程和之前手調 prompt 沒有本質區別,只是對象從一句話變成了一整份文檔。
這件事其實挺荒誕,我們本來是想讓更智能的 AI 幫我們干活的,結果現在反過來,我們在花大量精力教 AI 怎么干活。
這個問題似乎迎來了終點,微軟在本周開源了SkillOpt,一個把 Agent 技能文檔當作「可訓練參數」的文本空間優化框架,讓技能文檔自我進化。
![]()
- 官網鏈接:https://microsoft.github.io/SkillOpt/#idea
- Github 鏈接:https://github.com/microsoft/SkillOpt
- 論文鏈接:https://arxiv.org/abs/2605.23904
核心思路很簡單,不訓練模型權重,只訓練那份指導 Agent 行為的自然語言文檔。在 7 個目標模型、6 個基準測試、3 種執行環境(直接對話、Codex、Claude Code)的全部 52 個評測組合中,SkillOpt 訓練出的技能文檔全部達到最優或并列最優
Skills 也能優化訓練
SkillOpt 的核心洞察可以用一句話概括:Agent 的技能文檔就是它的「外部權重」,既然內部權重可以用梯度下降來優化,外部權重也應該有一套系統化的訓練方法。
![]()
SkillOpt 流程。凍結的目標模型使用當前技能執行;優化器模型提出有界的修改;保留的驗證決定候選是否成為新的當前技能。
訓練循環:前向傳播、反向傳播、參數更新
![]()
傳統深度學習的訓練循環是:前向傳播算 loss,反向傳播算梯度,用梯度更新權重。SkillOpt 把同樣的邏輯搬到了文本空間:
- Rollout(前向傳播):凍結的目標模型拿著當前版本的技能文檔去執行一批任務,記錄完整的執行軌跡,包括消息、工具調用、驗證反饋、最終得分。這一步產出的是「證據」,相當于神經網絡的前向傳播結果。
- Reflect(反向傳播):一個獨立的優化器模型分析這批執行軌跡。關鍵設計是,失敗案例和成功案例被分開反思。失敗的 minibatch 用來發現「哪些操作規則需要修正」,成功的 minibatch 用來確認「哪些現有規則在起作用,不能動」。這一步相當于計算「文本空間的梯度」,告訴系統技能文檔該往哪個方向改。
- Edit(參數更新):優化器模型基于反思結果,提出對技能文檔的結構化編輯操作:添加新規則(add)、刪除失效規則(delete)、替換需要修正的規則(replace)。
- Gate(驗證門控):候選的新技能文檔必須在一個 held-out 的驗證集上跑一遍,只有性能嚴格提升時才被接受。這一步防止過擬合,確保每次更新都是真正的改進。
整個循環跑多個 epoch,每個 epoch 內跑多個 step,和訓練神經網絡的節奏完全一致。
文本學習率:防止災難性遺忘
訓練神經網絡時,學習率太大會導致災難性遺忘,模型學了新東西就忘了舊東西。SkillOpt 在文本空間遇到了完全相同的問題:如果一次編輯改動太大,可能把之前學到的有效規則覆蓋掉。
解決方案是引入「文本學習率」(textual learning rate):每一步允許的編輯操作數量有上限。論文中默認設置為 lr=4,即每步最多 4 個 add/delete/replace 操作。這個約束迫使優化器每次只做小幅調整,保持訓練穩定性。
消融實驗驗證了這個設計的必要性:去掉學習率約束后,SearchQA 上的性能從 87.1% 降到 84.6%,SpreadsheetBench 從 77.5% 降到 75.7%,LiveMath 從 61.3% 降到 57.3%。
被拒絕編輯的緩沖區:負反饋記憶
另一個精巧的設計是 rejected-edit buffer。當一個編輯提案被驗證門控拒絕時,它不會被簡單丟棄,而是進入一個緩沖區。優化器在后續的反思階段可以看到這些「失敗的嘗試」,從而避免重復提出類似的無效編輯。
這相當于給優化器提供了負梯度信息:不僅知道該往哪走,還知道哪些方向已經試過了走不通。
消融實驗同樣證實了它的價值:去掉 rejected buffer 后,SpreadsheetBench 從 77.5% 驟降到 72.9%。
![]()
慢更新與元技能:長期記憶機制
SkillOpt 還引入了兩個跨 epoch 的記憶機制:
- Slow Update:每個 epoch 結束時,對整個 epoch 內所有被接受的編輯做一次縱向對比分析,找出跨 step 的一致性模式,產出一次更大范圍的更新。這類似于深度學習中的學習率 warmup 或周期性大步更新。
- Meta Skill:優化器自身也有一份「元技能」文檔,記錄它在優化過程中積累的經驗(比如「對這個 benchmark,關注工具調用的格式比關注推理步驟更有效」)。這份元技能在 epoch 間持續更新,讓優化器本身也在進化。
關鍵的是,這兩個機制只在訓練時存在。部署時,目標模型只需要那份最終的 best_skill.md,不需要任何額外的模型調用或記憶模塊。推理時的開銷為零。
52 項評測全面領先
主實驗:7 個模型 × 6 個基準 × 3 種環境
SkillOpt 的評測覆蓋面相當全面:
目標模型包括 GPT-5.5、GPT-5.4、GPT-5.4-mini、GPT-5.4-nano、GPT-5.2、Qwen3.5-4B、Qwen3.6-35B-A3B,從最強的閉源模型到 4B 參數的小模型都有。
基準測試覆蓋 6 個不同類型的任務:SearchQA(問答)、SpreadsheetBench(代碼生成 / 電子表格操作)、OfficeQA(工具增強問答)、DocVQA(文檔視覺問答)、LiveMathematicianBench(數學推理)、ALFWorld(具身智能體)。
執行環境包括直接對話、OpenAI Codex、Anthropic Claude Code 三種主流的 Agent 執行框架。
在全部 52 個(模型 × 基準 × 環境)評測組合中,SkillOpt 達到最優或并列最優。
![]()
幾個亮點數據:
- GPT-5.5 直接對話模式:平均提升 + 23.5 分,其中 SpreadsheetBench 提升 38.9 分,OfficeQA 提升 39.0 分
- GPT-5.4-nano(最小模型):平均提升 + 24.9 分,DocVQA 提升 49.4 分,ALFWorld 提升 35.1 分
- GPT-5.5 + Codex 環境:SpreadsheetBench 提升 57.5 分
- GPT-5.5 + Claude Code 環境:SpreadsheetBench 提升 58.3 分
小模型的提升幅度反而更大,這說明技能文檔對能力較弱的模型幫助更顯著。一份好的操作手冊,對新手的價值遠大于對專家的價值,這個直覺在 AI Agent 上同樣成立。
對比實驗:碾壓所有基線方法
SkillOpt 對比了 6 種基線方法:無技能(no skill)、人工編寫技能(human skill)、LLM 一次性生成技能(LLM skill)、Trace2Skill、TextGrad、GEPA。
![]()
在每一個 benchmark 上,SkillOpt 都超過了最強的基線方法:
- SearchQA:超過最強基線 + 1.9 分
- SpreadsheetBench:超過最強基線 + 4.4 分
- OfficeQA:超過最強基線 + 4.1 分
- DocVQA:超過最強基線 + 1.7 分
- LiveMath:超過最強基線 + 9.2 分
- ALFWorld:超過最強基線 + 8.9 分
值得注意的是,TextGrad 和 GEPA 都是已有的文本優化方法,SkillOpt 對它們的優勢說明,系統化的訓練循環設計(學習率、驗證門控、負反饋緩沖)確實比松散的自我修正更有效。
遷移實驗:一次訓練,多處部署
SkillOpt 訓練出的技能文檔表現出很強的遷移能力:
- 跨模型遷移:在 GPT-5.4 上訓練的 LiveMath 技能,直接遷移到 GPT-5.4-nano 上使用,提升 15.2 分。不需要針對小模型重新訓練。
- 跨環境遷移:在 Codex 環境中訓練的 SpreadsheetBench 技能,直接遷移到 Claude Code 環境中使用,提升 31.8 分。這意味著你在一個 Agent 框架里優化好的技能文檔,換到另一個框架里依然有效。
- 自優化:即使用 GPT-5.4-nano 同時作為目標模型和優化器模型(自己優化自己),SpreadsheetBench 上仍然提升了 10.4 分。這說明 SkillOpt 的訓練循環本身提供了足夠的結構化約束,即使優化器不比目標模型更強,也能發現有效的改進方向。
- 部署極簡:最終部署時只需要一個 best_skill.md 文件。不需要優化器模型,不需要記憶模塊,不需要任何額外的推理開銷。
技能進化的可視化:從失敗中學習
論文中展示了一個 ALFWorld 任務上的完整訓練過程,目標模型是 GPT-5.4-mini,優化器是 GPT-5.5。
初始技能文檔是一份簡潔的 ALFWorld 操作指南。經過 4 個訓練 step 后,技能文檔中新增了這些規則:
- 「將任何通用的目標容器實例視為有效」
- 「維護一個嚴格編號的已搜索集合,不重復檢查已觀察過的位置」
- 「在某一類位置連續多次未命中后,擴大搜索范圍」
這些規則都是從失敗軌跡中自動提煉出來的。比如第三條,來自 Agent 在某些任務中反復搜索同一類位置卻找不到目標物品的失敗經驗。優化器觀察到這個模式后,提出了「擴大搜索范圍」的規則。
![]()
最終效果:ALFWorld 測試集的 hard 難度從 70.9% 提升到 85.8%。
整個過程中,Step 3 的編輯一度導致驗證集性能下降,但被 slow update 機制救回。Step 4 的訓練集得分更高,但驗證集沒有提升,因此被門控拒絕。這種「提出假設、驗證、接受或拒絕」的循環,和人類科研的方法論如出一轍。
SkillOpt 告訴我們,智能體的一切都是可以自我學習的。
人類在 AI 工作流中的角色又往后退了一步。未來,我們會把更多的認知負擔轉移給機器。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.