主流 web agent 是反应式的:看页面,直接采样下一个动作。论文认为这混淆了两件事——内部多算几个 token,和真的对「这么做会怎样」做反事实推演。 SimuRA(arXiv v3 已更名为 SiRA)把决策拆成感知 / 规划 / 行动三层:规划器用 LLM 世界模型在自然语言信念状态上推演候选意图,critic 给终点态打分,最高分的意图交给 actor 落地。
论文把最优决策写成:对未来动作序列取 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%)说明这还只是「方向对」的证据。
读完这节应能回答:论文说「没有规划」,缺的到底是哪一步。
论文沿用经典 agent–environment 模型:agent 策略 π 从状态 st 出动作 at,环境 μ 按 pμ(st+1 | st, at) 给出下一状态。一条长度为 T 的轨迹出现的概率,就是逐级策略概率与环境转移概率相乘。据此,价值函数满足递推(式 2):
于是最优 agent 的决策规则(式 4)是:对未来整段动作 at:T−1 取 arg max,内部把每条可能轨迹的「目标进度」乘上「轨迹概率」再求和。它需要两样东西:环境如何响应(pμ),和走到终点值多少(V)。
反应式 agent 实际只做了其中一小步:
论文对这一点有一个关键判断:长链 CoT、乃至用 RL 训出的推理模型,拉长的只是「内部计算」——生成更多 token 去更好地拟合观察,而不是「规划」——提出候选、预测后果、依据预测去选择。差别的核心在于后者需要一条有据可依的反事实通道:「从 s 做 a,会发生什么」。没有它,再多思考也只是换一种方式反应,错误仍会在长轨迹上累积。
这直接决定了对照实验的设计:换更强的 backbone 无法证明「规划」的价值,必须在同一架构内、只替换规划模块,才能把「模拟本身」的贡献隔离出来。这就是 02 节里 System I / System II 对照的由来。
论文在 Related Work 里把前人分成两簇,实验里再用四组对照各自钉住短板。
训练型(AutoWebGLM、AgentQ、UI-TARS)、prompt 工作流(AWM、Voyager)、以及 Operator / Computer Use / WebVoyager / CogAgent 等,大多以 ReAct 为骨架;多智能体工作流与 code-action 系统把任务分给专家或写成脚本。
共同短板:行为总是「对观察做反应」,从不显式建模或比较未来状态。能力主要来自预定义的工具与流程,而不是推演。
从棋类、Atari 到连续控制里的 model-based RL,再到 LLM 时代的数学推理、游戏与网页浏览,都用预测模型模拟候选动作的后果。
共同短板:论文指出前人通常把世界状态写成整体的连续 embedding,噪声与高方差削弱决策;且大多针对窄领域,没把模拟推理当作通用规划范式。
论文的世界模型设计正好对着上一簇的三个短板:状态不压成向量、动作不做原子级、规划不绑死某一任务——分别对应 03 节公式里的三个设计选择。
核心是式 8 的三层 arg max,以及让它在 LLM 上成立的两个设计选择。
式 4 要求真实状态 s 与真实环境 μ,现实中拿不到(除棋类等简单场景)。SimuRA 用信念状态 ŝ(由观察 ot 经编码器 h 得到)代替 s,用世界模型 f 代替 μ,得到式 5 的模拟决策规则,再落成可执行的三层 arg max(式 8):
相比式 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、减少误差累积,也更容易跨站点迁移。
f 也是 LLM,理由是 next-token 预训练「形式上与世界建模同构」。实现取 M = N = 20、搜索深度 T = t + 1、用 DFS——即每个候选意图只推演一步,靠 Critic 重复 20 次把这一步的分数估准。
把规划器简化成几个可调量:候选意图数 M、critic 采样数 N、推演深度 T′、critic 的判断质量。世界模型对每个「意图 → 后继状态」给出确定预测;终点价值是按论文机制排列的示意数字(非论文数据)。拖动参数,看点标签落在哪个候选上。
交互对应论文的两个设计决定。M 决定「想不想多」:反应式只取策略第 1 个采样,而这个采样本身就可能把目的地写错——切到反应式后拖动任何滑块它都不会变。N 决定「想得多准」:critic 的判断有系统性低估和偶发误报,N 次采样取比例会压低噪声的影响。论文取 N = 20、T′ = 1,即不往深处走很多步,而是把一个终点的分估准。把 critic 判断质量从 0.6 拉到 0.9,再比较 N = 1 与 N = 5,可以看到少数几次采样时分数抖动很大;而把 T′ 调到 2–3,会看到「推演越深反而越容易选错」——这正是论文把 horizon 压到一步要避开的误差累积。
工程可行性全在推理侧:算法是一条搜索循环,代价是调用量。
论文 Appendix A 的伪代码(Algorithm 1)在每一步 t:
论文实现取 M = N = 20、T = t + 1,基于 LLM Reasoners 库,每步要批量生成候选、为每个候选调世界模型、让 critic 重复打分——单步调用量远多于「只生成一个动作」的反应式 agent。Limitations 也承认:模块化流水线加上多候选计划穷举,使 SimuRA 比典型 LLM agent 更慢,缓存与并行属未来工作(原文未给出具体的倍数或调用量数字)。
网页是部分可观测的,单帧摘要会丢掉先前看到的内容。SimuRA 把每帧摘要与已执行动作按时间串起来当状态。这解释了 FanOutQA 上它几乎没有重复动作(1.0%,反应式 10.0%,BrowsingAgent 43.0%)——它记得已经去过哪里、查过什么。
伪代码维护当前最优价值 V⋆ 与最优动作序列 A′⋆,在预算耗尽前反复从根状态推演到深度 T′、用 critic 打分、更优则更新,最后取 A′⋆ 的第一步。因为 T′ = t + 1,它实际上是「在多个一步分支间做搜索」,而不是「想很多步」。伪代码没有给出 DFS 预算的具体数字,论文正文也没交代——所以页面无法给出「每步搜索多少次」,只能给出 M = N = 20 这个确定的参数。
一张图看清每一步的数据在哪些模块之间走,以及哪一步是 SimuRA 特有的。
click('128')),保证元素找得到。闭环的意义不在模块多,而在每个模块都由同一个现成 LLM 扮演、全程不训练,接口一律是自然语言:信念状态是摘要,抽象动作是意图,critic 分数是分类。换更强的 LLM,五个模块一起受益;换环境,只需换编码器和 actor——这是论文所说「model-agnostic」的意思。
先看数字,再看两个最反直觉的发现,最后看哪部分收益其实与该论文的「模拟」无关。
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 月补测。
| 方法 | 正确 | 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,原表未说明,这里不替它解释。
o1 / o3-mini 生成长 CoT 的 planner 只有 1.1% / 3.3%,而反应式对照与模拟规划分别是 14.4% 与 32.2%——比反应式还差。步数耗尽率 40.0% / 51.1% 表明它们想了很久却没在页面上推进。
论文的读法:在反应式范式内扩大内部计算,替代不了对未来状态的显式模拟。作者还提到,这些模型常常不打开页面就作答,幻觉甚至能骗过 LLM 评分器。
v1 的 Figure 9 把正确率画成约束条数(3→8)的函数:两种方法在约束增多初期都下降,却在 7 条时突然抬升,然后再次回落。作者自己也只给出两种可能:后端 LLM 的记忆,或某些问题的隐式约束。(v3 中该图为 Figure 7。)
值得注意的是:在这一整段里,模拟规划和反应式之间的差距一直存在——这是论文主张「增益来自可泛化的反事实评估,而非任务特定调参」的主要依据。
还有一个容易被汇总表掩盖的细节:FanOutQA 上,即使去掉模拟(反应式 20.2%),也已高于外部 BrowsingAgent 的 17.0%。论文把这部分归功于结构化状态带来的更少动作错误(43% → 10%)。也就是说,SimuRA 的增长里有一部分来自状态表示和记忆,而非模拟本身——所以同架构对照才是关键证据。
看清它在哪些场景值得用,哪些结论不能直接外推。
只有一两步、或环境响应完全可预期(脚本能写死的流程)时,模拟规划只增加延迟。它的收益集中在部分可观测、多约束、需要反事实权衡的环境——论文的最大收益正好出在 FlightQA 这类题上。