ReAct 的 thought 只盯下一步,外挂规划器又常和执行器脱节,SFT 则容易把成功轨迹背下来。 论文把全局规划器与执行器放进同一个模型,让计划随着观察逐步重写;再用三阶段 GRPO 依次练「跟计划」「写计划」「联合配合」。 代价是:环境模拟、初始计划和奖励评判都依赖一个前沿模型。
ReAct 把「想一步」和「做一步」交错起来,但 thought 只服务当前动作,缺少全局上下文;先做规划的方法又常把 planner 和 executor 分成两套,计划写得出来、执行器未必跟得上;SFT 直接学成功轨迹,容易记住任务特定的套路。
AdaPlan 让一个模型同时扮演全局规划器和执行器:先给出初始计划 P(0)=[p1…pN0],执行器按计划和累积上下文行动;环境返回观察后,已经执行的步骤冻结,只有未来步骤被重写(Eq.1)。计划只更新未来步骤,不会把已执行的步骤推倒重来。
PilotRL 用三阶段 GRPO 把两个能力拆开练:Stage 1 只练执行器「跟计划」,奖励是格式、依从度、端到端表现;Stage 2 练规划器「写计划」,奖励再加计划质量;Stage 3 才联合优化。论文的理由很直接:两类奖励对模型的行为要求不同,早期混在一起会互相打架。
在六个基准、DeepSeek-V3 做评判的设置下,LLaMA3.1-8B + PilotRL 的平均分为 70.43,GPT-4o 为 67.98,GPT-4o-mini 为 45.21。相对 GPT-4o 高 3.60%,相对 GPT-4o-mini 高 55.78%——但分项并非全胜,TextCraft 与 MAZE 仍低于 GPT-4o。
三个失败模式分别来自短视、规划与执行脱节、以及 SFT 的泛化缺陷。
ReAct 是很多智能体系统的共同底座,但论文把它的问题写得很直接:推理部分生成的 thought「只关注即时动作」,缺少对整体上下文的洞察(§1)。这在一两步的任务里不明显,一旦任务需要连续多步,模型就可能反复走错方向。
每一步只想「下一步做什么」,没有一张覆盖全局的路线图。论文称其为 Limited Contextual Awareness of ReAct。
已有方法常把 planner 和 executor 分开设计,计划可能根本不在执行器能力范围内,导致「计划赶不上变化」。
监督微调让模型记住任务特定的成功轨迹,而不是学到可迁移的问题解决能力;换一个场景就容易失效。
论文在附录 D 给了一个具体例子:在 BabyAI 里,智能体已经向右走了三步,却忘了红球应该就在左边,继续朝前走,产生大量冗余动作。原句是「When the agent has already moved three steps to the right, it forgets that the red ball should be directly on its left and continues to move forward」(Appendix D)。这不是某一步动作错了,而是整体方向感丢了。
更麻烦的是训练层面:规划质量和执行依从度是两种不同的行为要求。论文在 §4.1 说,planning-oriented 与 execution-driven 的奖励会给模型「distinct behavioral demands」,早期模型还没学会跟计划,就把两类奖励同时压上去,会产生冲突的梯度。Table 2 的同时训练设置(1 & 2 & 3)平均分 67.27,低于标准流程的 69.58(相对下降 3.32%),这就是「为什么必须分阶段」的直接证据。
ReAct 只看下一步;MPO 外挂规划器但执行器冻结;SFT 会背轨迹,不一定会迁移。
不训练,只靠 prompt 让模型交替生成 thought 和 action。LLaMA3.1-8B 上六基准均分 41.68,仅比直接回答的 Naive Response(37.60)高 4.08 个百分点。
卡点:thought 只服务当前动作,没有全局计划;步数一长,方向容易丢。
MPO 提供 meta-plan 作为显式引导,规划器可训练,但执行器参数冻结。LLaMA3.1-8B 上均分 50.88,比 ReAct 高 9.20 个百分点。
卡点:规划和执行仍是两套模型,计划生成时不需要为执行器的实际能力负责。
SFT 把 DeepSeek-V3 生成的全局计划和原始交互轨迹一起喂给模型。LLaMA3.1-8B 上均分 63.84,明显高于 ReAct 和 MPO。
卡点:它学的是「这条轨迹怎么做」,不是「遇到新情况怎么规划」。更关键的是,不带全局计划的 Vanilla RL 也能到 63.33,两者只差 0.51 个百分点——说明单靠「有计划的 SFT」或「无计划的 RL」,都停在同一个台阶上。
| 方法 | w/o Plan. | Avg. |
|---|---|---|
| Naive Response | ✗ | 37.60 |
| ReAct | ✗ | 41.68 |
| + MPO | ✔ | 50.88 |
| SFT | ✔ | 63.84 |
| Vanilla RL | ✗ | 63.33 |
| PilotRL (ours) | ✔ | 70.43 |
所以问题不是「要不要规划」,而是规划器与执行器是否在同一个模型里、是否被 RL 一起训练。PilotRL 比 SFT 高 6.59 个百分点,比 Vanilla RL 高 7.10 个百分点——前者的差距来自 AdaPlan + 渐进训练,后者还多了一层「有没有全局计划」。
全局规划器与执行器在同一个模型里;每执行一步,已走过的前缀冻结,未来步骤按最新观察重写。
给定任务目标 G 和初始上下文 C(0),全局规划器先产出一个由 N0 步组成的计划 P(0)=[p1(0),…,pN0(0)]。执行器在第 t 步根据累积上下文 C(t−1) 和当前计划 P(t−1) 选择动作 a(t);环境返回观察 o(t),并把 (a(t),o(t)) 并入上下文。随后计划被更新:
这个条件分支是 AdaPlan 的关键:已经执行的步骤不再改写,只有未来步骤随观察更新。换成直白的话:计划可以改,但不能把已经走过的路改写成「本来就这么计划的」。推断(依据 §2.1 对 P(t) 的定义与 Eq.1 的前缀条件)
下面是一个 5 步计划的简化演示。每点一次「执行一步」,当前步变成已执行,后面的步骤版本号加一,表示被 π 重写。计划内容只用占位符,不模拟 π 具体生成什么。
参数一:5 步计划,t = 2。已执行 p1、p2,共 2 步冻结;未来 p3、p4、p5 共 3 步可重写(5 − 2 = 3)。
参数二:5 步计划,t = 4。已执行 p1–p4,共 4 步冻结;未来 p5 共 1 步可重写(5 − 4 = 1)。
边界:t = 5。5 步全部执行,0 步可重写;计划不再更新。
覆盖:Eq.1 的两个分支——i ≤ t 保留、i > t 重写;以及 t=5 无未来步骤的边界。
未覆盖:π 的实际生成内容、generate-then-select 的候选池、N0 可变的情形、执行器偏离计划后的具体改写。计划固定 5 步是页面自定,不是原文设定。
AdaPlan 定义了运行时怎么循环,PilotRL 定义训练时怎么把这个循环练出来。三个阶段用的都是 GRPO,但奖励组成不同:
全局计划由前沿模型(如 DeepSeek-V3)用 generate-then-select 提供:先生成候选,再按 correctness、executability、format 选一个。
奖励 = format + adherence + E2E。adherence 打 2/1/0(完全 / 部分 / 不遵循);E2E 打 2/1/0(高效完成 / 冗余完成 / 未完成)。
模型自己生成候选计划并选择最合适的一个。
奖励 = format + E2E + plan quality。plan quality = R_correct + R_execute + R_standard,三项各 1–5 分,合计 3–15 分,由 DeepSeek-V3 评分。
不再单独考核计划质量,直接让最终任务结果说话。
奖励 = format + E2E。这一阶段把规划器和执行器放在一起更新,练的是「计划能被执行、执行能反过来修正计划」。
| 阶段 | 主要训练对象 | 奖励组成 | epoch |
|---|---|---|---|
| Stage 1 | Executor | format + adherence + E2E | 1 |
| Stage 2 | Global Planner | format + E2E + plan quality | 2 |
| Stage 3 | Planner + Executor | format + E2E | 1 |
论文没有给三项奖励的归一化权重,只说是「sum of normalized components」(§2.2)。所以这里不还原一个具体打分公式,只列出原始分制。阶段顺序也不是随便排的:Stage 1 先让模型学会跟住别人的计划,Stage 2 才有基础去判断什么叫好计划,Stage 3 再把两者放到同一个目标下。
GRPO + verl;三个阶段的 epoch 是 1/2/1;一次 LLaMA3.1-8B 训练约 18 小时。
训练数据来自 ALFWorld、IQA、TextCraft、Wordle 四个训练集,合计 5725 条样本(3000 + 1465 + 400 + 860,Table 5)。每条样本做 16 次 rollout,训练 batch size 256,rollout batch size 64;总 epoch 为 4(1 + 2 + 1),学习率 1e-6。RL 框架是 verl 0.2.0.post2,算法是 GRPO(§3.1)。
环境观察由 DeepSeek-V3 模拟生成,不是训练策略产生的。论文把 <observation>...</observation> 里的内容在 loss 计算时全部 mask 掉,避免这些片段影响梯度(§3.1)。这一点很关键:否则模型会把「环境说了什么」也当成自己要学的输出。
| 项目 | 配置 / 数值 |
|---|---|
| 硬件 | 32 × NVIDIA H20(96GB) |
| 总训练时间 | 约 18 小时(Stage 1 约 4h / Stage 2 约 8h / Stage 3 约 6h) |
| 总 token 消耗 | 约 4.6B tokens(5725 条样本 × 4 epochs) |
| GRPO 配置 | rollout batch size 64;vLLM + flash-attn-2 |
规划会带来额外的 per-step token,但它也可能减少总步数。论文用 Qwen2.5-7B-Instruct + PilotRL 在六个基准上做了平均,结果分成两类:
| 任务类型 | ReAct tokens / task | AdaPlan tokens / task | ReAct 时间 | AdaPlan 时间 |
|---|---|---|---|---|
| 复杂交互(ALFWorld / BabyAI / TextCraft) | ~560 | ~450 | ~30s | ~22s |
| 简单短任务(Wordle / IQA / MAZE) | ~180 | ~300 | ~6s | ~8s |
复杂任务里,AdaPlan 每步多花约 20–30% 的 token,但总步数减少 30–40%,总 token 反而从约 560 降到约 450,时间从约 30 秒降到约 22 秒。简单任务则相反:绝对增加约 120 tokens、约 2 秒,论文认为在 GPU 推理下可以接受。换句话说,规划的成本要用「总步数」而不是「每步 token」来算。
论文在 BabyAI 上比较了每 5 步、每 2 步、每 1 步更新计划三种设置。直觉上「多想几次会走更多步」,但 Table 10 的结果相反:更新越频繁,成功率越高,平均总步数越少。
| 更新频率 | 平均任务成功率 | 平均总步数 |
|---|---|---|
| 每 5 步 | 53.28(↓14.96) | 24.5(↑8.7) |
| 每 2 步 | 62.57(↓5.67) | 18.2(↑2.4) |
| 每 1 步(ours) | 68.24 | 15.8 |
论文的解释是:频繁更新能更早纠错,避免错误累积;虽然每步多花一点思考 token,但省下了后面绕路和回退的步数(§B.4.2)。这和 Table 9 的复杂任务结论是同一件事的两个侧面。
左边是 AdaPlan 的运行时循环,右边是 PilotRL 如何把两个能力分阶段练出来。
这张图最重要的地方不是箭头,而是两个角色共享同一套参数。论文用 isolated 架构做对照:同样 backbone,把 planner 和 executor 分开训练,各训 2 个 epoch,再和 unified 的 PilotRL 比。结果 unified 在三个模型上都更高:
| Backbone | Unified | Isolated | Unified − Isolated(points) |
|---|---|---|---|
| Qwen2.5-7B-Instruct | 68.53 | 64.36 | 4.17 |
| LLaMA3.1-8B-Instruct | 70.43 | 65.51 | 4.92 |
| Qwen3-8B | 69.77 | 67.11 | 2.66 |
LLaMA3.1-8B 上,unified 比 isolated 高 4.92 个百分点,相对隔离架构提升 7.51%。论文在 Table 8 里报告三个模型的相对提升分别为 6.48% / 7.51% / 3.96%。
另一个对照更能说明「AdaPlan 本身就有效」:不做任何额外训练,只换 prompt 范式,三个模型上 AdaPlan 的均分都高于 ReAct。LLaMA3.1-8B 从 41.68 到 47.34,高 5.66 个百分点,相对 ReAct 提升 13.58%(Table 3)。
主结果看六基准与均分;消融看三阶段各自值多少。
下面的数据逐字转录自 Table 1,没有做任何换算。GPT-4o 行不随 backbone 变化,放在图里作为参照;其余五行是对应 backbone 的结果。
LLaMA3.1-8B / Avg:PilotRL 70.43 − GPT-4o 67.98 = 2.45 个百分点;相对提升 3.60%(2.45 / 67.98)。
Qwen2.5-7B / Avg:PilotRL 68.53 − GPT-4o 67.98 = 0.55 个百分点;相对提升 0.81%(0.55 / 67.98)。
以上均为六基准均分,GPT-4o 行在 Table 1 中不区分 backbone。标准差口径不适用:这里没有做多次运行的均值±方差。
| 基准 | GPT-4o | LLaMA3.1-8B + PilotRL | 结果 |
|---|---|---|---|
| ALFWorld | 75.83 | 78.53 | 高于 |
| IQA | 66.59 | 72.78 | 高于 |
| TextCraft | 68.50 | 64.76 | 低于 |
| Wordle | 78.65 | 79.61 | 高于 |
| BabyAI | 57.87 | 68.24 | 高于 |
| MAZE | 60.42 | 58.68 | 低于 |
| Avg. | 67.98 | 70.43 | 高于 |
所以「平均分超过 GPT-4o」不等于「每个任务都超过」。TextCraft 上 LLaMA + PilotRL 是 64.76,低于 GPT-4o 的 68.50;MAZE 上是 58.68,低于 60.42。总分能反超,主要靠 ALFWorld、BabyAI 和 IQA 的较大优势。推断(依据 Table 1 的分项差值:这三项的正向差最大)
摘要写的是「surpassing closed-sourced GPT-4o by 3.60%」和「55.78% compared to GPT-4o-mini」;§3.2 写的是「average improvement of 2.35% over GPT-4o」和「53.90% over GPT-4o-mini」。
按 Table 1 逐行复算:3.60% 与 55.78% 对应 LLaMA3.1-8B 单模型(70.43 vs 67.98 / 45.21);2.35% 与 53.90% 对应 三个 PilotRL 模型的平均(69.58 vs 67.98 / 45.21)。推断(依据 Table 1 三行均分与 GPT-4o / GPT-4o-mini 两行复算)
三个 PilotRL 模型分别是 Qwen2.5-7B 的 68.53、LLaMA3.1-8B 的 70.43、Qwen3-8B 的 69.77,均高于 GPT-4o 的 67.98;平均 69.58,相对 GPT-4o 高 1.60 个百分点(2.35%),相对 GPT-4o-mini 高 24.37 个百分点(53.90%)。
| 训练顺序 | ID | OOD | Avg. | 低于标准(points) | 相对降幅 |
|---|---|---|---|---|---|
| 1 → 2 → 3(标准) | 73.68 | 61.39 | 69.58 | — | — |
| 1 & 2 & 3(同时) | 71.64 | 58.52 | 67.27 | 2.31 | 3.32% |
| 2 → 3(去掉 Stage 1) | 70.82 | 58.33 | 66.66 | 2.92 | 4.20% |
| 1 → 3(去掉 Stage 2) | 70.66 | 58.39 | 66.57 | 3.01 | 4.33% |
| 1 → 2(去掉 Stage 3) | 72.21 | 59.02 | 67.81 | 1.77 | 2.54% |
| 2 → 1 → 3(交换 1/2) | 72.79 | 59.88 | 68.48 | 1.10 | 1.58% |
几个值得注意的点:
论文用 LLaMA3.1-8B-Instruct 记录了三类奖励的归一化曲线:执行器奖励在 Stage 1 明显上升,之后基本稳定;规划器奖励在 Stage 2(epoch 2 与 3)明显上升;E2E 奖励全程稳步上升。进入 Stage 3 时,规划器奖励有一个小幅回落,论文推测这是规划器在适配执行器能力的调整期,随后继续上升(§4.4)。
Figure 3 的原始曲线没有在页面里逐点转录;这里只引用论文对趋势的文字描述。
三条边界:前沿模型依赖、线性计划表示、成本与规模。
在论文的主实验里,DeepSeek-V3 承担三个角色:模拟环境行为、在 Stage 1 生成初始全局计划、作为 LLM-as-Judge 评判 adherence、plan quality 和 E2E(§B.5)。论文在 §7 明确承认:这会引入依赖,并可能传播偏见。
这种依赖不是理论上的。Table 12 把 DeepSeek-V3 换成 GPT-4o 或 LLaMA3.1-70B(该前沿模型同时替换上述三个角色),同一个 Qwen2.5-7B + PilotRL 的平均分变成 69.55(GPT-4o)、65.53(LLaMA3.1-70B),主设置是 68.53(DeepSeek-V3)。相对主设置,GPT-4o 评判下高 1.02 个百分点,LLaMA3.1-70B 评判下低 3.00 个百分点;最高与最低相差 4.02 个百分点。论文把差异归因于不同模型的评分偏好(§B.5.2)。
裁判本身也不是完美的:Table 13 的 30 例/基准人工复核中,DeepSeek-V3 的平均一致率是 0.98,但 TextCraft 只有 0.90–0.93;论文说这个任务带有创意文本生成成分,评判依赖一定的主观审美。
论文把全局计划定义为 P(0)=[p1(0),…,pN0(0)],一个由 N0 个步骤组成的有序列表(§2.1)。Eq.1 的更新方式是:保留前缀,重写后缀。
论文没有给出条件分支、循环、并行子任务或嵌套子计划的表示,也没有实验验证这些形式。这个页面不把「支持层级规划」算作它的能力;这是论文边界,不是实现细节。
主实验只覆盖 7–8B 的 backbone(Qwen2.5-7B、LLaMA3.1-8B、Qwen3-8B),没有更大模型的 scaling 证据。训练一个 LLaMA3.1-8B 的 PilotRL 需要 32 张 H20、约 18 小时、约 4.6B tokens(Table 11)。
推理侧,每 1 步更新计划在 BabyAI 上最好(68.24 / 15.8 步),但每 5 步会掉到 53.28 / 24.5 步;简单任务还要多付约 120 tokens、约 2 秒(Table 9、Table 10)。如果场景对延迟极敏感、任务又短,AdaPlan 的规划开销不一定划算。
一句话总结:PilotRL 优化的是「在给定环境和裁判下,如何把计划和执行训得更协调」,不是「如何摆脱对前沿模型的依赖」,也不是「如何把计划表示得更复杂」。这三条边界决定了它更适合有稳定模拟器、可调用强模型做评判、且任务确实需要多步规划的场景。推断(由 §7、Table 11、Table 12 的限制反推适用条件)