你以为在训同一个模型:agentic RL 的四重错位与一张仪表盘
6b 系统篇的收官暗坑(L12 p.18-27):单轮 RL 里训练器与 rollout 器天然看同一段文本,agent 的多轮 harness 却让「训练的 token 流」与「推理的 token 流」悄悄分叉——历史怎么拼、模板怎么渲染、token 怎么存,再加权重何时换(async),四处都可能「你以为在训同一个模型,其实两边各看各的」,而且全程零报错。①Sequence extension(p.19-20):Harness A 逐轮追加完整历史 T A₁O₁A₂O₂…,Harness B 每两轮把 A₁O₁A₂O₂ 摘要成 S——训练批里一条轨迹的优势 Â 广播到所有动作 token,loss mask 在 Task/观察为 0、动作为 1;B 重复的 Task token 无 loss 仍耗上下文计算,结论是保精确前缀、能拼多长拼多长。②Chat template 陷阱(p.21-22):Qwen3/3.5 默认模板会把 reasoning 从历史删掉、破坏 sequence extension,agent RL 框架自带定制模板/renderer(Tinker、PrimeRL)。③TITO(p.23-24,LMSYS 2026-05-13):rollout 数据应以 token 存传——tokenize 一一对应、detokenize 多对一,chat template 加个空白就足以让训练/推理 tokenization 不一致。④Async RL(p.25-26):GPU 分组重叠推理与权重更新,agentic RL 常 rollout-bound、推理:训练可到 3:1,代价是 staleness 修正(L11 p.20/p.22-27)与 continuous batching + in-flight weight update(AReaL、Pipeline RL、SGLang);复杂 harness(p.27)配 RAO(2026)与 RLM(2025)。收在 L12 p.43 八项调试指标表:pass@1/pass@k/entropy/importance_weight_max/grad norm/average staleness/trainer MFU/timing——静默 bug 全靠这张表在曲线上现形。
chat template 多加一个空白,就足以让训练与推理的 tokenization 对不上。L12 p.18-27 用一整节讲的就是这类坑。
单轮 chat 的 RL 没有这个问题。decode 出什么就重算什么,训练器与 rollout 器处理的天然是同一段文本,一致性是免费的。
多轮 harness 是把 agent 放进环境跑轨迹的那整套脚手架。agent 一进去,训练的 token 流与推理的 token 流就开始悄悄分叉。你以为在训同一个模型,其实训练器和 rollout 器早已各看各的。
这类 bug 不抛异常、只毁曲线,本篇最后落在 L12 p.43 的八项调试指标表。
一、历史怎么拼:sequence extension 与「能拼多长拼多长」
Agent 轨迹是多轮的。任务指令 T 之后,动作与观察交替:A₁、O₁、A₂、O₂…… 下一轮推理前,harness 要把历史重新拼进 prompt。怎么拼,L12 p.19-20 摆出两种拼法。
Harness A 每轮追加完整历史,序列是 T A₁O₁A₂O₂……,旧轮逐字保留。Harness B 每两轮压缩一次观察:保留 T,把 A₁O₁A₂O₂ 摘要成一条 S。上下文短了,精确前缀没了。
先看训练批怎么读这段序列(L12 p.19-20,衔接 6a 信用分配段 L11 p.6/p.10-11)。多轮轨迹通常只有一条最终奖励,一条轨迹的优势 Â 会广播到全部动作 token。
loss mask 在 Task 与观察 token 上取 0、在动作 token 上取 1。环境说的不学,只学自己说的。
在这个视角下重看 Harness B:每个压缩窗口都重复出现的 Task token,一个 loss 都不产生(mask=0),却照样参与每次前向、照吃上下文计算。历史被改写后,同一个动作在不同轮次看到的条件已不相同。
逐轮追加完整历史 T A₁O₁A₂O₂…:上下文线性变长,但旧 token 逐字不动 —— 训练与推理看到的前缀永远一致,推理侧的前缀缓存也每轮可复用。
每两轮把 A₁O₁A₂O₂ 摘要成 S:上下文省了,代价是历史被改写、条件分布轮轮漂移,重复的 Task token 无 loss 仍耗计算 —— 省下的长度,付在一致性上。
结论(L12 p.20):尽量保持精确前缀(exact prefix),能拼多长拼多长。训练一致性直接跟着来,推理侧的缓存复用也是它给的。
二、模板与 token:两道更静默的关
拼接策略选对了,后面还有两处裂缝,一处比一处难查。
模板关(L12 p.21-22)。现代 chat 模型的每一轮输入都要过 chat template 渲染,而默认模板不是为 agent RL 设计的。Qwen3/3.5 的默认模板会把 reasoning 从历史中删掉,见 Qwen3 Technical Report。
rollout 时上一轮的推理过程被抹除,精确前缀从第二轮起就不成立。通用 chat 产品与 agent 训练的需求本就错位,这不是哪一家的疏忽。
所以 agent RL 框架干脆自带定制模板 /renderer,L12 p.21-22 点名 Tinker、PrimeRL。在 RL 系统里,模板是训练契约的一部分,不是渲染细节。
token 关(L12 p.23-24)。TITO(Token-In-Token-Out):rollout 数据以 token 的形态存储与传输,不走字符串。
理由藏在一处不对称里:tokenize 一一对应,detokenize 多对一。token 序列能确定地译成字符串,字符串再切回 token 却不保证回到原序列(No Token Left Behind,LMSYS 2026-05-13,Miles 训练系统的复盘)。
只要数据在两个引擎之间走过一趟「字符串空间」,哪怕只是 chat template 多加了一个空白,训练侧重算的 token 流就可能不再是 rollout 实际生成的 token 流。
超参错了,loss 通常立刻给出反应。token 流错位时,两侧的 logprob 各自都「正常」,数据管道每个组件单独看都无罪,只有把 rollout 的 token 与训练侧输入逐 token 对一遍,错位才暴露。这也是 TITO 把存 token 上升为系统原则的原因:让往返字符串空间这条路根本不存在。
三、时间维度:async RL、3:1 与在途权重更新
前两节错在表示,同一条轨迹被摆成两副样子;这一节错在时间,训练器往前走了,rollout 器还在旧权重上采样。
同步方案里,训练与推理同卡共置、轮流独占:一致性免费,但一边跑另一边闲。异步 RL(L12 p.25)把 GPU 分组、重叠推理与权重更新,把 rollout 阶段的 GPU 空闲消掉。agentic RL 的负载常是 rollout-bound,采样是瓶颈,推理: 训练的卡数比可以到 3:1。
代价是数据变旧:训练吃的轨迹来自若干步之前的权重,staleness(陈旧度)必须修正。工具在 6a 算法段已备好,AReaL 的 staleness 处理见 L11 p.20,重要性采样 / 裁剪见 L11 p.22-27。
系统侧还需要推理框架为 RL 演化出的两种能力(L12 p.25-26):continuous batching 与 in-flight weight update。前者是连续凑批,请求随到随入批,把长短不齐的轨迹拼满 GPU。后者是在途权重更新,请求处理中途热切换权重,SGLang 文档给了示例。
这条线的代表系统是 AReaL 与 Pipeline RL。
staleness 修正的数学前提,是训练与 rollout 在同一段 token 序列上各算一个 π、比值才有意义。若第二节的两处错位让两边 token 流不同,importance ratio 比的是两个不同事件的概率,修正从根上失效。所以工程顺序是:先保 token 一致,再谈异步。
顺带一页(L12 p.27):当 harness 复杂到子 agent、上下文压缩,轨迹本身开始递归化。前沿已为此备好概念:RAO(Recursive Agent Optimization,2026)与 RLM(Recursive Language Models,2025),把训练对象从单条轨迹推广到递归调用的树。
本篇不展开,记住坐标即可;更大的全景坐标见 m6-agentic-rl-survey 综述卡。
四、八项仪表盘:静默 bug 的显影液
这四处都不报错,唯一的突破口是训练曲线。L12 p.43 给出八项调试指标,每一项都对应一类分叉:
| 指标 | 看什么 | 异常读法 |
|---|---|---|
| reward / pass@1 | 训练奖励与留出集并排看 | 多步平坦,或训练涨而留出集降 = reward hacking |
| pass@k | 采样多样性 | pass@1 升而 pass@k 降 = 多样性崩溃 |
| entropy | 策略分布 | 骤降趋 0 或跳变 = 退化文本 |
| importance_weight_max | π_train/π_rollout 最差 token 比值 | 尖峰 = token 错位或数据 stale(少数 token 主导更新) |
| grad norm | 梯度规模 | 尖峰通常先于发散出现 |
| average staleness | 数据落后多少个权重版本 | async 配平与否的直读 |
| trainer MFU | 训练器算力利用率 | padding / 长短不均衡 / 小 microbatch 会拉低 |
| timing | rollout /update/stall /total 分段 | stall > 0 = 训练器在等 rollout |
前三节的每一处错位在这张表上都有投影。importance_weight_max 冒尖,要么是第三节数据 stale,要么是第二节的 token 流根本不是一段序列,ratio 比错了对象。
average staleness 直接量化 async 的滞后。timing 的 stall > 0,说明分组没配平、训练器在干等 rollout。trainer MFU 低,多半是 padding 与长短不均衡。
pass@k 降而 pass@1 升、entropy 塌缩,是 6a 讲过的探索崩溃在表上的读法。reward 涨而留出集降,则是《算法再稳,尺子歪了也白搭》里的 reward hacking 三条路径。
这张表同时覆盖算法侧与系统侧的故障。
与本讲的连接
跨篇连读:《双引擎解剖》拆的是 weight sync 通道的同步体量与 MoE 路由,本篇补上 rollout 数据这条通道,两条合起来才是 6b 双引擎的完整暗坑图;《算法再稳,尺子歪了也白搭》末尾预告的八项调试指标,本篇正面拆完。
行动项:给自家管线做一次三连检,harness 拼历史用的是精确前缀还是摘要、模板会不会把 reasoning 从历史删掉、rollout 落盘的是 token 还是字符串。前三问查完,第四问在 p.43 那张表上直接读:timing 的 stall 是否大于 0。
本节论文与规范
本节资料
2025 综述(v5 2026 更新)。把 agentic RL 定式化为时序扩展的部分可观测 MDP,按规划、工具使用、记忆、推理、自我提升、感知六大能力 × 任务域双维度组织,综观 500+ 文献,并整理开源环境、基准与框架清单。L11/L12 的「系统与陷阱」两条线索都能在其中找到更大坐标。当课程地图用:迷失时回来看全景。
- AReaL: A Large-Scale Asynchronous Reinforcement Learning System for Language Reasoning 论文2505.24298前沿
2025/2026(v5 2026-03)前沿。大规模异步 RL 系统:生成/训练解耦、staleness 修正(one-step-off)的系统研究——L11 p18-22 与 L12 p25「async 需陈旧性修正」的展开;2026 衍生 AReaL-DTA 前缀树(τ²-bench 压缩 9.43×)与 AReaL 2.0(Cursor 每 5 小时在线 RL 一版)。
- Qwen3 Technical Report 论文2505.09388前沿
2025 前沿。GRPO 家族超大规模(旗舰 235B-A22B、119 语种)完整落地记录:强到弱蒸馏、thinking budget 控制与四种尺寸训练配方——「slides 里的算法如何变成产品」的最佳样本;其默认 chat template 删 reasoning 的行为也是 L12 p21 模板陷阱案例。训练管线四阶段(长 CoT 冷启动→推理 RL→模式融合→强到弱蒸馏)公开可抄。
- SGLang(GitHub 仓库) 代码库进阶
活跃开源仓库。RadixAttention 前缀缓存(L12 p10 agentic RL 组内共享 prompt 直接受益)与 in-flight weight update 文档示例(L12 p26)——读 L12 推理引擎两页的实操对照。文档把前缀缓存命中率、权重热更新写成可跑示例,帧率数据可复现。agentic RL 组内共享前缀正是 radix 树的拿手场景,配 L12 两页读效率最高。
2026-05 一线工程帖(L12 p23-24 官方引用)。Token-In-Token-Out:rollout 数据必须以 token 而非字符串存储传输,chat template 加空白等小变换会让训练/推理 tokenization 不一致;tokenize 一一对应、detokenize 多对一。跨系统传 rollout 一律传 token id,字符串往返即不可逆损伤。
AI 生成 · 仅供参考,与课程方无关。选中正文里的任何一段也能直接问我(解释一下 / 举个例子)。
本详解以 CMU 11-768 AI Agents (Fall 2026) 课程大纲为参考框架独立撰写,AI 辅助起草、人工抽审。 涉及的官方课件、论文与课程材料版权归原所有方,讲义为站内镜像、其余外链原文出处; 观点与文字(除标注引用外)为作者原创。