Microsoft SkillOpt:把 Agent 技能當成可訓練的自然語言權重,而不是一次性 prompt
best_skill.md。換句話說,它優化的是 agent 的操作策略文字,而不是 LLM 權重。一般 prompt 常是人工一次性調整;SkillOpt 則像訓練流程:有 epochs、batch size、learning-rate 類比、validation gate、training history、runtime state、skill snapshots。每一步都根據任務軌跡修改技能,再用驗證集決定是否接受更新。
訓練輸出包含 best_skill.md、每一步 skill snapshot、history、runtime state、patch / eval artifacts。這些文件可部署到 frozen LLM agent,讓同一個基礎模型在特定任務上表現更穩。
README 列出的 benchmark 包含 SearchQA、ALFWorld、DocVQA、LiveMathematicianBench、SpreadsheetBench、OfficeQA;對應 QA、具身任務、文件問答、數學、試算表程式生成與工具增強問答。
SkillOpt 不要求改模型權重;它用 optimizer model 生成技能修改,target model 跑任務,驗證 gate 控制是否採納。可接 Azure OpenAI、OpenAI-compatible endpoint、Anthropic Claude、Qwen local vLLM。
需要 Python 3.10+、準備 train / val / test split directory、設定 API credentials,再用 scripts/train.py 指定 config、split、optimizer model 與 target model。這比較像研究 / MLOps 工具,不是一般 end-user app。
GitHub API metadata 顯示 repo 採 MIT License;截至觀察時約 3.1K stars、300+ forks。這代表關注度高,但仍應把它視為快速演進中的研究工程框架,先用 benchmark / sandbox 驗證,不要直接接高風險生產流程。
- 把既有 Hermes / Claude Code skills 拆成可評分任務,測試是否能透過軌跡自動改進技能文件。
- 針對高重複度任務建立 train / val / test,例如資料整理、表格操作、文件問答或工具呼叫流程。
- 觀察每次 skill diff 是否真的提升泛化,而不是只過擬合小型驗證集。
- 把
best_skill.md納入版本控管,保留人類審查與 rollback。
- Threads:@krumjahn 對 SkillOpt 的介紹
- GitHub:microsoft/SkillOpt
- Project / Paper links:GitHub README 連到 project page 與 arXiv paper。