title: "你给 Agent 写的 Skill,可能就是它越用越笨的原因" description: "微软 SkillOpt 把 Skill 当参数训练,11k star 背后的范式转变和代价清醒" tags: ["SkillOpt", "AI Agent", "微软", "Skill优化", "自进化"]
你给 Agent 写的 Skill,可能就是它越用越笨的原因
你有没有过这种体验——给 AI Agent 精心写了一份 Skill,第一天跑得飞起,第三天开始抽风,第五天你不得不手动改回第一版。
更扎心的是,你改完之后也不知道到底是改好了还是改坏了,因为没有验证标准,只能凭感觉。
Skill 的维护,正在成为 AI Agent 落地最隐秘的瓶颈。
微软的 SkillOpt 给出了一个激进的答案:既然 Skill 影响 Agent 表现,那 Skill 本身能不能像模型参数一样被训练?
这个项目两个月拿了 11k star,背后藏着一个范式转变——**从"人写 Skill"到"训练 Skill"**。
把 Skill 当参数,会发生什么
SkillOpt 的核心思路,是把深度学习的优化范式整个搬到了文本空间。
你训练神经网络用 epoch、batch size、learning rate、validation gate——SkillOpt 全都有,只不过优化的不是浮点数权重,而是一份 Markdown 文档。
整个训练循环长这样:
Rollout(执行)→ Reflect(反思)→ Aggregate(聚合)→ Select(选择)→ Update(更新)→ Evaluate(验证门控)
- 用当前 Skill 让 Agent 跑一批任务,收集带分数的轨迹
- 从成功和失败轨迹中提取反思,聚合成"梯度信号"
- 优化器模型根据梯度信号,对 Skill 文档做添加/删除/替换编辑
- 编辑幅度有 clip 裁剪,学习率有 scheduler 调度
- 最关键的一步:候选编辑只有在验证集上严格提升分数才被接受
最终产物是一个 best_skill.md,通常 300-2000 tokens,部署时零额外推理调用。
这不是比喻,是工程实现。skillopt/optimizer/ 目录下有 scheduler.py、lr_autonomous.py、clip.py、slow_update.py,跟 PyTorch 的优化器模块几乎一一对应。
白天干活,晚上进化:SkillOpt-Sleep
v0.2.0 新增的 SkillOpt-Sleep 是这个项目最惊艳的部分。
它的工作方式像极了人类的睡眠学习机制:
- Harvest:收割 Codex、Claude Code 等 Agent 的历史会话
- Mine:从轨迹中挖掘重复任务、常见失败、可复用流程
- Dream:生成梦境 rollout 做数据增强
- Replay:经验回放,验证修改建议
- Consolidate:只有通过验证门控的改动才会被巩固到 Skill 中
整个过程全自动,但不是自动采纳——候选改动会暂存起来,等用户审查。你可以用 Git 管理每一次 Skill 变更,审查、回滚、版本对比,跟代码 review 一个流程。
这比"让 Agent 自己总结经验"靠谱得多。因为自我总结没有验证标准,而 SkillOpt-Sleep 每一步都卡着 validation gate。
52 个评估单元全胜,但代价是什么
论文在 6 个 benchmark、7 个目标模型、3 种执行工具上跑了 52 个评估单元,全部最优或并列最优。
在 GPT-5.5 上,平均无 Skill 准确率提升:直接对话 +23.5pp,Codex Agent 循环 +24.8pp,Claude Code +19.1pp。
但数字背后有几个必须清醒的代价:
1. "梯度下降"是类比,不是数学等价
脉脉上有篇深度反思文章说得直白:文本符号空间优化与深度学习参数空间梯度下降存在深层分野。SkillOpt 从梯度下降汲取的是灵感,不是严格的数学同构。文本空间没有连续梯度,"学习率"和"动量"在这里是启发式参数,不是有理论保证的优化量。
2. Skill 会漂移
大模型的概率性行为导致同一个 Skill 上午跑通下午就不行。有开发者反馈"用打补丁的方式应对大模型的概率性行为,Skill 会越改越乱"。
3. 只适合能打分的任务
SkillOpt 的硬前提是:任务可执行、结果可评分、样本可分割。不适合开放式写作、审美判断、产品策略——这些场景没有客观评分标准,validation gate 就形同虚设。
4. 训练需要双模型同时运行
一个 frozen target model 执行任务,一个 optimizer model 提出编辑。典型配置如 GPT-5.4-mini + GPT-5.5,训练成本 $1-5/skill,不算贵,但不是零。
同一周冒出 4 个竞品,Skill 优化已成独立赛道
SkillOpt 不是孤例。2026 年 5 月同一周,arXiv 上密集出现了多个同类框架:
| 框架 | 来源 | 差异化 |
|---|---|---|
| SkillGrad | 宾州州立大学 | 引入 momentum agent,累积跨批次诊断模式 |
| MUSE-Autoskill | arXiv | Skill 全生命周期管理,不仅是优化 |
| SIA | arXiv | 同时优化 harness 和权重 |
| MAA | arXiv | 减少 75% 优化阶段 token 消耗 |
加上 SkillOpt 论文中直接对比的 TextGrad、EvoSkill、Trace2Skill,这个领域已经有近 10 个活跃框架。
值得注意的定位差异:DSPy 是互补而非竞争——DSPy 优化程序结构,SkillOpt 优化技能内容,两者可组合使用。
还有一个有意思的细节:SkillOpt 的一作团队是微软研究院 + 上海交大 + 复旦 + 同济的联合研究,通讯作者来自上海交大。中国高校在这项研究中的贡献不是打下手,而是多位共同一作。
趋势判断:Skill 正在从"配置文件"变成"可训练参数"
SkillOpt 的真正意义不在于某个具体功能,而在于它重新定义了 Skill 的属性:
过去:Skill 是静态配置文件,人写人维护,改了不知道好不好 现在:Skill 是可训练的文本参数,有 epoch、有验证集、有版本管理
这跟 Fine-tuning 形成了有趣的对照:
| 维度 | Fine-tuning | SkillOpt |
|---|---|---|
| 优化对象 | 模型权重 | Skill 文档 |
| 成本 | $100-1000+ | $1-5 |
| 可读性 | 黑盒 | 可读可审查 |
| 可回滚 | 需要存 checkpoint | Git 版本管理 |
| 跨模型迁移 | 需要重新训练 | 直接复制 .md 文件 |
| 适用场景 | 通用能力提升 | 特定任务优化 |
Fine-tuning 改的是模型的"肌肉记忆",SkillOpt 改的是模型的"操作手册"。两者不冲突,但 SkillOpt 的成本和透明度优势太明显了。
什么时候该用 SkillOpt? 你的任务满足三个条件:重复出现、结果可评分、有足够样本。满足的话,$1-5 就能让 Agent 的 Skill 从"能用"变成"好用"。
什么时候不该用? 任务每次都不同,或者没有客观评分标准。这时候 validation gate 失效,SkillOpt 退化为昂贵的自我总结。
项目地址:https://github.com/microsoft/SkillOpt
论文:arXiv:2605.23904
安装:pip install skillopt
暂无评论。