microsoft/SkillOpt
SkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, validation-gated updates, and deployable best_skill.md artifacts.
SkillOpt – 像训练神经网络一样训练代理技能
是什么 – SkillOpt 是一个开源框架,将冻结的 LLM 基础代理所使用的 技能提示 视为可训练参数。它运行经典的深度学习风格优化循环(回放 → 反思 → 聚合 → 选择 → 更新),不断编辑 Markdown 格式的技能文件,直到保留的验证分数提升。结果是一个紧凑的 best_skill.md(几百到几千个 token),可以无缝回填到原始代理中,无需任何额外推理开销。
为何重要 – 当前大多数代理技能流水线依赖于手工编写的提示、强 LLM 的一次生成,或临时的自我修正。这些方法难以复现,且往往无法持续提升性能。SkillOpt 将基于梯度的优化严谨性引入到文本技能本身,实现了在多个基准测试和模型系列中的可测量性能提升,同时保持部署轻量化。
核心功能(如 README 所述)
- 训练循环:包含轮次、批量大小、类似学习率的预算和验证门控——全部作用于技能文档,而非模型权重。
- 优化模型:提出有界增删改编辑;仅当编辑能提升保留分数时才被接受。
- 零运行时开销:最终技能文件是纯 Markdown 提示;目标模型保持不变。
- 多后端支持:通过插件式后端系统支持 OpenAI、Azure、Claude、Qwen、MiniMax、Codex、Copilot 等。
- 基准测试与结果:6 个内置基准测试,7 个目标模型,3 个执行沙箱;相比无技能基线报告了约 +20–25 分的提升,所有 52 个评估单元中均达到最佳或并列最佳。
- SkillOpt-Sleep:离线“自我演化” CLI(
skillopt-sleep),收集过往代理会话,重放并整合验证通过的编辑,置于保留门控之后。 - WebUI 仪表板:可选的 Gradio 界面,用于监控训练运行(端口、主机、共享选项)。
- 可扩展:遵循文档定义的契约,可添加新后端或基准测试;提供示例后端和环境包。
典型工作流
- 通过
pip install skillopt安装(WebUI 可使用可编辑安装)。 - 配置后端(如
openai_chat)和基准测试环境(如searchqa)。 - 运行训练 CLI,迭代回放,收集分数,并让优化器编辑技能 Markdown 文件。
- 在保留集上验证;当验证分数提升时,提交编辑。
- 将生成的
best_skill.md与原始冻结代理一起部署——无需额外 API 调用。
适合谁使用 – 正在实验提示工程的研究人员、开发 LLM 驱动的编码助手的开发者,或任何希望在不重新训练底层模型的前提下系统性提升代理提示的人。
了解更多 – README 中链接了完整文档、复现指南和技术博客;论文(arXiv:2605.23904)提供了详细方法论和消融分析。
相关
- 项目
- 项目
- 项目
- 项目
- 项目