用深度学习的思路优化 Agent Skill:微软联合复旦交大连发两文,52 项评测全第一
用深度学习的思路优化 Agent Skill:微软联合复旦交大连发两文,52 项评测全第一
Agent skill 的现状:要么人写,要么 LLM 一次性生成,要么靠 Agent 自己随意改几轮——没有一种方法像训练神经网络那样严谨地优化 skill 本身。结果是:skill 在 demo 里很好用,换到新任务、新模型就拉胯。
2026 年 5 月,微软联合复旦大学、上海交大连续发表两篇论文,从两个角度彻底拆解了这个问题。第一篇 SkillOpt 提出了第一个系统化的 text-space skill 优化器;第二篇 SkillLens 则做了迄今最完整的 skill 生命周期研究,搞清楚了 skill 到底什么时候有用、什么时候有害。
本文提纲
- Skill 的痛点:手写累、生成飘、演化乱
- SkillOpt:把 skill 训练做成深度学习优化器
- SkillLens:skill 生命周期的第一次系统性解剖
- 两篇论文的交汇:从诊断到治疗
- 对 Agent 开发者的实际意义
Skill 的痛点:手写累、生成飘、演化乱
Agent skill 是一段自然语言的过程性知识——工具使用策略、领域惯例、输出格式约束、常见陷阱等。它插入 Agent 上下文后,让一个通用模型在特定领域表现更好,不需要改模型权重。
但 skill 的获取方式有三个硬伤:
手写(human-crafted)——质量高但无法规模化。一个领域的 skill 要领域专家反复调试,而且跟模型强绑定:给 GPT-5.5 写的 skill 给 Qwen 3.5 用可能起反作用。
一次性生成(one-shot LLM)——快但不稳定。让大模型看几条轨迹然后生成 skill,质量完全取决于模型对领域的理解程度。SkillLens 的数据显示,LLM 生成的 skill 在某些 domain 上甚至比不用 skill 还差。
自由演化(self-revision)——方向不明。Agent 跑几轮任务,根据失败经验自己修改 skill。问题是没有验证门控——改完的 skill 可能比改之前更差,而且改着改着就偏离了原本有用的部分。
现有的 prompt 优化方法(TextGrad、GEPA)和 skill 演化方法(Trace2Skill、EvoSkill)各有长处,但都没把 skill 优化当成一个可控的训练过程来做。
SkillOpt:把 skill 训练做成深度学习优化器
论文一:SkillOpt: Executive Strategy for Self-Evolving Agent Skills(arXiv: 2605.23904v2)
核心思路:skill 文档就是 Agent 的"外部可训练参数",用一个独立的前沿模型当优化器,像训练神经网络一样训练 skill。
与深度学习的类比(不是装饰,是真的在用)
| 深度学习概念 | SkillOpt 对应 |
|---|---|
| 前向传播 | Target model 用当前 skill 跑一批任务,收集轨迹和得分 |
| 反向传播 | Optimizer model 分析成功/失败轨迹,提出 add/delete/replace 编辑 |
| 学习率 | Edit budget:每步最多改几条规则(支持 constant/linear/cosine 调度) |
| 验证集 | Held-out selection split,只有验证分提升才接受编辑 |
| 梯度裁剪 | Bounded text update,防止一步改太多导致偏移 |
| 动量 | Epoch-wise slow/meta update,保留跨 epoch 的稳定编辑方向 |
| 负样本 | Rejected-edit buffer,记录被拒绝的编辑,后续优化时当反面教材 |
训练流程
1. Forward Pass:冻结的 target model 用当前 skill 跑 rollout batch → 得到轨迹 + 得分
2. Backward Pass:optimizer model 把轨迹分 minibatch 反思 → 生成结构化编辑
3. Bounded Update:按 learning rate 截取 top-k 编辑 → 生成 candidate skill
4. Validation Gate:在 held-out set 上评估 candidate → 提升则接受,否则拒绝并记入 buffer
5. Slow/Meta Update:每个 epoch 结束做一次长周期总结 → 更新 meta-skill整个过程 target model 的权重完全不动,只改 skill 文本。最终输出一个 300-2000 tokens 的 best_skill.md。
实验结果:52 项全胜
6 个 benchmark(SearchQA、SpreadsheetBench、OfficeQA、DocVQA、LiveMathematicianBench、ALFWorld)× 7 个模型(从 GPT-5.5 到 Qwen 4B)× 3 种执行模式(direct chat、Codex、Claude Code)= 52 个评测单元。
SkillOpt 在所有 52 个单元上都是最佳或并列最佳。
关键数字(GPT-5.5 direct chat,相比无 skill 基线):
| Benchmark | 基线 | SkillOpt | 提升 |
|---|---|---|---|
| SearchQA | 77.7 | 87.3 | +9.6 |
| SpreadsheetBench | 41.8 | 80.7 | +38.9 |
| OfficeQA | 33.1 | 72.1 | +39.0 |
| DocVQA | 78.8 | 91.2 | +12.4 |
| LiveMathBench | 37.6 | 66.9 | +29.3 |
| ALFWorld | 83.6 | 95.5 | +11.9 |
平均提升 +23.5 分,比最强对手(human/LLM/Trace2Skill/TextGrad/GEPA/EvoSkill 中最好的那个)还高 +5.4 分。
在 Codex 和 Claude Code 执行模式下,提升分别是 +24.8 和 +19.1 分。
迁移能力
Skill 的价值不只是在一个 setting 下好用,还要能迁移:
- 跨模型:在 GPT-5.4 上优化的 SpreadsheetBench skill,给所有更小的 GPT 变体都带来提升
- 跨 harness:Codex 训练的 skill 迁移到 Claude Code,依然有 +59.7 分的增益
- 跨 benchmark:OlympiadBench 上优化的 skill 在 Omni-MATH 上也有正向增益
SkillLens:skill 生命周期的第一次系统性解剖
论文二:From Raw Experience to Skill Consumption: A Systematic Study of Model-Generated Agent Skills(arXiv: 2605.23899v1)
SkillOpt 解决了"怎么优化"的问题,SkillLens 回答的是更基础的问题:skill 到底有没有用?什么时候有用?为什么有用?
三个阶段的生命周期
Experience Generation → Skill Extraction → Skill Consumption
(生成轨迹) (提取 skill) (用 skill 跑任务)SkillLens 在 5 个领域(ALFWorld、SpreadsheetBench、SWE-bench-Verified、SEAL-0、ToolCalling)上系统性地变换 extractor 和 target model,做了迄今最全面的 skill 效果研究。
三个核心发现
发现一:Model-generated skill 平均有用,但不保证
5 个领域中,skill 的平均效果是正面的。但存在 non-trivial negative transfer——在不少 extractor × target × domain 的组合里,加了 skill 反而比不加更差。
这不是例外,而是常态。在 ALFWorld 的某些组合里,negative transfer 高达 -3.5 分。
发现二:好 executor ≠ 好 extractor
一个模型自己任务跑得好(好 executor),不代表它能从轨迹中提取出好的 skill(好 extractor)。反过来也一样。这两个能力是独立的。
论文引入了两个解耦指标:
- Extraction Efficacy(EE):一个 extractor 给不同 target 提取 skill 的平均效果
- Target Evolvability(TE):一个 target 从不同 extractor 获得的平均提升
在 SWE-bench-Verified 上,GPT-5.4-mini 作为 extractor 的 EE 是 +3.11,比 GPT-5.4 的 +2.45 还高。小模型反而更擅长提取 skill。
发现三:Skill 的价值跟模型规模和基线能力无关
一个模型的基线任务得分高,不代表它从 skill 中获益少。TE 和模型规模、基线表现之间没有简单的线性关系。有的强模型(高基线)从 skill 中获得巨大提升,有的弱模型反而提升很小。
深入分析:什么造就了好的 skill
SkillLens 进一步拆解了三个阶段:
Experience Generation 阶段:失败的轨迹和成功的轨迹都包含有用信息。只用成功轨迹提取的 skill 不如混合使用的效果好。失败轨迹揭示了"不该做什么"。
Skill Extraction 阶段:skill 的文本质量(surface plausibility)和实际效果(utility)几乎不相关。一段看起来很专业、很详细的 skill,可能在实际使用中完全没用。好的 skill 的特征是:具体的操作建议,而不是泛泛的原则。
Skill Consumption 阶段:同一个 skill 在不同 target 上的效果差异巨大。Skill 从大模型迁移到小模型时尤其不稳定。
Meta-Skill:从发现到改进
SkillLens 最重要的实际贡献是提出了 Meta-Skill Guided Extraction——把研究发现转化成一条可操作的元 skill,注入到 skill 提取过程中,指导 extractor 关注那些真正与 utility 相关的特征。
效果:跨领域一致性地提升 skill 质量,并大幅减少 negative transfer。
两篇论文的交汇:从诊断到治疗
两篇论文来自同一个研究团队,形成了完整的"诊断 + 治疗"闭环:
- SkillLens 是诊断——系统地搞清楚了 skill 生命周期中每个阶段的问题所在
- SkillOpt 是治疗——用受控的优化过程解决 SkillLens 发现的"自由演化方向不明"问题
两者共享的关键洞察:skill 优化不能是无约束的文本改写,必须有验证门控、有界更新、负反馈机制。
SkillLens 证明了"不加约束的 skill 提取经常产生有害 skill";SkillOpt 用 validation gate + rejected-edit buffer 直接解决了这个问题。
对 Agent 开发者的实际意义
如果你在维护 Agent skill 库:
- 不要只靠 LLM 一次性生成 skill——SkillLens 证明了 LLM skill 的效果高度不稳定
- 用验证集做门控——每次修改 skill 后必须在 held-out set 上验证,不加验证的修改比不改更危险
- 追踪被拒绝的编辑——失败的修改记录是宝贵的负反馈,SkillOpt 的 rejected-edit buffer 让后续优化避开已知雷区
- 给 skill 设编辑预算——一次改太多规则容易偏移,SkillOpt 的 cosine learning rate schedule 从大到小递减编辑幅度
如果你在选 extractor 模型:
- 不要假设最强的模型就是最好的 extractor——SkillLens 发现中等模型可能更擅长提取 skill
- 分别评估 EE 和 TE——extractor 的能力和 target 的可演化性是两个独立维度
如果你在做跨模型部署:
- 在大模型上优化的 skill 可以迁移到小模型——SkillOpt 的跨模型实验证明了这一点
- 但要警惕 negative transfer——迁移前必须在目标模型上验证,SkillLens 显示某些组合会起反效果
这两篇论文的共同代码仓库:
- SkillOpt: https://aka.ms/SkillOpt
- SkillLens: https://aka.ms/SkillLens
作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。