多模态智能体做短任务,已经相当稳。
麻烦出在任务拉长以后。
问题不再是“眼前这张图看懂了吗”。
而是“几十步之前那张图里,到底有什么”。
前一个靠一次视觉编码就能答。
后一个得先把当时的画面找回来。
而这恰恰是今天多数智能体做不到的地方。
模型做完全部动作才发现,早先画面里的颜色,朝向,位置,甚至一段动画过程,都跟眼下的判断有关。
可那时候,原始画面早就离开了上下文。
系统手里只剩一份当时生成的文字摘要。
摘要里没写的,等于没有。
这也是长一点的 AI对话 最别扭的地方,旧轮次会被裁掉。
最近有一篇论文专门冲着这处瓶颈来,作者五人,最后一位署名是计算机视觉领域的老面孔。
方案名字叫 VISTA。
它不是新模型,而是套在现成多模态模型外面的一层运行时。
主张可以一句话说完。
把视觉历史从上下文里搬出去,单独存好,需要时再取回来。
一、把视觉历史搬出上下文
常见的视觉智能体循环,可以拆成五步。
一张截图进来。
编码成视觉特征。
送进模型推理。
模型给出动作。
环境返回新截图。
然后循环往复。
随着交互不断继续,历史画面占用越来越多上下文。
为了压住长度,系统通常做三件事。
删掉旧画面。
压缩历史。
或者把视觉内容改写成文字。
这里有一个时间上的错位。
模型第一次看到画面时,并不知道其中哪些细节会在后面变得重要。
比如某个游戏走到第 20 步,画面里冒出三个很小的方块。
当时模型只记下“有三个红色物体”。
几十步之后才发现,方块边缘那个紫色像素代表朝向。
可那句摘要里,没有这个细节。
把上下文撑长,能延长历史信息的驻留时间,但不保证原始视觉证据一直可访问。
这套框架把两层拆开。
原始视觉历史放在模型上下文之外,独立成一份持久存储。
很多 AI工具 已经在做上下文压缩,只不过留下的是摘要,不是原图。

它由四个部件组成。
第一个部件管观察。
环境状态本来就带二维结构。
多数智能体却先把每个格子转成数字,再按行摊平成文本。
这套框架反过来,直接把状态渲染成图片交给模型。
默认用 512×512 像素。
原始的 64×64 网格放大八倍,就得到它。
位置,形状,颜色,还有相邻关系,都留在视觉空间里。
论文顺手给了个数。
一个 64×64 的文本网格大约要 4000 个词元。
同样内容的一张小图,只要 300 出头个图像词元。
第二个部件管存储。
每次动作之后,环境可能返回多帧画面。
动画的中间帧也不丢。
它们用轮次编号加帧编号建索引。
这些画面存在模型上下文之外。
对话被压缩,或者切到一段新上下文,历史帧照样还在。
第三个部件管查看。
光存下来只解决了数据在不在。
模型还得能主动开口要。
它可以直接调出第 125 轮的第 2 帧。
也可以只圈一块矩形,让系统返回局部放大图。
需要精确到像素时,还有一层读数接口。
对那几个像素宽的方向标记,或者极细的颜色差,这层接口能绕开低分辨率识别误差。
第四个部件是每轮的固定流程。
拿当前画面,先推理。
需要时查笔记,核历史,读像素。
再推理一次。
给出预期结果,执行动作,然后收下新的画面。
二、性能到底来自哪一层
除了视觉记忆,这套系统还配了两份文本笔记。
一份存跨关卡都成立的规律。
比如某类物体的行为,开关怎么触发,目标是什么条件。
另一份记当前这局的临时状态。
位置在哪,正在验证什么假设,试过哪些走法。
接下来打算怎么走,也写在这里。
可以把它们当成两种不同层次的记忆。
文本那份装抽象后的规则和计划。
视觉那份装产生这些结论的原始证据。
两者分工很清楚。
摘要负责便宜地读。
画面负责在规则打架时,还能回头查当时的现场。
有一处取舍值得说明。
把全部画面都留下,存储成本会上去。
可只留摘要,模型就再也回不到当初没注意的细节。
这套方案选了第三条路。
先全存,再用检索把成本摊开。
另一个取舍在上下文上。
上下文当工作集用很划算。
当长期仓库用就不划算了。
论文里有一组逐步加料的数据。
同一个模型,只改运行时设计。
只喂文本网格时,得分 13.33,完成率 4%。
改成图像输入,跳到 47.32。
加上动作与时间预算,到 51.66。
换成连续对话,65.82。
再补两份笔记,70.05。
装上无损视觉记忆和主动查看,94.10,完成率直接到 96%。
最后加像素读数,99.00,完成率 100%。
这类设计在 AI编程 里已经有影子,只是大多还停在单轮工具调用。

整条曲线看得出来,收益不是一次吃到的。
输入表示,长期状态管理,历史视觉的主动访问,各自贡献一截。
同一颗模型,换了运行时,表现可以差出十几倍。
论文还做了一组反向对照。
把完整系统的图像输入换回文本网格,其他不变。
文本那版得分 96.75。
图像那版 99.00。
两者都能打,但账单差很远。
每局平均消耗,文本要 71.9M 个词元。
图像只要 30.7M。
对屏幕里那些空间关系,未必值得全部转写成文字。
三、推理过程自己决定看哪里
上下文也不是越大越好。
论文测了 10 万,20 万,50 万和 78 万四档。
20 万那一档拿到 99.0,每局 30.7M 个词元。
10 万那档只差 0.4 分,每局却只要 17.3M。
扩到 78 万,消耗涨到 105.7M,分数反而掉到 93.9。
这说明长期任务没必要把所有历史都按在上下文里。
原始画面已经搬到外部记忆之后,上下文更接近一张工作台。
上面摊着近期的观察,当前的假设,正在跑的计划,还有刚检索回来的那点证据。
扩大上下文和改善记忆检索,是两条不同的路。

论文举了两个例子。
左边那个,游戏跑到很后面发生了地图重置。
当前画面已经拼不回完整地图。
模型一次性从前面 22 轮里取回 4 帧,把不同阶段的信息拼起来重画。
右边那个处理局部。
完整画面里有三个很小的守卫。
每个守卫身上带一处紫色标记。
模型把三块区域分别放大,按标记落在方块的哪一侧判断朝向。
最后得到 A 朝右,B 朝下,C 朝右,再据此排处理顺序。
这层机制可以理解成一种显式的注意力。
变压器里那层注意力,只作用于已经送进模型的表示。
这里多了一步由智能体自己控制的输入组织。
先想清楚缺什么视觉证据。
再挑帧,挑时间点,挑区域。
然后重新做一次视觉编码。
论文还拿静态图像任务做了对照。
没有长交互历史,只用局部查看和像素读数。
在两组视觉追踪题上,官方一次性配置答对 41.0%。
这套系统答对 63.2%。
人类参考是 92.3%。
差距还有,但方向已经摆出来了。
四、跨环境的验证
除了主战场,论文还在三个别的基准上跑了实验。

三个环境分别是浏览器游戏,游戏商店,还有一个静态视觉题集。
在第一个环境,成功率人类 55.3,官方实现 40.0,这套系统 63.3。
进度指标上,它拿到 79.3,人类是 64.1。
在第二个环境,人类按 100 记,官方实现 47.3,这套系统 140.3。
静态题集那一栏,还是前面那 39 道题。
论文还换了一个开放权重模型复跑主战场。
官方实现只有 1.89。
去掉关键视觉组件后到 13.27。
完整系统拿到 66.93。
模型的绝对能力仍然决定上限。
但运行时的增益,不只出现在一家闭源模型身上。
还有一个补充实验,把二维画面渲染成三维视图。
二维那版 99.00,用了 9126 个动作。
三维那版掉到 84.12,动作数涨到 20640。
画面变复杂,性能和动作效率一起下滑。
不过系统还能在更复杂的表示里跑起来。
跑完这些,论文把整套设计收成一份分层清单。
最上面是当前上下文,装正在用的推理、计划和近期观察。
再往下是语义记忆,装规则、假设和任务状态。
再往下是情景视觉记忆,装原始截图、历史帧和动画。
最底下是环境本身,也就是真实状态。
这几层压得不一样。
上下文更新最快,只留手头要用的。
语义那一层已经过抽象,读起来便宜。
视觉那一层存的是原图,成本高,但规则冲突时能翻旧账。
这套结构往办公场景搬也很顺。
一个要跑几十分钟的桌面智能体,可以把页面截图长期留着。
笔记里只记订单号,当前步骤,用户选择,还有已经确认的规则。
回头要核对某个按钮状态或者报错提示,再去捞对应截图。
机器人那边也一样。
当前的规划也许只看局部状态。
但几分钟前看到的物体位置、柜门开合,后面可能重新变成判断依据。
论文也没有回避短板。
现在是所有帧都存。
跑几十分钟的小游戏,这个策略还算省事。
要是任务持续一天乃至一个月,视觉记忆会涨到几十万甚至几百万帧。
难点随即从存储转向检索。
模型怎么知道该回看哪一段时间。
连续视频怎么切成有意义的事件。
帧的语义索引和空间索引怎么建。
哪些留原图,哪些可以安全压缩。
多次出现的相似画面怎么消重。
当前问题又怎么自动生成合适的检索条件。
论文里的智能体常常能直接点名第 125 轮。
历史规模再大几个量级,这种定位方式就不好使了。
分层记忆,事件级摘要,向量检索,还有可学习的检索器,都是自然的下一步。
把话说回来,这份工作给长任务智能体留了几条能用的经验。
第一,原始视觉证据值得和文本摘要分开存。
摘要便宜,但它只留下模型当时已经注意到的信息。
第二,上下文更像工作台,不是仓库。
历史一大,全塞进去的词元成本涨得飞快。
论文里那组超长上下文实验,也没换来更好的结果。
第三,视觉输入可以由推理过程动态组织。
先把整张高清图一次性丢给模型,并不是唯一做法。
第四,运行时已经成为模型之外的独立优化层。
同一颗模型,只改观察和记忆,还有上下文管理与工具接口,成绩就能从低分提到接近满分。
对做计算机操作和做具身的那批人来说,接下来两边都还有空间。
眼下这套视觉记忆还偏原型。
存储策略简单,检索主要靠智能体自己定位轮次和区域。
但它把问题换了个形状。
原来问的是模型能不能记住所有看过的画面。
现在拆成了几个能单独迭代的模块。
怎么存,怎么索引,什么时候检索,检索多细,取回来的东西怎么再进推理。
这些模块可以各自打磨,也更容易搬出游戏之外。
