状态匹配路由与上下文化自蒸馏:当特权引导与多轮智能体失配时 When Privileged Guidance Misaligns: State-Matched Routing and Contextualized Self-Distillation for Multi-Turn Agents
用执行状态匹配校验特权参考轨迹,只在匹配轮次做自蒸馏,多轮智能体任务成功率显著提升。
前置知识
On-Policy Distillation (OPD)
在策略蒸馏是一种强化学习与知识蒸馏结合的训练范式:学生模型先从当前策略 π_old 采样自己的响应 y_t,再用一个同步更新但 detach 的教师模型 π̄_θ 在同样的学生响应上重新打分(而非让教师生成新动作)。由于教师与学生同源,教师能对学生的实际输出给出逐 token 的密集监督,比只看任务是否成功的稀疏结果奖励信号丰富得多。
本文的全部改进都建立在 OPD 框架之上,理解「教师只对学生已采样响应重新打分、不生成新动作」这一机制,才能明白为什么参考轨迹的上下文 c_t 是决定监督质量的关键变量。
GRPO (Group Relative Policy Optimization)
GRPO 是 DeepSeekMath 提出的策略优化算法:对同一任务采样一组(group)轨迹,用组内轨迹的相对优势(advantage)做归一化,再施加 PPO 风格的 clip 目标。它无需单独训练 value 网络,因此在大模型 RL 中工程成本低。本文中 GRPO 用公式 L_GRPO 揩供基础策略梯度,γ=1,λ=1,组内用标准差归一化优势,无 KL 奖励。
SMRC-SD 不是替代 GRPO,而是在 L_GRPO 上叠加一项蒸馏损失 L_SDL,用系数 λ_SDL=0.01 控制。理解 GRPO 才能明白匹配/不匹配只影响 SDL 项,策略梯度始终在每个轨迹上活跃。
Privileged / Self-Distillation
特权自蒸馏指教师与学生是同一个模型(同步教师 π̄_θ),但教师在训练时获得额外的特权上下文 c_t,如成功的完整轨迹、任务技能描述或反馈信号。教师用这个特权信息给学生的普通响应打分,从而把「专家知识」蒸馏进策略。本文研究的就是当这个特权上下文是「成功轨迹」时如何正确使用它。
论文的核心问题是:这条特权轨迹在学生当前真正到达的状态下是否仍然有效?这正是 privileged self-distillation 在交互式环境中可靠性问题的根源。
State–Reference Mismatch(状态-参考失配)
在交互式环境中,智能体的早期动作会持续改变执行状态(位置、库存、对象属性、当前页面、已完成子目标等)。当学生采取了与参考轨迹不同的动作、或以不同顺序完成子目标时,它到达的状态可能不在参考轨迹覆盖的状态集合中。此时参考轨迹虽然整体任务正确,却无法从学生当前状态提供一个可执行的后续动作——这就是状态-参考失配。
这是本文识别出的核心新问题。把失配状态下的参考强塞给教师做打分,会降低正确动作 token 的概率。理解失配才能理解 SMRC-SD 为什么要在打分前先做状态匹配。
研究动机
现有的多轮智能体 on-policy 蒸馏方法(如 Skill-SD、SDAR)习惯把一条成功的完整参考轨迹在每一轮都无条件地喂给同步教师(论文称这种基线为 FullPath-SD)。但在 ALFWorld 这种具身家务环境或 WebShop 这种网页购物环境中,智能体每一步动作都会改变执行状态——位置、库存、对象属性、当前页面、已完成子目标。当学生因为试错、绕路或换序完成子目标而走到参考轨迹从未覆盖的状态时,参考轨迹虽然整体上能完成该任务,却无法从学生当前所在状态给出一个合法且推进任务的下一步动作。论文 Figure 1 给出了一个直观例子:参考从「Results A」页面去点击「Product A」,而学生实际停在「Product B」详情页,正确动作应是「Back to Search」,但 FullPath-SD 仍然把那条指向 Product A 的参考塞给教师去重打分,可能反而压低 Back to Search 这个正确 token 的概率。这种「同一任务 ≠ 有效参考」的失配现象,是特权蒸馏在交互式环境中可靠性的上游隐患,但此前的工作(TCOD、ReOPD、SAGE-OPD、SDAR、StepOPSD 等)只调整 rollout 分布或对教师信号加权/掩码,都没有直接校验参考本身是否与学生到达的状态兼容。
本文的目标是本文的目标是为特权参考引导提供一个「与智能体当前执行状态兼容」的机制:明确判断什么时候一条特权轨迹应当被用来指导学生、以及在被使用时应当如何把它的内容本地化为当前状态可执行的引导。具体地,作者希望把一条成功参考轨迹当作「状态索引的训练资源」而非「每轮都灌进去的固定文本」——在每个决策轮,先验证学生到达的状态是否与参考轨迹中某个被证明有效的 pre-action 状态兼容;若兼容,则定位那个兼容位置并据此构建教师上下文;若不兼容,则该轮不施加参考条件下的蒸馏,只保留 GRPO 的策略梯度。最终目标是让特权蒸馏在不损害 GRPO 探索的前提下,更精准、更少噪声地把成功轨迹的知识注入策略。
与已有工作不同的是,本文的独特切入点在于:它在「参考条件下的教师打分」之前插入了一道「参考-状态关系校验」的闸门。现有可靠监督方法主要分两类——一类(TCOD、ReOPD)重塑 rollout 的视野或前缀分布,另一类(SAGE-OPD、SDAR、StepOPSD、HINT-SD、TurnOPD)用置信度、差异、rollout 结构或结果来选择/加权教师信号。这些方法调控的是「呈现给蒸馏的状态」或「信号如何施加」,却没有直接验证「用来构造训练信号的特权参考是否包含一个与策略到达状态兼容的过渡」。SMRC-SD 用一个被证明有效的参考过渡来同时决定:(1) 这条轨迹是否该监督当前轮,(2) 哪一段延续应当作为教师上下文。这种「先校验参考-状态关系、再条件化打分」的顺序,是它区别于所有 prior work 的本质。
核心方法
整体思路可以这样理解:与其在每一轮都把整条成功轨迹塞给教师,不如先问一个简单问题——「学生现在所处的状态,这条参考轨迹接下来还能不能接得住?」直觉上,一条成功轨迹里的每个动作都绑定在它出发前的那个 pre-action 状态上;只有当学生当前的状态与轨迹中某个 pre-action 状态兼容、且对应的下一个参考动作在当前可执行动作集合里能被 ground 时,这条轨迹才有资格作为本地引导。技术路线上,SMRC-SD 由两个耦合的阶段组成:(A) State-Matched Routing 负责判断参考是否支持当前状态并选出最晚的兼容位置;(B) Contextualized Self-Distillation 在匹配位置上用完整路径 + 当前状态摘要 + 接地候选动作构造教师上下文。两者一起替换原来的无条件 FullPath-SD,集成进 GRPO+SDL 的训练目标。
核心创新点是把「成功轨迹」从「全局正确的固定文本」重新定义为「状态索引的条件计划(conditional plan)」,其局部有效性必须在监督之前被显式建立。这与已有方法的本质区别在于:Skill-SD/SDAR 用抽象技能或门控信号做加权,TCOD/ReOPD 调整 rollout 状态分布,但都没有问「参考本身对学生到达的状态是否本地可执行」。SMRC-SD 引入了方向性支持关系 σ_t ⊨_g σ̄_{g,k}:它不是泛化的状态相似度,而是只检查那些「一旦改变就会改变下一动作含义或可执行性」的字段(如位置、库存、任务对象位置与属性),其余无关的额外进展不会使兼容延续失效。匹配器选最新兼容位置 k_t=max{k:C_t(k)=1},避免重复已完成子目标。匹配器既决定 SDL 施加与否(路由),又决定教师看到什么延续(上下文化),这是「是否用」与「怎么用」的联合设计。
方法步骤详情
完整流程:(1) GRPO rollout——在轮 t 环境给出观测 o_t 与可执行动作集 A_t,智能体保留历史 h_t,构造普通 prompt x_t=Prompt(g,h_t,o_t,A_t),从 π_old 采样 y_t 并解析动作 a_t。(2) 状态签名重建——适配器从参考位置 k 的任务元数据与动作前缀 ā_{g,<k} 构造参考 pre-action 签名 σ̄_{g,k}=φ^ref_g(g,ā_{g,<k}),从学生实际历史/观测/动作集构造到达签名 σ_t=φ^stu_g(g,h_t,o_t,A_t)。(3) 动作接地 ã_{t,k}=Γ_g(ā_{g,k};A_t),∅ 表示失败。(4) 匹配判定 C_t(k)=𝕀[σ_t⊨_gσ̄_{g,k}]𝕀[ã_{t,k}≠∅],要求任务身份、状态兼容、候选可执行三者同立。(5) 路由 w_t=𝕀[max_k C_t(k)=1],取最晚匹配位置 k_t。(6) 匹配轮渲染 c^SMRC_t=Render(p_g, Summary(σ_t), ã_{t,k_t})——完整路径给全局结构、状态摘要给已到达进展、接地候选给本地延续。(7) detach 的同步教师 π̄_θ 在 (x_t,c_t) 下对同一响应 y_t 用 chosen-token K3 估计器算 ℓ_{K3,t}。(8) 损失 L=L_GRPO+λ_SDL·L_SDL,L_SDL=Σ_t w_t ℓ_{K3,t}(c_t)/Σ_{t,i} m^{res}_{t,i},分母是全部响应 token,路由只减少 SDL 总权重而非重归一化,GRPO 始终在每个轨迹活跃。(9) 推理时策略只用普通 prompt x_t,参考/签名/匹配器/候选/教师上下文全部移除。匹配、接地、渲染在 CPU 侧完成,仅教师打分上 GPU。
技术新颖性
技术新颖性体现在四个方面。第一,识别出「状态-参考失配」这一上游可靠性问题,并用一组固定状态的教师干预实验(Table 1)直接量化它:在 800 个 A 锚点上,SMRC-SD 让已同意动作分数下降超过 0.01 的仅有 1 次(0.1%),而 C(不匹配但有效动作)在 FullPath-SD 下的观测动作分数均值变化为 −0.052,A−C 对比为 +0.070 [+0.012,+0.153],证明兼容性确实区分了参考可靠与否。第二,方向性支持关系 ⊨_g 是非对称的、字段精确的:只有「会改变下一动作含义/可执行性」的字段才被检查,无关进展不否定延续,这与泛化状态相似度根本不同。第三,匹配既决定「是否蒸馏」(路由 w_t)又决定「如何条件化」(上下文 c_t),把两个此前被分开处理的设计耦合在一起。第四,整套特权机制完全是训练期(training-only)的:部署时推理 prompt 一字不改,不存在参考泄露到评测动作序列的风险,这通过把 reference/adapter/matcher/summary/candidate 全部移除来保证。
实验结果
核心发现逐项展开。(1) 主结果(Table 2):Qwen3-1.7B 在 ALFWorld 的 Average@4 从 0.746 升到 0.865(+0.119),Pass@4 从 0.836 到 0.914;WebShop Score 从 0.694 到 0.825、Acc 从 0.574 到 0.693。Qwen2.5-3B 上 ALFWorld Average@4 从 0.766→0.883、Pass@4 从 0.852→0.938,并超过 SDAR 报告的 0.844;增益最大的家族是 Clean 与 Pick Two。(2) 训练动态(Figure 3):SMRC-SD 约 update 100 反超所有基线并保持到 update 250;响应长度 78.8 token 接近 GRPO(79.5),远低于 FullPath-SD(142.6)与 Skill-SD(255.6),4-gram 重复率 8.8% 对比 3.8%/20.7%/38.6%——成功率更高还更短更不重复。(3) 路由+上下文 2×2 消融(Table 3):仅加 matched 路由 0.746→0.836,再加 SMRC 上下文到 0.865;只换上下文不加路由反掉到 0.695,说明路由主导、上下文在匹配路由上再叠加 +0.029。(4) 轮次身份消融(Table 4):匹配轮(0.153)与等量随机轮(0.165)选择数量几乎相同,Average@4 却差 +0.113(0.836 vs 0.723),证明增益不来自稀疏化。(5) 上下文组件消融(Table 5):单独加候选或状态摘要都不如完整 bundle,必须联合。(6) 匹配器审计(Table 6):结构化状态匹配把候选覆盖率从 15.4% 提到 20.2%、保留 98.8% 历史匹配,端到端 Average@4 从 0.756 提到 0.865,候选+后缀 replay 成功率 100%(781/781)。(7) 固定锚点教师干预(Table 1):匹配但发散的 B 锚点上 SMRC-SD 的候选-采样边际比 FullPath 高 +0.266 [+0.206,+0.328],排序 SMRC-SD>FullPath>打乱路径>同族其他路径>抽象技能,证明增益非泛化任务文本可解释。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| ALFWorld Average@4(Qwen3-1.7B) | Average@4(4 次 rollout 二值成功率均值) | 0.865 | FullPath-SD 0.746 | +0.119(绝对) |
| ALFWorld Pass@4(Qwen3-1.7B) | Pass@4(4 次中至少一次成功) | 0.914 | FullPath-SD 0.836 | +0.078 |
| WebShop Acc(Qwen3-1.7B) | Acc(二值购买成功) | 0.693 | FullPath-SD 0.574 | +0.119 |
| WebShop Score(Qwen3-1.7B) | Score(分级奖励) | 0.825 | FullPath-SD 0.694 | +0.131 |
| ALFWorld Average@4(Qwen2.5-3B) | Average@4 | 0.883 | FullPath-SD 0.766 / SDAR 报告 0.844 | +0.117(对 FullPath),+0.039(对 SDAR) |
| ALFWorld Pass@4(Qwen2.5-3B) | Pass@4 | 0.938 | FullPath-SD 0.852 | +0.086 |
局限与改进
作者承认的限制主要有三:(1) 适配器是手工设计且环境特定的——ALFWorld 与 WebShop 各有一套字段(位置/库存/任务对象位置与属性 vs 页面类型/当前 ASIN/已选选项),共享的只是确定性重建规则、方向性字段检查与动作接地接口,论文没有提供一个学习型或通用的状态估计器;(2) 匹配只用「精确任务」的单一参考,同族其他任务路径在 Table 1/8 中被证明引导力远弱(+0.442 vs +1.158),意味着方法尚未利用跨任务参考;(3) 固定锚点干预测的是「上下文诱导的教师偏好」而非一次 SDL 更新的优化效果,是端到端策略结果的补充而非替代。从我的观察看,还有几点值得注意:Table 4 中「全部不匹配轮」选择比例高达 0.821 却只得到 0.750,说明不匹配轮里其实混有「同族/不同实例」的隐性匹配机会被丢弃;Figure 4 显示历史匹配器最终 Average@4 只有 0.756,结构化匹配 0.865,差距全部来自结构化对执行进度的精确刻画,这暗示方法对「状态签名设计质量」高度敏感;另外实验只覆盖了文本 ALFWorld 与受限的 WebShop-small(1000 商品、6910 目标),尚未触及真实大尺度网页、代码交互或多模态具身。
独立分析的弱点
独立分析后,我看到四个可改进的弱点。(1) 状态签名高度依赖人工字段工程。ALFWorld 需要逐字段规定 take/move/put/drop/clean/cool/heat/slice 如何更新库存与属性,WebShop 需要规定选项集合的顺序不变性与 buy now 的可接地条件。每迁移到一个新环境都要重写适配器,泛化成本高。改进方向:用一个轻量学习型状态编码器(如基于交互历史的编码 + 对比学习)替代手工签名,或用 LLM 本身做 in-context 的状态等价性判断。(2) 只用精确任务参考,且每任务仅一条。当训练任务没有成功 walkthrough、或参考本身次优时,匹配覆盖率会下降(ALFWorld 仅 20.2%)。改进方向:引入同族任务的参考池并用结构化相似度做软匹配/加权,把 Table 1 中「同族路径 +0.442」这部分被浪费的信号用起来。(3) 匹配是硬二值路由 w_t∈{0,1},不匹配轮完全得不到参考信号,但这些轮恰恰是学生最可能「迷路」的时刻。改进方向:对不匹配轮引入一个「参考无关」的辅助信号(如基于结果奖励的 GRPO 加强、或一个 learned fallback teacher),或对匹配程度做连续加权而非硬切。(4) 评测规模与多样性有限。仅在 ALFWorld(128 任务)和 WebShop-small 上验证,没有代码交互(如 SWE-bench 类)、真实开放网页、长视野(>50 轮)或多模态场景。改进方向:扩展到至少一个真实网页基准和一个代码 agent 基准,验证 ⊨_g 关系在更复杂状态空间下是否仍可手工定义,或必须走向学习型匹配。
未来方向
作者明确提出的延伸包括:把成功参考当作「条件计划」的范式推广到更多交互式环境,以及探索跨任务参考的复用。基于本文成果,我认为还有几条可延伸的研究线:(1) 学习型状态匹配——用一个对比训练的小模型预测「σ_t 是否被 σ̄_{g,k} 支持」,摆脱手工字段工程,使方法能扩展到状态空间庞大或不可符号化的环境(如真实 DOM 网页、代码执行轨迹);(2) 软路由与不确定性——把 w_t 推广为 [0,1] 的置信权重,结合匹配器的近似度给出连续监督强度,理论上能回收一部分不匹配轮的信号;(3) 跨参考与参考池——从「单条精确任务参考」扩展到「同族多参考 + 结构化检索」,把 Table 1 里同族路径的较弱但非零引导力充分利用;(4) 在线参考发现——把 ReAct/Reflexion 式的探索轨迹即时结构化为新参考,使匹配池随训练动态增长;(5) 与长视野记忆(SAMem、Agent Workflow Memory)结合——把状态签名作为长程经验的索引接口,让匹配不仅服务于单次蒸馏,还服务于跨 episode 的经验复用。
复现评估
复现度较高。代码已开源在 https://github.com/liujunzhuo/SMRC-SD。数据完全公开:ALFWorld 用基准自带 3,553 条 TextWorld 专家 walkthrough(平均 6 动作,范围 3–10),WebShop 用 1,000 商品的 WebShop-small、6,910 个确定性构造目标 trace(平均 5.08 动作,范围 3–6),前 500 目标留验证。关键超参全部列出(Table 21/22):GRPO γ=1,λ=1,组内标准差归一化,无 KL 奖励;actor 学习率 1e-6 常数,无 warmup,权重衰减 0.01,单 PPO epoch,clip 0.2/0.2,dual-clip 3.0,熵系数 0.001,梯度范数裁剪 1.0;训练温度 1.0,验证温度 0.4;λ_SDL=0.01,K3 chosen-token 估计;checkpoint 为 Qwen3-ALFWorld update 250、其余 update 150,明确声明未按验证集挑选,随机种子全固定为 0。算力:4×NVIDIA H800,PyTorch FSDP actor+同步 reference,vLLM rollout(tensor parallel=1,动态 batching,梯度 checkpointing)。CPU 侧匹配开销小(每匹配轮 0.833ms,p95 1.335ms;参考索引一次性 437ms)。复现难点:WebShop 需专门 conda;适配器字段规则(ALFWorld 属性互斥、WebShop 顺序不变选项集)需逐条对照附录;固定锚点干预需冻结两 scorer 做 game-cluster bootstrap。有代码+超参+数据,同等算力可复现主结果。
论文图表
图分四步展示失配:1) 参考成功轨迹从 search→Results A→click A→select 完成;2) 学生在第 t 轮 rollout 停在 Product B 详情页,采样了带 <think> 推理的 Back to Search 响应;3) 学生当前状态 s_t 加上采样动作 a_t 后,与任务参考产生状态-参考失配(图中以 × 标注);4) 教师对同一响应重打分,但 FullPath-SD 仍条件化在状态不兼容的参考上。
这张图是全文动机的视觉锚点,用一个具体的网页购物例子直观说明了「同一任务 ≠ 有效参考」这一核心问题,理解它就理解了为什么要做状态匹配。