--- title: "SkillOpt:把 Agent 技能文档变成可训练对象 — 微软+上海交大等团队 (像训练小程序一样训练 agent 技能)" source_url: "https://mp.weixin.qq.com/s/l5ZtF-TPtttCtjyLiiGYUQ" publish_date: 2026-06-04 tags: [wechat, article, skillopt, microsoft, agent-skill, prompt-optimization, training, validation-gate, optimizer-model, harness, codex, claude-code, lora, ablation] review_value: 9 review_confidence: 8 review_recommendation: strong sha256: 3d0b943ad8cfbb2ad5f6accbdcd608c5743787968a57eeaf2a10f42a21f4ebbf --- # SkillOpt:把 Agent 技能文档变成可训练对象 > 整理自 VibeCoder 团队对 SkillOpt 论文的中文报道 > 原文:https://mp.weixin.qq.com/s/l5ZtF-TPtttCtjyLiiGYUQ > 论文:Microsoft × 上海交大 × 同济 × 复旦 > 推特点评:Rohan Paul「像训练小程序一样训练 agent 技能」 ## 一句话定位 **SkillOpt = 冻结模型参数,把 agent 外部技能文档当作可训练对象,用验证集门控每一次编辑。** 部署阶段零额外模型调用(optimizer 只在训练阶段参与)。 > 类比:LoRA 冻结模型主体、只训练一个小参数适配层;**SkillOpt 冻结全部模型参数、只训练一份外挂 skill 文件** —— 社区直接称"LoRA for skills"。 ## 解决的工程盲区 三种主流 skill 生产方式,同一个问题:**没有验证机制**。 - 人工手写:靠经验和直觉,改一行不知道会不会影响其他任务 - LLM 一次性生成:quality 全看那次 prompt 写得好不好 - 模型"自我反思"后松散修订:无法确认真的变好了,还是"看起来更聪明"实际任务分下降 论文原话: > "Agent skills are hand-crafted, generated one-shot, or evolved through loosely controlled self-revision, none of which mirrors the reproducible, feedback-driven optimization loop that makes deep-learning training reliable." ## 四步训练循环 | 步 | 动作 | 关键设计 | |---|---|---| | 1. **执行任务** | agent 携带当前 skill document 跑任务,记录完整 rollout 轨迹和得分 | | | 2. **分析轨迹** | 独立 **optimizer model**(比当前 agent 更强)读取成功/失败轨迹,提出**小范围文本编辑** —— 只允许 add / delete / replace | textual learning-rate budget 限制每次编辑幅度 | | 3. **验证集门控** | 新 skill 必须在 held-out validation set 上跑一轮;分数严格提高才接受;否则进 **rejected-edit buffer** 或丢弃 | gate 决定整个框架可靠性 | | 4. **沉淀经验** | 多个 epoch 后用 **slow / meta update** 将反复验证的稳定经验写入 skill | epoch-wise 慢速更新稳定训练过程 | > **最关键设计是验证集门控**。没有它,optimizer 可能把 skill 改得"读起来更专业",实际任务表现反而下降(**prompt drift** 经典症状)。 ## 实验规模 - **6 个 benchmark** - **7 个 target model** - **3 种执行环境**(direct chat、Codex agentic loop、Claude Code) - 总计 **52 个测试格子**(model × benchmark × harness 组合)—— 全部 best or tied GPT-5.5 提升(相对 no-skill baseline): - Codex agentic loop: **+24.8 pt** - Direct chat: +23.5 pt - Claude Code: +19.1 pt > 提升幅度已超出"prompt engineering 调调格式"的量级 —— 说明 skill 层确实存在可被系统化挖掘的空间。 ## 关键能力:迁移性 训练出来的 skill artifact 可: - 跨**模型规模**迁移 - 跨**执行环境**迁移(从 Codex 到 Claude Code) - 跨**相近领域 benchmark** 迁移 一份 skill 训好之后,换个模型/换 harness 依然有效。 ## 工程意义:Agent 时代的新型资产 Agent 团队正在快速积累: - 技能文件 - 流程文档 - 工具使用约定 - 仓库工作流 - 测试策略 - 调试手册 这些东西比单次 prompt 持久,但只靠人工/LLM 随手改会出两类问题: - **退化**:文档越长越像"正确的废话",什么都覆盖什么都不精准 - **不可复现**:同一份 skill 为啥变好变差说不清 **SkillOpt 把 skill 文件变成可训练 / 可验证 / 可审计的工程资产**: - 团队可审阅最终 skill 文件 - 看到它为什么要求 agent 先做某检查、如何处理失败、何时调用工具 - 这种透明度是模型权重做不到的 ## 局限性(距离生产标配的几步路) 1. **验证集设计是核心难题** —— 整个框架可靠性依赖 held-out set 质量;过小或不具代表性 → gate 失效 2. **训练成本需摊薄** —— 每轮编辑都要 optimizer 读轨迹 + 生成编辑 + 跑验证;高频任务能否回本取决于 skill 复用频率和有效期 3. **跨真实生产环境迁移需验证** —— benchmark 多样性远低于生产 4. **Skill library 的选择与组合** —— 多 skill 切换、冲突处理未深入探讨 5. **仍是研究原型** —— 微软/Anthropic 尚未官方集成到 Codex/Claude Code ## 成本权衡 - 训练阶段消耗大量 token(类似"compile step") - 推理时便宜(部署零额外模型调用) - 前置的 skill 训练是真金白银 - **决策点**:哪些任务值得投入训练成本优化 skill,哪些手写 prompt 就够 ## 范式启示 > 过去两年,所有人都在追更大的模型、更长的上下文、更好的推理能力。 > SkillOpt 指向了另一个方向 —— **同一个 frozen model + 一份经过任务反馈训练出来的 skill = 具体任务上表现截然不同**。 未来 agent 团队的竞争维度可能从"选哪个模型"扩展到 **"skill 层怎么训练和管理"**。Skill 文件**可读、可审计、可迁移、可版本控制** —— 天然适合工程化管理,比起模型权重这个黑箱,是团队真正能掌控的部分。 > 从 prompt craft 到 **skill optimization**,外部策略层的系统化训练值得认真对待。 ## 类比一览 | 范式 | 冻结 | 训练对象 | 部署形式 | |---|---|---|---| | **LoRA** | 主体模型 | 小参数适配层 | 几个 MB 权重 | | **SkillOpt** | 全部模型参数 | 外挂 skill 文档 | 纯文本 .md 文件 |