ActObs:把环境观测也纳入 SFT 监督,改变 Agent 在 RL 下的探索方式
论文:Don't Mask the Environment: Observation Supervision Changes How Agents Explore Under RL arXiv ID:2609.20715(2026-09-17 提交,29 页,9 图,11 表) 作者:Juzheng Zhang(University of Maryland,AWS AI Labs 实习期间)、Disha Makhija、Manoj Ghuhan Arivazhagan、Vinayshekhar Bannihatti Kumar、Rashmi Gangadharaiah(AWS AI Labs) 链接:https://arxiv.org/abs/2609.20715
一句话总结
标准 Agent SFT 只对 action token 算 loss,把环境 observation 当上下文却不做预测目标;本文提出 ActObs——只需在 label mask 上放开 observation token,让它们也成为预测目标——不改变数据、参数、序列长度、前向次数,也不改 RL 算法。SFT 后两者表现几乎相同,但 GRPO 后显著分化:Qwen3-4B 上 ActObs→GRPO 在每个采样预算都领先;Qwen3-8B 上以少许 pass@1 换取 pass@16 +3.4pp 并解决更多不同任务;跨域代码编辑(aider-polyglot,任务在 SFT 与 RL 均未见过)上 pass@1 +4.2pp。机制上,action 与 observation 梯度在 10–20 步内变为正交,action-only 训练留下巨大残余 observation 梯度并侵蚀基座的环境预测能力,而联合监督保留了"预测行动后果"的能力,使 RL 以更小策略移动保留更多熵,高 k 采样覆盖率更高。
核心问题
Agent 轨迹记录了"agent 做了什么、环境随后发生了什么"。标准 SFT 的惯例是:loss 只打在 agent 编写的 action token 上,环境 observation 仅作为上下文。问题是——这个惯例是否为后续 RL 提供了最好的初始化?
论文的反直觉回答是:应该训练策略去预测它在部署时永远不会生成的 token(环境观测)。部署时 agent 只生成 action,但学习预测 observation 等于强制策略建模"行动的后果"。
方法:ActObs
轨迹定义为 \(\tau=(x,a_1,o_1,a_2,o_2,\dots,a_T,o_T)\),\(x\) 为任务提示,\(a_t\) 为 assistant turn(含 reasoning 与命令),\(o_t\) 为环境响应。对 token 化轨迹 \(y_{1:N}\),\(\mathcal{A}\) 与 \(\mathcal{O}\) 分别为 action / observation token 索引,目标函数:
- \(\lambda=0\) 退化为 action-only SFT(ActionSFT);ActObs 默认 \(\lambda=1\)(action 与 observation 等权)
- prompt 在两种目标中都保持 masked
- 分母使 per-example loss 尺度不随 \(\lambda\) 变化
- 在 observation 位置,目标训练 \(p_\theta(o_t\mid h_t,a_t)\),每条轨迹既是 imitation 样本又是 transition(环境转移)样本
- 实现上只需改 label mask:零额外数据、零额外参数、零额外序列 token、零额外前向传播,RL 算法完全不变
对比变体: - ActionSFT:只对 action 算 loss - Obs→Act:时序控制——先 1 epoch observation-only SFT,再 1 epoch action-only SFT(observation 监督总量与 ActObs 相同,但非联合) - ECHO:在 GRPO 中对 policy 自己 rollout 的 observation 加权重 0.05 的 next-observation loss(RL 阶段持续监督的对照)
实验设置
| 项目 | 细节 |
|---|---|
| SFT 语料 | 50k 多轮 terminal 轨迹(0.71B tokens),Nemotron-Terminal-Corpus 合成部分,DeepSeek-V3.2 生成;observation 约占 45% token |
| 模型 | Qwen3-4B / Qwen3-8B |
| SFT 超参 | 1 epoch,781 步,batch 64,cosine,peak lr 1e-5 |
| RL | GRPO,135 步,2,392 个容器化任务(Endless Terminals,与 SFT 语料不相交),binary verifier,16 rollouts/task,batch 32,lr 1e-6 |
| 基准 | Terminal-Bench 2.0(89 个 OOD terminal 任务,terminus-2 agent,每 checkpoint 16 attempts);aider-polyglot(225 个跨域代码编辑任务,6 种语言,单测判分,SFT/RL 均未见过,4 attempts) |
| 指标 | pass@k(Chen et al. 2021 无偏估计),bootstrap 标准误(20,000 次重采样) |
| 推理 | 单 vLLM,8×A100 张量并行,40,960 上下文,T=0.6,top-p 0.95,top-k 20 |
主要结果
Terminal-Bench 2.0(Qwen3-4B)
| 模型 | pass@1 | pass@4 | pass@8 | pass@16 |
|---|---|---|---|---|
| Base | 1.2 | 3.3 | 4.7 | 5.6 |
| ActionSFT | 4.5 | 10.4 | 14.0 | 16.9 |
| ActObs | 4.4 | 9.9 | 14.0 | 18.0 |
| ActionSFT→GRPO | 5.6 | 11.1 | 14.0 | 18.0 |
| ActObs→GRPO | 7.2 | 12.5 | 15.5 | 19.1 |
| ActionSFT→ECHO | 5.9 | 11.6 | 14.7 | 18.0 |
| ActObs→ECHO | 5.9 | 12.7 | 16.5 | 20.2 |
4B 下 GRPO 后 ActObs 在每个采样预算领先(pass@1/4/8/16 分别 +1.6/+1.4/+1.5/+1.1pp,相对 +29%/+13%/+11%/+6%)。
Terminal-Bench 2.0(Qwen3-8B)
| 模型 | pass@1 | pass@4 | pass@8 | pass@16 |
|---|---|---|---|---|
| ActionSFT→GRPO | 12.3 | 18.7 | 21.0 | 23.6 |
| ActObs→GRPO | 11.0 | 19.3 | 23.6 | 27.0 |
| Obs→Act→GRPO | 11.9 | 19.3 | 21.7 | 23.6 |
8B 下 ActionSFT 的 RL 增益集中在小 k,且 k≥8 时转为负(pass@8/16 分别 -1.0/-1.1);而 ActObs 的 RL 增益随 k 增长(pass@16 +4.5)。ActObs 解决 24 个任务(vs 21),其中 3 个是任何 SFT 策略或 ActionSFT→GRPO 都解不出的。
aider-polyglot(跨域代码编辑,任务完全未见过)
| 模型(4B) | pass@1 | pass@4 |
|---|---|---|
| ActionSFT→GRPO | 9.7 | 20.4 |
| ActObs→GRPO | 13.9 | 25.3 |
尽管 ActObs 的 SFT checkpoint 在代码编辑上反而更弱(1.0 vs 1.4),GRPO 后 pass@1 +4.2pp、pass@4 +4.9pp(相对 +43%/+24%)。GRPO 将 ActObs 的 pass@1 提升 12.9pp、pass@4 提升 21.7pp。
RL 期间增益对比(相对各自 SFT 初始化的 Δpass@k)
| 初始化 | Δ@1 | Δ@4 | Δ@8 | Δ@16 |
|---|---|---|---|---|
| 8B ActionSFT | +3.1 | +0.5 | -1.0 | -1.1 |
| 8B ActObs | +3.1 | +3.2 | +3.9 | +4.5 |
| 4B ActionSFT | +1.1 | +0.8 | +0.1 | +1.1 |
| 4B ActObs | +2.7 | +2.6 | +1.5 | +1.1 |
SFT 目标不改变即时性能,但塑造了下游 RL 的学习与探索能力。
机制分析(论文精华)
1. RL 训练动态(Figure 3)
两个 run 起始 reward 与 entropy 相近,随后分化:ActObs reward 更平稳上升且终值更高;training entropy 在 RL 后期持续上升,而 ActionSFT 的 entropy 下降后仅部分恢复;ActObs 的 rollout 逐渐变短并保持更短——说明其高后期熵不是来自生成更长轨迹。8B 有相同熵分离现象。
2. 熵保留 + 小策略移动(Figure 4)
- Self-entropy:冻结 RL endpoint,在其自己的 200 条评估 rollout 上测 assistant token 平均 next-token entropy
- Endpoint KL:在相同 200 条固定 trace 的 action 位置测 \(\mathrm{KL}(\pi_{\mathrm{init}}\|\pi_{\mathrm{final}})\)
- 联合排序:ActObs = 最小 endpoint 位移 + 更多保留熵 + 最高 pass@16;Obs→Act 移动最远、保留熵最少
- 高熵本身不充分:ECHO 产生最高 endpoint entropy 但 pass@16 不及 ActObs→GRPO
- 温度匹配控制:把 ActionSFT→GRPO 采样温度提到 T=0.64 使其 self-entropy 匹配 ActObs→GRPO,pass@k 变化 ≤0.7,未解决任何新任务——高 k 优势来自 policy 学到的分布*,而非推理时注入的随机性
3. 梯度正交性(Figure 5,核心发现)
在相同 256 条 held-out 轨迹上分别计算 action / observation 梯度,分解:
其中 \(c=\cos(g_{\mathrm{obs}},g_{\mathrm{act}})\),\(r=\lVert g_{\mathrm{obs}}\rVert/\lVert g_{\mathrm{act}}\rVert\)。
- 初始对齐,迅速正交:预训练处 \(c=0.83\),但 10–20 个 SFT step 内 \(c\) 降到经验噪声下限——observation 梯度的平行分量消失,只剩几乎完全正交的信号
- 范数比分化:ActionSFT 下 \(r\) 升至约 41(拟合示范动作使 \(g_{\mathrm{act}}\) 变小,未拟合的 \(g_{\mathrm{obs}}\) 保持很大);ActObs 下 \(r\) 稳定在 0.5 附近
- 含义:ActionSFT 对 action loss 接近平稳,但在正交的 observation 方向上仍陡峭——action-only 拟合侵蚀了基座模型的环境预测能力(teacher-forced observation cross-entropy 上比 base model 更差),而 ActObs 保留了它
- 熵分离时点:on-policy entropy 曲线在第 100 步(共 781 步)即分离并贯穿 SFT 结束
4. Token 级效应(Figure 6)
- GRPO 后,ActObs 与 ActionSFT 在命令前几个 token同样 sharp,分离出现在命令后部——编码 arguments、flags、paths 的选择。ActObs 不是让 agent 在工具调用开头犹豫,而是保留了命令实例化方式的变化(案例:ActObs 逐个扫描 QEMU 启动参数找到可用内存配置)
- Teacher-forced observation cross-entropy:固定 wrapper("New Terminal Output:")带来最大早期增益,但 ActObs 在靠后位置及 shell prompts、error lines 等 payload 上也有改进;ActionSFT 在大部分序列上比 base model 更差
5. 消融(Table 2)
- act2act(第二轮 action-only SFT)≈ ActionSFT——更多优化不能恢复 ActObs 行为
- ActObs-100→GRPO(前 100 步联合后转 action-only)pass@8 仅 19.1(vs 全程联合 23.6)——observation 目标在早期更新后仍有用
- Observation-only SFT 与 action→obs-only 均解决 0 个任务——observation 预测是 action 学习的补充而非替代
- Shuffled obs(动作配错观测)pass@1 从 7.9 降至 3.7;而可区分的 wild logs 保持 7.9——配对正确性重要
- 完整 terminal 响应的监督强于仅选 salient 行
- λ 扫描:post-GRPO pass@8 优势随 λ 单调增长,pass@1 反向移动——是 pass@1↔pass@8 权衡,而非整体平移
局限与备注
- 仅在 terminal / 代码编辑两类环境验证;observation 占比 45% token 的设置不一定普适
- 8B 上 pass@1 有损失(-1.3pp),追求单次可靠性场景需权衡
- 依赖高质量配对轨迹;shuffled 消融表明错误配对有害
个人点评
这篇论文的价值在于把一个"零成本改动"(放开 label mask)讲成了一个完整的机制故事:SFT 目标 → 梯度正交性 → 环境预测能力保留 → RL 熵保留 + 小策略位移 → 高 k 覆盖。最有说服力的证据链是:温度匹配控制实验排除了"只是更随机"的解释;ActObs-100 消融排除了"只是早期正则化";obs-only 全崩排除了"observation 监督本身有用"。对实践者的启示直接:做 agent SFT 时不要再默认 mask 掉环境观测——它几乎免费,却决定了后续 RLVR 是"pass@1 涨、覆盖收缩"还是"全 k 普涨"。