Agent × 世界—动作模型 / 结构化技能 · OCTOBER 2026 READING SERIES

AW-0:代码、未来视频与动作一起生成,代码究竟执行了吗?

Agentic World Action Models · Zhuoyang Liu et al. · UC Berkeley / NVIDIA / UPenn
arXiv:2610.30136v1 · 2026-10-21 · 50 页 · 核读:2026-10-23

一句话核心洞见

把可组合技能写成代码,与未来视频和动作块联合去噪,让动作拥有结构化的子任务条件。默认模式不执行代码;hybrid 才尝试调用技能,且有效代码不等于有效物理执行。

仿真
RoboTwin:80.8% Clean / 20.6% Random;hybrid 63.1% / 29.2%。
真机
8 个任务的平均分步 rubric score 71.1%,不是完整成功率。
数据
2,913.22 小时:机器人 1,919.30 + 人类 993.91;50 个技能。
推理
4 次联合去噪;5090 报告 0.23 s。无在线自我学习实验。

1 · 它要填补的是技能组织,不是又加一个聊天机器人

问题与前置概念

普通 WAM 可生成视觉未来与动作,却缺少“先固定包、再拉拉链”的显式组合结构;Code-as-Policy 有组合技能,但其手写感知/控制 API 的物理能力有限。AW-0 把两者接在同一个模型里,让代码成为可学习的中间条件,而不是把所有控制委托给脚本。

Figure 1 · 三路生成与两种执行模式

三路生成与两种执行模式
论文原图 · Figure 1 · p.1 · 350 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 左边约 3K 小时人机数据先被标成子任务代码;下方标注系统产生 50 个可复用技能。不是测试时由编码 Agent 重新训练机器人。
  2. 中间 Code / Video / Action 三专家联合生成;右上 pure 直接执行动作块,hybrid 才会在代码与动作之间切换。
  3. 右边八任务包含夹爪与灵巧手,但论文为每个目标任务做后训练,不是一个未经适配的通用权重完成全部任务。
五问速读 · §1–2
背景视频先验与技能复用缺少联合接口。
卡点仅预测像素不能明确表达任务阶段;代码可组合却可能无法处理复杂接触。
关键改动离散代码、连续视频、连续动作共同去噪;模态有向 attention;自动技能标注。
依赖SDAR-1.7B、Qwen3-VL-2B ViT、Cosmos-Predict2.5-2B、Wan2.2 VAE、CaP 与机器人数据。
最强证据 / 代价代码表示与 mask 的内控消融有收益;需要约 3K 小时数据、额外代码标注与专家计算,仍容易受视觉分布变化影响。

2 · 主干:谁能看见谁,什么时候动作真的执行?

Figure 2 · 最重要的主干图:联合迭代而非先写完代码

最重要的主干图:联合迭代而非先写完代码
论文原图 · Figure 2 · p.3 · 350 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 当前图像同时进入 ViT 与 VAE;语言和历史代码提供语义/进度,机器人 state 提供本体状态。代码画布初始全 mask,未来 latent 和动作初始为噪声。
  2. 下左的 C→V→A 是模态块因果 mask:代码不读视频/动作流,视频可读代码,动作可读两者;每个专家内部允许双向。不要与 OneWM 的时间块因果混淆。
  3. 下右每轮固定最高置信度的一批代码 token,同时更新连续视频和动作。4 轮后再决定 pure 或 hybrid,不是按文字 token 自回归 128 次。
  1. 取当前三路图像、语言、本体 state,以及压缩的历史代码记忆。图像分别由 ViT/VAE 编码。
  2. 初始化 128 个 mask 代码 token、未来视频噪声、32 步动作噪声;真实观察保持干净。
  3. 4 轮联合生成:代码每轮固定 32 个最高置信 token,视频用 UniPC,动作用 Euler 更新。已固定代码不再改。
  4. 默认执行动作块;生成代码不作为 Python 运行,而是在迭代中条件化视频/动作表示。
  5. 拿新观察重规划。历史代码缓存压缩成 K 个可学习槽位;每个 episode 重置。文中没有完整给出 K 和训练历史替换概率 p 的数值。

28 层 MoT 的共同 attention 为 2048D、16 heads×128;代码/视频专家 hidden 2048,动作 1024。代码预训练 embedding、norm、FFN、词表头冻结,训练 attention 投影/调制;ViT 冻结、merger 可训。视频路径把原VAE换成冻结的 Wan2.2 VAE(48 channels),视频专家的输入输出投影重新初始化;动作专家从零开始。不要把“使用预训练专家”理解成所有主干参数都冻结。

3 · 六个公式与具体算例

统一记号:C 是代码,Z 是未来视频 latent,A 是动作;下标 0 表示干净目标,不是机器人第 0 帧。𝒞ₜ={Oₜ,L,Sₜ,Mₜ} 是当前图像、指令、状态和历史记忆。r 为代码 mask 比例;σ 是连续变量噪声水平,和环境时间 t 不同。以下数字为教学示例。

Eq.1–2 · 同一个条件下的三路目标

pθ(C₀,Z₀,A₀ | 𝒞ₜ)
(代码 logits, v̂ᶻ, v̂ᵃ)=Fθ(C̃ᵣ,Zσᵥ,Aσₐ,σᵥ,σₐ;𝒞ₜ)

logits 是各词的未归一化分数;v̂ 是连续 flow 速度。代码选择离散词,视频/动作更新实数,因此“joint”不是把三者都量化成语言 token。例:同一观察下输出“固定左侧再拉右侧拉链”的程序、拉链变化的图像 latent 和双臂位移序列。

Eq.3 · 连续流匹配

Xσ=(1−σ)X₀+σε;σ=γu/[1+(γ−1)u],γ=5

X 表示视频或动作;ε 为同形状高斯噪声。视频原始 u 来自缩放 Beta(7,1),动作来自均匀分布。u=.5 时 σ=2.5/3≈.833,更多训练点在高噪区。若 X₀=2、ε=0,输入为 .334,目标速度 ε−X₀=−2;生成沿 σ 从 1 到 0 积分。

Eq.4 · 离散 mask 语言学习

C̃ᵣ,ᵢ = [MASK](概率 r),否则为 C₀,ᵢ;r~U[0,1]

只对被 mask 的位置计算交叉熵,并确保至少一个位置被 mask。例:pick(apple,right) 遮掉 apple/right 后,由图像、指令和其他可见代码补全;不是模仿任意不可见未来事件。15% batch 另有指令/程序条件 dropout,区别于目标位置随机 mask。

Eq.5 · 为什么视频噪声采样要混合?

q(σ)=α ppre(σ)+(1−α)U(σ),α=.5

视频预训练偏高噪;动作与代码学习可能需要更清晰的未来特征。混入均匀采样增加中低噪声覆盖,但直接改变采样会改变目标,所以还有下一式的权重。

Eq.6 · 每种模态保持自己的目标分布

L = Eq[wᵥ Lᵥ + .5 w𝓰 Lcode + w𝓰 Laction]
wᵥ=ppre/q;w𝓰=U/q

实际权重截断到 4 并按 batch 均值归一化。例:某噪声区 ppre=1.6、U=1,q=1.3,则视频权重≈1.23,代码/动作≈.77;不是让所有模态同样偏好高噪。截断/有限 batch 使其成为稳定化的重要性加权,不应声称严格无偏。

检查:C→V→A 是否意味着部署必定先写完代码、再生成视频、最后生成动作?

不是。它约束每层 attention 的可见性;三路在同一组去噪迭代中逐渐更新。AR 是另一个独立对照,不能从箭头读出串行调用次数。

4 · 代码从哪里来?人机数据到底怎么用?

Figure 3 · Agentic annotation 是数据标注流水线

Agentic annotation 是数据标注流水线
论文原图 · Figure 3 · p.5 · 350 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 种子示范→编码 Agent 生成程序→协调者审计重复结构并接纳技能。技能必须跨至少两个任务出现,不能把一整个任务答案包装成技能。
  2. 技能库冻结后重标种子,建立 subtask→code 缓存;新片段只有接触事件或手运动证据匹配才复用。否则重新生成。
  3. YAM 用传感器的夹爪开闭事件作约束;人类视频没有同等传感器事件,依赖可视手运动。两类标签的可靠性不是天然相同。
数据谱系 · Appendix B / Table 7
来源episodes小时任务 / 切片监督
YAM 机器人73,1011,919.30279 / 986,314代码、未来视频、动作
人类第一人称175,541993.91327 / 1,089,059追踪/重定向后的手动作及代码、视频;不是仅有 RGB
合计248,6422,913.22606 / 2,075,37323 个 YAM+27 个人类技能;总 50

统一 state/action 为 64D:左右各 9D EEF pose(3 位置+6 旋转表示)、22D 手关节、1D 夹爪,共 2×32。机器人实际自由度并非 64。状态为绝对值;EEF 动作为相对 chunk 起点,手指/夹爪为绝对目标。不存在的维度置零且不参与归一化,有效维度按 1%/99% 分位缩放。人类单相机复制到三视图槽位,不能把它算成三路独立观测。

预训练 48×H100,1 epoch,effective batch 2592(每卡 6×累积 9),AdamW 1e−4;图像 224×320,9 帧(0,4,…32),只第 0 帧观测。RoboTwin 后训练 16 GPU、batch 96、100K steps;真机每任务 100 demonstrations、20 epochs。各 baseline 使用各自公开预训练与训练配方;同目标任务示范量不等于总预训练量、训练算力都严格相等。

5 · hybrid 的两个算法:有效程序也可能让表现变差

Appendix I / Algorithms 1–2,pp.43–44

模型同时给出代码与动作;仲裁器检查代码能否接管。这里的 valid 是语法、依赖和阶段检查,不是世界模型已证明它一定能成功。

  1. 阶段门:已完成阶段不重跑;不能回到更早已尝试阶段;失败次数受限。
  2. 依赖门:引用变量在 episode 的持久命名空间已定义;感知 API 结果可跨片段保存。
  3. 语法门:允许的语句、非空、有变化;失败的原样片段跳过。
  4. 若尝试执行:丢弃本轮直接动作块,即使代码抛异常也不再执行这块旧动作;重新观察再规划。否则执行动作块。
  5. 状态记账:算法以无异常返回标记阶段完成,但无异常不等于物体真的到位。需要物理结果监测的改进属于未来工作。

Figure 35 · hybrid:按阶段切换,而非同时执行两种命令

hybrid:按阶段切换,而非同时执行两种命令
论文原图 · Figure 35 · p.41 · 350 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 绿色段执行代码技能,紫色段执行动作专家。例子中接近/码放较结构化,折叠主要由连续动作完成。
  2. 一条成功展示不能证明门控最优;真实比较只在 YAM 折毛巾给出 84.4→90.6,灵巧手缺乏对应 CaP 系统。
代码实际驱动了多少仿真时间?Table 12
集合Clean 代码占比Random 代码占比解释
仅成功 episodes14.5%35.0%成功样本更常利用代码;不能推广到所有尝试。
全部 episodes8.5%5.6%失败运行更长、常卡在直接动作,因此按时间汇总分母完全不同。

6 · 实验:三个表分开看

Figure 4 · Clean 与 Random 的方向相反

Clean 与 Random 的方向相反
论文原图 · Figure 4 · p.6 · 400 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 蓝柱是默认 AW-0,斜线柱是 hybrid。Clean 从 80.8 降到 63.1;Random 从 20.6 升到 29.2。不能只截取提升的一半。
  2. hybrid 训练示范收集也改成 CaP 流程,因此这不是仅改推理开关的严格单变量消融。
仿真闭环 · RoboTwin 2.0 / Table 1 / Appendix J
方法Clean SRRandom SR平均
π₀.₅54.927.741.3
DreamZero33.617.625.6
EgoScale26.22.914.5
WLA64.83.634.2
AW-080.820.650.7
AW-0 hybrid63.129.246.2

50 任务,每任务 50 条 clean 示范;每设置每任务 50 rollouts,共 2,500。仿真 action 为 14D。hybrid 使用 CaP 收集示范,默认使用 RoboTwin 原规划器,所以表比较的是两套配置整体,不是纯执行模式开关。感知用 Molmo、SAM3、Contact-GraspNet 和原生控制接口;评价不读特权状态,数据收集可以使用。

ID → OOD 证据边界
维度测试情况可得结论
背景 / 桌纹 / 光照 / 高度 / 干扰物Random 同时变化;没有各维度独立表默认下降 60.2 pp、保留率 25.5%;hybrid 下降 33.9 pp、保留率 46.3%。不可归因某一个因素。
语言跟随 / 语义推理真机任务规则、颜色、顺序变化有实例与任务评分,未报告独立语言 OOD 配对 SR。
载荷 / 摩擦 / 动力学 / 新本体零样本未单独报告不能由视觉 Random 自动推出物理鲁棒性。

Figure 20 · 两种真机本体与三路相机

两种真机本体与三路相机
论文原图 · Figure 20 · p.29 · 350 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. YAM 为双 6-DoF 臂+平行夹爪,输入头顶和左右腕部 D405;图中底部相机不使用。
  2. Tianji-Sharpa 使用双 22-DoF 手,头部与腕部 SHW5G。没有把机械臂和手统一成 64 个独立自由度;64D 是统一表示槽位。
真机 3 seeds×16 trials/任务 · Table 2 · 单位为 rubric 分数×100
任务AW-0π₀.₅DreamZero目标
整理水果91.770.853.3类别、坏果与目标
收背包64.649.736.7双臂固定 / 拉链
换灯泡75.063.867.4先判断是否损坏
折叠堆毛巾84.481.779.8三条折叠与颜色顺序
夹子整理水果54.27.322.6工具接触
发牌58.313.137.1双手交接与抽单张
翻记分牌68.826.328.4精确翻 k 次并按按钮
转回魔方一面72.136.142.5随机一面四分之一圈复原
平均71.143.646.0不是完整成功率

共 384 条试验/方法,但分步得分不是 Bernoulli 成败,不能用 71.1%×384 反推成功数或 Wilson 区间。任务权重、时限、人工干预与训练种子不确定性须按原协议理解;这里没有闭环在线自我学习或 ICL 单独实验证明。

7 · 附录 E:八套 rubric 到底奖励什么

Figure 24 · 长程任务的代码标注和评分不是同一件事

长程任务的代码标注和评分不是同一件事
论文原图 · Figure 24 · p.33 · 350 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 颜色连接时间段与代码阶段:分三次折叠、铺平,再按粉/棕/绿顺序堆叠。
  2. 评分会给一次折叠、折平三条、放一条、堆完、颜色顺序分别部分分。因此 84.4 分不能读成 84.4% 完整折叠堆叠成功。

Figure 28 · “解魔方”实验的实际难度

“解魔方”实验的实际难度
论文原图 · Figure 28 · p.36 · 350 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 评价初始化是随机选一个面旋转四分之一圈;不是任意打乱魔方。可见颜色、放置角随机,需识别并转回。
  2. 评分分别奖励拿起、完整转一面、复原和放回。72.1 是平均分步分,不是任意魔方通解率。
展开逐任务权重(每任务最高 1;pp.30–36)
  • 水果:移除坏果 .3+取指定果 .3+最终正确且不掉 .4。
  • 背包:左右开拉链各 .15+打开 .2+装入 .2+左右关各 .15。
  • 坏灯泡:测试 .1、固定 .1、旋出 .2、丢弃 .1、拿新 .1、旋入点亮 .3、松开 .1;好灯泡分支:测试点亮 .3、返回并保持 .7。
  • 毛巾:折一条 .2、三条折平 .2、放一条 .1、三条成堆 .2、颜色顺序 .3。
  • 夹子水果:取工具 .2、移除 .25、取目标 .25、最终正确 .2、归还工具 .1。
  • 发牌:拿起 .1、交接 .2、推出单张 .3、抓住单张 .3、插入 .1。
  • 记分牌:固定 .1、翻至少一张 .2、精确 k 次 .4、放开 .1、按正确按钮 .2。
  • 魔方:拿起 .2、转完整四分之一圈 .3、复原 .3、放回 .2。

8 · 核心 insight 的证据与反例

Figure 5 · 代码应放在 attention 的哪一侧?

代码应放在 attention 的哪一侧?
论文原图 · Figure 5 · p.8 · 375 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. C→V→A 使视频在代码计划条件下演化,再给动作提供特征。V→C→A 则让代码只能在世界预测之后介入。
  2. 总体 full 为 71.1,无代码为 32.9;并非每一任务都由 C→V→A 获胜,换灯泡 V→C→A 为 77.1,高于 75.0。

Figure 6 · 0.23 秒到底包含什么

0.23 秒到底包含什么
论文原图 · Figure 6 · p.8 · 400 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 同一 RTX 5090 上,joint 0.23 s、AR 0.55 s、无 code 0.19 s;包括视觉编码、联合去噪、视频解码、动作后处理。
  2. 联合去噪相对 AR 约 2.39× 加速,但比无 code 增加约 40 ms。该延迟不等于底层伺服频率,也不保证连续物理执行不卡顿。

Figure 7 · 注释、技能调用和普通子目标各提供什么

注释、技能调用和普通子目标各提供什么
论文原图 · Figure 7 · p.9 · 400 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 完整代码与去注释、去技能、自然语言子目标比较。完整代码在八任务均优于去注释;七任务优于文字子目标。
  2. Deal Poker 去技能下降到 42.0,对照完整 58.3。结构化可复用调用可能比一句子目标提供更具体的操作组织,但消融没有证明代码是唯一有效表示。

代码流用 ViT 条件比用 VAE 条件平均 71.1 vs 55.6(Table 3),支持语义视觉特征有益;joint 比 AR 为 71.1 vs 54.5(Table 4),但灯泡 AR 79.2 高于 joint 75.0。不能把平均改进说成所有任务都改进。

Figure 29 · 选对技能仍可能传错参数

选对技能仍可能传错参数
论文原图 · Figure 29 · p.37 · 350 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 生成代码学到了擦拭循环和技能名,但 displacement 列表多了两个元素。
  2. 语法可解析不代表参数维度正确;这解释了为什么 code grounding 不能只看 token accuracy 或 parse rate。

Figure 32 · 在线代码也可能语义对、语法错

在线代码也可能语义对、语法错
论文原图 · Figure 32 · p.39 · 350 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 生成段表达了左手固定魔方,但注释漏写词、又续到没有注释符的下一行。原始输出无法直接执行。
  2. 默认模式仍可利用代码表示生成动作;hybrid 必须经过门控。页面所展示不是作者修好后的可运行脚本。

预训练代码验证:teacher-forced token accuracy .897、自由生成 parse rate .875、Entity F1 .534、Primitive F1 .365、skill-call rate .292。打乱视觉使代码 loss 增加 1.774,说明依赖视觉,但不证明每个参数都被准确落到场景。代码语法与执行成功之间还隔着变量、单位、接触、控制器等多层条件。

Figure 36 · 六类失败:语言计划没解决接触物理

六类失败:语言计划没解决接触物理
论文原图 · Figure 36 · p.42 · 350 DPI 裁剪 · 核对原文 · 点击原图放大。
  1. 由上至下:抓到篮沿、拉拉链时拖走整个包、灯泡轴线不对、夹子闭合着戳水果、交接卡牌滑落、翻记分牌时失去接触。
  2. 这些失败涉及几何、力学与反馈,不是仅靠生成更长代码就能消除。附录建议的自适应修复不是已经实现的算法。

9 · 全文 / 附录导读与最后判断

附录覆盖地图:未嵌入的原图可直接跳转 PDF
范围细读内容本文落点
A pp.17–18层数、冻结策略、时间步、4 次去噪§2–3、延迟解释
B pp.18–27统一表示、50 技能;Figures 8–19 技能例与 t-SNE§4;t-SNE 邻近不是技能因果有效性证明
C–E pp.27–36baseline 配方、硬件、全部评分§6–7;Figures 21–28 同类逐任务展示
F–H pp.36–43代码质量、未来帧对比、失败§8;Figures 33/34 不是严格同初始状态配对视频
I–J pp.43–47仲裁算法、仿真 task-level 表、代码时间占比§5–6;Fig 37 两例不能替代成功率
K–L pp.46–50两类 API、标注提示词、协调者协议、局限§4;提示词是数据方法,不是读者应该执行的指令

最值得借鉴:用可验证接触事件约束代码标注,把任务组织与连续控制连接起来;同时用明确 mask 设计信息流。尚未做到:在线从失败学习、自动扩充技能库、任意灵巧手执行代码、鲁棒的收益预测仲裁。当前 hybrid 的“能执行就尝试”是启发式,不是规划最优性保证。

一句话自测:AW-0 与普通 Agent 调 VLA API 的区别?

代码在 WAM 内部和视频/动作共同训练、共同迭代,能够影响连续控制表示;并非仅一个外部 LLM 把字符串送给现成 VLA。hybrid 又额外接上真实 API 执行,但这个分支必须单独评估。