乐于分享
好东西不私藏

你的小龙虾(OpenClaw)的技能(skills),可以像神经网络一样"训练"了

你的小龙虾(OpenClaw)的技能(skills),可以像神经网络一样"训练"了

微软开源了一个”训练”AI Agent技能文档的工具,不改模型、不碰代码
微软刚开源了一个叫 SkillOpt 的工具,做了一件挺反直觉的事:
它把 AI Agent 的技能文档当成了”权重”来训练。
不改模型、不微调、不碰一行代码——只优化一段自然语言写的规则文档,就能让 GPT-5.5 在6个基准测试上平均提升23.5分。
更关键的是,优化后的文档只有300-2000个token,整个训练过程通常只接受11-44次编辑(每步最多改4条规则)。
Agent 总犯错,问题出在哪
用过AI Agent(小龙虾) 的人基本都遇到过这个情况:我个人是深有体会!
Agent 不缺能力,缺的是稳定的执行流程
你让它查资料写文章,它可能——
搜了正确的源,但格式写错了。
知道要核查事实,但漏掉了关键步骤。
前三步都对了,第四步突然跳步。
传统做法是手写一段 SKILL.md,把”先做A再做B,遇到C要小心”写成规则,塞进 Agent 上下文。
但手写的规则文档有三个坑。
第一条规则到底有没有用?你没法验证。
规则之间会打架。A说”尽快回复”,B说”确认后再回复”,Agent 听谁的?
出了问题靠人发现。没人盯着,Agent 就一直错下去。
SkillOpt 就是冲着这三个问题来的。
核心思路:把 skill 当成可训练的权重
SkillOpt 的洞察就一句话:
如果 Agent 的行为由 skill 文档决定,那 skill 文档本身就应该是可训练的”外部权重”。
它把深度学习里那套训练纪律,1:1 搬到了文本优化上:
深度学习概念
SkillOpt 对应
干什么
前向传播
Rollout
带当前 skill 跑一批任务,记录得分
反向传播
Reflect
优化器模型分析成败轨迹,找反复出错的模式
梯度更新
Edit
提出”增/删/替换”规则的编辑建议
学习率
文本学习率
每步最多改几条规则(默认4条,cosine衰减)
验证集
Gate(门控)
编辑后必须在验证集上提升才接受,否则拒绝
动量
慢更新/元技能
跨 epoch 保留长期有效的编辑方向
负样本
拒绝缓冲区
被拒绝的编辑变成”别再这么改”的负反馈
整个过程就像训练神经网络。只不过被优化的不是权重矩阵,而是一段 Markdown 文档。
四步闭环
Rollout(执行)
拿当前的 skill 文档,让目标模型跑一批任务。比如20道搜索题,记录每道题的执行轨迹和得分。
Reflect(反思)
成功和失败的轨迹分开,分批交给优化器模型——通常用比目标模型更强的模型。
失败批次找”反复出错的模式”。Agent 连续5次搜索了错误的来源,这就值得加一条规则纠正。
成功批次找”必须保留的行为”。3次正确使用了交叉验证,要确保后续编辑不会误删。
Edit(编辑)
优化器提出具体的”增加/删除/替换”建议。关键是有边界——文本学习率控制每步最多改4条规则,防止一把重写把好规则也删了。
Gate(门控)
这步最关键。
修改后的 skill 必须在独立的验证集上跑一遍,分数比当前版本高才接受。否则这条编辑被拒绝,丢进”拒绝缓冲区”——下次优化器就知道”这个方向别再试了”。
只有过了门控的编辑,才会真正写入 skill 文档。
效果
以下数据来自论文(arxiv.org/abs/2605.23904)和官方项目页报告,实际效果因任务和模型而异。
论文在6个基准、7个模型、3种执行环境下做了测试。
核心数据:
GPT-5.5 Direct Chat:平均+23.5分
GPT-5.4-nano Direct Chat:平均+24.9分——小模型收益更大
Codex 执行环境:+24.8分
Claude Code 执行环境:+19.1分
52个测试单元格,全部最佳或并列最佳。击败了人工编写、one-shot LLM、Trace2Skill、TextGrad、GEPA、EvoSkill 这6个基线方法。
迁移能力比预期好
跨模型迁移:GPT-5.4 上训练的数学 skill,直接给 GPT-5.4-nano 用,仍提升+15.2分
跨环境迁移:Codex 训练的电子表格 skill,迁移到 Claude Code,提升+31.8分
自优化也行:用 GPT-5.4-nano 优化自己,仍提升+10.4分
这意味着你可以在强模型上优化一次,弱模型免费受益。
消融实验
论文做了消融,解释了 SkillOpt 为什么不是简单的”让 LLM 自己改自己”:
去掉什么
效果下降
原因
文本学习率
-2.5 ~ -4.0
无边界重写=破坏性更新,好规则被删
拒绝缓冲区
-1.6 ~ -4.6
无负反馈=优化器反复提同样的坏建议
慢更新/元技能
-0.8 ~ -22.5
无动量=长期优化方向不稳定
门控验证
越改越差
无验证=有害编辑不断累积
这些组件的作用和深度学习里的学习率、负样本、动量、验证集高度同构——在优化流程的结构层面,这和训练神经网络有高度相似性。
现在就能用
SkillOpt 已经开源(MIT 协议),代码在 github.com/microsoft/SkillOpt,Python 3.10+ 直接装:
git clone https://github.com/microsoft/SkillOpt.gitcd SkillOptpip install -e .
它原生支持 OpenAI、Claude、Qwen(本地 vLLM)三种后端。因为用的是 OpenAI 兼容协议,DeepSeek、GLM、通义千问等国产模型都能直接接入——换一下 base_url 和 api_key 就行。
优化一个 skill 只需要一行命令
论文使用的 benchmark 数据不包含在仓库中,需自行按格式准备 train/val/test 数据集。
训练成本:一次完整优化需要优化器模型处理大量轨迹(每轮20-50条任务轨迹×4-8个epoch),以 GPT-5.5 为优化器估算,API 成本约 $30-80,取决于任务复杂度和 epoch 数。
python scripts/train.py \  --config configs/searchqa/default.yaml \  --split_dir /path/to/your/data \  --optimizer_model gpt-5.5 \  --target_model gpt-5.5
训练完成后,输出目录里会生成一个 best_skill.md——优化后的技能文档,直接塞进 Agent 上下文就行。
部署时无需额外模型调用:只需要那个300-2000 token 的 Markdown 文件。
几个值得关注的点
SkillOpt 提出的思路值得注意:
Agent 的”个性”和”能力”不应该写死在提示词里,而应该是可训练的外部状态。
这和深度学习的发展路径很像——从手工设计特征到自动学习特征,从手写规则到训练权重。SkillOpt 把同样的路径搬到了 Agent 技能上。
对日常用 Agent 的人来说:
不用自己当提示词工程师——优化器帮你找最好的规则组合。
规则不再是黑箱——优化后的 skill 是可读的 Markdown,人能审计。
一次优化,多模型复用——强模型上训练,弱模型也能受益。
持续进化——任务变了,skill 可以像模型一样迭代。
Agent 从”手工作坊”往”工业流水线”走,这可能是一个方向。

论文:SkillOpt: Executive Strategy for Self-Evolving Agent Skills (arxiv.org/abs/2605.23904)
代码:github.com/microsoft/SkillOpt
项目页:microsoft.github.io/SkillOpt

你们平时给 Agent 写 skill 文档吗?踩过哪些坑?欢迎留言,我下次整理一期避坑合集。