TCOD: Exploring Temporal Curriculum in On-Policy Distillation for Multi-turn Autonomous Agents

Paper: arXiv:2604.24005 Code: kokolerk/TCOD Code reference: main @ af392f50 (2026-05-01)

1. Motivation (研究动机)

当前 OPD 在 multi-turn agent 上的核心缺口

On-Policy Distillation (OPD) 在数学题、问答等 single-turn 场景里很自然:student 用自己的分布采样,teacher 在这些 on-policy 样本上提供 token-level 或 sequence-level 的 dense KL 监督,避免 RL 稀疏奖励带来的低样本效率。但 multi-turn autonomous agent 的状态不是单个 prompt,而是历史 。早期一步错误会改变后续 observation 和 admissible actions,于是 teacher 给出的监督不再只是“纠正一个 token”,而是在 student 已经偏离 teacher 支持域的轨迹上做强行对齐。

论文把这个失败模式命名为 Trajectory-Level KL Instability:在 ALFWorld pilot study 中,Qwen3-0.6B/1.7B student 从 Qwen3-30B-A3B-Instruct teacher 做 vanilla OPD 时,trajectory-level KL 在训练中上升,成功率接近坍塌到 0;对较大的 Qwen2.5-3B/7B student,即使 KL 最终下降,初始 KL 也可达到约 ,远高于收敛后的 。这说明问题不是单纯“teacher 不够强”或“student 不够大”,而是长 horizon 里的 early-turn error compounding 让 distillation 信号在深层轨迹上变得不稳定。

Figure 1 解读:左侧强调 vanilla OPD 在完整多轮轨迹上直接对齐 teacher;一旦 student 早期动作偏离,后续状态会被自己的错误历史污染。右侧对应 TCOD 的直觉:不要一开始就把完整长 horizon 暴露给 student,而是把可学习的轨迹深度作为 curriculum 变量逐步放大。

Figure 2a–2d 解读:前两幅显示 vanilla OPD 中 KL spike 与 success-rate collapse 同时出现;第三幅显示不同 teacher–student 组合的 initial KL 与 final KL 差距很大;第四幅按 turn index 展示 per-turn KL 随交互轮数增加而升高,支持“错误随轨迹深度放大”的解释。这里的重点不是某个 benchmark 数值,而是 KL 的时间结构:越靠后的位置越容易处在 student-induced OOD state。

论文要解决的问题

TCOD 要解决的是:如何保留 OPD 的 dense teacher signal,同时避免 student 在训练早期被完整多轮任务的 compounding error 拖垮。它不是重新设计 reward model,也不是用额外 verifier 评价难度,而是把“student 需要独立控制多少轮交互”作为 curriculum 难度。

为什么值得研究

如果这个问题解决,OPD 可以从 single-turn reasoning 扩展到长 horizon agent training:student 不必依赖纯 SFT 的 teacher-forced trajectory,也不必用高方差 sparse reward RL 从零探索完整任务;teacher 的 token-level 分布仍然可用,但只在当前 curriculum 阶段中 student 真正负责的那段轨迹上提供监督。

2. Idea (核心思想)

TCOD 的核心 insight 是:multi-turn OPD 的难度主要来自 trajectory depth,而不是样本本身的静态难度;因此 curriculum 不需要外部 difficulty scorer,只需要控制 student 在一条轨迹中负责的时间窗口。训练初期让 student 学短 horizon 或靠近成功终点的子任务,随着训练推进逐步扩展到完整轨迹。

与 vanilla OPD 相比,TCOD 不在第 0 步就要求 student 自己 roll out 全部 轮并对每一轮做 KL;它只在一个随训练步数增长的窗口上计算 OPD loss。与 SFT 相比,TCOD 仍然是 on-policy:student 在自己的行动窗口内生成动作,teacher 只提供分布监督或前缀导航,而不是把整条 gold trajectory 直接 teacher-forcing 给 student。

论文提出两个互补变体:TCOD-F2B 从 trajectory 前段开始,限制 student 最多执行 步;TCOD-B2F 从成功轨迹后段开始,teacher 先执行成功前缀,把环境推进到靠近终点的位置,再让 student 接管最后 步。二者都用线性 pacing 扩大 ,但 inductive bias 不同:F2B 更便宜、更接近测试起点;B2F 更强地避免早期错误堆积,但需要预收集 teacher 成功轨迹。

更具体地说,TCOD 把“是否让 student 负责这一步环境转移”与“是否对这一步计算 distillation loss”绑定起来。vanilla OPD 中,student 对整条轨迹所有状态负责,因此一旦早期偏离,后面每个 token 的 KL 都会在被污染的历史上继续累积;TCOD 则把可控窗口限制在当前 ,在窗口外要么直接停止 rollout(F2B),要么由 teacher/expert 前缀把环境推进到可靠状态(B2F)。这使 teacher 的 dense signal 主要落在 student 当前有能力学习的 state distribution 上。

这个思想与普通 curriculum learning 的差别也很关键:传统 curriculum 常需要外部模型、人工规则或 reward 统计来定义样本难度;TCOD 的难度变量是 agent 任务内部天然存在的时间维度。随着 从 1 增长到 ,训练目标从短 horizon imitation 平滑过渡到完整 on-policy distillation,因此最后仍然服务于 end-to-end autonomous execution,而不是停留在 teacher-forced imitation。

3. Method (方法)

3.1 Problem setup: multi-turn OPD objective

论文把 agent 历史写成: 完整 trajectory 为 。vanilla multi-turn OPD 的目标是: 这个式子的危险点在于期望分布由 产生:如果早期 错了,后续 已经不是 teacher 熟悉的成功分布,KL 既可能很大,也可能不再对应可学习的纠正信号。

3.2 Overall framework: TCOD-F2B / TCOD-B2F

Figure 3 解读:左侧是 vanilla OPD,student 从起点一路执行完整 trajectory,并在完整轨迹上被 teacher KL 监督;中间 TCOD-F2B 把 student 可执行 horizon 限制为 ,先学前 步,再逐渐放大;右侧 TCOD-B2F 让 teacher 先执行成功轨迹前缀,student 只接管最后 步,红色 teacher prefix stop-gradient,蓝色 student window 才产生训练信号。

直觉上,TCOD 把一个长 horizon 的不稳定目标拆成一串“可控深度”的子目标。早期 小,student 不会被后半段复杂状态拖入高 KL 区;后期 ,目标逐步恢复到完整 OPD,从而减少 train-test mismatch。B2F 的额外好处是 teacher prefix 把环境放到“成功路径附近”,student 学到的是如何从可行状态继续完成任务,而不是在早期错误状态中盲目探索。

3.3 TCOD-F2B: shallow-to-deep forward curriculum

F2B 的做法是限制训练时 student 最多 rollout 步: 线性 pacing 为: 在 released code 中,ALFWorld F2B workflow 通过 TCOD_f2b_alfworld_workflow._compute_distill_window() 实现同一思想:distill_window = 1 + current_step // checkpoint_steps,训练时 effective_steps = min(distill_window, max_env_steps)。因此 student 只执行并返回前 effective_stepsExperience;每个 turn 再调用 teacher 的 logprobs_async() 得到 teacher token logprobs。

论文公式与 released code 实现差异:论文写成通用 pacing,而 released YAML 使用 checkpoint_steps 控制增长;例如 TCOD_examples/alfworld/tcod_f2b.yamltotal_steps=250checkpoint_steps=6max_env_steps=30,WebShop 设 total_steps=150checkpoint_steps=4max_env_steps=15。代码没有显式名为 eta 的字段,而是用 checkpoint_steps 达到等价的离散窗口扩展。

def tcod_f2b_rollout(workflow, env, model, teacher_model, task):
    current_step = parse_batch_id(task.batch_id)
    distill_window = 1 + current_step // task.workflow_args["checkpoint_steps"]
    effective_steps = min(distill_window, task.workflow_args["max_env_steps"])
 
    history, memory, turn_responses = [], [], []
    observation, info = env.reset()
    for r in range(effective_steps):
        prompt = build_agent_prompt(observation, history, info)
        response = model.chat(memory + [{"role": "user", "content": prompt}], logprobs=0)
        turn_responses.append(response)
        action = parse_action(response.response_text)
        history.append(format_history(observation, r + 1, action))
        observation, reward, done, info = env.step(action)
        if done:
            break
 
    for i, response in enumerate(turn_responses):
        teacher_lp = teacher_model.logprobs(tokens=response.tokens, temperature=task.temperature)
        response.teacher_logprobs = teacher_lp[response.prompt_length - 1:]
        response.reward = float(done)
        response.eid.step = i
    return turn_responses

3.4 TCOD-B2F: teacher-prefix then student takeover

B2F 先预收集成功 teacher trajectory 。设成功轨迹长度为 ,teacher 执行前 步,把环境推进到中间 checkpoint;student 从那里接管最后 步。目标为: released code 在 TCOD_b2f_alfworld_workflow._linear_checkpoint_step() 中用 checkpoint_step = max(0, min(max_expert_actions - current_step // checkpoint_steps, max_expert_actions)) 计算还要由 teacher/expert prefix replay 的步数;随后 _create_alfworld_env_with_checkpoint(game_file_path, predefined_actions, effective_checkpoint_step) 执行预定义 teacher actions。如果 checkpoint_step>0,student 只从 checkpoint 后开始产生 Experience;teacher prefix 不产生 gradient。

论文公式与 released code 实现差异:论文表述为 teacher policy 运行前缀,但 ALFWorld released code 实际读取 raw_task["actions"] 里的预定义 expert/teacher actions 来 replay checkpoint;这等价于使用预收集成功轨迹,但并不是在线调用 teacher 逐步采样前缀。代码还把 teacher prefix 轮数写入 metrics:teacher_env_rounds=start_stepstudent_env_rounds=self._env_rounds-start_step

def tcod_b2f_rollout(workflow, env_factory, model, teacher_model, task):
    current_step = parse_batch_id(task.batch_id)
    expert_actions = task.raw_task.get("actions", [])
    max_expert = max(0, len(expert_actions) - 1)
    checkpoint_step = max(0, min(max_expert - current_step // task.workflow_args["checkpoint_steps"], max_expert))
 
    if checkpoint_step > 0:
        env, observation, info, history, task_desc, start_step, done = env_factory.with_checkpoint(
            task.task_desc, expert_actions, checkpoint_step
        )
    else:
        env, observation, info, history, task_desc, start_step = env_factory.from_start(task.task_desc)
 
    turn_responses = []
    for r in range(start_step, task.workflow_args["max_env_steps"]):
        prompt = build_agent_prompt(observation, history, info)
        response = model.chat([{"role": "user", "content": prompt}], logprobs=0)
        turn_responses.append(response)
        action = parse_action(response.response_text)
        history.append(format_history(observation, r + 1, action))
        observation, reward, done, info = env.step(action)
        if done:
            break
 
    for i, response in enumerate(turn_responses):
        teacher_lp = teacher_model.logprobs(tokens=response.tokens, temperature=task.temperature)
        response.teacher_logprobs = teacher_lp[response.prompt_length - 1:]
        response.eid.step = start_step + i
    return turn_responses

3.5 Multi-turn OPD advantage and loss window

真正进入 trainer 的信号由 trinity/algorithm/advantage_fn/on_policy_distill_advantage.py 计算。核心 token-level 形式是: 并用 response_mask & teacher_valid_mask 只保留有效 response tokens。MultiTurnOpdAdvantage 把每个 turn 当作 batch 中一行,再用 unique_ids 按 trajectory 聚合 kl/trajectory_meankl/trajectory_std。这和论文的 trajectory-level KL 分析一致:模型不只看每个 response 的 KL,还关心同一条 multi-turn run 内 KL 的累计。

论文公式与 released code 实现差异:论文 loss 写成完整动作分布的 KL,released code 实际用 student sampling logprobs 与 teacher token logprobs 的差来构造 advantage:advantages = kl_coef * (teacher_log_probs - old_log_probs),同时把 returns 设成同一个 tensor。这是常见实现层面的 token-level OPD 近似,而不是显式枚举动作空间 KL。

def multi_turn_opd_advantage(batch, kl_coef=1.0):
    old_log_probs = batch["old_log_probs"]
    teacher_log_probs = batch["teacher_logprobs"]
    response_mask = batch["response_mask"]
    teacher_valid_mask = batch.get("teacher_logprobs_valid_mask", response_mask)
 
    effective_mask = response_mask & teacher_valid_mask
    advantages = kl_coef * (teacher_log_probs - old_log_probs) * effective_mask
    batch["advantages"] = advantages
    batch["returns"] = advantages.clone()
 
    kl_per_turn = ((old_log_probs - teacher_log_probs) * effective_mask).sum(dim=-1)
    trajectory_kl = group_sum_by_run_id(batch.get("unique_ids"), kl_per_turn)
    metrics = {
        "kl/mean": kl_per_turn.mean().item(),
        "kl/trajectory_mean": mean(trajectory_kl.values()),
    }
    return batch, metrics

3.6 Asynchronous training details

论文实现不是单进程同步训练。它把 rollout actors、learner、teacher 分开:主文写到 8×NVIDIA H20 (96GB),其中 4×H20 用于 actor rollout,2×H20 用于 learner,2×H20 用于 teacher。经验被写入 shared buffer,并用 staleness filter 丢弃过旧策略版本的样本;论文给出 ,released configs 也在 algorithm.sample_strategy_args.max_staleness: 2 中对应。

此外,论文把一条长度 的 trajectory 拆为递归 prefix sub-trajectories ,提升 multi-turn 样本利用率;prompt 中只保留结构化 history,避免上下文无限增长。released workflow 对 ALFWorld 的 prompt history 使用 HISTORY_LENGTH 控制最近历史,具体 prompt 模板位于 trinity/common/workflows/envs/TCOD/alfworld/utils.py

3.7 Code-to-paper mapping

Code reference: main @ af392f50 (2026-05-01) — pseudocode and mapping based on this commit

Paper ConceptSource FileKey Class/Function
TCOD-F2B rollout windowtrinity/common/workflows/envs/TCOD/alfworld/TCOD_f2b_workflow.pyTCOD_f2b_alfworld_workflow._compute_distill_window, _run_episode
TCOD-B2F teacher-prefix checkpointtrinity/common/workflows/envs/TCOD/alfworld/TCOD_b2f_workflow.py_linear_checkpoint_step, run_async, _run_episode_from_checkpoint
WebShop / ScienceWorld TCOD adapterstrinity/common/workflows/envs/TCOD/webshop/*, trinity/common/workflows/envs/TCOD/scienceworld/*TCOD_f2b_*_workflow, TCOD_b2f_*_workflow
Multi-turn OPD advantagetrinity/algorithm/advantage_fn/on_policy_distill_advantage.py_compute_opd_advantage, MultiTurnOpdAdvantage
ALFWorld launch configsTCOD_examples/alfworld/tcod_f2b.yaml, TCOD_examples/alfworld/tcod_b2f.yamldefault_workflow_type, checkpoint_steps, max_env_steps, total_steps
WebShop / ScienceWorld launch configsTCOD_examples/webshop/*.yaml, TCOD_examples/scienceworld/*.yamlmax_env_steps=15/30, total_steps=150/250, workflow selection
Prompt / environment utilitiestrinity/common/workflows/envs/TCOD/alfworld/utils.pyparse_action, format_observation, _create_alfworld_env_with_checkpoint

4. Experimental Setup (实验设置)

Benchmarks and splits

  • ALFWorld:text-based embodied navigation/object manipulation,共六类 household tasks;评估 seen、unseen 两个 split,另外构造 Hard set:121 个 teacher 在 train split 上 pass@10 失败的任务,用来检验是否能超越 teacher capability boundary。最大环境步数 30。
  • WebShop:模拟电商平台,多轮搜索、点击、选择商品;最大环境步数 15。
  • ScienceWorld:text-based elementary science reasoning,覆盖 30 个 task types,最终按完成程度给 0–100 分;最大环境步数 30。

论文主表的 benchmark summary 没给出完整 train/valid/test 样本量;appendix 只明确 ALFWorld-hard 为 121 tasks,并说明 ALFWorld 使用 seen/unseen,WebShop/ScienceWorld 使用各自训练数据的 test split。

Baselines and model pairs

  • Teacher upper bound:直接评估 teacher policy ;主表包括 Qwen2.5-7B-RL teacher,以及跨 benchmark 表中的 Qwen3-30B teacher。
  • Zero-shot student:base student 不做任务微调,作为下界。
  • SFT:用 teacher 成功轨迹做 NLL supervised fine-tuning 2 epochs;它暴露于 expert trajectory,但仍有 exposure bias。
  • Vanilla OPD:student 自己完整 rollout,全轨迹对 teacher 做 token-level KL,不限制 horizon,是 TCOD 的直接对照。

Teacher–student pairs 包括 Qwen3-30B-A3B-Instruct → Qwen3-0.6B/1.7B/4B,以及 GRPO-trained Qwen2.5-7B → Qwen2.5-0.5B/1.5B/3B/7B;主结果重点报告 Qwen2.5-3B/7B 和 Qwen3-1.7B/4B。

Metrics

  • Success Rate (SR, %):任务完成比例,越高越好。
  • Action Rounds / Env Rounds:平均动作轮数,ALFWorld 中越低通常表示更高效完成。
  • Trajectory-level KL / per-turn KL:student logprobs 与 teacher logprobs 的累计差异;用于诊断 multi-turn OPD 稳定性。
  • Training time:Figure 6 比较 ALFWorld/ScienceWorld 上 OPD 与 TCOD 的总训练时间。

Training config and reproducibility anchors

论文 appendix 的通用 training hyperparameters 写为 learning rate 、batch size 32、max trajectory length 15/20/25、fixed pacing 、EMA decay 、training iterations 10,000;但 released code 的实际 launch YAML 与之不同,复现时应优先看 repo config:

  • ALFWorld TCOD configsTCOD_examples/alfworld/tcod_f2b.yaml / tcod_b2f.yaml 使用 model_path=Qwen/Qwen2.5-1.5B-Instructlr=1e-6buffer.total_steps=250batch_size=16train_batch_size=64max_env_steps=30,F2B checkpoint_steps=6,B2F checkpoint_steps=5gpu_per_node=8tensor_parallel_size=2ulysses_sequence_parallel_size=2
  • WebShop TCOD configsTCOD_examples/webshop/tcod_{f2b,b2f}.yaml 使用 model_path=Qwen/Qwen2.5-7B-Instructtotal_steps=150max_env_steps=15checkpoint_steps=4
  • ScienceWorld TCOD configsTCOD_examples/scienceworld/tcod_{f2b,b2f}.yaml 使用 model_path=Qwen/Qwen2.5-1.5B-Instructtotal_steps=250max_env_steps=30,F2B checkpoint_steps=6,B2F checkpoint_steps=5
  • Distributed/runtime settings:released configs 均设置 sample_strategy=staleness_controlmax_staleness=2kl_coef=1.0grad_clip=1.0、rollout temperature 1.0、evaluation temperature 0.4、max prompt tokens 10,240、max response tokens 512、BF16、GPU memory utilization 0.7。

论文公式与 released code 实现差异:论文正文 implementation 写 8×H20 (96GB),appendix computational resources 又写 8×A100 (80GB);released YAML 只编码 gpu_per_node=8、tensor/sequence parallel 等,不固定具体 GPU 型号。训练数值以 configs 为复现依据,论文表格数值以 paper 为结果依据。

5. Experimental Results (实验结果)

5.1 TCOD 缓解 KL escalation 并恢复 success rate

Figure 4a–4f 解读:图中比较 vanilla OPD、TCOD-B2F 和 TCOD-F2B 的训练动态。小模型场景里,TCOD 让 success rate 从接近坍塌恢复到可训练区间,并压住 KL escalation;较大 student 场景里,KL 更快下降,action rounds / advantages 也更稳定。该图说明 TCOD 主要改善的是训练过程稳定性,而不仅是最终表格分数。

ALFWorld OOD / Hard set 结果(SR%,Rounds 越低越好):

StudentMethodValid Seen SR/RoundsValid Unseen SR/RoundsHard SR/Rounds
Teacher Qwen2.5-7B-RLTeacher85.71 / 10.6176.87 / 13.066.61 / 27.31
Qwen2.5-3BZero-shot7.86 / 28.732.24 / 29.630.83 / 29.88
Qwen2.5-3BSFT32.14 / 22.8525.37 / 24.164.96 / 29.12
Qwen2.5-3BVanilla OPD65.72 / 14.7360.45 / 16.2110.74 / 28.64
Qwen2.5-3BTCOD-B2F77.86 / 12.5770.90 / 14.5613.22 / 28.16
Qwen2.5-3BTCOD-F2B81.43 / 11.7679.19 / 12.479.92 / 28.57
Qwen2.5-7BVanilla OPD75.37 / 13.1872.14 / 13.3713.22 / 27.89
Qwen2.5-7BTCOD-B2F86.43 / 11.0677.61 / 13.1620.66 / 27.07
Qwen2.5-7BTCOD-F2B82.14 / 13.2276.12 / 13.2218.18 / 27.37

关键结论:Qwen2.5-3B 上,F2B 在 Valid Unseen 从 vanilla OPD 的 60.45 提升到 79.19(+18.74),Valid Seen 提升 +15.71;但 Hard set 上 B2F 更好(13.22 vs 9.92),说明靠近成功终点的 curriculum 对 teacher 失败边界附近的任务更有帮助。Qwen2.5-7B 上,B2F 在 Hard set 从 13.22 提升到 20.66(+7.44),并且超过 teacher 的 6.61,支持“student 可通过 TCOD 在 teacher pass@10 失败任务上泛化”的主张。

5.2 Cross-benchmark / eta sensitivity

跨 WebShop、ALFWorld、ScienceWorld 的 Qwen3 结果(Success Rate %):

StudentMethodWebShopALFWorldScienceWorldAvg
Qwen3-30B TeacherTeacher32.8439.5718.4230.28
Qwen3-1.7BVanilla OPD0.140.320.050.17
Qwen3-1.7BTCOD-B2F 20.5424.5510.8218.64
Qwen3-1.7BTCOD-B2F 21.1223.8711.3418.78
Qwen3-1.7BTCOD-B2F 20.3324.9110.6518.63
Qwen3-1.7BTCOD-F2B 21.1524.1210.4518.57
Qwen3-1.7BTCOD-F2B 20.4425.039.2218.23
Qwen3-1.7BTCOD-F2B 21.7823.6511.0818.84
Qwen3-4BVanilla OPD30.1236.8515.9527.64
Qwen3-4BTCOD-B2F 32.1538.6217.4629.41
Qwen3-4BTCOD-F2B 31.8138.9517.8529.54

对 Qwen3-1.7B,vanilla OPD 基本崩溃,TCOD 平均成功率稳定在 18.2–18.8 区间,说明 curriculum 的存在比 的精调更重要。对 Qwen3-4B,vanilla OPD 已经可用,TCOD 仍有 +1.77 到 +1.90 Avg 的提升,主要来自更稳定的 KL 与 rollout horizon。

5.3 Further analysis: action rounds, advantages, response length, PG loss

Figure 5a–5d 解读:TCOD 的 action rounds 更平滑,advantages 分布更稳定,max response length 与 policy-gradient loss 没有出现 vanilla OPD 那种异常波动。换言之,TCOD 不是靠让模型输出更长 response 作弊,而是通过 curriculum 降低后期轨迹 KL 和梯度噪声。

Loss window ablation 进一步支持“只对 student-controlled steps 计算 loss”:student steps only 的 B2F/F2B success rate 为 68.3 / 71.2;如果对 all steps 都算 loss,则降到 62.1 / 65.7。这与方法设计一致:teacher prefix 的作用是定位状态,不应该把 teacher-controlled tokens 混入 student learning window。

5.4 B2F train-test mismatch 与训练时间

Figure 9 解读:B2F 的 appendix 曲线展示 KL、student action horizon 与 success rate 的联动;随着 teacher prefix 逐渐缩短,student 负责的 horizon 变长,但成功率仍能上升,说明从 checkpoint 训练并没有在最终阶段留下不可恢复的 train-test mismatch。

Figure 10 解读:B2F 在 train hard、valid unseen、valid seen 三个 split 上的 success rate 都随训练推进提升;这直接回应了 B2F 的风险:早期靠 teacher prefix 并不等于测试时不能从头执行,因为 curriculum 最终把 teacher prefix 缩到 0。

Figure 6 解读:TCOD-F2B/B2F 在 ALFWorld 和 ScienceWorld 上比 vanilla OPD 减少约 32% 总训练时间。F2B 通常更快,因为它直接限制最大交互步数 ;B2F 虽从中间状态开始,但 student 接管后仍可能多探索几步。

5.5 Limitations

作者明确指出三点限制:第一,B2F 依赖预收集 teacher 成功轨迹,会带来额外轨迹收集成本;没有 demonstrations 时,F2B 是更直接的 drop-in 方案。第二,固定 curriculum pace 虽在三类 benchmark 和多种模型尺寸上表现稳健,但不同环境/teacher–student pair 可能需要不同节奏;作者认为基于 KL EMA 的 adaptive horizon 调度是自然后续方向。第三,实验集中在 text-based multi-turn benchmarks,尚未验证到 multimodal agent 或 physical embodied environments。

5.6 Overall conclusion

TCOD 的实验证据支持一个清晰结论:multi-turn OPD 的主要训练病灶是 trajectory depth 引发的 KL instability,而不是 OPD 目标本身不可用。通过把可学习窗口从短到长扩展,TCOD 在小 student 上避免 collapse,在较大 student 上提高稳定性和效率,并在 ALFWorld Hard set 上展示了超过 teacher pass@10 失败边界的泛化能力。