【SkillRL】论文解读
第一章 SKILLRL 论文核心创新
1. 核心问题与现有方法的本质缺陷
现有LLM智能体的核心痛点是无法从过往经验中有效学习,所有任务执行基本都是孤立的episode。当前主流的记忆增强方法本质上都是“原始轨迹存储+相似度检索”,存在三个致命缺陷:
- 原始轨迹包含大量探索、回溯、冗余步骤,噪声占比极高,模型难以提取核心决策逻辑
- 仅存储原始数据,没有抽象出可复用的高层行为模式,本质是“模仿过去”而非“学习规律”
- 记忆库是静态的,无法与智能体的策略共同进化,随着任务复杂度提升,性能会快速下降
SKILLRL的核心思想是:将原始交互经验蒸馏为结构化、可复用的“技能”,并让技能库与智能体策略在强化学习过程中递归共同进化。这完全不同于传统“存轨迹-查轨迹”的记忆范式,而是模拟人类从经验中提炼技能、再用技能指导新任务的学习过程。
2. 核心创新一:经验驱动的差异化技能蒸馏
传统方法只保留成功轨迹,直接丢弃失败经验,浪费了大量关于“什么不能做”的关键信息。SKILLRL首次提出对成功和失败轨迹进行差异化蒸馏,将冗长的交互过程转化为高密度的可执行知识。
2.1 双轨迹收集与处理
首先用基础模型在环境中采样,同时保留两类轨迹(原文第3页):
- 成功轨迹集合 ( T^+ = {\tau_i: r(\tau_i)=1} ):包含完成任务的有效路径
- 失败轨迹集合 ( T^- = {\tau_i: r(\tau_i)=0} ):包含错误决策、边界条件和失败模式
2.2 蒸馏公式与逻辑
使用一个能力更强的教师模型 ( M_T ) 分别对两类轨迹进行蒸馏:
- 成功轨迹蒸馏(原文第3页公式2):
s+=MT(τ+,d) s^+ = \mathcal{M}_{T}\left(\tau^{+}, d\right) s+=MT(τ+,d)
教师模型会提取关键决策点、正确推理逻辑以及可跨任务迁移的通用模式,而非简单复述步骤。 - 失败轨迹蒸馏(原文第3页公式3):
s−=MT(τ−,d) s^{-} = \mathcal{M}_{T}\left(\tau^{-}, d\right) s−=MT(τ−,d)
教师模型会从失败中提炼四个核心要素:① 精确的失败点;② 导致失败的错误推理或动作;③ 正确的替代方案;④ 避免同类错误的通用原则。这将冗长的失败过程转化为有价值的反事实知识。
2.3 实际效果与案例
该机制实现了10-20倍的token压缩率,同时显著提升了信息的有用性(原文第4页)。例如在ALFWorld的加热任务中,原始失败轨迹“先走到微波炉,再到处找鸡蛋”被蒸馏为任务特定技能 hea_004:“先获取目标物体,再操作对应的电器”(原文第18页案例2),直接解决了这类高频错误。
3. 核心创新二:分层技能库SKILLBANK与自适应检索
蒸馏得到的零散知识需要结构化组织才能被高效利用。SKILLRL构建了一个两层结构的分层技能库SKILLBANK,并设计了对应的自适应检索机制,在有限的上下文窗口内最大化推理效用。
3.1 技能库的分层结构
SKILLBANK严格分为两个层级(原文第3-4页):
- 通用技能 ( S_g ):适用于环境内所有任务的基础策略,例如系统探索、状态预检查、目标分解、错误恢复等。例如ALFWorld中的
gen_001“系统探索”:“每个可能的表面或容器只搜索一次,优先访问未探索区域”(原文第15页表5);WebShop中的gen_001“优先核心关键词”:“搜索时包含产品类型和1-2个硬约束,省略次要描述”(原文第16页表7)。 - 任务特定技能 ( S_k ):针对某一类任务的专业知识,例如ALFWorld的加热/清洁任务、WebShop的服装/电子产品购物任务。这类技能包含领域特有的操作序列、约束条件和常见失败模式。
每个技能都采用统一的三元组结构:(技能ID, 可执行原则, 适用条件),确保模型能准确理解何时以及如何使用该技能。
3.2 自适应检索机制
推理时,智能体根据当前任务描述动态检索相关技能(原文第4页公式4):
Sret=TopK({s∈Sk:sim(ed,es)>δ},K) \mathcal{S}_{ret }=TopK\left(\left\{s \in \mathcal{S}_{k}: sim\left(e_{d}, e_{s}\right)>\delta\right\}, K\right) Sret=TopK({s∈Sk:sim(ed,es)>δ},K)
其中 ( e_d ) 和 ( e_s ) 分别是任务描述和技能的嵌入向量,( \delta=0.4 ) 是相似度阈值,( K=6 ) 是检索的最大技能数量(原文第5页)。
关键设计:通用技能 ( S_g ) 会被永久包含在上下文中,作为所有决策的基础指导;任务特定技能则通过语义相似度动态检索。这种设计既保证了基础策略的一致性,又能针对具体任务提供专业指导。
3.3 上下文效率优势
相比原始轨迹检索,SKILLRL的平均prompt长度减少了10.3%(从约1450token降至约1300token),同时实现了更优的性能(原文第7页图4)。这解决了传统记忆方法普遍存在的“上下文膨胀”问题。
4. 核心创新三:递归技能进化与技能增强的RL训练
这是SKILLRL最具突破性的创新——将技能库视为动态组件,而非静态知识库,让技能库与智能体策略在强化学习过程中共同进化。
4.1 冷启动SFT阶段
直接给基础模型提供技能库几乎没有效果,因为模型不知道如何检索、解释和应用这些抽象技能(原文第5页引用Guo et al., 2025)。因此SKILLRL设计了一个冷启动监督微调阶段(原文第5页公式6):
θsft=argminθLCE(DSFT;θ) \theta_{sft}=arg min _{\theta} \mathcal{L}_{CE}\left(\mathcal{D}_{SFT} ; \theta\right) θsft=argminθLCE(DSFT;θ)
教师模型会生成大量“任务描述+相关技能+正确推理轨迹”的示范数据 ( D_{SFT} ),基础模型通过交叉熵损失学习如何在决策过程中正确使用技能。微调后的模型同时作为RL训练的初始策略和KL正则化的参考策略 ( \pi_{ref} )。
4.2 递归技能进化机制
在RL训练过程中,每经过一个验证周期,系统会自动分析失败轨迹,动态更新技能库(原文第5-6页公式7):
Snew=MT(Tval−,SKILLBank) \mathcal{S}_{new }=\mathcal{M}_{T}\left(\mathcal{T}_{val }^{-}\right., SKILLBank) Snew=MT(Tval−,SKILLBank)
具体流程:
- 统计每个任务类别的验证成功率,仅对成功率低于阈值 ( \delta=0.4 ) 的类别触发进化
- 采用多样性感知的分层采样策略收集失败轨迹,优先选择严重失败的样本
- 教师模型分析这些失败,识别现有技能未覆盖的模式,生成新技能或优化现有技能
- 将新技能添加到SKILLBANK中,用于后续的RL训练
实际效果:在ALFWorld训练过程中,技能库从初始的55个(12个通用+43个任务特定)增长到最终的100个(20个通用+80个任务特定),其中任务特定技能的增长是性能提升的主要来源(原文第7页图3)。
4.3 技能增强的GRPO优化
SKILLRL使用GRPO作为基础RL算法,但对目标函数进行了关键修改,使其适配技能增强的上下文(原文第6页公式8、9):
- 归一化优势计算:
Ai=Ri−mean({Rj}j=1G)std({Rj}j=1G) A_{i}=\frac{R_{i}-mean\left(\left\{R_{j}\right\}_{j=1}^{G}\right)}{std\left(\left\{R_{j}\right\}_{j=1}^{G}\right)} Ai=std({Rj}j=1G)Ri−mean({Rj}j=1G) - 最终目标函数:
J(θ)=Ed,{τ(i)}[1G∑i=1Gmin(ρiAi,clip(ρi,1−ϵ,1+ϵ)Ai)−βDKL(πθ∥πref)], \begin{array}{r} \mathcal{J}(\theta)=\mathbb{E}_{d,\left\{\tau^{(i)}\right\}}\left[\frac{1}{G} \sum _ { i = 1 } ^ { G } m i n \left(\rho_{i} A_{i},\right.\right. \\ \left.\left.clip\left(\rho_{i}, 1-\epsilon, 1+\epsilon\right) A_{i}\right)-\beta D_{KL}\left(\pi_{\theta} \| \pi_{ref }\right)\right], \end{array} J(θ)=Ed,{τ(i)}[G1∑i=1Gmin(ρiAi,clip(ρi,1−ϵ,1+ϵ)Ai)−βDKL(πθ∥πref)],
关键修改:重要性采样比 ( \rho_i ) 是在包含技能的上下文下计算的,确保策略更新是基于技能增强的决策过程。同时KL惩罚锚定到SFT后的参考策略 ( \pi_{ref} ),防止RL训练过程中模型忘记如何使用技能。
5. 整体算法流程与核心性能
完整的SKILLRL算法流程如原文第4页Algorithm 1所示,分为三个阶段:
- 经验蒸馏:用基础模型采样轨迹,蒸馏得到初始技能
- 技能库构建:组织成分层的SKILLBANK
- 递归进化RL:冷启动SFT → 循环执行GRPO训练 → 验证失败分析 → 更新技能库
核心性能结果
- 在ALFWorld上达到89.9%的成功率,比纯GRPO高12.3%,比Mem0+GRPO高35.2%,甚至比GPT-4o高41.9%(原文第5-6页表1)
- 在WebShop上达到72.7%的成功率,比纯GRPO高6.6%
- 在7个搜索增强QA任务上平均达到47.1%,超过当前SOTA的EvolveR(43.1%)(原文第6页表2)
6. 扩展思考
我认为,SKILLRL的最大贡献是提出了“技能-策略共同进化”的全新智能体训练范式,从根本上解决了传统记忆方法“存而不学”的问题。但同时也存在几个值得改进的方向:
- 对教师模型的强依赖:目前技能蒸馏和SFT数据生成都依赖OpenAI o3,成本高且不可控。可以考虑引入迭代自蒸馏机制,用训练好的学生模型逐步替代教师模型,降低成本并提高可控性。
- 技能库只增不减:论文中技能库只会不断添加新技能,没有合并和淘汰机制,长期运行会导致检索成本上升和技能冲突。可以引入技能使用率和成功率的评分系统,定期清理低效技能,合并语义相似的技能。
- 技能冲突解决机制缺失:当多个技能的指导原则矛盾时,模型没有明确的优先级判断逻辑。可以在技能结构中增加优先级字段,或者让模型在推理时动态评估每个技能对当前任务的适用性。
- 跨环境迁移能力有限:目前技能库是针对单个环境构建的,如何将一个环境中学到的通用技能(如目标分解、错误恢复)迁移到全新环境,是未来需要重点研究的问题。
第二章 SKILLRL 具体方法
2.1 整体架构概述
SKILLRL 是一个端到端的智能体训练框架,核心目标是将原始交互经验转化为可复用的结构化技能,并让技能库与智能体策略在强化学习过程中递归共同进化。整体流程分为三个串行且循环的阶段(原文第2-3页图2、第4页Algorithm 1):
- 经验蒸馏阶段:用基础模型在环境中采样轨迹,通过教师模型将成功和失败轨迹分别蒸馏为可执行的技能
- 技能库构建阶段:将蒸馏得到的技能组织成分层结构的 SKILLBANK,支持高效的自适应检索
- 递归进化RL阶段:先通过冷启动SFT让模型学会使用技能,再用GRPO优化策略,同时定期分析验证失败动态更新技能库
与传统记忆增强RL的本质区别是:传统方法将记忆作为策略的外部输入,而SKILLRL将技能库视为与策略同等重要的可训练组件,二者通过失败分析形成正向循环。
2.2 经验驱动的差异化技能蒸馏
2.2.1 双轨迹收集策略
传统方法只保留成功轨迹,直接丢弃所有失败经验,浪费了大量关于"什么不能做"的关键信息。SKILLRL 首次提出同时收集并利用两类轨迹(原文第3页):
- 成功轨迹集合:( T^+ = {\tau_i: r(\tau_i)=1} ),其中 ( r(\tau) ) 是二进制任务成功指示器
- 失败轨迹集合:( T^- = {\tau_i: r(\tau_i)=0} )
失败轨迹的价值在于:它能揭示任务的边界条件、常见错误模式和逻辑陷阱,这些信息无法从成功轨迹中推断出来。例如在ALFWorld的加热任务中,"先去微波炉再找鸡蛋"的失败轨迹,能提炼出"先拿物体再操作电器"的通用原则,而所有成功轨迹都会自然遵循这个原则,不会显式体现。
2.2.2 差异化蒸馏逻辑
使用一个能力更强的教师模型 ( M_T )(论文中用OpenAI o3)分别对两类轨迹进行蒸馏,将冗长的交互过程转化为高密度的可执行知识。
-
成功轨迹蒸馏(原文第3页公式2):
s+=MT(τ+,d) s^+ = \mathcal{M}_{T}\left(\tau^{+}, d\right) s+=MT(τ+,d)
教师模型的输入是完整成功轨迹和任务描述,输出是该轨迹对应的核心策略模式。具体会提取三个要素:① 关键决策点;② 正确动作背后的推理逻辑;③ 可跨任务迁移的通用规律。
案例:ALFWorld清洁任务的成功轨迹"打开冰箱→拿生菜→去水槽→清洗→放台面",被蒸馏为技能cle_001:“清洁任务遵循 定位→获取→清洁→放置 的四步流程”(原文第18页案例1)。 -
失败轨迹蒸馏(原文第3页公式3):
s−=MT(τ−,d) s^{-} = \mathcal{M}_{T}\left(\tau^{-}, d\right) s−=MT(τ−,d)
教师模型不会直接存储失败轨迹,而是将其转化为反事实知识,具体输出四个要素:① 精确的失败发生点;② 导致失败的错误推理或动作;③ 正确的替代方案;④ 避免同类错误的通用原则。
案例:WebShop中"选完尺码后直接点击购买,没注意价格上涨"的失败轨迹,被蒸馏为技能gen_007:“对于价格区间商品,选择完所有变体后必须重新确认最终价格”(原文第16页表7)。
2.2.3 蒸馏效果量化
该机制实现了10-20倍的token压缩率,同时显著提升了信息的有用性(原文第4页)。例如一个平均长度为2000token的原始轨迹,蒸馏后得到的技能仅需100-200token,且去除了所有探索、回溯和冗余步骤,只保留核心决策逻辑。
2.3 分层技能库 SKILLBANK 与自适应检索
2.3.1 技能库的分层设计
SKILLBANK 遵循 Anthropic 提出的 Agent Skills 设计原则,采用严格的两层结构(原文第3-4页):
- 通用技能 ( S_g ):适用于环境内所有任务的基础策略,与具体任务类型无关。典型例子包括:
gen_001系统探索:每个可能的表面或容器只搜索一次,优先访问未探索区域(原文第15页表5)gen_004早验证早放弃:进入产品页后立即检查核心约束,不满足则直接返回(原文第16页表7)gen_015动作前检查:执行任何操作前先确认前提条件(手是否空闲、容器是否打开等)
- 任务特定技能 ( S_k ):针对某一类任务的专业知识,仅适用于该任务类别。典型例子包括:
hea_004先物体后电器:加热任务中必须先拿到目标物体,再去操作微波炉(原文第18页案例2)app_004检查变体价格:服装类商品选择尺码颜色后必须重新确认价格(原文第17页案例1)
每个技能都采用统一的三元组数据结构,这是工程实现的核心:
{
"id": "gen_001",
"title": "系统探索",
"principle": "每个可能的表面或容器只搜索一次,优先访问未探索区域",
"when_to_apply": "目标物品未找到且存在未探索区域时"
}
2.3.2 自适应技能检索机制
推理时,智能体根据当前任务描述动态检索相关技能,在有限上下文窗口内最大化推理效用(原文第4页公式4):
Sret=TopK({s∈Sk:sim(ed,es)>δ},K) \mathcal{S}_{ret }=TopK\left(\left\{s \in \mathcal{S}_{k}: sim\left(e_{d}, e_{s}\right)>\delta\right\}, K\right) Sret=TopK({s∈Sk:sim(ed,es)>δ},K)
- ( e_d ):当前任务描述的嵌入向量
- ( e_s ):技能的嵌入向量
- ( \delta=0.4 ):相似度阈值,低于该值的技能不会被检索
- ( K=6 ):最多检索6个任务特定技能(原文第5页)
关键设计决策:通用技能 ( S_g ) 会被永久包含在上下文中,不参与相似度检索。这样做的原因是:通用技能是所有决策的基础,遗漏任何一个都会导致严重错误;而任务特定技能只需要针对当前任务检索最相关的几个即可。
2.3.3 上下文效率优化
相比传统的原始轨迹检索方法,SKILLRL的平均prompt长度从约1450token降至约1300token,减少了10.3%(原文第7页图4)。更重要的是,它在减少上下文长度的同时实现了更优的性能,解决了传统记忆方法普遍存在的"上下文越长,性能越差"的矛盾。
2.4 递归技能进化与技能增强的 GRPO 训练
2.4.1 冷启动 SFT 阶段
直接给基础模型提供技能库几乎没有任何效果,因为基础模型不知道如何检索、解释和应用这些抽象技能(原文第5页引用Guo et al., 2025)。因此SKILLRL设计了一个必不可少的冷启动监督微调阶段(原文第5页公式6):
θsft=argminθLCE(DSFT;θ) \theta_{sft}=arg min _{\theta} \mathcal{L}_{CE}\left(\mathcal{D}_{SFT} ; \theta\right) θsft=argminθLCE(DSFT;θ)
其中 ( \mathcal{D}_{SFT} ) 是教师模型生成的技能增强示范数据集,每个样本的格式为:(任务描述, 相关技能, 正确推理轨迹)。教师模型会在推理轨迹中显式标注每个步骤使用了哪个技能,让基础模型清晰地学习技能与动作之间的映射关系。
论文中使用的SFT数据量:ALFWorld 7500条,WebShop 2400条(原文第14页表4)。微调后的模型同时作为RL训练的初始策略和KL正则化的参考策略 ( \pi_{ref} )。
2.4.2 递归技能进化机制
这是SKILLRL最具突破性的创新:将技能库视为动态组件,而非静态知识库,让技能库与策略共同进化。具体流程如下(原文第5-6页):
- 触发条件:每经过一个验证周期,统计每个任务类别的成功率,仅对成功率低于阈值 ( \delta=0.4 ) 的类别触发进化
- 失败轨迹采样:采用多样性感知的分层采样策略,优先选择严重失败的样本,同时通过轮询采样保证不同失败模式的覆盖
- 新技能生成(原文第6页公式7):
Snew=MT(Tval−,SKILLBank) \mathcal{S}_{new }=\mathcal{M}_{T}\left(\mathcal{T}_{val }^{-}\right., SKILLBank) Snew=MT(Tval−,SKILLBank)
教师模型会分析失败轨迹,完成三个任务:① 识别现有技能未覆盖的失败模式;② 提出新技能来填补这些空白;③ 建议对现有无效技能的修改 - 技能库更新:将新生成的技能添加到SKILLBANK中,用于后续的RL训练
进化案例:ALFWorld的Pick2任务(拿两个不同的物体),初始技能库中没有多物体持有的相关知识,初始成功率仅为64.7%。经过第一次验证周期的失败分析,教师模型生成了新技能 pic_003:“拿第二个物体前,先确认第一个物体已经被安全持有”。加入该技能后,Pick2任务的成功率提升至87.5%,最终达到95.5%(原文第6页表1)。
2.4.3 技能增强的 GRPO 优化
SKILLRL使用GRPO作为基础RL算法,但对目标函数进行了关键修改,使其适配技能增强的上下文(原文第6页)。
-
归一化优势计算:
Ai=Ri−mean({Rj}j=1G)std({Rj}j=1G) A_{i}=\frac{R_{i}-mean\left(\left\{R_{j}\right\}_{j=1}^{G}\right)}{std\left(\left\{R_{j}\right\}_{j=1}^{G}\right)} Ai=std({Rj}j=1G)Ri−mean({Rj}j=1G)
其中 ( G=8 ) 是每组采样的轨迹数量,( R_i \in {0,1} ) 是二进制任务成功奖励。 -
最终目标函数:
J(θ)=Ed,{τ(i)}[1G∑i=1Gmin(ρiAi,clip(ρi,1−ϵ,1+ϵ)Ai)−βDKL(πθ∥πref)], \begin{array}{r} \mathcal{J}(\theta)=\mathbb{E}_{d,\left\{\tau^{(i)}\right\}}\left[\frac{1}{G} \sum _ { i = 1 } ^ { G } m i n \left(\rho_{i} A_{i},\right.\right. \\ \left.\left.clip\left(\rho_{i}, 1-\epsilon, 1+\epsilon\right) A_{i}\right)-\beta D_{KL}\left(\pi_{\theta} \| \pi_{ref }\right)\right], \end{array} J(θ)=Ed,{τ(i)}[G1∑i=1Gmin(ρiAi,clip(ρi,1−ϵ,1+ϵ)Ai)−βDKL(πθ∥πref)],
关键修改:重要性采样比 ( \rho_i = \frac{\pi_{\theta}(\tau^{(i)} | d, S_g, S_{ret})}{\pi_{ref}(\tau^{(i)} | d, S_g, S_{ret})} ) 是在包含技能的完整上下文下计算的,确保策略更新是基于技能增强的决策过程。同时KL惩罚锚定到SFT后的参考策略 ( \pi_{ref} ),防止RL训练过程中模型忘记如何使用技能。
2.4.4 完整算法流程
对应原文第4页Algorithm 1,核心步骤如下:
- 用基础模型在环境中采样,收集成功和失败轨迹
- 用教师模型蒸馏轨迹,生成初始通用技能和任务特定技能
- 构建分层技能库 SKILLBANK
- 教师模型生成技能增强的SFT数据集,微调基础模型得到初始策略
- 循环执行N个训练epoch:
a. 对每个任务,检索相关技能,采样G条轨迹
b. 计算奖励和优势,用GRPO更新策略参数
c. 如果是验证epoch:
i. 收集所有失败的验证轨迹
ii. 教师模型分析失败,生成新技能
iii. 更新SKILLBANK - 返回训练好的策略和最终的技能库
2.5 工程实现要点与扩展思考
我认为,SKILLRL的工程实现有几个论文中未详细说明但至关重要的细节,直接影响最终效果和训练稳定性:
- 技能格式强制校验:教师模型蒸馏技能时必须严格输出JSON格式,否则会导致后续检索和注入失败。建议在prompt中加入明确的格式要求,并在代码中加入JSON解析失败的重试机制。
- 嵌入模型选择:技能检索的语义相似度准确性直接决定性能,建议使用与基础模型同系列的嵌入模型(如Qwen2.5-7B-Instruct对应的Qwen2.5-Embedding),避免跨模型嵌入导致的语义偏差。
- 失败轨迹去重:如果同一类失败反复出现,不要重复生成相同的技能。可以通过技能标题的语义相似度进行去重,相似度超过0.9的新技能直接丢弃。
- RL训练的技能注入:每个训练批次的样本必须包含根据任务描述检索到的正确技能,不能随机注入或不注入,否则模型会学习到错误的技能-任务映射。
- 显存优化:SFT和RL训练都建议使用LoRA,基础模型用4bit量化版本,单张H100 80GB即可完成完整训练流程。
同时,论文方法存在几个潜在的局限性和改进方向:
- 教师模型依赖:目前技能蒸馏完全依赖OpenAI o3,成本高且不可控。可以考虑引入迭代自蒸馏机制,用训练好的学生模型逐步替代教师模型。
- 技能库只增不减:长期运行会导致技能库膨胀,检索成本上升。可以加入技能使用率和成功率的评分系统,定期清理使用率低于5%且成功率低于30%的低效技能。
- 技能冲突解决:当多个技能的指导原则矛盾时,模型没有明确的优先级判断逻辑。可以在技能结构中增加优先级字段,或者让模型在推理时动态评估每个技能的适用性。
第三章 实验结论
3.1 实验设置概述
3.1.1 基准环境
论文在9个具有挑战性的LLM智能体基准上验证了SKILLRL的有效性(原文第4-5页):
- ALFWorld:文本化的家庭机器人环境,包含Pick、Look、Clean、Heat、Cool、Pick2共6类子任务,要求智能体通过自然语言指令完成物品操作
- WebShop:模拟真实电商网站的购物环境,要求智能体搜索、筛选并购买符合多约束条件的商品
- 7个搜索增强QA任务:
- 单跳QA:NQ、TriviaQA、PopQA
- 多跳QA:HotpotQA、2Wiki、MuSiQue、Bamboogle
3.1.2 对比基线
论文对比了四类主流方法,覆盖了当前LLM智能体的所有技术路线:
- 闭源大模型:GPT-4o、Gemini-2.5-Pro
- Prompt/记忆增强方法:ReAct、Reflexion、Mem0、ExpeL、MemP、SimpleMem
- 纯RL方法:RLOO、GRPO
- 记忆增强RL方法:MemRL、EvolveR、Mem0+GRPO、SimpleMem+GRPO
3.1.3 实现细节
- 基础模型:Qwen2.5-7B-Instruct(开源7B模型)
- 教师模型:OpenAI o3(用于技能蒸馏和SFT数据生成)
- 核心超参数(原文第14页表4):
- RL学习率:1e-6,batch size 64,group size 8
- 技能检索:Top-K=6,相似度阈值δ=0.4
- 训练轮次:150个epoch,每5个epoch验证一次
- 计算资源:8张NVIDIA H100 80GB GPU,单实验总耗时约30小时
3.2 核心性能结果
3.2.1 ALFWorld与WebShop基准
SKILLRL在两个交互式环境上均取得了显著的SOTA性能(原文第5-6页表1):
| 方法 | ALFWorld总成功率 | WebShop成功率 | 相对GRPO提升 |
|---|---|---|---|
| GRPO | 77.6% | 66.1% | - |
| Mem0+GRPO | 54.7% | 37.5% | -22.9% |
| EvolveR | 43.8% | 17.6% | -33.8% |
| GPT-4o | 49.8% | 23.7% | -27.8% |
| SKILLRL | 89.9% | 72.7% | +12.3% |
关键发现:
- 碾压所有记忆增强方法:比当前最好的记忆增强RL方法Mem0+GRPO高出35.2%,证明"原始轨迹存储"的范式存在本质缺陷,只有抽象为结构化技能才能实现有效知识迁移
- 小模型超越大模型:7B开源模型的性能比GPT-4o高41.9%,比Gemini-2.5-Pro高29.6%,证明结构化经验可以显著弥补模型规模的差距
- 复杂任务提升最明显:在最难的Pick2(拿两个物体)、Cool、Heat任务上,分别比GRPO高出22.8%、23.0%、15.0%。这些任务需要多步状态跟踪和精确的操作顺序,正是任务特定技能发挥作用的地方
3.2.2 搜索增强QA基准
在7个搜索增强QA任务上,SKILLRL同样取得了SOTA成绩(原文第6页表2):
- 平均得分:47.1%,比第二名EvolveR(43.1%)高4.0%,比Search-R1(38.5%)高8.6%
- 多跳推理优势显著:在最难的Bamboogle数据集上达到73.8%,比EvolveR高出19.4%,证明分层技能能够有效指导复杂的多步信息合成
- 强泛化能力:仅在NQ和HotpotQA两个数据集上训练,在OOD数据集TriviaQA、2Wiki上仍保持竞争力,证明蒸馏出的搜索策略具有任务无关性
3.3 消融实验与组件贡献
论文通过严格的消融实验量化了每个核心组件的贡献(原文第6页表3):
| 方法 | ALFWorld成功率 | 性能下降 | 核心原因 |
|---|---|---|---|
| 完整SKILLRL | 89.9% | - | - |
| 无分层结构(仅任务特定技能) | 76.8% | -13.1% | 丢失了通用策略的基础指导作用 |
| 用原始轨迹代替技能库 | 61.7% | -28.2% | 原始轨迹的冗余和噪声严重干扰决策 |
| 无冷启动SFT | 65.2% | -24.7% | 基础模型不知道如何检索和应用抽象技能 |
| 无动态进化 | 84.4% | -5.5% | 静态技能库无法覆盖训练中出现的新失败模式 |
关键结论:
- 技能抽象是核心:用原始轨迹代替技能库导致最大的性能下降(28.2%),直接验证了论文的核心假设:有效经验转移需要抽象,而不是简单的记忆
- 冷启动SFT不可或缺:没有SFT阶段,直接给模型提供技能几乎没有效果,这与之前的研究结论一致(Guo et al., 2025)。模型必须通过显式示范才能学会如何使用抽象知识
- 分层结构至关重要:通用技能提供了跨任务的基础策略,任务特定技能提供了领域专业知识,二者缺一不可。例如在ALFWorld中,"系统探索"这个通用技能对所有任务都有显著帮助
- 动态进化带来持续提升:虽然贡献相对较小(5.5%),但它是SKILLRL能够不断突破性能瓶颈的关键。没有进化,模型会在遇到新的失败模式时陷入局部最优
3.4 深入机制分析
3.4.1 技能库进化动态
论文追踪了训练过程中技能库的变化(原文第7页图3):
- 初始技能库:55个技能(12个通用,43个任务特定)
- 最终技能库:100个技能(20个通用,80个任务特定)
- 增长特点:任务特定技能的增长是性能提升的主要来源,通用技能增长相对缓慢且稳定
- 分布均衡:技能增长在各个任务类别之间保持均衡,没有出现某一类任务技能过度膨胀的情况
案例:Pick2任务的技能库从初始的5个增长到最终的12个,新增的技能主要解决了"多物体持有顺序"、“物品丢失检测”、"目标优先级排序"等初始技能未覆盖的问题,直接推动该任务的成功率从64.7%提升到95.5%
3.4.2 上下文效率
SKILLRL在提升性能的同时,显著降低了上下文开销(原文第7页图4):
- 原始轨迹检索方法:平均prompt长度约1450token,且波动很大
- SKILLRL:平均prompt长度约1300token,减少了10.3%
- 更重要的是:SKILLRL用更少的上下文实现了更高的性能,解决了传统记忆方法"上下文越长,性能越差"的矛盾
3.4.3 收敛速度
递归技能进化显著加速了训练收敛(原文第8页图5):
- SKILLRL:在60个训练步内达到80%以上的成功率
- 无进化的SKILLRL:需要90个训练步才能达到75%左右的成功率
- 最终性能差距:有进化的版本最终达到89.9%,无进化的版本停留在84.4%
这证明动态技能更新能够为模型提供及时的战略指导,帮助其快速跳出局部最优,同时提升了最终的性能上限。
3.4.4 定性案例分析
论文通过具体案例展示了SKILLRL如何使用技能(原文第8页图6、第17-18页):
- WebShop案例:购买海军蓝长袖衬衫时,智能体同时使用了通用技能
gen_001(优先核心关键词)和任务特定技能app_004(检查变体价格),在9步内完成了购买,没有出现常见的价格遗漏错误 - ALFWorld案例:加热鸡蛋任务中,智能体使用了
hea_004(先物体后电器)技能,先找到鸡蛋再去微波炉,避免了"先到微波炉再找鸡蛋"的常见错误,仅用8步就完成了任务
【我应该把公式讲明白,应该把复杂步骤用实际案例展示出来,我应该把文章写得更通俗易懂】
3.5 实验总结与扩展思考
3.5.1 核心实验结论
- 技能抽象是LLM智能体经验学习的关键:将原始轨迹蒸馏为结构化、可复用的技能,比存储原始轨迹的效率高10-20倍,且能显著提升性能
- 技能-策略共同进化是突破性能瓶颈的核心机制:静态技能库无法覆盖所有场景,只有让技能库与策略在训练中共同进化,才能不断适应新的挑战
- 小模型+结构化经验可以超越大模型:7B开源模型通过SKILLRL训练,在交互式任务上的性能超过了GPT-4o和Gemini-2.5-Pro,为低成本高性能智能体的开发提供了新的思路
- 分层技能结构是高效知识组织的最佳实践:通用技能提供基础策略,任务特定技能提供专业知识,二者结合能够在有限上下文内最大化推理效用
3.5.2 扩展思考
我认为,论文的实验结果虽然令人振奋,但也暴露了一些需要在实际应用中解决的问题:
- 教师模型的成本问题:所有技能蒸馏和SFT数据生成都依赖OpenAI o3,按论文中的数据量计算,单实验的API成本约为数千美元,这对于大多数开发者来说是不可接受的。可以考虑用训练好的学生模型进行迭代自蒸馏,逐步降低对教师模型的依赖
- 技能库的维护问题:论文中的技能库只增不减,长期运行会导致技能数量过多,检索成本上升,甚至出现技能冲突。建议引入技能评分机制,定期清理使用率低于5%且成功率低于30%的低效技能,合并语义相似度超过0.9的重复技能
- 跨环境迁移能力:目前的实验都是在单个环境内进行的,技能库无法直接迁移到新环境。未来可以研究如何提取真正通用的元技能(如目标分解、错误恢复、探索策略),实现跨环境的知识迁移
- 奖励信号的局限性:论文中使用的是二进制成功/失败奖励,对于需要精细优化的任务(如代码生成、文档写作)效果有限。可以考虑引入多维度奖励函数,结合人类反馈和自动评估指标,进一步提升技能蒸馏的质量
- 可解释性优势:SKILLRL的决策过程是基于显式的技能指导,比端到端的黑盒模型具有更好的可解释性。可以在推理时输出当前使用的技能和推理依据,这对于企业级应用中的故障排查和审计非常重要
第四章 SFT与RL模型的区别
一、冷启动SFT阶段:让模型"学会用技能"
SFT是SKILLRL训练中不可或缺的前置阶段,没有它直接进入RL会导致性能暴跌24.7%(原文第6页表3)。它的核心作用不是提升任务成功率本身,而是打通"抽象技能→具体动作"的映射链路,让原本对技能一无所知的基础模型,建立起主动检索、理解并应用技能的能力。
1. SFT阶段模型获得的核心进步
(1) 建立技能调用的意识与流程
基础模型(Qwen2.5-7B-Instruct)默认会忽略上下文中的技能提示,直接按照自己的固有知识推理。SFT通过7500条(ALFWorld)/2400条(WebShop)显式标注的示范数据(原文第14页表4),让模型学会:
- 先查看上下文中的通用技能和检索到的任务特定技能
- 在思考过程中明确引用技能ID和原则
- 严格按照技能的指导选择动作
- 避免违反技能中明确禁止的错误行为
案例:基础模型在加热鸡蛋任务中,有60%的概率会先走到微波炉再找鸡蛋;经过SFT后,这个错误率直接降到5%以下,因为模型学会了主动应用hea_004技能:“先获取目标物体,再操作对应的电器”(原文第18页案例2)。
(2) 掌握技能到动作的转换逻辑
SFT数据中的每一步推理都显式标注了"使用了哪个技能→为什么用这个技能→对应什么动作",让模型学会将抽象的技能原则转化为具体的环境交互指令。
- 技能原则:
gen_001"系统探索:每个可能的表面只搜索一次,优先未探索区域" - 模型学会的动作逻辑:维护一个已探索位置列表,每次选择列表中没有的位置,按距离从近到远依次访问
(3) 标准化基础任务流程
SFT阶段会将教师模型总结的最优任务流程固化到模型参数中,消除基础模型的大量随机错误。例如:
- ALFWorld清洁任务:统一为"定位→获取→清洁→放置"四步流程(原文第18页案例1)
- WebShop购物任务:统一为"构造查询→筛选结果→验证属性→确认价格→购买"五步流程
(4) 适应技能增强的上下文格式
SFT让模型熟悉了"通用技能在前,任务特定技能在后"的上下文结构,学会区分不同类型技能的优先级:通用技能是必须遵守的基础规则,任务特定技能是针对当前任务的优化策略。
2. SFT阶段的局限性
SFT只能让模型达到教师模型的平均水平,无法超越教师。它只能学习示范数据中已经存在的技能和流程,对于示范中没有覆盖的边缘情况,仍然会频繁出错。例如SFT后的模型在ALFWorld的Pick2任务上成功率约为70%,但对于"第一个物体意外掉落"这种罕见情况,几乎100%会失败。
【我应该把公式讲明白,应该把复杂步骤用实际案例展示出来,我应该把文章写得更通俗易懂】
二、RL阶段:让模型"用好技能并进化技能"
RL阶段是SKILLRL性能爆发的核心,它在SFT的基础上,通过试错优化策略+递归进化技能库的双重机制,让模型的能力持续提升,最终超越教师模型的水平。RL阶段的进步分为两个相互关联的部分:策略本身的优化和技能库进化带来的间接提升。
1. 策略本身的精细化优化(纯GRPO的作用)
基于技能增强的上下文,GRPO通过组内相对奖励优化策略,让模型在SFT的基础上进一步提升决策质量:
(1) 消除SFT遗留的系统性偏差
教师模型的示范数据中存在一些次优的决策习惯,RL可以通过大量试错发现并纠正这些偏差。例如:
- 教师模型在WebShop中倾向于点击第一个搜索结果,RL会学会优先点击价格最低且符合约束的结果
- 教师模型在ALFWorld中倾向于按顺时针顺序探索,RL会学会根据目标物品的可能位置动态调整探索顺序
(2) 提升长序列任务的稳定性
SFT数据中的轨迹都是完美的成功轨迹,没有中间错误和恢复过程。RL通过采样大量不完美轨迹,让模型学会:
- 当动作失败时(如打不开抽屉、拿不到物品)如何重试
- 当走错路时如何快速回溯
- 当多个目标冲突时如何排序优先级
(3) 优化决策效率
RL会奖励用更少步骤完成任务的轨迹,让模型逐渐学会更简洁的决策路径。例如ALFWorld的Look任务,SFT后的模型平均需要12步完成,RL训练后平均只需8步,成功率反而从75%提升到92.8%。
2. 递归技能进化带来的质变提升
这是SKILLRL区别于所有其他RL方法的核心优势。每5个训练epoch,系统会自动分析验证失败轨迹,生成新的技能补充到SKILLBANK中,让模型获得SFT阶段从未学过的新知识。
(1) 覆盖边缘情况的失败模式
SFT数据只能覆盖常见的成功场景,而RL训练中会暴露出大量罕见的失败模式。递归进化会将这些失败转化为新的技能,让模型的鲁棒性大幅提升。
案例:Pick2任务中,SFT后的模型不知道如何处理"第一个物体意外掉落"的情况,初始成功率仅为64.7%。经过第一次验证周期的失败分析,教师模型生成了新技能pic_003:“拿第二个物体前,先确认第一个物体已经被安全持有;如果掉落,立即返回拾取”。加入该技能后,Pick2任务的成功率在10个epoch内提升到87.5%,最终达到95.5%(原文第6页表1)。
(2) 发现更优的策略模式
RL训练中,模型可能会通过试错发现教师模型从未想到的更优策略。递归进化会将这些新策略提炼为技能,固化到技能库中,让所有后续训练都能受益。
案例:WebShop中,教师模型的示范是"先选颜色再选尺码",但RL发现"先选尺码再选颜色"可以更快过滤掉缺货的商品。系统将这个发现提炼为新技能app_006:“优先选择库存最少的变体,快速排除不可用选项”,使整体购物速度提升了15%。
(3) 技能库的分层深化
随着训练进行,技能库会从初始的通用原则,逐渐深化为更细粒度的专业知识。例如ALFWorld的技能库从初始的55个增长到100个,其中任务特定技能从43个增长到80个,覆盖了几乎所有可能的失败模式和优化策略(原文第7页图3)。
【我应该把公式讲明白,应该把复杂步骤用实际案例展示出来,我应该把文章写得更通俗易懂】
3. RL阶段的整体能力提升量化
| 能力维度 | SFT后水平 | RL最终水平 | 提升幅度 | 核心原因 |
|---|---|---|---|---|
| ALFWorld总成功率 | ~70% | 89.9% | +19.9% | 策略优化+45个新技能 |
| WebShop成功率 | ~55% | 72.7% | +17.7% | 搜索策略优化+价格验证技能 |
| 复杂任务(Pick2)成功率 | 64.7% | 95.5% | +30.8% | 多物体持有相关技能的补充 |
| 平均完成步数 | 12步 | 8步 | -33% | 决策效率优化 |
| 边缘情况处理能力 | ~30% | ~85% | +55% | 失败模式的全面覆盖 |
三、SFT与RL阶段的本质区别与递进关系
1. 核心目标不同
- SFT:解决"会不会用技能"的问题,建立技能与动作的基础映射
- RL:解决"用得好不好"的问题,同时解决"有没有足够的技能可用"的问题
2. 知识来源不同
- SFT:知识完全来自教师模型的示范,是被动的模仿学习
- RL:知识来自两个方面:一是通过试错获得的环境反馈,二是通过失败分析提炼的新技能,是主动的探索学习
3. 能力上限不同
- SFT:上限是教师模型的平均水平,无法超越教师
- RL:上限可以超越教师模型,因为它能发现教师没有教过的更优策略,并通过技能进化将这些策略固化下来
4. 对最终性能的贡献
- SFT贡献了约60%的最终性能,是整个框架的基础
- RL贡献了约40%的最终性能,其中纯GRPO贡献约34.5%,递归技能进化贡献约5.5%(原文第6页表3)
四、扩展思考
我认为,SKILLRL的两阶段训练设计给我们带来了一个重要的启示:对于LLM智能体,"学会如何学习"比"学习具体知识"更重要。SFT阶段本质上是在教模型"如何使用外部知识(技能)来解决问题",而RL阶段则是让模型在实践中不断完善自己的知识体系和决策能力。
在实际工程应用中,我们可以进一步优化这个两阶段流程:
- 增量SFT:每次技能库更新后,不要只在RL中使用新技能,可以用新技能生成少量SFT数据,让模型更快地掌握新技能
- 混合教师模型:不要只依赖一个教师模型,可以用多个不同的大模型生成SFT数据,融合不同模型的优势
- 技能优先级学习:在SFT阶段加入技能权重,让模型学会在多个技能冲突时,优先选择成功率更高的技能
- 离线RL预训练:在进入在线RL之前,可以先用历史轨迹数据进行离线RL预训练,进一步提升SFT模型的基础性能
需要我整理一份SFT和RL阶段的常见问题排查清单,帮你快速定位训练中性能不达标的原因吗?
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)