微软双论文深度剖析:Agent Skill 的评测体系与自进化优化

你的 Skill 真的有用吗?这个问题比你想的难回答

假设你花了一个下午,给你的 Agent 精心写了一个 Skill------里面有清晰的步骤、详尽的注意事项、格式规范的输出要求。你手动测了几次,感觉相当不错。然后你把它投入生产。

三周后,你发现某些任务的成功率反而比没有 Skill 时低了。

这不是假设场景。微软研究团队在 2026 年 5 月同期发布的两篇论文------SkillLens("From Raw Experience to Skill Consumption")和 SkillOpt("Executive Strategy for Self-Evolving Agent Skills")------用严格的实验数据告诉我们:这种"负迁移"现象在 25% 的情况下都会发生,而且你靠肉眼读 Skill 文本根本判断不出来哪个更好。

这两篇论文一个回答"Skill 为什么有时候不管用",另一个回答"怎么系统性地让 Skill 越来越好"。读完你会发现,它们共同描绘的是一个关于 Agent 能力提升的全新范式。


第一篇论文:SkillLens------Skill 的完整生命周期研究

Skill 不是一个点,而是一条链

大多数人对 Skill 的理解停留在"一段写给 Agent 看的指令文本"。但 SkillLens 把这件事拆得更细,提出了 Skill 的三阶段生命周期

yaml 复制代码
阶段 1: 经验生成(Experience Generation)
    目标模型 M 在训练任务上跑一遍,产生一批执行轨迹
    ↓
阶段 2: 技能提取(Skill Extraction)
    提取器模型 E 分析这批轨迹,蒸馏成结构化的 Skill 文档
    ↓
阶段 3: 技能消费(Skill Consumption)
    同一个目标模型 M 带着提取出的 Skill 去做新任务,看能不能提升

这条链上有两个独立角色:**提取器(Extractor)**负责从经验中提炼知识,**目标模型(Target)**负责消费知识提升表现。关键洞察是:这两个角色彼此独立,性能不相关。一个提取能力强的模型可能是个弱消费者,反之亦然。

两个新指标:EE 和 TE

为了量化这两个角色的差异,论文提出了两个互补的指标:

提取效能(Extraction Efficacy, EE):固定一个提取器,它能为多少个不同目标模型稳定生产有用的 Skill?

EE(E,D)= 1∣M∣ ∑M∈M Δ(E,M,D)\text{EE}(E, \mathcal{D}) = \frac{1}{|\mathcal{M}|} \sum_{M \in \mathcal{M}} \Delta(E, M, \mathcal{D}) EE(E,D)=∣M∣1∑M∈MΔ(E,M,D)

目标可进化性(Target Evolvability, TE):固定一个目标模型,当用不同提取器来蒸馏它自己的经验,它能从中获得多大提升?

TE(M,D)= 1∣E∣ ∑E∈E Δ(E,M,D)\text{TE}(M, \mathcal{D}) = \frac{1}{|\mathcal{E}|} \sum_{E \in \mathcal{E}} \Delta(E, M, \mathcal{D}) TE(M,D)=∣E∣1∑E∈EΔ(E,M,D)

想象一个类比:EE 衡量的是"这个老师能教好多少学生",TE 衡量的是"这个学生从多少老师那里都能学到东西"。两个维度都高才是理想状态。

实验设置:大规模交叉验证

论文的实验规模相当大:

  • 5 个领域:具身规划(ALFWorld)、生产效率(SpreadsheetBench)、软件工程(SWE-bench-Verified)、网络搜索(SEAL-0)、工具调用(BFCL-v4)
  • 6 个目标模型:GPT-5.4、GPT-5.4-mini、Gemini-3.1-Pro、Gemini-3.1-Flash-Lite、Qwen3.5-35B、Qwen3.5-9B
  • 5 个提取器模型:同上(排除了 Qwen3.5-9B,因为它无法稳定执行结构化提取协议)

实验的核心设计原则是最小化干预:提取框架刻意去掉了复杂的工程技巧(域特定启发式、过滤规则、优化技巧),只保留最基本的"逐轨迹分析 + 层次合并"两步,确保性能差异来自模型能力本身,而非管道设计。

核心发现一:75% 有效,但 25% 反效果

表 1 的数据展示了一个残酷的现实:

Model-generated skills improve downstream performance in 75% of entries. Yet negative transfer remains common: 25% of entries have Δ < 0.

不同领域的负迁移率差异显著:SpreadsheetBench 和 SWE-bench 的负迁移率最低(13%),而 ALFWorld 最高(47%)------接近一半的情况下,Skill 反而帮了倒忙。

更反直觉的是:"更强的执行模型"不一定是"更好的提取器"。在 SpreadsheetBench 上,轻量级的 Gemini-3.1-Flash-Lite 的 EE 得分最高,而在所有目标中基础能力最强的 GPT-5.4 反而排名末尾。这说明"从轨迹中提炼出对方能用的程序性知识"是一项独立的能力,跟解题能力是两码事。

核心发现二:格式无所谓,内容才是关键

你可能会猜测,技能文档写成有序列表比写成散文效果更好。SkillLens 直接做了实验:

把同一个技能改写成四种格式(有序列表、无序列表、检查清单、散文),用 Friedman 检验看哪种格式排名更高。

结论:格式对所有目标的影响均不显著(p > 0.34),而更换提取器对 5/6 个目标有显著效果(p < 0.005)。

这意味着精心设计的"美观格式"不能带来实质提升,写了什么 远比怎么写更重要。

核心发现三:读起来好的 Skill ≠ 用起来好的 Skill

这是最违反直觉的发现。实验让 GPT-5.4 担任裁判,在不知道实际效果的情况下,从同一个(目标模型, 领域)中提取出的两个 Skill 里选更好的那个。

结果:未经引导的裁判只有 46.4% 的准确率,接近随机猜测(50%) 。更糟糕的是,在效果差距 δ ≥ 5% 的"明显更好"的配对中,裁判只有 15.8% 的时间选对了------准确率低于随机水平,说明读起来流畅的 Skill 反而更容易被误判为优质

这个发现有重要的实践意义:你无法通过"让模型帮你审核 Skill 文本"来可靠地筛选出高质量技能。

深入三个阶段:什么在驱动质量?

阶段 1(经验生成)------成功/失败比例决定上限

实验固定提取器(GPT-5.4-mini),从同一批原始轨迹中采样出成功率分别为 0%/25%/50%/75%/100% 的经验池,提取 Skill 后评估效果。

发现:经验组成强烈影响提取出的技能质量,且最优比例是领域相关的

  • SpreadsheetBench 偏好高成功率经验
  • SWE-bench 在大部分成功的经验池上达到峰值
  • ALFWorld 在失败较多的经验池上效果最好(失败揭示了无效动作和死胡同状态)

共同规律:纯失败经验池一致表现最差。成功经验是技能提取的基础,它提供了正向程序信号,告诉 Agent 应该怎么做,而不仅仅是什么不要做。

阶段 2(技能提取)------内容深度比格式重要

从"为什么读起来好的 Skill 效果不一定好"这一现象出发,论文做了定性分析,发现了区别好坏 Skill 的真正要素:

高 Δ 技能提供的是具体可执行的纠错机制 (比如"当宿主引擎不执行公式字符串时,预先计算静态值写入单元格"),而低 Δ 技能提供的是通用性劝告(比如"在开始编码前先解决合同")。

一个形象的比喻:高质量技能像一份"踩坑笔记"------记录了具体场景下具体的失败模式和对应的解法;低质量技能像一段"道理大家都懂"的鸡汤。

阶段 3(技能消费)------同一 Skill,不同模型大相径庭

固定同一份技能注入不同模型,效果差异可以很大。以 SpreadsheetBench 为例:

  • GPT-5.4 消费后提升 +9.0 分
  • Qwen3.5-9B 消费后某些 Skill 反而下降

行为分析揭示了原因:技能消费重塑了模型的默认策略,而非触发新的显式工具调用。对 GPT-5.4 而言,技能引导它从"写公式"转向"用 Python 计算后写入静态值",恰好规避了公式稳定性问题。而对 Qwen3.5-9B 而言,同样的引导让它采用了更复杂的 workbook-native 工作流,在精细任务上提升了结构正确性,但也带来了更多执行错误。

破局方案:Meta-Skill 引导提取(RQ3)

前面的分析告诉我们:影响技能质量的真正维度是隐藏的,肉眼看不出来。SkillLens 的 RQ3 问的是:能不能把这些发现转化为可直接插入提取流程的改进?

第一步:发现真正预测效用的维度

研究者设计了全自动的 rubric 发现管道:

  1. 从效果差距大的技能配对中提取每对的差异特征(由 GPT-5.4 分析)
  2. 迭代合并归纳为 7 个候选维度(原始 rubric
  3. 用配对评估测试每个维度的"better-rate"------看遵循该维度的技能是否确实排名更高

只有 3 个维度稳定预测效用 ,共同构成验证 rubric

维度 含义
Failure Mechanism Encoding(失败机制编码) 技能是否编码了具体的失败模式和触发条件
Actionable Specificity(可操作具体性) 技能是否提供了针对具体情境的可执行指导
High-Risk Action Blacklist(高风险操作黑名单) 技能是否明确标注了应当避免的高风险操作

第二步:验证 rubric 的评判能力

用这 3 维 rubric 重新引导裁判后,在 151 对"明显更好"的配对上,判断准确率从 46.4% 提升到 73.8%。对于 δ ≥ 5% 的困难配对,准确率从 15.8%(低于随机)提升到了多数时间正确。

第三步:做成 Meta-Skill 插入提取器

把验证 rubric 封装成一个紧凑的 Meta-Skill(生成时的先验知识),插入提取器的系统提示中,然后和三种条件比较:

  • 无引导原始提取
  • 加 7 维"表面合理性" rubric(plausibility rubric)的引导
  • 加 3 维验证 rubric 的引导

结果非常清晰:

表面合理性 rubric 平均损害性能(-0.59pp,9 格中 6 格下降);验证 rubric 改善了全部 9 格(+1.55pp 平均),SpreadsheetBench 上最高提升 +2.3 至 +3.7pp。

这说明:用"看起来合理"的标准引导提取不仅没用,反而有害。只有用经过数据验证的维度才能可靠改进。


第二篇论文:SkillOpt------把 Skill 文档当参数来训练

一个核心类比:Skill ≈ 神经网络权重

SkillLens 告诉我们 Skill 可以被系统性地评测和改进。SkillOpt 则进一步问:能不能像训练神经网络一样,用优化循环来系统性地改进 Skill 文档本身?

这个类比是 SkillOpt 全部设计的基础,论文用一张表格把对应关系列得很清晰:

深度学习 SkillOpt 对应物
参数(权重) Skill 文档
梯度方向 轨迹推导的编辑方向
学习率 编辑预算(edit budget)
验证集检查 留出集选择门(held-out selection gate)
稳定训练设置 batch/minibatch/schedule/gate

这个类比不是装饰性的------它是可操作的。批次大小、学习率、验证、动量,这些概念在 SkillOpt 里都有对应的文本空间实现。

SkillOpt 的工作流程

整个优化循环可以用图 2 的管道来理解,核心分为"每步更新"和"跨 epoch 整合"两个层次:

前向传播:滚出轨迹(Rollout)

每个优化步骤开始时,冻结的目标模型用当前 Skill 跑一批训练任务,收集轨迹和评分。这是"观察 Skill 在实际任务上的表现",就像神经网络的前向传播一样。

批次大小控制着每次更新的证据质量:小批次更新快但噪声大,大批次暴露更稳定的模式。

反向传播:小批量反思(Minibatch Reflection)

优化器模型(一个独立的前沿模型)分析轨迹,把轨迹转化为结构化的 Skill 编辑建议。

关键细节:它同时处理失败轨迹和成功轨迹,分别提炼为"需要新增/修正的规则"和"需要保留的有效行为"。单条轨迹往往产生特例性修复,而批量轨迹才能暴露可复用的程序性错误(如"Agent 总是在错误位置搜索"、"答案格式始终不对")。

局部提案会按照"先合并失败驱动的编辑,再合并成功驱动的编辑,失败修正优先"的顺序分层合并,过滤重复、矛盾和特例性建议。

有界文本更新:学习率预算(Bounded Text Updates)

这是 SkillOpt 与"随意重写 Skill"最关键的区别

每步优化有一个编辑预算 Lt L_t Lt :优化器最多只能对 Skill 文档做 Lt L_t Lt 次 add/delete/replace 操作。超过预算的候选编辑被裁剪掉。

有界更新的好处:

  • 无界重写容易擦除有用规则:之前几个 epoch 学到的好东西可能被一次大改给覆盖
  • 无界重写容易引入矛盾指令:多次迭代后 Skill 文档会变成混乱的拼贴
  • 有界更新保持连续性:让后续优化器调用能从历史记录中学习"什么有效、什么无效"

SkillOpt 支持四种编辑预算调度:常数、线性、余弦(默认)和自主调度。默认余弦调度从较大编辑量开始,逐步收缩到小的整合步骤。

验证门:不是更好就不接受(Validation Gate)

每轮编辑产生一个候选 Skill。SkillOpt 只有当候选 Skill 在留出验证集上的得分严格大于当前最优得分时才接受(平局也拒绝)。

被拒绝的编辑不是直接扔掉,而是被记录到**被拒编辑缓冲区(rejected-edit buffer)**中,作为负面信号:

  • 被拒绝说明这个方向是有害的
  • 后续反思调用会收到这份缓冲区,避免重复提出已知有害的编辑
  • 这给训练循环提供了零额外推理成本的负反馈

想象一下:这就像给 Skill 做 A/B 测试,只有通过验证的版本才会升级,失败的尝试被记录下来不再重蹈覆辙。

跨 Epoch 慢/元更新(Epoch-wise Slow/Meta Update)

快更新从当前批次学习,慢/元更新从相邻 epoch 之间的对比学习更长视野的规律。

每个 epoch 结束时,SkillOpt 在前一个 epoch 的 Skill当前 epoch 的 Skill下跑同一批样本,把结果分为四类:改善、退步、持续失败、稳定成功。

优化器模型据此写一段纵向指导(longitudinal guidance),记录:

  • 哪些编辑模式持续有效
  • 哪些编辑模式总是被拒或引发退步
  • 哪些失败模式跨 epoch 依然未解决

这段指导存入 Skill 文档的一个受保护区域(step-level 编辑不能覆盖它),让长期规律不被短期噪声淹没。

注意 :慢更新信息只在优化器侧使用,不会随 best_skill.md 一起部署。目标是让优化过程受益于完整历史,同时保持部署产物紧凑可读。

实验:52/52 全面最优

论文在 6 个 benchmark(SearchQA、SpreadsheetBench、OfficeQA、DocVQA、LiveMathematicianBench、ALFWorld)× 7 个目标模型 × 3 种执行框架(直接对话、Codex 循环、Claude Code 循环)上进行评估,对比 7 个基线:

  • No skill(无技能基线)
  • Human skill(专家手写)
  • LLM skill(一次性 LLM 生成)
  • Trace2Skill(轨迹蒸馏)
  • TextGrad(文本梯度优化)
  • GEPA(Pareto 反思式提示进化)
  • EvoSkill(技能文件夹进化)

最终结果:SkillOpt 在全部 52 个评测格(模型 × benchmark)上均是最优或并列最优。

核心数字:

执行框架 GPT-5.5 相对 no-skill 的平均提升
直接对话 +23.5 分
Codex 循环 +24.8 分
Claude Code 循环 +19.1 分

单个 benchmark 的提升更为惊人:OfficeQA 从 33.1 提升到 72.1(+39.0 分),SpreadsheetBench 从 41.8 提升到 80.7(+38.9 分),ALFWorld 在 GPT-5.4-nano 上从 34.3 提升到 69.4(接近翻倍)。

消融实验:每个设计都是必要的

表 3 的消融数据证明了各组件缺一不可:

移除的组件 SearchQA 下降 SpreadsheetBench 下降 LiveMath 下降
学习率限制(无 bound) -2.5 -1.8 -4.0
被拒缓冲区 -1.6 -4.6 -2.4
Meta skill + 慢更新 -0.6 -22.5 -3.2

移除慢/元更新对 SpreadsheetBench 的影响最大(-22.5 分),因为这个 benchmark 需要跨 epoch 积累的程序性知识(格式规范、公式处理策略),这正是慢更新保护的长期规律。

学到的 Skill 长什么样?

论文 Figure 4 展示了从 best_skill.md 中提取的代表性规则,每个 benchmark 一条(原文引用):

SearchQA: "Infer the expected answer type from clue wording, then choose the shortest canonical entity supported by co-occurring distinctive evidence."
SpreadsheetBench: "Inspect workbook structure and formulas, then write evaluated static values across the full requested target range instead of relying on Excel recalculation."
OfficeQA: "Treat oracle parsed pages as primary evidence, lock table/date/unit context, and output exactly the requested rounded value without extra labels."
ALFWorld: "Keep a horizon-aware visited/frontier ledger, diversify search after repeated same-type failures, and avoid revisiting the destination until holding the target."

这些规则有三个共同特征:

  1. 程序性而非实例特定:不提及具体问题、文件名或实体
  2. 编码了前沿模型零样本不会自发应用的纪律:答案格式约束、证据绑定策略、搜索边界管理
  3. 读起来像有经验的人类实践者写的笔记------实际上是由优化器在有界更新和验证门控下自动产生的

成本层面 :6 个 benchmark 的最终 best_skill.md 长度在 379 到 1,995 token 之间,中位数约 920 token。真正被接受的编辑次数只有 1 到 4 次(中位数 2.5 次)------优化器提出了远更多的编辑,但只有极少数通过了验证门,成为实际改进。

迁移能力:训练一次,到处复用

SkillOpt 最令人兴奋的结论之一是:优化后的技能产物可以迁移,不仅仅在训练设置下有效。

跨模型迁移 :在 GPT-5.4 上优化的 SpreadsheetBench Skill 迁移到 GPT-5.4-mini 后,保留了 82% 的域内增益(+9.4 vs +11.4)。LiveMath 技能转移到更小模型后甚至超过了原模型的域内 SkillOpt 参考分

跨执行框架迁移 :Codex 循环中训练的 SpreadsheetBench Skill 迁移到 Claude Code 后获得 +59.7 分的增益(Claude Code 基线 22.1 → 81.8),超过了 Claude Code 自己训练的 SkillOpt 参考分 80.4

跨 benchmark 迁移:在 OlympiadBench 上优化的数学技能迁移到 Omni-MATH 后,在三个模型规模上均获得正向增益(+3.7/+1.8/+1.3),说明技能编码的是可复用的数学程序知识,而非特定测试集的格式。

这种迁移能力有重要的实践价值:在一个执行环境中优化一次,多个模型、多个环境都能受益,而无需重新训练模型权重。


两篇论文的合力:从"理解问题"到"系统解决"

把两篇论文放在一起,它们的贡献形成了一个完整的闭环:

erlang 复制代码
SkillLens:诊断问题
├── 发现:25% 负迁移,原因在于提取质量不均
├── 发现:格式无关,内容关键
├── 发现:文本好看 ≠ 实际有用
└── 解决:验证 rubric + Meta-Skill 改善提取质量

SkillOpt:系统优化
├── 核心:把 Skill 当可训练参数
├── 机制:有界编辑 + 验证门 + 被拒缓冲 + 慢更新
├── 结果:52/52 全面最优,+17.6 分平均提升
└── 特性:产物紧凑、可迁移、可审计

两者的核心共识是:Skill 不应该是靠直觉写出来的静态文档,而应该是靠数据驱动的动态优化对象。SkillLens 告诉你哪些维度是真正重要的,SkillOpt 告诉你怎么用优化循环系统性地把这些维度推向更好。


对实践者的启示

如果你在维护一个 Skill 库:

  1. 不要只靠"读起来顺不顺"来判断 Skill 质量------实验证明这和实际效果几乎不相关
  2. 给 Skill 建立评测集(即使只有 10 条用例),用确定性指标衡量它有没有帮倒忙
  3. 在构建经验池时,混合成功和失败轨迹,纯失败的经验池提取出的技能一致表现最差
  4. 给提取器加上"失败机制编码+可操作具体性+高风险操作黑名单"三维引导,这是被实验验证过的改进

如果你在考虑系统性技能优化:

  1. SkillOpt 的核心思想------有界编辑+验证门+负反馈缓冲------是比"无约束重写"更稳定的方式
  2. 较小的编辑预算(学习率 4)在大多数 benchmark 上表现竞争性,不需要一次大改
  3. 被拒绝的编辑同样有价值,记录下来可以防止重蹈覆辙
  4. 慢/元更新对需要跨 epoch 积累的领域(如程序性任务)至关重要

总结

两篇论文共同回答了一个核心问题:为什么 Skill 有时候不管用,以及怎么让它越来越好。

SkillLens 用大规模实验揭示了技能生命周期的三个阶段各自的影响因素,发现了"好看的技能不代表好用"这一反直觉结论,并提炼出真正预测实用性的三维评估标准(Failure Mechanism Encoding、Actionable Specificity、High-Risk Action Blacklist),做成 Meta-Skill 改善了所有被评估的提取条件。

SkillOpt 把技能文档视作可训练的文本参数,通过有界编辑预算、验证门、被拒缓冲区和跨 epoch 慢更新,把随意修改变成受控优化,在 52 个评测格上全面击败所有基线,且产物紧凑(< 2,000 token)、可审计(1-4 次编辑)、可跨环境迁移。

技能优化,正在从一门手艺,变成一门可以量化、可以复现的工程。


参考论文:


🎉 感谢关注,让我们一起享受技术带来的精彩!

我做了一个个人主页,能找到所有我提供给你的资源个人主页

相关推荐
香蕉也是布拉拉1 小时前
2026-05-29 arXiv 论文带读:GeoAI、空间智能与多模态 Agent 的 9 篇高质量新作
人工智能·机器学习
ting94520001 小时前
Ava 2.0 技术架构与核心能力深度解析:自主式 AI BDR 的全链路技术实现
人工智能·架构
Jing_jing_X2 小时前
AI 产品模型评测工具怎么选?用 Promptfoo / DeepEval / Ragas 找到最低可用模型
大模型·agent·ai应用开发
Mr数据杨2 小时前
【CanMV K210】基础实验 RGB LED 三色混光与状态灯封装
人工智能·硬件开发·canmv k210
万俟淋曦2 小时前
【论文速递】2026年第02周(Jan-04-10)(Robotics/Embodied AI/LLM)
人工智能·深度学习·机器人·大模型·论文·robotics·具身智能
Black蜡笔小新2 小时前
企业私有化AI训练推理一体工作站DLTM企业级AI模型工作站助力企业AI落地常态化
人工智能
apcipot_rain2 小时前
计科八股20260530——文本输入模型步骤、CNN权重共享、Resnet、Transformer、RNN
人工智能·深度学习·神经网络·数学建模·自然语言处理
Mikowoo0072 小时前
神经网络 替代 线性模型_进行模型学习
人工智能·神经网络·学习
53AI2 小时前
AI赋能企业合规审查:从信息过载到智能闭环
人工智能·智能审核·合同审核·合规审查