微软SkillOpt把智能体技能变成了可训练参数

2026.07.01 02:16
微软研究院开源SkillOpt框架,将AI智能体的Markdown技能文档视为可训练的外部状态。通过四步循环(Rollout→Reflect→Edit→Validate),以深度学习式的数学严谨性优化自然语言技能。在52项基准测试中全面领先所有竞品方法,在GPT-5.5上平均提升23.5个百分点,训练成本仅需1到5美元,技能可跨模型、跨执行环境迁移。

去年,一位AI应用开发者用GPT-5.5搭了一个自动化数据提取智能体。他花了两天时间手写技能文档——规范输出格式、定义错误重试逻辑、列举边缘案例处理方式。上线第一周准确率87%。第二周他改了三版prompt,准确率掉到了81%。他又改了一版,回到85%。第六周,他放弃了。

这不是段子。这是2026年每个做AI Agent的团队每天都在经历的事情。

智能体技能——那些以Markdown文件形式存在的指令集——已经成为AI Agent落地的关键抓手。它们是模型的操作手册:告诉模型用什么工具、按什么顺序、输出什么格式、遇到什么情况怎么处理。理论上,改改文档就能让模型表现更好。但每次修改都是一场赌博。

微软研究院刚刚开源的SkillOpt,试图从根本上终结这种赌博。

一场持续了两年多的猜谜游戏

Agent Skills本质上是一组自然语言规范,包括领域启发式规则、工具使用策略、输出约束条件和已知失败模式。它们以文本文件的形式存储在文件夹里,在执行时被注入到模型的上下文中。

好处显而易见:不用改模型权重。换一套技能文档,同一个模型就能从客服助手变成代码审查员。

但代价同样明显——技能的优化没有数学基础。

深度学习的训练过程有严谨的数学控制:梯度下降确保每一步都朝损失减少的方向前进;学习率防止参数更新过度;验证集防止过拟合。但技能文档的优化呢?靠人改。改完之后,没人知道这个改动到底是好是坏。感觉对了就上线,感觉不对就回滚。

微软研究院高级研究SDE杨一帆对VentureBeat说了句大实话:问题不在于能不能改技能,而在于无法保证改动一定带来提升。

他把症状归纳为三种反复出现的失败模式。

第一,没有步长控制。一次大规模重构式改写可能引入大量不确定的语义漂移,让技能越来越偏。

第二,没有验证机制。一个读起来看起来很有道理的修改被直接写进去,然后在悄无声息中拖累整体性能。

第三,没有负反馈记忆。同一个失败的修改,因为没有记录,会反复被提出、被尝试、再被拒绝——每次都浪费计算资源。

杨一帆给出了一个刺眼的例子。一个未经验证的自动改写把GPT-5.5在SpreadsheetBench上的准确率从41.8%直接打到41.1%。看起来有道理的改动,让性能更差了。

SkillOpt:给文本装上梯度下降

微软在5月25日发布在arXiv上的论文《SkillOpt: Executive Strategy for Self-Evolving Agent Skills》(arXiv:2605.23904)给出了一套系统性解决方案。

核心洞察很简洁:把技能文档当成一个可训练的参数,而不是一段静态的文本。

具体来说,SkillOpt运行一个四步训练循环:

第一步:Rollout(执行)。把当前技能文档交给一个冻结的目标模型,让它在批量的任务上执行,产生执行轨迹。这些轨迹就是当前技能的损失证据——哪些任务成功了、哪些失败了、在哪里失败的。

第二步:Reflect(反思)。一个独立的优化器模型(通常是更强的前沿模型)分析这些轨迹。它把成功和失败的案例分开,按小批量(minibatch)处理,找出系统性的程序错误而不是偶发随机波动。基于这些模式,它提出结构化的文档编辑建议:在某个位置添加缺失的规则、删除误导性的指令、替换掉不准确的描述。

第三步:Edit(编辑)。优化器提出多个候选编辑,然后去重、过滤、排序,只保留最有希望的那些。它不会一次性应用所有提议——它有一个编辑预算(edit budget),类似深度学习中的学习率,控制每次改动的幅度。

第四步:Validate(验证)。最关键的一步。候选技能需要在保留的验证集上执行,用同样的目标模型评估。如果验证分数提高了,编辑被接受,成为新的当前技能。如果验证分数没提高,编辑被拒绝,并存入被拒绝编辑缓冲区——优化器以后不会再提出同样的失败修改。

这个循环跑多个epoch,每次只在验证集上确实有进步的编辑才会被保留。

论文作者写道:深度学习类比是操作性的,而不是装饰性的。

他们把深度学习的每一个概念都映射到了文本空间:梯度变成轨迹产生的编辑方向,学习率变成编辑预算,验证检查变成保留验证集上的评分门控,批量处理变成minibatch分析。

结果是一个名为best_skill.md的Markdown文件——一份经过数学验证、纯粹通过性能优化训练出来的技能文档。

52项测试全胜,但更重要的是可迁移性

SkillOpt的评测规模相当大。

微软在6个基准测试、7个目标模型、3种执行环境上运行了完整的评估。结果是在全部52个(模型、基准、执行环境)组合中,SkillOpt要么是最好的,要么并列第一。它击败了人类撰写的技能、一次性LLM生成的技能、以及TextGrad、GEPA、EvoSkill、Trace2Skill等所有竞品方法。每一格都赢过或平过。

具体的数字令人印象深刻。在direct chat环境中,SkillOpt将GPT-5.5的no-skill平均准确率提升了23.5个百分点。在代码生成任务中,它在Codex的agentic loop内提升了24.8个百分点,在Claude Code中提升了19.1个百分点。在SpreadsheetBench上,未经优化的技能只有41.8%的准确率——杨一帆举的那个未验证改写的例子就是从这里来的。

但比单个数字更重要的是可迁移性。

优化后的技能文档可以跨模型、跨执行环境、甚至跨相关任务迁移,无需重新优化。微软论文展示了三种迁移场景:从GPT-5.5训练出的技能可以直接用于Claude或Qwen;从Chat执行环境训练出的技能可以迁移到Codex或Claude Code;从某个数据集训练出的技能可以在相关任务上取得接近最优的性能。

训练成本方面,杨一帆透露,在社区框架如GBrain中,使用Claude Sonnet运行SkillOpt更新,一个任务的技能训练平均只需要1到5美元。而且这是一次性成本——训练完成后,技能可以无限次地在生产环境中部署使用。

截至2026年6月,SkillOpt在GitHub上已获得超过4100颗Star,并曾登上GitHub Python日榜第3位。

这不是提示工程的下一个版本

SkillOpt的出现让行业开始重新思考一个根本问题:优化对于AI Agent究竟意味着什么?

提示工程(Prompt Engineering)的底层假设是:你要自己想办法让模型理解你的意图。你做实验、调措辞、加例子——但这些工作本质上是对人的训练,不是对模型的训练。DSPy把这个过程自动化了一些,它通过编译策略优化prompt结构,但仍然是在prompt层面上做文章。

Fine-tuning的底层假设是:你需要通过修改模型权重来改变行为。它有效,但昂贵。对于闭源模型,你根本改不了权重。即使改得了,一次fine-tuning消耗的计算资源也远超大多数团队的预算。

SkillOpt占据了上述两者之间的空白地带。它不修改模型权重,也不仅仅优化prompt措辞。它把技能文档这个中间层——既不是模型内部参数也不是单次prompt——变成了可训练的对象。

杨一帆指出,SkillOpt与DSPy是互补的而非竞争的关系:DSPy编译声明式LM管道并优化程序结构;SkillOpt优化冻结智能体加载的外部技能状态。两者可以一起跑。

这意味着一个更高效的开发范式正在成形:用DSPy组织程序结构,用SkillOpt训练技能内容,底层模型保持冻结——三个独立可优化的层次各司其职。

Agent Skills本身也正在成为一个独立的研究领域。2026年6月刚刚举办了第一届Agent Skills研讨会(CAIS Workshop),专门讨论技能的设计、评测和优化。SkillOpt是这个领域目前最有体系的方法论,也是为数不多把数学训练纪律引入文本空间的作品。

从手工到训练,Agent开发的临界点

SkillOpt的开源(MIT许可)恰逢AI Agent行业的一个关键节点。

整个行业对AI Agent的期望正在从能做demo转向能上生产。企业不再满足于看到模型在基准测试上跑高分,他们需要模型在特定业务场景下稳定、可靠、可重复地完成任务。而技能文档正是实现这种领域适配的核心杠杆。

VentureBeat的报道中透露了一个更激进的趋势:开源社区已经在开发定时运行SkillOpt的插件,让智能体基于过去一段时间的执行轨迹,周期性地自我优化技能。这相当于给AI Agent装上了一台持续学习引擎——不需要人介入,不需要改权重,仅仅是规律性地回顾自己的错误记录,然后自动改进。

杨一帆说:自我进化最有价值的方式是,智能体自主发现知识来改善自己的行为,同时整个过程可验证、可审计。技能是最快、最便宜、最可逆的第一步。同样的思维路径指向最终的目标——智能体终将自我优化,一路优化到自己的权重。

对于AI Agent开发者,SkillOpt提供了一个即插即用的优化层。如果你已经在用技能文档来驾驭大模型,你只需要几十个标注样例和一个可评分的反馈信号,就能让技能自进化。但对于开放式创意任务——没有明确评分标准的场景——它暂时还帮不上忙。对团队来说,真正的前期投入不是调用SkillOpt本身,而是设计好验证方案。

对于传统Prompt Engineering服务商,如果技能可以自动化训练,花大价钱请prompt工程师这门生意需要重新评估。SkillOpt不是唯一在做这件事的——GEPA、TextGrad都在做——但SkillOpt在覆盖面和验证严谨性上目前是最完整的。

到2026年的中点,我们已经看到了一条清晰的技术路线:用DSPy管程序结构,用SkillOpt育技能内容,模型本身保持冻结。三个层次独立优化,各司其职。

到那个时候,手工写prompt可能会像手工写汇编一样,成为一段被怀念的往事。

也许很快,每一份技能文档的开头,都会印着一行小字:本技能由SkillOpt自动训练生成。未经数学验证的手工修改,可能会降低系统性能。

作品声明:内容由AI生成