SimuRA
Paper · arXiv 2507.23773 · 2025

SimuRA:先在世界模型里把候选动作演一遍,再挑出下一步

主流 web agent 是反应式的:看页面,直接采样下一个动作。论文认为这混淆了两件事——内部多算几个 token,和真的对「这么做会怎样」做反事实推演。 SimuRA(arXiv v3 已更名为 SiRA)把决策拆成感知 / 规划 / 行动三层:规划器用 LLM 世界模型在自然语言信念状态上推演候选意图,critic 给终点态打分,最高分的意图交给 actor 落地。

Mingkai Deng, Jinyu Hou, Yilin Shen, Hongxia Jin, Graham Neubig, Zhiting Hu, Eric Xing(v1 作者页署名;v3 仅保留前两位与 Hu、Xing,见 footer) 原文 ↗ 代码 ↗
TL;DR · 30 秒抓住核心

论文把最优决策写成:对未来动作序列取 arg max(目标进度 + 终点价值)× 轨迹概率(式 4)。反应式 agent 只做了「采一个动作」,既没有环境转移 pμ,也没有终点价值 V;SimuRA 用世界模型 f 补 p、用 critic v 补 V。

世界模型是零样本 LLM:状态不做向量压缩,而由编码器把页面摘要成一段自然语言信念状态;模拟动作也不是 click('128'),而是「比较直飞最低价」这类抽象意图。按意图推演、按原子动作执行。

三个差异很大的 web 任务上,模拟规划都赢过同架构的反应式对照。最扎眼的是:强推理模型 o1 / o3-mini 直接当 planner 生成长 CoT,FlightQA 上只有 1.1% / 3.3%——拉长内部计算,换不来反事实推演。

代价同样明确:不做任何训练,每个决策摊成数十次 LLM 调用,论文把缓存与并行列为未来工作;绝对成功率(23%–32%)说明这还只是「方向对」的证据。

32.2%
FlightQA 正确率
OpenHands BrowsingAgent 为 0.0%
+124%
相对同架构反应式规划
32.2% vs 14.4%(p < 0.01)
1.0%
FanOutQA 重复动作率
反应式 10.0% / BrowsingAgent 43.0%
01

反应式 agent 把「想得久」误当成了「想得远」

读完这节应能回答:论文说「没有规划」,缺的到底是哪一步。

论文沿用经典 agent–environment 模型:agent 策略 π 从状态 st 出动作 at,环境 μ 按 pμ(st+1 | st, at) 给出下一状态。一条长度为 T 的轨迹出现的概率,就是逐级策略概率与环境转移概率相乘。据此,价值函数满足递推(式 2):

Vgπ,μ(st) = Σ(at, st+1, …, sT) ( Σk=tT−1 γk r(g, sk) + γT Vgπ,μ(sT) ) · pπμ(at, st+1, …, sT | st)
式 2 · 青灰 = goal progress(到 T 为止的累计奖励 + 终点价值)· 紫 = trajectory(这条轨迹出现的概率)

于是最优 agent 的决策规则(式 4)是:对未来整段动作 at:T−1 取 arg max,内部把每条可能轨迹的「目标进度」乘上「轨迹概率」再求和。它需要两样东西:环境如何响应(pμ),和走到终点值多少(V)。

反应式 agent 实际只做了其中一小步:

at ~ pπ(at | st)     —— 直接出动作,不模拟、不评估
等价于从候选策略 π̃ 里取第一个采样:没有 pμ,也没有 V

论文对这一点有一个关键判断:长链 CoT、乃至用 RL 训出的推理模型,拉长的只是「内部计算」——生成更多 token 去更好地拟合观察,而不是「规划」——提出候选、预测后果、依据预测去选择。差别的核心在于后者需要一条有据可依的反事实通道:「从 s 做 a,会发生什么」。没有它,再多思考也只是换一种方式反应,错误仍会在长轨迹上累积。

问题定性

不是模型不够聪明,是架构里缺了一块

这直接决定了对照实验的设计:换更强的 backbone 无法证明「规划」的价值,必须在同一架构内、只替换规划模块,才能把「模拟本身」的贡献隔离出来。这就是 02 节里 System I / System II 对照的由来。

02

工程脚手架与向量式世界模型,都没把「预测未来」做成独立可评估的模块

论文在 Related Work 里把前人分成两簇,实验里再用四组对照各自钉住短板。

反应式(System I)

能力从外部工程里长出来

训练型(AutoWebGLM、AgentQ、UI-TARS)、prompt 工作流(AWM、Voyager)、以及 Operator / Computer Use / WebVoyager / CogAgent 等,大多以 ReAct 为骨架;多智能体工作流与 code-action 系统把任务分给专家或写成脚本。

共同短板:行为总是「对观察做反应」,从不显式建模或比较未来状态。能力主要来自预定义的工具与流程,而不是推演。

世界模型式规划

会推演,但状态是一坨向量

从棋类、Atari 到连续控制里的 model-based RL,再到 LLM 时代的数学推理、游戏与网页浏览,都用预测模型模拟候选动作的后果。

共同短板:论文指出前人通常把世界状态写成整体的连续 embedding,噪声与高方差削弱决策;且大多针对窄领域,没把模拟推理当作通用规划范式。

四个对照组,各自回答一个问题

论文的世界模型设计正好对着上一簇的三个短板:状态不压成向量、动作不做原子级、规划不绑死某一任务——分别对应 03 节公式里的三个设计选择。

03

把最优决策规则落成三个 LLM 模块:编码、推演、打分

核心是式 8 的三层 arg max,以及让它在 LLM 上成立的两个设计选择。

式 4 要求真实状态 s 与真实环境 μ,现实中拿不到(除棋类等简单场景)。SimuRA 用信念状态 ŝ(由观察 ot 经编码器 h 得到)代替 s,用世界模型 f 代替 μ,得到式 5 的模拟决策规则,再落成可执行的三层 arg max(式 8):

ŝt = arg maxŝ ph(ŝ | ot)    (Perception)
a′t:T′−1 = arg maxa′t:T′−1̃π Σŝt+1:T′ v(ŝT′) ∏k=tT′−1 pf(ŝk+1 | ŝk, a′k)    (Planning)
at = arg maxa pα(a | ŝt, a′t)    (Acting)
式 8 · 蓝:编码器 h 给信念状态 · 紫:a′ 取自策略 π̃ 的采样,world model f 给转移概率 · 红:critic v 给终点打分

相比式 5,式 8 用 critic 打分 v(ŝT′) 代替了「累计奖励 + 终点价值」的展开式——实现时让 LLM 对终点状态判个类(如 success),折算成数。策略 π̃ 只负责采样候选,搜索质量要靠外部的 DFS 来补。

概念化

信念状态 = 自然语言摘要

编码器 h 把观察 ot(网页 accessibility tree)逐 token 生成一段摘要(式 6);世界模型同样逐 token 生成下一段摘要(式 7)。广告、布局抖动这类噪声自然被滤掉,后续模块在一个可分解的离散概念空间里推理。论文称这减少了幻觉。

分层

模拟动作 ≠ 真实动作

策略 π̃ 与 f 作用在抽象动作 a′ ∈ 𝒜′(如「探索网站」),actor α 把选中的 a′ 翻译成具体 a ∈ 𝒜(如 click(id))。一个 a′ 可覆盖多步执行,缩短 rollout、减少误差累积,也更容易跨站点迁移。

世界模型

LLM 本身就是 WM

f 也是 LLM,理由是 next-token 预训练「形式上与世界建模同构」。实现取 M = N = 20、搜索深度 T = t + 1、用 DFS——即每个候选意图只推演一步,靠 Critic 重复 20 次把这一步的分数估准。

自己动手:谁在决定「多想」和「想准」

把规划器简化成几个可调量:候选意图数 M、critic 采样数 N、推演深度 T′、critic 的判断质量。世界模型对每个「意图 → 后继状态」给出确定预测;终点价值是按论文机制排列的示意数字(非论文数据)。拖动参数,看点标签落在哪个候选上。

决策结果
推演日志(critic 打分 · 可复现的伪随机采样)

交互对应论文的两个设计决定。M 决定「想不想多」:反应式只取策略第 1 个采样,而这个采样本身就可能把目的地写错——切到反应式后拖动任何滑块它都不会变。N 决定「想得多准」:critic 的判断有系统性低估和偶发误报,N 次采样取比例会压低噪声的影响。论文取 N = 20、T′ = 1,即不往深处走很多步,而是把一个终点的分估准。把 critic 判断质量从 0.6 拉到 0.9,再比较 N = 1 与 N = 5,可以看到少数几次采样时分数抖动很大;而把 T′ 调到 2–3,会看到「推演越深反而越容易选错」——这正是论文把 horizon 压到一步要避开的误差累积。

04

不训练、不训新模型——把一次决策摊成数十次 LLM 调用

工程可行性全在推理侧:算法是一条搜索循环,代价是调用量。

论文 Appendix A 的伪代码(Algorithm 1)在每一步 t:

  1. 感知:编码器把 ot 摘要成 s̃t,和过去「摘要 + 已选动作」的选择性记忆拼成 ŝt;
  2. 提案:策略采样 M 个抽象动作并按意图聚类去重;
  3. 推演:对每个候选,世界模型预测下一段摘要,沿 DFS 走到深度 T′;
  4. 打分:到终点让 critic 重复 N 次做分类判断(如 "success" 记 1 分),折算数值后与当前最优 V⋆ 比较;
  5. 行动:搜索结束后把最高分抽象动作 a′⋆ 连同原始观察文本交给 actor,落成具体动作 at,并把 (s̃t, a′⋆) 写回记忆。

论文实现取 M = N = 20、T = t + 1,基于 LLM Reasoners 库,每步要批量生成候选、为每个候选调世界模型、让 critic 重复打分——单步调用量远多于「只生成一个动作」的反应式 agent。Limitations 也承认:模块化流水线加上多候选计划穷举,使 SimuRA 比典型 LLM agent 更慢,缓存与并行属未来工作(原文未给出具体的倍数或调用量数字)。

记忆机制

状态不是一帧截图,而是逐步累积的轨迹

网页是部分可观测的,单帧摘要会丢掉先前看到的内容。SimuRA 把每帧摘要与已执行动作按时间串起来当状态。这解释了 FanOutQA 上它几乎没有重复动作(1.0%,反应式 10.0%,BrowsingAgent 43.0%)——它记得已经去过哪里、查过什么。

深度只有一步,为什么还用 DFS?按 Appendix A 伪代码读

伪代码维护当前最优价值 V⋆ 与最优动作序列 A′⋆,在预算耗尽前反复从根状态推演到深度 T′、用 critic 打分、更优则更新,最后取 A′⋆ 的第一步。因为 T′ = t + 1,它实际上是「在多个一步分支间做搜索」,而不是「想很多步」。伪代码没有给出 DFS 预算的具体数字,论文正文也没交代——所以页面无法给出「每步搜索多少次」,只能给出 M = N = 20 这个确定的参数。

05

五模块闭环:观察进、动作出,中间全靠自然语言流动

一张图看清每一步的数据在哪些模块之间走,以及哪一步是 SimuRA 特有的。

Environment μ · 浏览器(accessibility tree,部分可观测) 观察 ot 具体动作 at Encoder h ot → 摘要 s̃t 选择性记忆 {(s̃k, a′*)} 逐步累积 Planner · simulative reasoning Policy π̃ 提出 a′ × M WM f 预测 ŝ′ Critic v 打分 × N DFS 搜索 取最高分 a′* 每个候选:推一步 → 终点打分 → 比 V* ŝt Actor α a′* + ot → at a′*(抽象意图) 青灰 = 编码 / 世界模型分量 · 紫 = 策略 · 墨绿 = critic · 陶土红 = SimuRA 特有的规划闭环与动作落地
重绘自 v1 Figure 4 / Figure 5(v3 中合并为 Figure 1;描述决策过程的图)与式 8。h 把观察摘要成信念状态;规划器以 π̃ 提候选、f 预测下一状态、v 在终点打分、DFS 取最优抽象动作;α 结合原始观察落地为具体动作,并把 (s̃, a′*) 写回记忆。v1 的 Figure 5 正是把 Planner 与「自动回归规划」基线分开的那张实现图。
展开逐模块说明
  • Encoder h:ot 是浏览器视口里的 accessibility tree(纯文本)。输出自然语言摘要 s̃t,与记忆拼成 ŝt。
  • Policy π̃:在抽象动作空间 𝒜′(如「只比直飞」「先重置出发地」)里采样 M 个并聚类去重。
  • World Model f:预测候选执行后页面会变成怎样的摘要。实时数据(价格、余票)无法真的查询,只能靠 LLM 推断。
  • Critic v:在推演终点让 LLM 输出分类判断并映射为数值(如 success = 1),重复 N 次。
  • Actor α:拿 a′* 加原始观察文本生成具体动作(如 click('128')),保证元素找得到。

闭环的意义不在模块多,而在每个模块都由同一个现成 LLM 扮演、全程不训练,接口一律是自然语言:信念状态是摘要,抽象动作是意图,critic 分数是分类。换更强的 LLM,五个模块一起受益;换环境,只需换编码器和 actor——这是论文所说「model-agnostic」的意思。

06

三类任务全部领先,但「领先多少」和「为什么领先」是两件事

先看数字,再看两个最反直觉的发现,最后看哪部分收益其实与该论文的「模拟」无关。

FlightQA 是「深度」任务(单一复杂站点、多约束叠加),FanOutQA 是「广度」任务(多网站聚合),WebArena 是通用指令。三个任务的工作条目数分别是 90 题、dev set 前 100 例、随机 100 例:

方法 FlightQA 正确率 FanOutQA Acc. WebArena 成功率 相对同架构反应式
OpenHands BrowsingAgent 0.0% 17.0% 12.0% —
Unstructured CoT(o1 / o3-mini) 1.1% / 3.3% 未报告 未报告 —
Reactive(System I) 14.4% 20.2% 19.0% 1.00×
Simulative(System II) 32.2% 29.8% 23.0% +124% / +48.6% / +21.1%

数据:原文 v1 的 Table 1 / Table 2 / Table 3(v3 编号同为 Table 1–3),总览见图 6(v3 Figure 4)。所有实验 2024 年 11–12 月完成,o3-mini 于 2025 年 2 月补测。

FlightQA 全行(Table 1):终点的正确率掩盖了失败方式

方法 正确 Grounded Relevant 返回回答 Crashed 步数耗尽 重复动作 动作错误
BrowsingAgent 0.0 0.0 0.0 0.0 3.3 3.3 0.0 93.3
Reactive(System I) 14.4 15.6 14.4 16.7 0.0 37.8 44.4 1.1
Simulative(System II) 32.2 36.7 32.2 38.9 1.1 40.0 18.9 1.1
CoT · o1 1.1 1.1 1.1 1.1 11.1 40.0 37.8 10.0
CoT · o3-mini 3.3 4.4 3.3 4.4 3.3 51.1 32.2 8.9

全部为百分比,取自 v1 Table 1。“Max Steps Reached” 即「步数耗尽」。各行各列为何不恰好加总到 100,原表未说明,这里不替它解释。

反直觉 1

强推理模型当 planner,几乎全军覆没

o1 / o3-mini 生成长 CoT 的 planner 只有 1.1% / 3.3%,而反应式对照与模拟规划分别是 14.4% 与 32.2%——比反应式还差。步数耗尽率 40.0% / 51.1% 表明它们想了很久却没在页面上推进。

论文的读法:在反应式范式内扩大内部计算,替代不了对未来状态的显式模拟。作者还提到,这些模型常常不打开页面就作答,幻觉甚至能骗过 LLM 评分器。

反直觉 2

约束爬到 7 条,两边一起「回升」

v1 的 Figure 9 把正确率画成约束条数(3→8)的函数:两种方法在约束增多初期都下降,却在 7 条时突然抬升,然后再次回落。作者自己也只给出两种可能:后端 LLM 的记忆,或某些问题的隐式约束。(v3 中该图为 Figure 7。)

值得注意的是:在这一整段里,模拟规划和反应式之间的差距一直存在——这是论文主张「增益来自可泛化的反事实评估,而非任务特定调参」的主要依据。

还有一个容易被汇总表掩盖的细节:FanOutQA 上,即使去掉模拟(反应式 20.2%),也已高于外部 BrowsingAgent 的 17.0%。论文把这部分归功于结构化状态带来的更少动作错误(43% → 10%)。也就是说,SimuRA 的增长里有一部分来自状态表示和记忆,而非模拟本身——所以同架构对照才是关键证据。

07

它是一个更强的规划骨架,不是「通用智能体」的现成解

看清它在哪些场景值得用,哪些结论不能直接外推。

什么时候别用

简单、确定、实时的交互

只有一两步、或环境响应完全可预期(脚本能写死的流程)时,模拟规划只增加延迟。它的收益集中在部分可观测、多约束、需要反事实权衡的环境——论文的最大收益正好出在 FlightQA 这类题上。