Aug 17, 2026
用微软 SkillOpt 自动生成 Agent Skill
SkillOpt 通过轨迹驱动的编辑,为冻结的 LLM agent 训练可复用的 best_skill.md 产物——在 GPT-5.5、Codex CLI、Claude Code CLI 上相对 SearchQA 的实测增益 +23.5 准确率点,且无需微调模型。
这个目录里到目前为止的每个 skill 都是人写的。microsoft/SkillOpt 走另一条路:它是一个工具,观察 agent 的工作,从轨迹中学习,然后产出一份 best_skill.md 产物,agent 把它作为系统提示加载。模型本身保持冻结;得到改进的是 skill。
为什么这个 Skill 重要
手工写的 skill 很好,直到你的 agent 把同一个任务做了十次,你才发现本可以出现更好的模式。SkillOpt 把发现回路编码成:rollout、reflect、aggregate、select、update、evaluate。你把它指向一个 benchmark 或任务,它产出可部署的产物。
有三件事让它有用:
- 无需微调。 模型是冻结的;优化目标是 skill。部署时零额外推理调用。
- 跨 agent 可移植。 来自一个后端(比如 GPT-5.5 直聊)的
best_skill.md可加载到 Codex CLI、Claude Code CLI、Cursor、Copilot——README 报告在它们之上都有增益。 - 验证门控更新。 Skill 编辑都过过过保留集(hold-out)验证。不提升保留集准确率的编辑被拒绝,因此产物不会偏出分布。
如果你的 agent 任务做得不好、又不想动模型权重,这就是该用的工具。
安装
pip install skillopt
WebUI 控制台:
python -m skillopt_webui.app --port 8080 --host 127.0.0.1
用 --host 127.0.0.1,不要默认的 0.0.0.0,除非你确实想把它暴露到网络上。
实战:在 SearchQA 上提升编码 agent 准确率
真实场景,不是"hello world":你的编码 agent 在某个问答 benchmark 上 60% 失败,你想不微调就提上去。
工作流:
-
在 SearchQA 参考 benchmark 上定义一次带评分的 rollout。
-
对冻结的 GPT-5.5 跑 SkillOpt 的训练回路:
skillopt train --benchmark searchqa --backend openai --validate-on held-out -
SkillOpt 跑 rollout → reflect → aggregate → select → update → evaluate。每一次更新由保留集准确率门控。
-
收敛后,SkillOpt 写出
best_skill.md(300–2,000 token)。 -
把
best_skill.md作为这个任务的 agent 系统提示加载。
预期输出:一份 best_skill.md 产物和一份带前后对比的指标文件。README 报告相对无 skill 基线,SearchQA 上 +23.5 准确率点(直聊)、+24.8(Codex CLI)、+19.1(Claude Code CLI)。具体数字按任务变化;期待的是有意义的提升,不是奇迹。
你也可以直接把产物丢给 Codex CLI 或 Claude Code CLI:
codex --system-prompt-file best_skill.md
同一个文件能用,因为它只是 markdown。
实战:跑 SkillOpt-Sleep 做夜间自我改进
SkillOpt-Sleep(0.2.0+)是离线自进化引擎:它从当天 agent 的日志里采集、挖掘模式、在保留集上回放,并把最佳编辑整合进第二天的 best_skill.md。
工作流:
- 让 agent 正常运行;确保它的日志被 SkillOpt 能读到的地方采集下来。
- 调度 sleep 任务:
skillopt-sleep --logs ./agent-logs/2026-08-17 --output best_skill.md
- 第二天早上,
best_skill.md反映了当天的成功与被拒。 - 把它作为系统提示加载;agent 开始新一天时,比昨天好一点。
预期输出:一份刷新的 best_skill.md 和一份简短的变更报告(被接受的编辑、被拒的编辑、保留集增量)。每天跑,改进会累积;一周不跑,产物就会过时。
技巧
- 从 benchmark 入手,而不是任意任务。 验证门需要带评分的 rollout;没有评分信号的随意对话不会驱动改进。
- 用 WebUI 调试。 当更新停滞或在保留集上回退时,控制台让问题一目了然。
- 算好 optimizer-model 的账。 SkillOpt 需要一个 LLM 来提议编辑。部署是零成本,但训练步骤不是——预算要算上。
- 加载前审查
best_skill.md。 SkillOpt 优化保留集准确率,而不是人类可读性。2000 token 的 skill 可能不透明;依赖前先看一眼。
何时不用这个 Skill
- 你定义不出保留验证集。 没有评分信号,优化器就没有门控编辑的依据。先找一个可度量的代理。
- 你想要人类可读的 skill。 SkillOpt 的产物优化准确率,不优化编辑清晰度。如果团队要能理解、能改这个 skill,从手写基线起步。
- 你需要细粒度控制。 默认训练回路偏保守。实验性的多目标、回放、dream-rollout 旋钮存在,但不是 main-CLI 开关——你得深入内部。
- plugin/MCP 集成很关键。 PyPI wheel 不打包 Claude Code / Codex / Copilot 集成。从 GitHub 仓库拿,不要从 pip 拿。
查看 排行榜 了解更多 skill。