你给 Agent 写的 Skill,可能就是它越用越笨的原因


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(验证门控)

  1. 用当前 Skill 让 Agent 跑一批任务,收集带分数的轨迹
  2. 从成功和失败轨迹中提取反思,聚合成"梯度信号"
  3. 优化器模型根据梯度信号,对 Skill 文档做添加/删除/替换编辑
  4. 编辑幅度有 clip 裁剪,学习率有 scheduler 调度
  5. 最关键的一步:候选编辑只有在验证集上严格提升分数才被接受

最终产物是一个 best_skill.md,通常 300-2000 tokens,部署时零额外推理调用

这不是比喻,是工程实现。skillopt/optimizer/ 目录下有 scheduler.pylr_autonomous.pyclip.pyslow_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

评论

暂无评论。

登录后可发表评论。