Token导航 LogoToken导航

AI 资讯 · 科技行者

AgentGarten:AI智能体在代码世界中反复训练

更新 2026-11-06科技行者正文 7059字阅读约 23分钟

2019年,OpenAI做过一个很出名的实验,让两群AI在一个简单的物理环境里玩捉迷藏。躲的一方和找的一方互相博弈,久而久之,躲的那方学会了搬箱子筑围墙挡住入口,找的那方学会了拖来斜坡爬过围墙。这个故事后来被反复提起,因为它展示了一件很神奇的事情:复杂的策略可以从简单的规则和大量试错中自己涌现出来。

但很少有人追问一个更现实的问题:这个"久而久之"到底有多久?

答案是,躲藏方学会搭建庇护所,用了大约2500万局游戏;找寻方学会用斜坡攻破庇护所,又多花了7500万局。算下来,整整一亿局游戏,才换来几个策略的诞生。如果换算成人类的尺度,这相当于一个人要摔倒上千万次才能学会走路第一步。这还是在一个极其简化的物理玩具世界里发生的。

这就是强化学习长期以来的一个隐痛:它确实能学,但太贵了。而AgentGarten这篇论文讲的,正是一群研究者如何试图绕开这堵墙。他们没有让AI从零开始瞎撞,而是让已经见过整个互联网的预训练大模型,直接走进一个个"代码写成的世界"里,靠看、靠想、靠写笔记来学习。结果呢?同样是学会搭庇护所,这次只用了4轮游戏;学会用斜坡,只用了10轮。

这不是同一场比赛的两种打法,这是两种完全不同的学习范式。但正因为差异巨大,才更值得把这件事拆开来看清楚:到底是什么让这种跨越成为可能。

**环境这堵墙,为什么一直没被真正推倒**

要理解AgentGarten在解决什么问题,得先理解一个长期存在的两难。

如果你想让AI智能体练出真本事,你得给它一个靠谱的练习场。这个练习场必须同时满足两件事:一是"诚实",也就是状态、规则、物理逻辑都得前后一致,你推了一个箱子,它不能下一秒又凭空出现在原地;二是"真实",也就是看起来得像真实世界,而不是一堆方块和色块,否则智能体学到的视觉经验对现实世界毫无参考价值。

问题是,这两件事到目前为止很难同时做到。

游戏引擎和物理模拟器,比如用来训练机器人的那些系统,天生擅长第一件事。它们的世界状态是用代码写死的,物体的位置、速度、碰撞规则全部精确可查,你改一行代码,规则立刻变化,非常可靠。但它们的短板也很明显:想让画面好看,你得建模型、贴材质、调灯光,一个场景从素模到以假乱真可能要耗费美术团队几周甚至几个月的时间。想要场景多样?那就意味着美术工作量乘以场景数量,很快就撑不住了。

另一条路是最近几年火起来的视频生成模型,也就是常说的"世界模型"。这类模型直接从海量视频数据里学会"生成逼真画面"这件事,你给它一些动作输入,它就能吐出一段看起来相当真实的视频。画面质量没问题,但致命伤在于:这个世界的规则是藏在模型的神经网络参数里的,你没法打开去检查、去修改、去调试。你推了一下箱子,它会不会按照合理的物理逻辑移动?模型自己也说不准,因为它学的是"像素层面的统计规律",而不是"显式的物理规则"。

这就好比你想开一家餐厅,一边是个账本清清楚楚、食材来源可查、但装修简陋的苍蝇馆子,一边是装修精美、氛围绝佳,但后厨黑箱操作、你根本不知道菜是怎么做出来的高级餐厅。想要一家既账目透明又装修精美的店,过去的选择只能二选一。

AgentGarten想做的,就是把这两种店合并成一家:后厨(引擎)继续按账本(代码规则)老老实实做菜,但前厅的装修和摆盘(视觉呈现)外包给一个专业的渲染团队(神经渲染器),两边通过一张标准化的"菜单接口"(结构化条件)对接。

**拆分状态与画面:引擎管逻辑,神经渲染器管好看**

AgentGarten的核心设计思路,用一句话概括就是:让程序管世界怎么变化,让一个神经网络管世界看起来是什么样子。

具体来说,每个"代码世界"由三部分组成。第一部分是场景程序,这是人写的代码,定义了场景里有什么物体、物体怎么运动、交互规则是什么。第二部分是执行这段程序的引擎,它负责维护一个持续更新的世界状态,包括物体的位置、姿态,以及任务相关的变量。第三部分是神经渲染器,它接收引擎导出的结构化条件,然后"画出"智能体能看到的真实感画面。

这里有个关键的技术选择:引擎向渲染器传递的,不是颜色、材质这些视觉细节,而是深度图或者法线图。

深度图*:记录画面里每个像素到摄像机的距离,常用彩色编码表示远近。

法线图*:记录每个表面朝向哪个方向的三维信息,同样用彩色编码呈现。

这两种图都能从真实视频里估计出来,也能被引擎直接从几何体渲染出来,所以它们天然地把"虚拟世界的几何结构"和"真实世界的视觉分布"连接在了一起。渲染器看到的只是物体的"形状骨架",至于这个骨架最终呈现出万圣节风格还是中世纪风格还是我的世界方块风格,完全由另外传入的一张参考图片和一段文字描述来决定。

这个设计带来一个很重要的好处:渲染错误不会污染世界状态。

因为引擎在计算下一步状态时,根本不看渲染器画出来的图,它只根据智能体提交的动作来推演。换句话说,就算渲染器某一帧画歪了,把箱子画成了圆的,这个"画歪"的信息也不会反过来影响物理引擎里箱子到底在哪儿。这就像你开车时用的是真实的导航数据来决定路线,而车窗外看到的风景只是后期合成的,就算风景合成出了点瑕疵,你的实际行驶路径也不会跑偏。如果反过来,让视频模型自己记住并演化世界状态,就会陷入经典的误差累积陷阱:这一帧画错了一点,下一帧基于错误的这一帧继续生成,错误会像滚雪球一样越滚越大,到后面整个场景可能面目全非。

有了这套拆分架构,造一个新世界就不再需要美术团队手搓素材。一个"写代码的智能体"可以根据一张图片或一段文字,自动调用感知模型识别画面里的物体、估计深度和相机参数、提取三维网格,然后把这些拼装成一段可执行的场景程序,参考图片本身就充当了外观参考。写完之后,这个编程智能体还会像个质检员一样,从多个角度检查渲染结果,验证物体有没有悬空、有没有穿模、遮挡关系对不对,发现问题就自动修复,确认没问题才会正式投入使用。

**把视频模型改造成实时渲染器:四步流水线**

光有拆分思路还不够,真正难啃的骨头是怎么把一个本来用来"生成视频"的大模型,改造成一个能实时响应、持续运行、严格服从几何条件的渲染引擎。

研究团队从Cosmos 3-Nano这个预训练的视频生成模型出发,分四个阶段逐步改造。

第一步是几何条件化。原本的模型只认文字和参考图片,现在要教会它认深度图和法线图。团队没有用常见的"把几何图和RGB图拼在一起塞进同一个通道"的做法,也没有用额外加一个控制分支的方式,而是把几何token和RGB token放在同一个序列里,让它们在同一套Transformer层里做联合注意力计算。这么处理是为了避免给模型强加一种"像素必须严格对齐"的偏见,让几何信息和视觉信息之间可以更自由地相互参照。

第二步是把模型从"一次性看完整段视频再生成"改造成"边看边生成"的因果式结构,也就是按时间顺序,一块一块地往外吐画面,而不是等所有信息齐全了才开始画。

第三步是这篇论文里分量最重的部分,一种叫Adversarial Forcing(对抗强制)的蒸馏方法。

蒸馏*:指用一个性能强但速度慢的"老师模型"去指导一个结构更轻量、速度更快的"学生模型",让学生尽量模仿老师的输出分布。

为什么需要这一步?因为前面改造出来的因果模型虽然能一块一块生成,但如果让它自己跑很长的视频,很容易出问题:画面会逐渐失真,出现重复的纹理图案,细节越来越糊。这就好比让一个刚学会临摹的人连续画一百张画,每张都照着上一张临摹,哪怕每次只走样一点点,画到第一百张的时候,已经完全看不出原本的样子了。

Adversarial Forcing要解决两个具体的技术难题。

第一个难题是"历史记忆要不要可训练"。模型生成第5帧画面的时候,需要参考前面第1到4帧的信息,这些历史信息被编码成一种叫KV缓存的东西存起来。

KV缓存*:Key-Value缓存,是Transformer模型里用来存储历史上下文编码结果的一种机制,避免每次生成新内容时都要重新计算一遍所有历史信息。

标准做法是把这个缓存"锁死",不让梯度回传过去更新它。但这样一来,后面帧的损失信号就没法反过来优化"模型该怎么编码历史"这件事。如果想让整条链路都可训练,内存开销又会爆炸,因为要保留所有历史块之间互相关联的计算图。

团队的解法叫"精确回放":先跑一遍没有梯度的采样,记录下每一块的输入输出;然后再跑第二遍,这次按照和第一遍完全相同的执行顺序、相同的计算方式重新计算一遍历史编码,这次带梯度。关键在于,第二遍必须和第一遍在数值上做到逐位完全一致,不能有任何浮点误差的偏差。为了做到这一点,他们特意没有用更"聪明"的一次性全序列注意力计算方式,而是坚持按块逐个计算,确保计算路径分毫不差。实验数据显示,用一次性全序列计算的回放方式会产生3.99%的相对误差,而他们这种笨办法做到了完全零误差,顺带着速度还快了5.4%。

这让我想起校对古籍的工作。如果你想检查一份手抄本是否被篡改,最靠谱的办法不是找个现代人凭记忆重新默写一遍再对比,而是严格按照原来的抄写顺序、笔画顺序,一字不差地重新抄一遍。任何"效率更高"的重排方式,哪怕理论上结果应该一样,实际操作中都可能悄悄引入误差。

第二个难题是画质会随着训练慢慢变差。只靠"让学生模型的输出分布尽量接近老师模型"这一种监督信号是不够的,因为这种方式本质上是模型在跟自己生成的东西比较,缺少一个"真实世界到底长什么样"的锚点。

团队因此引入了对抗训练,也就是经典的GAN思路,让一个判别器去分辨生成的画面和真实视频,逼迫生成器往更真实的方向走。

GAN*:生成对抗网络,由一个生成器和一个判别器组成,判别器负责分辨真假,生成器负责骗过判别器,两者互相博弈共同进步。

这里又冒出一个工程上的硬骨头:GAN训练通常需要用R1和R2正则化来稳定训练,这两种正则化要计算输入梯度的范数,而计算这个梯度的梯度,涉及对注意力计算的"反向传播再反向传播"。问题是,像FlashAttention这类为了提速而高度优化的融合注意力核,根本不支持这种二阶反向传播。

团队想出的办法挺巧妙,既然主干网络是冻结的(不需要更新参数),那就没必要走标准的二阶反向传播路径,而是用一次反向传播加一次前向导数计算(术语叫JVP,雅可比向量积)的组合,精确算出同样的梯度结果,却完全绕开了对融合核的二阶求导。这就像你想知道一辆车刹车距离对车速变化的敏感度,与其拆开刹车系统去做力学分析,不如直接做两次不同车速下的刹车测试,用结果反推敏感度,效果一样,但不用拆车。

第四步是工程优化,让这整套系统能实时跑起来。团队写了定制的Triton内核来融合各种零碎的计算操作,用CUDA图捕获来消除每次调用的启动开销,还可以选用一个蒸馏出来的轻量解码器,把解码一帧画面的时间压到10毫秒以内。最终效果是,在一张H100显卡上,这套系统能以每秒超过35帧的速度生成480乘832分辨率的视频,包括条件编码、四步去噪、解码、数据传输的全部环节。

Triton*:一种让研究者可以用接近Python的语法编写高性能GPU计算核的编程工具,常用来替代手写的底层CUDA代码。

**智能体怎么"练级":playbook机制**

有了这套渲染基础设施,剩下的问题就是怎么让智能体真正在里面"学"东西。

AgentGarten设计了一套叫做playbook(可以理解成"攻略笔记")的机制。整个流程分成若干轮,每一轮开始时,智能体会拿到一份任务文件,里面写清楚目标是什么、能做哪些动作、有什么限制,但绝对不给任何解法提示。多个智能体在这一轮里各自独立行动,而且全程只能通过渲染出来的摄像头画面来感知世界,没有坐标、没有地图、甚至游戏结束前都看不到分数。

这一轮结束后,每个智能体会复盘自己这一轮的表现,把尝试过什么、观察到了什么、还有哪些疑惑、下一步该验证什么,写成一份份简短的技能笔记,归档进自己的playbook。下一轮的智能体是全新的对话实例,相当于一个"新人",它拿到的只有任务文件和前面所有轮次积累下来的playbook,自己判断哪些经验在当前场景下用得上。

这个设计有个很现实的考量,就是笔记必须写得足够清楚,因为写笔记的那个"自己"和读笔记的那个"自己"其实是完全不同的对话实例,没法靠默契蒙混过关。这就像你给一个从没见过面的继任者交接工作,你不能只写"按老办法处理就行",因为对方完全不知道"老办法"是什么,你必须把每一步的判断依据都讲清楚,不然经验传不下去。

在捉迷藏实验里,研究团队用的是一个预训练的通用智能体,而不是从零训练的策略网络。躲藏方负责布置场景,然后把控制权交给寻找方。每个角色维护自己独立的playbook,彼此看不到对方的私密观察内容。几轮下来,论文记录到了几个很生动的涌现行为:一个躲藏方移动一块隔板去堵住入口重建掩护;一个寻找方把斜坡搬到内墙边爬了上去;还有一次,寻找方第一次跳跃没跳过去,之后它把斜坡挪得离墙更近,重新尝试并成功了。

这些行为和2019年那次经典实验里涌现的策略几乎如出一辙,但背后的机制完全不同。2019年的智能体是从随机初始化的权重开始,边玩边靠强化学习信号调整策略权重,相当于一张白纸从头学物理规律和竞争博弈。而这次的智能体自带来自互联网海量文本和图像训练出的常识,知道什么是斜坡、什么是遮挡、物体大致会怎么运动。它真正要解决的,不是"发明斜坡这个概念",而是"怎么把脑子里关于斜坡的抽象知识,转化成一套能在只看渲染画面的情况下落地执行的具体动作序列"。这是认知层面从零到一的问题,和执行层面把已有认知落地的问题,难度完全不是一个量级。

**四个新世界的验证**

研究团队没有止步于捉迷藏这一个场景,又另外设计了四个风格迥异的世界,来检验这套"任务文件加playbook"的学习闭环是不是真的通用。

第一个是陪伴狗世界,智能体要在60秒内让一只虚拟小狗保持舒适和主动互动的状态,通过伸手、抚摸、玩球这些动作组合来摸索这只狗的偏好。第二个是单车道桥世界,两辆车各自由一个智能体以第一视角驾驶,需要合作交换到桥的两端,而桥只能容纳一辆车通过。第三个是牧羊世界,两只牧羊犬要从贴地的第一视角把四只羊赶进围栏并保持五秒钟。第四个是采石场世界,一台轮式装载机要完成清理巨石、运送巨石到仓库、最后停进车位的三段式任务。

每个世界都单独跑了四轮。结果显示,陪伴狗的互动得分从13分涨到19分;单车道桥两辆车交换位置所需时间从71秒降到41秒,而且每一轮两辆车都成功抵达终点;牧羊任务第一轮超时时只赶进去三只羊,从第二轮开始就稳定地四只全部赶进;采石场任务第一轮只完成了清理巨石这一步,第二轮反而什么都没完成,但到第四轮,清理、运送、停车三个环节全部完成,用时329秒,在360秒限制之内。

这几条曲线不是每一条都单调上升,比如采石场任务第二轮分数直接归零,说明这种纯靠自我复盘的学习方式并不总是稳步进步,偶尔也会走弯路甚至倒退。但整体趋势是明确的:在没有任何奖励函数、没有人类标注、全凭自己总结文字笔记的情况下,智能体确实在跨轮次地变得更熟练。

**这篇论文之后,故事还在继续**

AgentGarten这项工作发表于2026年10月,距今时间很短,还很难找到大量直接在其基础上展开的后续研究,但从论文本身引用和致谢的脉络里,能看出它是站在哪些肩膀上的,也能看出它正在往哪个方向延伸。

它所依赖的Self Forcing方法,是2025年提出的一套让自回归视频模型在训练阶段就用自己生成的内容来训练的技术,解决的是训练和推理阶段"看到的历史不一样"这个经典错配问题。而AgentGarten在这个基础上,进一步解决了Self Forcing遗留的两个问题:历史编码没法被梯度更新,以及纯靠分布匹配训练导致长视频画质退化。这种"在前人方法上继续打补丁"的研究节奏,其实是深度学习领域相当典型的推进方式。

另一条值得关注的线索是,论文里提到的Code as Worlds、Code World Model这些同期工作,都在探索用代码来表示和推理世界状态这件事,说明"用显式代码管理世界逻辑,用神经网络负责视觉呈现"这个大方向,并不是AgentGarten一家在孤独地走,而是正在形成一个小的研究集群。几个月之内,陆续出现的SimWorld Studio、Programmable World Model等工作,都在尝试让编程智能体自动生成和扩展虚拟环境,这或许预示着未来几年,"自动造世界"会成为训练智能体的标准基础设施之一。

Q&A

Q1:AgentGarten是什么?

A:AgentGarten是一个把游戏引擎和神经渲染器结合起来的框架,用来给AI智能体打造可交互的虚拟练习世界。引擎负责维护世界状态和规则,神经渲染器负责把几何信息转化成逼真的视觉画面,两者通过统一接口对接。

Q2:AgentGarten里的智能体是怎么学习进步的?

A:智能体通过一种叫playbook的笔记机制学习。每一轮游戏结束后,智能体复盘自己的尝试、观察和疑惑,写成技能笔记归档,下一轮全新的智能体会读取之前所有笔记,判断哪些经验在当前场景适用,从而持续改进策略。

Q3:Adversarial Forcing解决了什么问题?

A:Adversarial Forcing是论文提出的一种蒸馏训练方法,用来把慢速但高质量的视频模型改造成能实时运行的渲染器。它通过精确回放技术让历史编码也能被训练更新,并加入对抗训练来防止长视频生成时画质逐渐退化。

文章标签智能体

资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。