先把经验写成一本会变好的手册
你让一个 AI Agent 帮你反复做同一类事,比如整理代码仓库、跑测试、修复报错。第一次你要讲很多规则。第二次,它可能还是会忘。第三次,你开始想:能不能把这些经验沉淀下来,变成一份下次直接带上的操作手册?
SkillOpt 做的就是这件事。它把 Agent skill,也就是写给 AI Agent 的任务说明、流程和约束,当成一个可以训练的对象。不同的是,它不改底层大模型本身。所谓不改模型权重,就是不重新训练模型的大脑,而是在外部的技能文件上做优化。这样更轻,也更像团队里不断修订一份工作手册:哪里写得不清楚,就改哪里;改完要过验证,才算真的变好。
需要先说明信源边界:本文关于 SkillOpt 的发布、功能和效果数字,均来自 microsoft/SkillOpt 项目方材料,属于单一信源,尚未看到第三方复现或外部集成方交叉确认。因此效果表述会按项目方口径归因,不写成已被独立验证的结论。
它不是让模型“更聪明”,而是让技能文件更可靠
很多人把 Agent 用不好,问题不一定在模型本身,而在“怎么让它按稳定流程做事”。传统做法通常有三种:人手写提示词;让一个强模型一次性生成一份说明;或者让 Agent 自己松散地反思、改提示。问题在于,这些方式很难保证越改越好。
SkillOpt 的切入点更像训练神经网络,但训练对象不是模型权重,而是一份自然语言技能文档。项目方把这个过程描述为:rollout → reflect → aggregate → select → update → evaluate。翻成人话,就是先让 Agent 带着当前技能去做任务,记录结果;再分析它哪里做得好、哪里失败;把这些经验汇总;挑出可能有用的修改;更新技能文件;最后用验证任务检查是否真的进步。
这里有一个关键门槛:validation gate。它指用验证集或测试门槛决定一次改动能不能通过。在 SkillOpt 里,候选修改只有在严格提升 held-out validation score 时才会被接受。held-out 可以理解为“留出来不参与改写、只用来验收”的任务集合。这样做的目的,是防止技能文件学会一些表面有效、但换个题就退步的技巧。
项目方还提到,SkillOpt 使用一个独立的 optimizer model,也就是专门负责优化技能的模型,把 scored rollouts(带分数的任务执行记录)转成有限度的 add / delete / replace edits,也就是新增、删除、替换文本。换句话说,它不是让技能文件无限自我膨胀,而是在一个受控范围里改写。
最终产物是一份 compact best_skill.md
SkillOpt 最后交付的不是一个新模型,而是一份 compact best_skill.md。项目方称,这份文件通常在 300 到 2,000 tokens 之间。tokens 可以粗略理解为模型处理文本时的基本单位,中文里不完全等同于字数,但可以把它看成“模型读进去的文本长度”。
这个设计的好处很直接:部署时不需要额外的模型调用。项目方材料称,best_skill.md 会直接跑在 unchanged target model,也就是未修改的目标模型上,并且增加零额外 inference-time model calls。inference-time model calls 指实际使用时向模型发起的调用次数。也就是说,SkillOpt 把训练成本放在离线优化阶段,使用时只是多带上一份更好的技能文件。
这也解释了为什么它踩中了编码 Agent 的主线。今天很多编码 Agent 已经能看文件、跑命令、改代码,但团队真正需要的是可积累的工作方式:这个仓库怎么测试,什么错误不能犯,哪些输出格式必须遵守,哪些步骤每次都要检查。把这些东西写进可复用、可验证的技能文件,比每次临场写提示更像工程化。
SkillOpt-Sleep:让本地编码 Agent 夜里复盘
SkillOpt 后续又推出了 SkillOpt-Sleep。项目方材料显示,SkillOpt-Sleep preview 于 2026-06-15 发布,面向 Claude Code / Codex / Copilot 等本地 coding agents。它支持回顾历史会话、重放重复任务,并通过 held-out gate 固化技能。
到 2026-07-02,SkillOpt v0.2.0 发布到 PyPI,主要新增 SkillOpt-Sleep。项目方称,这一版包含 nightly offline self-evolution engine,也就是夜间离线自我演化引擎;multi-objective reward,即多目标奖励;experience replay + dream rollouts;以及 long-term memory。
这里的 experience replay 是机器学习里常见的思路:把过去的经验拿回来反复利用。在 SkillOpt-Sleep 的语境里,它指回放过去任务轨迹,找出可沉淀的经验。dream rollouts 可以理解为模拟式的任务展开;材料没有进一步展开细节,所以这里不延伸。
这套设定很像给 Agent 安排“下班后复盘”:白天做任务,夜里整理错误、重放相似场景,把真正通过验证的经验写回技能库。它的价值不在于让 Agent 当场多想几轮,而在于把反复出现的问题沉淀下来。
项目方给出的效果很强,但还要等交叉验证
根据 microsoft/SkillOpt 项目材料,SkillOpt 在 six benchmarks、seven target models、three execution harnesses 上,在全部 52 个 evaluated cells 中 best or tied-best。这里的 benchmark 是评测任务集合;execution harness 可以理解为运行环境或执行方式,材料中包括 direct chat、Codex CLI、Claude Code CLI。
项目方还称,在 GPT-5.5 上,SkillOpt 相比 no-skill accuracy 平均提升:direct chat +23.5 points,Codex agentic loop +24.8,Claude Code +19.1。no-skill accuracy 指不带技能文件时的准确率;points 指百分点提升。
这些数字如果成立,说明“优化技能文件”可能是提升 Agent 表现的一条轻量路径:不训练模型,不改部署环境,只把经验整理成更好的自然语言文件。但因为这些效果来自项目方单一信源,且供稿材料没有提供第三方复现、完整原始评测表或失败案例,现阶段更稳妥的说法是:SkillOpt 给出了一个值得跟踪的工程化方向,而不是已经盖棺定论的行业标准。
为什么值得现在看
SkillOpt 有意思的地方,不是“又一个提示词框架”,而是它把提示词和技能文件从手工经验,推向了可训练、可验证、可部署的资产。
过去,团队使用 Agent 常常依赖个人手感:谁会写提示词,谁知道这个仓库的坑,谁能让模型少犯错。SkillOpt 想把这些经验放进一个训练循环里。技能文件是状态,任务执行是反馈,验证门槛决定改动能否留下。这个思路和软件工程的习惯很接近:不是相信一次灵感,而是相信迭代、评测和回归检查。
如果编码 Agent 继续进入日常开发,类似 SkillOpt 的技能库机制可能会变得重要。因为真正难的不是让 Agent 完成一次演示,而是让它在一个团队、一个仓库、一套流程里持续少犯同样的错。
局限与未知
- 目前材料主要来自 microsoft/SkillOpt 项目方,效果数字和集成信息缺少独立复现或外部确认。
- 供稿材料提到“for the full method, ablations, and per-cell results see the paper”,但本文未获得论文全文、完整消融和逐项结果,无法展开评测细节。
- 材料声称 optimized skill artifacts 可跨模型规模、Codex 与 Claude Code harness、相近 benchmark 迁移,但没有提供足够细节说明迁移边界和失败条件。