Qwen SkillDuet:原理与思想脉络溯源
SkillDuet 不是 Qwen4 的,是阿里 Qwen 团队的一篇新论文(2611.12109),主干实验用的是 Qwen3-4B**,很多人顺口说成 Qwen4 Skill Duet。
一句话结论:
它不是凭空、完全独立原创;它建立在一整条「Agent Skill + RL + On-Policy Distillation」前人工作链上,但它的核心闭环思想和 Strength 打分机制是新的贡献。
1. 它继承/借鉴了哪些前置思路(论文 Related Work 明确写了)
- SEED / SEED-API(最直接基线):从轨迹里提取 hindsight skill,用 skill-conditioned response score 做 OPD(on-policy distillation),把技能拿来给 RL 做监督。SkillDuet 直接沿用了 OPD 这条训练路径,Local skill 给参数更新做监督这一块来自 SEED 范式。
- SkillRL、D2Skill、Skill0.5、SLIM、UniSkill:已经有一批工作在做「技能库、技能筛选、技能淘汰、技能bank动态维护」,把经验抽成外部文本技能、在训练过程中管理技能,这个大方向是已有共识。UniSkill 也用模型响应/动作似然差评估技能好坏,和 SkillDuet 的 response feedback 是近亲思路。
- OPD-Evolver、ATOD 等 on-policy distillation 系列:把外部文本指导转成 policy 监督,是 Agent RL 里成熟的技术路线。
简单说:
- “RL + 从轨迹提取文本技能 + 技能用来指导策略学习” 是已经存在的范式,不是它发明的。
- 技能可以存在参数里(内化)、也可以存在外部文本里(外挂技能)这个二分视角,前人也反复讨论过。
2. SkillDuet 真正新增的原创思想(论文标注的两个核心contribution)
- 双向耦合共演化闭环:参数更新 ↔ 持久Global技能互相塑造 大部分旧方法是单向:技能库固定/缓慢更新,技能指导模型;或者模型学完再提炼技能。 SkillDuet 的主张是:模型一变,哪些技能有用就变;技能一变,后续交互轨迹和模型学到的东西又跟着变,两者在同一个 RL loop 里协同进化,技能会随模型能力提升而自然失效、淘汰、重合成新规则。论文原话叫 model–skill co-evolution。
- Strength:基于模型响应偏移量(response shift)来选技能做长期Global合并 之前的技能筛选,大多看任务奖励、动作loglik、成功/失败差。 Strength 的做法:看把这个技能给当前模型,它的输出会偏移多大;偏移越大,代表这个技能对当前模型还有强塑造价值,优先合并进持久 Global 技能集。 这一点和 UniSkill、SLIM 的评估目标不一样:它不是看“这个技能能不能提升任务成功率”,而是看它对当前这个正在进化的模型还有多大影响力,适配模型自身的变化。 Local 技能仍然全部开放给 OPD 做参数更新;Strength 只用来挑选哪些要沉淀到长期 Global 里。
通俗对比:
- SEED:只做 Local skill → 给模型蒸馏监督,没有长期沉淀、没有 Global 随模型迭代。
- SkillDuet:SEED 的 OPD 训练链路 + 一套独立的「Strength 打分 + 定期合成更新 Global」闭环,让外挂技能和模型参数一起迭代演化。
3. 怎么理解“借鉴 vs 原创”的边界
学术上几乎不存在 100% 从零凭空诞生的框架:
- 大范式、组件(OPD、轨迹抽skill、技能bank)是借鉴/继承;
- 把「参数学习」和「持久技能集演化」做成互相依赖的循环,以及用 response shift(Strength)作为技能入选标准,是这篇工作提出的新机制,也是它宣称的创新点;
- 它不是“抄某一篇”,而是在 SEED、SkillRL、UniSkill 这几条技能Agent RL 的脉络上做组合创新 + 新增一个独特的选择器和闭环结构。
4. 补充一个容易混淆的
名字叫 Duet,但和之前别的 Duet(比如双模型推理 DUET)完全无关,只是重名。
SEED / SEED-API、SkillRL、OPD-Evolver 总前置脉络一句话
整条线的底层动机一致:LLM Agent 的 RL 只有稀疏的 episode-level 成败奖励,缺少中间步骤 dense credit assignment;于是研究者开始两条并行路线:
A:OPD(On-Policy Distillation):在学生自己采样的轨迹上,拿到教师/特权信号做 token-level 蒸馏监督,解决 exposure bias + 稀疏奖励;
B:Skill Bank / 动态技能管理:把轨迹提炼成自然语言技能,作为可检索、可淘汰、可内化的外部知识单元,用来增强 Agent。
SEED 是第一个把「hindsight skill 提取 + skill-conditioned OPD」焊死在同一个 RL loop 的工作;后面 D2Skill / SLIM / Skill0.5 / UniSkill、OPD-Evolver、ATOD 都是沿着 A+B 两个分支分别拓展,最后 SkillDuet 在 SEED 的基座上,新增了 Strength 和 Global/Local 双向共演化闭环。
时间窗口:这批工作高度集中在 2026年上半年(3–7月),属于同一个爆发浪潮,Qwen 系团队(Qwen3/4、D2Skill、SkillDuet)是主力。下面按你列的三组,逐个拆起源、核心要点、演进分支、和 SkillDuet 的承接关系。
一、SEED / SEED-API(arXiv:2607.14777,2026-07):SkillDuet 最直接的基线
1. 它的上游思想起源
- Hindsight Learning(事后学习,经典RL) 源头是 Hindsight Experience Replay(HER,Andrychowicz 2017):机器人RL里,失败轨迹也可以重标记目标,把失败经验变成有效监督;核心哲学:完成的轨迹本身就藏着监督信号,不必只看最终奖励。 HER 是状态空间、连续动作;SEED 把 HER 的 hindsight 思想迁移到 LLM Agent,并且把“事后重标记目标”改成 事后提炼自然语言技能(hindsight skill)。
- On-Policy Distillation(OPD)本身的奠基:Agarwal et al. GKD 2024 传统KD / SeqKD:拿教师提前生成好的固定轨迹教学生(off-policy),学生训练分布和自己推理分布不一致,暴露偏差 exposure bias。 GKD(Generalized Knowledge Distillation,Agarwal 2024)正式定义 OPD:学生自己 rollout 采样轨迹(on-policy),教师只在学生已经走到的状态上打分、给token级分布目标,监督信号对齐学生真实访问到的分布,这是 OPD 的数学原点。
- Privileged teacher / contrastive scoring 在LLM Agent里的预热(2025年底–2026初) 很多Agent工作已经在做:同一个轨迹,加提示/不加提示,对比模型输出概率差,用来判断这个提示有没有用。SEED 把这个概率差,直接做成 OPD loss。
2. SEED 本身的核心创新要点(和前面所有工作的分界)
SEED 第一次把三件事打包进同一个自循环:
- Actor 和 Analyzer 是同一个模型 checkpoint:模型自己收集轨迹,模型自己分析轨迹、提炼 hindsight skill(自然语言:工作流、避坑规则、决策观察点);
- 拿到 skill 之后,同一个动作序列,做两次打分:普通上下文 vs 带上skill的上下文,两者的动作概率偏移(probability shift)就是 dense token-level OPD 信号;
- OPD loss 和原始 outcome RL loss 联合优化;
- SEED 的技能定位:Local skill——它只是训练时的特权监督信号,不维护长期持久的技能库,没有技能淘汰、没有Global沉淀;一轮提取一轮用完,不跨checkpoint长期留存。
SEED-API 是 SEED 在工具调用Agent上的实例化版本,思路不变,实验域换成工具/API调用轨迹。
3. SEED 留给 SkillDuet 的遗产(也是SkillDuet直接继承的部分)
SkillDuet 的 Local skill 分支完全沿用 SEED 范式:
- 从 on-policy 轨迹提取 hindsight skill;
- skill-conditioned 重打分,取概率偏移作为 OPD 监督;
- Local skill 用来给当前 policy 做参数更新。 > SkillDuet 的改动点:SEED 只有 Local + 用完即弃;SkillDuet 额外增加一条并行的 Global skill 生命周期分支,用 Strength 筛选哪些 Local skill 要升级沉淀成长期Global技能库,Global再反过来影响后续轨迹分布。
一句话区分:
- SEED:
轨迹 → Local skill → OPD监督 → 更新模型(单向) - SkillDuet:
轨迹 → Local skill(OPD监督模型);同时Local skill被Strength打分 → 择优并入Global技能库;Global技能在后续rollout里改变轨迹分布 → 新轨迹产生新Local skill(双向共演化)
二、SkillRL、D2Skill、Skill0.5、SLIM、UniSkill:动态Skill Bank、技能生命周期这条线(2026.3–2026.5)
这一组是和 SEED 同期、但侧重点不一样的分支:SEED 重点是怎么拿技能做OPD监督;这一组重点是:技能本身怎么存、怎么筛、什么时候淘汰、什么时候内化进模型参数。它们共同建立「技能不是一次性提示,而是有生命周期资产」这个共识。
按时间顺序逐个拆解起源与要点:
1. SkillRL(更早一点,2025末–2026初,这条线的开篇)
上游源头:早期 LLM agent skill library / retrieval agent(ReasoningBank、Reflexion、ReAct、Toolformer)。
- Reflexion(2023):轨迹反思,生成文本复盘,推理时检索;只用于推理时提示,不进训练loss,不做参数更新;
- SkillRL 的跃迁:不再只是 inference-time retrieval,把技能库和RL训练绑定;技能是可检索的文本模块,训练过程中根据任务成功率评估技能好坏,做简单增删。
- 局限:技能评估信号大多是任务最终reward;技能粒度固定,不区分step-level / task-level;没有清晰区分「外挂文本技能」和「参数内化技能」。
2. D2Skill(Dynamic Dual-Granularity Skill Bank,2603.28716,2026-03)
核心贡献:双粒度技能库
- Task skill(高层任务策略)+ Step skill(单步纠错、局部动作);
- 评估方式:同策略配对 rollout:一条轨迹检索技能,一条不检索;对比两条的成功率差,作为这个技能的效用;
- 维护策略:持续反思新增、冗余/低效用技能剪枝;
- 它是最早一批用「同policy有无技能的对比差」评估技能价值的工作之一,这个对比评估思想直接传给 UniSkill、再传给 SkillDuet 的 Strength 思路。 > D2Skill 基线实验也用 Qwen3-4B,和 SkillDuet 是同一个团队一脉的实验底座。
3. SLIM(Skill LIfecycle Management,2605.10923,2026-05)
标题就点明:技能生命周期管理,是这个方向上非常纲领性的一篇。
核心洞察:技能的价值不是永久不变的。随着模型变强,很多技能会被模型“学会了”,继续放在外部库里边际收益变成0,继续携带只会增加上下文负担、引入噪声。
SLIM 定义三种操作:
- Retain:保留高边际收益技能;
- Retire:技能已经被参数内化、边际贡献接近0,淘汰;
- Expand:持续失败的任务,说明缺技能,触发新增; 评估方法:leave-one-skill-out 留一验证:去掉这个技能之后成功率下降多少,就是它的边际价值。 SLIM 建立了一个核心世界观:policy 和 skill bank 是联合优化变量,不是固定技能教模型单向过程。 > 但是:SLIM 的评估目标是任务 reward,不是模型输出分布偏移;SLIM 没有耦合 OPD,只是 RL+检索技能。
4. Skill0.5(2605.28424,2026-05)
解决之前二选一困境:要么全外挂检索、要么全部内化进参数。
Skill0.5 提出中间态(0.5):
- 通用底层技能:通过 privileged distillation 内化进模型参数;
- 任务专属、动态技能:推理时外部检索使用;
- 用难度路由:简单任务用来检验模型是否已经掌握技能(防止走捷径),难任务调取外挂技能辅助。 它把「技能内化 vs 外挂」这个二分问题显性化,这个二分视角,SkillDuet 的 Local/Global 设计也吸收了。
5. UniSkill(2026上半年):最接近 SkillDuet Strength 的近亲
UniSkill 的关键一步:不再只用任务成功率评估技能,改用动作似然差(log-likelihood gap):
同一个状态下,加上技能和不加技能,模型动作分布差异多大,用来衡量技能对策略的影响力。
这就是论文里写的「response feedback 近亲思路」:
- UniSkill:似然差 → 判断技能价值,用于技能筛选;
- SkillDuet:response shift(概率偏移)→ Strength打分,筛选Local技能升级进Global库; 区别: UniSkill 的似然差评估是服务于技能检索/推理时挑选;SkillDuet 的 Strength 评估是服务于训练时Global技能库的长期演化,并且和OPD训练闭环绑在一起。
小结这一组的递进链条:
SkillRL(技能库+RL绑定)→D2Skill(双粒度 + 有无技能对比评估)→SLIM(生命周期、技能会失效淘汰)→Skill0.5(内化/外挂二分)→UniSkill(从reward评估升级到动作似然差评估)
SkillDuet 吸收这整条链的共识:技能库动态维护、技能会随模型变强而失效、可以用模型输出分布差异评估技能影响力。
三、OPD-Evolver、ATOD:On-Policy Distillation 大系列,slow-fast 双循环演化智能体路线
OPD 本身在 2024 GKD 之后,2025–2026 分化成两大分支:
- 推理模型后训练:拿更强专家模型当teacher,OPD做弱模型对齐(Qwen3、DeepSeek-V4);
- Agent自演化方向:Agent自己生产经验、自己提炼知识、自己用OPD把「使用知识的能力」蒸馏进参数,也就是 OPD-Evolver、ATOD 代表的路线。
1. OPD-Evolver(2606.17628,2026-06)
关键词:slow-fast co-evolution 快慢双循环
- Fast loop(推理侧快循环):Agent运行时读写四层记忆库、检索、新增、维护记忆;推理阶段就能持续进化;
- Slow loop(训练侧慢循环):拿fast loop产生的轨迹和记忆交互数据,用 outcome-calibrated attribution 给记忆打分,再用 privileged hindsight OPD,把「如何使用、管理记忆」这个能力蒸馏进模型参数。
核心思想:不只是学任务动作,而是学习“如何管理自己的经验/技能记忆”这个元能力。
OPD-Evolver 给领域带来的范式:把「知识库本身的管理逻辑」也变成要被蒸馏进策略的能力,而不是一个静态外部组件。
和 SkillDuet 的异同:两者都有快慢/两层结构;OPD-Evolver 的两层是 inference-fast / training-slow;SkillDuet 的两层是 Local(训练监督)/ Global(长期沉淀)。OPD-Evolver 的记忆是通用记忆层级,没有专门的 skill-conditioned response shift 打分机制。
2. ATOD(Adaptive Trajectory On-Policy Distillation)
属于 OPD 在Agent上的变体,核心改动:自适应选取哪些轨迹片段去做OPD蒸馏,不是所有rollout都同等送入OPD;优先挑选高信息增益、高不确定性的轨迹做蒸馏,提升样本效率。它代表一个通用趋势:OPD不再是固定loss,而是可以加选择器、做自适应采样。
这一组整体给 SkillDuet 的铺垫:OPD 不只是一个loss函数;OPD可以作为一个通用“把外部文本指导(记忆/反思/技能)内化进policy”的基础设施,支撑一套自演化Agent。
四、整条前置思路的完整谱系图(方便你定位 SkillDuet 的位置)
经典根节点 ├─ HER(2017):Hindsight Learning 事后利用失败轨迹 ├─ GKD / OPD(2024 Agarwal):On-Policy Distillation,解决exposure bias └─ Reflexion / ReAct(2023):LLM Agent 轨迹反思、推理时检索文本技能 2025末–2026初:两条分支并行 分支A:OPD + Hindsight Skill(SEED主线) SEED(2607):轨迹提取hindsight skill → skill-conditioned OPD → 联合RL;技能是一次性Local监督信号 分支B:动态Skill Bank生命周期 SkillRL:技能库接入RL D2Skill:双粒度技能 + 有无技能对比评估 SLIM:技能生命周期、技能会被内化淘汰 Skill0.5:内化/外挂二分 UniSkill:用动作似然差评估技能影响力 分支C:OPD自演化Agent OPD-Evolver:slow-fast双循环,OPD蒸馏记忆管理元能力 ATOD:自适应轨迹OPD SkillDuet(2611):融合 ✅ 继承SEED:Local skill + skill-conditioned OPD做参数更新 ✅ 继承B整条:技能生命周期、技能随模型衰减、分布偏移作为技能价值信号(UniSkill近亲) ✅ 继承C:OPD作为自演化基础设施 ✅ 新增原创:Local ↔ Global 双向共演化闭环 + Strength打分机制 五、关键边界总结(对应你最关心的原创/借鉴边界)
- OPD 本身、hindsight 思想、技能库增删淘汰、用有无技能的概率差评估技能价值,全部不是 SkillDuet 原创;
- SEED 已经做了「hindsight skill 提取 + skill-conditioned OPD」,这是 SkillDuet 的直接基座;
- UniSkill、D2Skill 已经在用动作/响应似然差评估技能好坏,是 Strength 的近亲思想;
- SkillDuet 的独特组合创新点:
- 把 SEED 的一次性 Local OPD skill,和 SLIM/UniSkill 的长期技能生命周期,做成互相耦合、同步演化的闭环;
- Strength 的目标不是评估“这个技能能不能提升任务reward”,而是评估这个技能对当前正在进化的模型还有多大塑造力(response shift),以此决定要不要晋升到Global持久技能集;Global技能又会改变后续rollout分布,进而改变后续Local skill池。