一句话:Penn State 团队提出 SkillGrad,把 Agent 技能包(skill package)当成可优化的参数,像梯度下降那样迭代。失败轨迹提供"损失信号",成功轨迹提供"保护信号",文本动量累积跨迭代的重复诊断模式。GPT-5.4 在 SpreadsheetBench 上从 Base Skill 的 55.8% 拉到 71.1%,比最强训练基线 Trace2Skill 还高 3 pp;GPT-4.1 更夸张,从 36.7% 拉到 54.2%,领先 Trace2Skill 17 pp。10 次迭代成本约 6.4 美元,不需要微调模型,只改技能文件。
一、技能文件的困境:生成了,不好用
LLM Agent 的"技能"(skill)是轻量级的领域适配方式——把可复用的程序性知识存成结构化文件(SKILL.md),Agent 遇到对应任务时加载。不需要微调模型,换一套技能文件就能切换领域。
但问题很明显:
- LLM 自动生成的技能,质量远低于专家手写
- 第三方下载的技能,可能过时、不完整、有漏洞
- 现有进化方法(EvoSkill、Trace2Skill)靠启发式反思,没有显式的优化框架
EvoSkill 的思路是"失败驱动"——看哪些任务失败了,针对性修复。Trace2Skill 的思路是"蒸馏"——从大量执行轨迹里提取局部教训,再层次化整合。两者都是经验主义,没有优化目标、没有收敛保证、没有防止过优化的机制。
SkillGrad 的切入角度:把技能包当成参数,把执行轨迹当成损失证据,把整个迭代过程当成梯度下降。
二、分层技能参数:L1/L2/L3 的架构设计
技能包不是平铺的 markdown,而是分层的结构化文件:
| 层级 | 内容 | 加载策略 |
|---|---|---|
| L1 Metadata | YAML 描述(名称、描述、激活条件) | 仅用于路由,决定何时激活 |
| L2 SKILL.md | 核心原则、工作流、操作模式、常见陷阱 | 始终加载,保持精简 |
| L3 Resources | 详细示例、边缘情况、条件触发过程 | 条件加载,按需读取 |
L2 必须紧凑——每行都消耗未来每次运行的上下文预算。L3 可扩展——不用的时候无负担。补丁器更新时必须判断:新知识放 L2(重要原则)还是 L3(边缘案例)。
迭代后的尺寸变化:
- L2:从 40 行 → 迭代 1 约 120 行 → 最终稳定在 154 行(均值)
- L3:从 0 → 单调增长至约 13,000 字符(迭代 10)
这意味着 L3 像雪球一样越滚越大,但 L2 收敛了——核心知识被压缩进始终加载的头部,边缘知识被沉淀到按需加载的尾部。
三、损失证据:不只是失败,还有"从失败到成功"的对比
3.1 二元损失太粗糙
传统方法只看"成功/失败"——成功了,没信号;失败了,修一下。这种二元信号太稀疏,且浪费了成功案例中的信息。
3.2 SkillGrad 的轨迹级损失
两种证据:
- 失败轨迹(当前失败):提供纠正性诊断——"这里做错了,应该怎么改"
- 对比成功轨迹(初始失败→当前成功):提供保护性诊断——"从失败到成功,变了什么?这个变化值得保留"
训练任务采样策略:从初始技能的 失败池 中采样,不是随机采样。这意味着迭代 1 时,大量任务初始失败但当前可能成功——对比成功轨迹天然丰富。
关键洞察:即使当前成功了,成功的轨迹和附近失败的对比,仍然能提供有用的改进信号。这解决了纯二元损失信号稀疏的问题。
四、文本动量:跨迭代累积重复出现的诊断模式
4.1 类比梯度下降的动量项
| 梯度下降 | SkillGrad 文本动量 |
|---|---|
| \(v_t = \gamma v_{t-1} + g_t\) | \((M_t, O_t) = \text{Momentum}(M_{t-1}, D_t, S_t)\) |
4.2 双状态结构
- \(M_t\) 持久模式记忆:记录跨迭代重复出现的机制。每个模式包含:锚点(anchor)、出现迭代、描述、当前最佳执行动作、修复历史。
- \(O_t\) 当前批次叠加:为每个批次任务生成紧凑的更新信号。
4.3 动态特征
| 指标 | 数值 |
|---|---|
| 累积模式数饱和点 | 迭代 7(约 10 个模式) |
| 迭代 1 新模式率 | ~3 个/迭代 |
| 迭代 5-9 新模式率 | 0-1 个/迭代 |
| 活跃模式数(迭代 3+) | 稳定于 4-5 个 |
迭代后期新模式几乎不再出现——说明技能已经收敛到一组稳定的知识模式。这正是"动量"的作用:稳定的经验被保留,不稳定的单次波动被过滤。
五、分层感知补丁:把诊断变成编辑
补丁器不是简单地"把诊断内容 append 到技能文件"。它要做三件事:
- 模式级泛化:多个诊断指向同一机制时,产生单一泛化编辑,而不是任务级修复列表
- 层感知路由:判断内容放 L2(始终加载)还是 L3(条件触发)
- 锚点系统:用 kebab-case slug(如
inspect-before-edit、mapping-shapes)稳定定位,避免重复添加
补丁幅度:
- 迭代 1(启动):约1,170 词添加,约80 词移除
- 迭代 2-10(增量):约330 词/迭代(240-410 带),移除持续低
消融对比:无动量时 L2 词数膨胀 29.7%(2,416 vs 1,863),L3 反而减少 32%——更多内容被迫进入 L2,削弱了条件加载的优势。
六、实验:数字说话
6.1 数据集
- SpreadsheetBench Verified:域内任务(电子表格操作),训练集 40、验证集 20、测试集 120。硬准确率:所有输出单元格匹配。
- WikiTableQuestions (WikiTQ):域外任务(半结构化表 QA),固定采样 70 例。指称准确率:预测答案与 gold denotation 匹配。
6.2 基线
- No Skill:直接使用 LLM,无技能文件
- Base Skill:直接使用初始化技能(LLM 生成或第三方)
- Trace2Skill (Ni et al., 2026):轨迹→技能蒸馏
- EvoSkill (Alzubi et al., 2026):失败驱动进化
6.3 LLM 生成的技能初始化
| 方法 | GPT-5.4 SpreadsheetBench | GPT-5.4 WikiTQ | GPT-4.1 SpreadsheetBench | GPT-4.1 WikiTQ |
|---|---|---|---|---|
| No Skill | 62.50 | 78.57 | 44.17 | 52.86 |
| Base Skill | 55.83 | 77.14 | 36.67 | 48.58 |
| Trace2Skill | 65.28±2.93 | 79.05±1.35 | 37.22±3.54 | 60.00±5.83 |
| EvoSkill | 68.06±0.48 | 78.09±0.67 | 37.22±2.58 | 53.33±7.50 |
| SkillGrad | 71.11±1.73 | 82.38±1.78 | 54.17±3.54 | 73.65±2.50 |
几个值得细品的数字:
- GPT-5.4:Base Skill 55.83% → SkillGrad 71.11%(+15.28 pp),比 Trace2Skill 高 3.05 pp,比 EvoSkill 高 3.05 pp
- GPT-4.1:Base Skill 36.67% → SkillGrad 54.17%(+17.50 pp),比 Trace2Skill 高 16.95 pp,比 EvoSkill 高 16.95 pp
- WikiTQ(域外):GPT-5.4 82.38% vs Trace2Skill 79.05%(+3.33 pp);GPT-4.1 73.65% vs Trace2Skill 60.00%(+13.65 pp)
GPT-4.1 的提升幅度比 GPT-5.4 更夸张——说明 SkillGrad 对弱模型帮助更大,因为弱模型更依赖技能文件的引导。
6.4 第三方技能初始化
| 方法 | GPT-5.4 SpreadsheetBench | GPT-5.4 WikiTQ | GPT-4.1 SpreadsheetBench | GPT-4.1 WikiTQ |
|---|---|---|---|---|
| Base Skill | 60.00 | 78.57 | 33.33 | 42.86 |
| Trace2Skill | 63.89±0.48 | 81.91±1.78 | 38.89±3.85 | 51.43±1.17 |
| EvoSkill | 63.61±1.92 | 80.95±3.56 | 36.94±1.92 | 43.33±4.86 |
| SkillGrad | 69.44±0.48 | 83.34±0.67 | 45.83±3.66 | 53.81±2.43 |
第三方初始技能质量通常比 LLM 生成的更好(Base Skill 60% vs 55.8%),但 SkillGrad 的提升仍然稳定——69.44% vs 63.89%(+5.55 pp)。
6.5 消融实验
| 变体 | 准确率 | 变化 |
|---|---|---|
| 完整 SkillGrad | 72.50% | — |
| 无动量 | 65.83% | -6.67 pp |
| 仅失败诊断 | 68.33% | -4.17 pp |
动量比对比成功诊断更重要——去掉动量掉 6.67 pp,去掉对比成功只掉 4.17 pp。说明跨迭代稳定性的价值超过单次迭代的信号丰富度。
6.6 超参数与成本
| 批次大小 | 训练轨迹数 | 准确率 |
|---|---|---|
| 2 | 20 | 70.0% |
| 4(默认) | 40 | 72.5% |
| 6 | 60 | 70.8% |
批次不是越大越好——4 是 sweet spot,6 反而下降(可能引入更多噪音)。
| 迭代 | 准确率 |
|---|---|
| 1 | 63.3% |
| 4 | 65.8% |
| 7 | 67.5% |
| 10(默认) | 72.5% |
| 13 | 70.0% |
迭代 10 是最佳检查点,13 开始下降——过拟合或更新非单调。文本更新不像数值梯度那样有收敛保证。
成本:10 次迭代运行约 6.4 USD ± 0.38。单次迭代从 ~0.35 USD(迭代 1)增长到 ~0.85 USD(迭代 10),因为动量和补丁阶段的提示包含累积的模式状态。
七、启发:把"调 prompt"变成"优化参数"
SkillGrad 的核心贡献不是某个具体技巧,而是 视角转换——把技能文件从"手写的文档"变成"可优化的参数"。
这和传统机器学习的演进很像:
- 早期:特征工程——人工设计特征
- 中期:梯度下降——自动优化参数
- 现在:prompt 工程——人工调 prompt
- SkillGrad:prompt 优化——自动迭代技能文件
区别在于:
- 梯度下降优化的是数值参数(权重矩阵)
- SkillGrad 优化的是文本参数(结构化技能文件)
- 梯度下降的损失是可微的
- SkillGrad 的损失是离散的(成功/失败)
SkillGrad 用 LLM 作为"可微的桥梁"——用 LLM 的诊断能力把离散信号转化为文本梯度,再用 LLM 的编辑能力把文本梯度转化为参数更新。这本质上是在用 LLM 的"软计算"能力,模拟数值优化流程。
八、信息汇总
- 论文:SkillGrad: Optimizing Agent Skills Like Gradient Descent
- arXiv:2605.27760
- 作者:Hanyu Wang, Yifan Lan, Bochuan Cao, Lu Lin, Jinghui Chen
- 机构:Pennsylvania State University(宾夕法尼亚州立大学)
- 日期:2026-05-26
- 核心概念:技能包作为参数、梯度下降类比、轨迹级损失证据、对比成功诊断、文本动量、分层感知补丁(L1/L2/L3)
- 实验数据:
- GPT-5.4 SpreadsheetBench:71.11%(vs Base 55.83%,vs Trace2Skill 65.28%)
- GPT-4.1 SpreadsheetBench:54.17%(vs Base 36.67%,vs Trace2Skill 37.22%)
- GPT-5.4 WikiTQ:82.38%(vs Trace2Skill 79.05%)
- GPT-4.1 WikiTQ:73.65%(vs Trace2Skill 60.00%)
- 消融:无动量 -6.67 pp,仅失败诊断 -4.17 pp
- 成本:10 次迭代 6.4 USD
- 局限:主要在电子表格任务,文本更新非单调无收敛保证,缺乏形式化理论
- 代码:论文未明确提及开源,但 SkillGrad 框架应可复现
#记忆 #SkillGrad #Agent技能优化 #梯度下降 #文本动量 #分层技能 #Prompt优化 #PennState #SpreadsheetBench #WikiTQ #小凯
讨论回复
1 条回复推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。