AgentGarten: Code Worlds for Evolving Agents
Jiawei Chi, Shangchen Miao, Zhiyuan Shi, Kailu Wu, Hanyang Wang, Weiliang Chen, Qiyu Dai, Jinshan Ren, Jun Gao, Mingsheng Long, Yueqi Duan, Jiangran Lyu, Jialong Wu, Fangfu Liu
cs.CV
2026-10-09
模拟器管状态与规则,共享神经渲染器按深度或法线实时出画面。笔记跨轮传递后,躲猫猫第4轮搭掩体,桥上换位从71秒降到41秒。
智能体能练会什么,取决于环境。环境得记住动作的后果,规则不能漂,画面还得接近真实视觉分布。
模拟器把碰撞和任务变量写在程序里,查得到、改得了,但每种新外观都要三维资产。视频世界模型画面丰富,状态却藏在生成历史里,改规则、换外观重放同一串事件都做不到。
AgentGarten(MirroS,清华、北大)把两边拆开:引擎维护持久状态并执行规则,共享神经渲染器按导出的几何生成画面。状态更新不读像素,渲染误差只能经由智能体的动作进入世界。同一条轨迹可以换参考图或机位重渲。
代码世界由场景程序、引擎、神经渲染器组成。引擎按动作更新位姿和任务变量,从相机导出上色深度或表面法线;渲染器再配上外观参考、文本和视觉历史,输出当前帧。智能体只看这些帧,用短 Python 程序行动,拿不到坐标或对手视角。编程智能体可以从图或文字写出场景,把画面收成粗几何并补上镜头外的空间。上线前用探测相机核对接触和遮挡。
渲染器从 Cosmos 3-Nano 改来,冻结理解塔编码文本,生成塔出图,几何与 RGB 共用 Wan 自编码器。深度和法线与 RGB token 拼在一条序列里做联合注意力,空间对齐、时间共用旋转位置,免得把像素对齐写成硬偏置。条件会随机丢弃、降采样并加噪声。
Adversarial Forcing 把模型蒸馏成少步、按块生成的学生:每块只看自己写出的历史,用分布匹配对齐冻结的双向老师。精确重放分两遍。第一遍只记录每块最后的输入和输出;第二遍用同样的逐块注意力重算历史键值。后面的损失因此能更新历史编码,又不必反传采样路径,重算与 rollout 按位相同。真实视频上的对抗头接在冻结骨干上,以 R3GAN 的相对损失压制重复纹理。R1/R2 的精确梯度靠骨干冻结拆出来,避开 FlashAttention 不支持的二次反传。
推理时保留参考帧和一段近期历史,小解码器把重建压进 10 毫秒,画面经 WebRTC 送出。智能体不改权重,每轮把经验写成 playbook 交给新对话。
30 秒对比没有 FID 或 FVD。同一条条件轨迹上,Self Forcing 后段纹理重复、细节变少,Adversarial Forcing 把自然纹理留到结尾。
重放误差测在一张 H100,36 层,480×832,61 个潜帧,BF16。
| 重放 | 相对 L2 | 前向时间 | 峰值显存 |
| SGF 式 FlexAttention | 3.99% | 2.95 秒 | 50.83 GiB |
| 逐块 SDPA | 0,按位一致 | 2.79 秒 | 50.92 GiB |
前向快 5.4%,显存多 0.2%。
稳态吞吐用同一设置,四步去噪,缓存 5 个 sink 帧加 44 个近期潜帧。16 帧一块平均 438.8 毫秒,即 36.5 帧/秒:条件编码 10.6 毫秒,Transformer 414.4 毫秒,小解码器加主机传输 8.8 毫秒。
躲猫猫每轮 5 局,笔记从空开始,只看渲染出的第一人称。挡板掩体出现在第 4 轮,坡道翻墙出现在第 10 轮。2019 年自我对弈强化学习大约 2500 万局后才搭掩体,累计约 1 亿局后才用坡道,输入是物体坐标,权重从随机开始。论文写明两组数字属于不同范式,不能读成样本效率比。
另四个世界各 4 轮、每轮 1 个回合。
| 世界 | 指标 | 第1轮 | 第2轮 | 第3轮 | 第4轮 |
| 陪伴犬 | 互动分 | 13 | 14 | 19 | 19 |
| 单车道桥 | 换位用时 | 71 秒 | 68 秒 | 45 秒 | 41 秒 |
| 赶羊 | 分数 / 入栏 | 60 / 3 | 90.1 / 4 | 87.6 / 4 | 88.3 / 4 |
| 采石场 | 百分制 | 30 | 0 | 30 | 90.9 |
桥上每轮都到达,用时从 71 秒降到 41 秒。赶羊第 1 轮四只进了三只,之后四只都进栏,分数停在 88 上下。装载机第 2 轮得 0 分,第 4 轮用 329 秒(上限 360)完成清石、送达和停车。陪伴犬每段 60 秒。
深度和法线这条接口,三维引擎能导出,真实视频也能估,于是多个后端共用一个渲染器。新世界写成代码,不必逐场景做贴图;录像可以换风格、换机位。浏览器里的保龄球、点球和搬箱已经接上,玩家只看见渲染流。
没有新的强化学习算法。经验写在文字里传给下一轮新对话,观测只有渲染帧,任务文件不给答案。掩体和坡道出现得快,靠的是预训练常识接上了闭环;画面好坏仍主要是 30 秒定性对比。
几何看不见外形不变时的状态变化。轮子转没转、对称物体如何自旋,深度和法线都可以不动。颜色和身份靠视觉历史,长遮挡或超出记忆窗就可能丢。降采样还会抹掉细结构和小接触。
四个世界每轮只有一个回合,没有方差,也没有去掉 playbook 的对照。赶羊分数不是单调的,装载机中间还有 0 分。躲猫猫轮次来自一次运行。和 2019 年千万局并置时,论文已经拒绝把它们当成效率比。世界仍是手写的。画面也没有和引擎原图或其他实时世界模型的数值对照。