Web Agents with World Models
ICLR 2025 · arXiv 2410.13232

Web Agents with World Models:在点下去之前,先预演一遍

LLM 网页代理靠「走一步看一步」推进任务,一次不可逆点击就可能把局面毁掉。论文先证明模型几乎不会预测动作后果:四个前沿 LLM 平均只有 54.75%,人类是 83%。 然后它训练一个 8B 的世界模型,把「点下去会发生什么」写成一句状态差异,让 agent 在真实执行前先比较三个候选动作的未来。

Hyungjoo Chae 等 · 延世大学 arXiv 2410.13232 ↗ 代码 ↗
TL;DR · 30 秒抓住核心

网页代理的瓶颈不只是「不会规划」,而是看不见动作的后果。论文让模型从「真实下一状态」和「相似但错误的下一状态」中二选一,四个前沿 LLM 只有 52–58%,人类 83%——基本等于抛硬币。

可一旦把每个候选动作的下一状态直接告诉模型,GPT-4o 选对动作的准确率就从 53% 跳到 73%。信息是有用的,模型只是自己生成不出来。

WMA(World-model-augmented web agent)因此把决策拆成三步:冻结的策略模型提议候选动作,小型世界模型预演每个动作的后果,价值函数给预演结果打分并选最高分。世界模型不预测整页 HTML,只预测「哪些元素被新增、删除、更新」,再用一句话写出来。

代价是绝对性能仍低于用 oracle 下一状态的树搜索;世界模型的错误里有 42% 是凭空编造不存在的页面元素。它更像一个更强的「选择器」,而不是更强的「策略」。

54.75%
LLM 预测下一状态的平均准确率
人类 83%,随机基线 50%
16.6%
WebArena 成功率(GPT-4o + WMA)
Vanilla CoT 13.1%
6.8×
API 成本低于树搜索
推理时间快 5.3×
01

代理不是不会点,是不知道点下去会发生什么

先把「世界模型缺失」量化:模型预测动作后果的能力,几乎和抛硬币一样。

网页导航被论文建模成 POMDP(部分可观测马尔可夫决策过程):真正决定页面状态的是隐藏状态 s,代理只能看到视口里的 accessibility tree(简化 DOM)o。动作空间是 CLICK、TYPE、HOVER 这类语言描述的操作,状态转移由环境里的真实函数 T 决定。

st+1 ~ T(· | st, at)     ot ∈ O = accessibility tree
代理看不到 s,只能根据 o 猜;它缺的正是「a 会把 s 推到哪」这层知识

这件事在长任务里会要命。WebArena 的 812 个任务上,GPT-4 的成功率是 14.41%,人类是 78.24%。差距不只是「步数不够」:代理会重复购买不可退款的机票、在购物车里反复加购、把已经填好的表单清空——这些错误在真实网站上都不可撤销。

预实验 I

预测下一状态:接近随机

给当前页面和黄金动作,让模型从真实下一状态与「相似但错误」的下一状态中二选一。GPT-4o-mini 54%、GPT-4o 55%、GPT-4-Turbo 58%、Claude-3.5-Sonnet 52%,平均 54.75%;人类 83%,随机是 50%。

Claude-3.5-Sonnet 的表现几乎和随机猜测一样差。论文的结论很直接:世界模型在现有 LLM 里是缺失的。

预实验 II

知道后果,选择立刻变好

给 10 个候选动作(1 个黄金 + 9 个负例),只给当前状态时平均只有 49%;把每个动作的下一状态一起给出后,四个模型提升 19–20 个百分点,最高提升 38%。

GPT-4o 从 53% 升到 73%。这说明「后果」这条信息对决策非常有用——模型只是自己生成不出来。

所以问题被重新定义:不是「让策略模型更会规划」,而是给它一个便宜、够准的外部预演器。这正是后面 WMA 的出发点。

02

两条现成路线:一条盲走,一条把真实环境跑成搜索树

两条路都能走,但一条看不见未来,另一条把未来真的执行一遍。

路线 A

反应式 CoT / 试错

策略模型看当前页面,直接生成下一步动作,最多允许 30 步。每步只做候选采样和多数投票,不额外调用世界模型或价值函数,便宜、快。

卡点:它没有「如果点了会怎样」的内部模型,只能靠真实环境反馈纠错。遇到不可逆操作时,纠错机会已经没了;在 WebArena 上 GPT-4o 的成功率只有 13.1%。

路线 B

Tree search + oracle 下一状态

把候选动作真的执行一遍,拿到环境返回的下一状态,再回溯搜索。它用的是 oracle 下一状态(环境真实返回的下一状态),信息条件最好。

卡点:回溯要把之前的动作序列重新执行一遍。论文测到每个实例平均 748.3 秒、$2.7 API 成本;性能上限 19.2%,但代价让它很难规模化。

两条路之间留下一个明显的空档:oracle 下一状态很有用,但太贵;能不能用一个学出来的模型,便宜地近似它?论文的预实验正好说明这个近似值得做——模型自己预测不准,但「看到后果」对选择帮助很大。

注意两张图的差别:预测下一状态是「生成能力」,四个模型都很差;在给定下一状态后选动作是「判别能力」,四个模型都明显更好。WMA 的设计就是把难的那一半交给专门训练的小模型,把容易的那一半留给大模型。

03

把「预演」拆成三个模块:提议、模拟、打分

策略模型只负责提出可能,世界模型负责写出后果,价值函数负责挑一个未来。

WMA 不在推理时更新策略模型。它把决策拆成三个角色:策略模型 θ 采样候选动作;世界模型 φ 对每个候选预测下一观测;价值函数 V 给每个「预测出来的未来」打分,选分数最高的动作。

{õt+1i}i=1k = { φ(ot, ati, I) }i=1k

ât = argmaxat ∈ {at1, …, atk} V(I, ot, at, õt+1i)
Eq. 2–3:先让世界模型把每个候选动作「演」一遍,再让价值函数在这些预演结果上取 argmax
策略 θ

提议候选

用 top-p 采样 20 个动作,保留出现频率最高的 3 个。θ 保持冻结,不训练,也不更新参数。

所以 WMA 可以套在现成策略模型上;代价是候选集的质量决定了上限。

世界模型 φ

预演后果

输入用户指令 I、当前观测 ot、候选动作 ati,输出一句自然语言描述的下一观测 õt+1。

主干是 Llama-3.1-8B-Instruct,用下一 token 预测训练。

价值 V

给未来打分

看 (I, ot, at, õt+1),估计这个动作离目标有多近,取分数最高的动作。

价值函数也是 Llama-3.1-8B,用 Mind2Web 的进度奖励 t / len(τ) 微调。

关键工程:不预测整页,只预测「变了什么」

直接把完整 accessibility tree 当训练目标有两个问题。第一,网页一次操作通常只改一小块,大部分内容原样重复,信息增益很低;第二,整棵树平均约 4K tokens,训练和推理都很贵。

论文的做法叫 Transition-focused Observation Abstraction(TaO):先用匈牙利算法把 ot 和 ot+1 的元素匹配起来。每个元素有 name、role、location 三个属性,三者拼成匹配代价矩阵;匹配不上的元素就是新增或删除,匹配上但内容变了就是更新。于是得到一份机械的差异列表 Δ(ot, ot+1),再让一个 LLM 把它写成一句自然语言 õt+1。

指令 I 用户目标 观测 oₜ accessibility tree 动作 aₜ 候选之一 世界模型 φ Llama-3.1-8B õₜ₊₁ · 下一状态描述 只写「变了什么」
示意图:世界模型的一次前向。输入是三元组,输出不是整页 HTML,而是一句描述状态变化的自然语言。

训练目标就是标准的下一 token 预测:

Lφ = − log p( õt+1 | ot, at, I )
Eq. 1:模型学的是「在这个页面、点这个动作、为了这个目标,接下来会看到什么」

自己动手:三个候选动作,先预演再执行

下面是一个示意场景:目标是在购物网站买一双 42 码、预算 $80 的跑鞋。策略模型给出三个候选动作,世界模型分别预演后果,价值函数给三个「未来」打分。先选一个动作看预演,再执行看真实结果。

世界模型预演 · õt+1
选中一个动作,世界模型会在这里写出它预测的下一状态。
真实执行 · ot+1
执行后,这里显示环境真正返回的观测。
V 会在三个预演结果上打分;分数最高的是 argmax。
当前推演
先选一个动作。注意:V 只看预演描述,不核对现实。

这个模拟里的页面状态、0–1 分值和错误类型是为讲解机制构造的,不是论文实验数据。论文的真实数字在 06 节;错误类型分类来自论文 6.2 节。

04

训练一个 8B 世界模型,只要 3 个 GPU 小时

难点不在算力,而在把「整页预测」改写成「状态差异预测」。

  1. 收集轨迹 让 LLM 代理在环境里跑任务,记录 {I, ot, at, ot+1}。WebArena 没有公开训练集,论文用 LLM 合成了 870 条指令,每条采样 l=5 条轨迹,共 14,200 个实例;Mind2Web 直接用离线训练轨迹。
  2. 抽取状态差异 用匈牙利算法匹配前后两页的元素,代价由 name、role、location 三项组成,得到 ADDED / DELETED / UPDATED 三类变化。
  3. 改写成自然语言 把结构化差异交给 LLM,写成一句简洁描述 õt+1,替换掉原始整页观测,得到训练集 D̃。
  4. 下一 token 预测 在 (I, ot, at) 上微调 Llama-3.1-8B-Instruct,让它生成 õt+1。学习率 1e-5、2 个 epoch、8 张 RTX 4090,世界模型和价值函数合计约 3 GPU 小时。
训练账本

数据是瓶颈,不是算力

WebArena 侧只有 870 条合成指令、14,200 个实例;Mind2Web 侧用现成离线轨迹。世界模型的全部训练成本约 3 GPU 小时——这比大多数人预期的「训练一个环境模拟器」便宜得多。

真正的成本在数据覆盖:合成指令是否覆盖真实用户目标,直接决定世界模型见过多少种页面转移。

推理账本

3 次预演,1 次真实执行

每步从策略模型采样 20 个动作,保留 3 个;世界模型对这 3 个动作各做一次前向,价值函数再各打一次分,最后只把 1 个动作真正执行到环境里。

对比树搜索:每实例 140.3 秒 / $0.4,树搜索是 748.3 秒 / $2.7。省下来的就是「不真的执行、也不回溯」。

每步成本 ≈ k × (世界模型前向 + 价值函数打分) + 1 次真实执行
k = 3(从 20 个采样动作里保留)
k 越大,探索越充分,但世界模型和价值函数的调用次数线性增长
为什么不能直接用 prompting 的世界模型?消融里的 17.5% vs 22.0%

论文对比了一个变体:不训练世界模型,直接用 GPT-4o-mini + 2-shot 示例让它预测下一状态。结果整体 SR 只有 17.5%,低于完整 WMA 的 22.0%。这与预实验 I 的结论一致——现成 LLM 对网页环境动态的知识不够。

另一个变体是「不做观测抽象」:让世界模型直接生成完整的 accessibility tree。它的整体 SR 只有 14.5%,是所有消融里最差的。说明「只预测变化」不是省 token 的小技巧,而是决定世界模型能不能学到关键动态的核心设计。

05

一条训练流水线,一条推理流水线

训练时把轨迹压成「状态差异」;推理时把候选动作展开成「三个未来」。

训练

从轨迹到世界模型

STEP 1轨迹数据{I, oₜ, aₜ, oₜ₊₁}
→
STEP 2匈牙利匹配name / role / location
→
STEP 3Δ 差异列表ADDED / DELETED / UPDATED
→
STEP 4LLM 改写õₜ₊₁ 自然语言
→
STEP 5微调 φLlama-3.1-8B

训练目标不是「重建整页」,而是「写出这一步变了什么」。这让 4K token 的整树预测变成一句短描述。

推理

从当前页到一次真实点击

输入oₜ + I当前页 + 用户目标
→
策略 θ采样 20 个动作保留 3 个高频候选
→
世界模型 φ预演 3 个未来õₜ₊₁¹ … õₜ₊₁³
→
价值 V给 3 个未来打分argmax 选动作
→
环境只执行 1 次拿到真实 oₜ₊₁

真实环境只在最后被调用一次。世界模型负责「想」,环境负责「验收」;下一步再把真实 ot+1 喂回策略模型。

这套流程的关键取舍是:把探索成本从「真实网页交互」搬到「一次 LLM 前向」。树搜索之所以贵,是因为它要在真实环境里展开分支并回溯;WMA 只在文本空间里展开三个分支,所以成本低了一个量级。

为什么只保留 3 个候选?k 的权衡

论文在附录里说明:先用 top-p = 1.0 采样 20 个动作,再取出现频率最高的 3 个。这样做的原因是控制世界模型和价值函数的调用次数——每多一个候选,就要多一次世界模型前向和一次价值打分。

Figure 6 显示,采样动作数 k 增大时 SR 呈上升趋势,但论文没有给出逐点的具体数值表。也就是说,3 是一个成本约束下的工程选择,不是理论最优;预算允许时,扩大候选集还有收益。

06

收益主要来自「选择」,不是「更会做」

最反直觉的一张表:WMA 不启用 action selection 时,反而比 Vanilla CoT 还低。

先看 WebArena 主表。所有数字都来自论文 Table 1,策略模型为 GPT-4o 或 GPT-4o-mini。

策略 LLM方法Max actionsSR 无选择SR 有选择Δ
GPT-4oVanilla CoT3013.1%——
GPT-4oTree search515.0%19.2%+28.0%
GPT-4oWMA512.8%16.6%+29.7%
GPT-4o-miniWMA59.4%13.5%+43.6%

Table 1。WMA 的 12.8% 是「不启用 action selection」的成绩,低于 Vanilla CoT 的 13.1%;16.6% 才是启用后的结果。注意两者的 max actions 也不同:CoT 为 30,WMA 为 5。Tree search 的 19.2% 用的是 oracle 下一状态,WMA 用的是世界模型模拟。

反直觉

12.8 < 13.1:世界模型本身不提升基础策略

WMA 的「无选择」列只有 12.8%,比 Vanilla CoT 的 13.1% 还低。一个关键原因是它先采样 20 个动作、只保留 3 个高频候选,再直接取其中一个——没有价值函数的重排,这个候选集反而比 CoT 的贪心解码更差;另一个差异是两者的 max actions 不同(CoT 30、WMA 5),所以这组对比不是完全受控的。

真正带来提升的是「预演 + 重排」:16.6% 相对 12.8% 的 +29.7%,来自在世界模型给出的未来上做选择。所以 WMA 的定位不是「更强的策略模型」,而是给现有策略加一层基于模拟的选择器。

分领域:Gitlab 和 Map 提升最大,Shopping 几乎没动

用 GPT-4o-mini 做策略模型时,各领域相对 CoT 的提升差异很大。下图是论文 Table 2 的原始数字。

Shopping
18.8
19.3
CMS
8.2
11.5
Reddit
5.3
7.9
Gitlab
3.1
8.7
Map
11.6
22.3
Overall
9.4
13.5
Vanilla CoT WMA(GPT-4o-mini)

Table 2:Gitlab +181%、Map +92%、Reddit +49%、CMS +40%、Shopping 仅 +3%。论文把 Shopping 的小幅提升归因于它的状态空间大——商品列表随查询变化,世界模型更难学准。

Mind2Web:跨任务涨得多,跨网站和跨领域只涨一点

设定AWMAWM + WMAΔ
Cross-Task15.3%25.4%+10.1
Cross-Website6.2%8.5%+2.3
Cross-Domain9.5%10.1%+0.6

Table 3,策略模型为 GPT-3.5-Turbo。Cross-Task 的 EA / AF1 / Step SR 分别为 79.9% / 75.8% / 67.0%(EA = element accuracy,AF1 = action F1)。AWM 默认的 element filtering 会把 Cross-Task SR 压到 4.8%,所以这里的 AWM 是 w/o EF 版本。

这组数字比 WebArena 更能说明边界:同一个世界模型,在同分布的新任务上能把 SR 从 15.3% 拉到 25.4%,但换到新网站只多 2.3 个点、换到新领域只多 0.6 个点。世界模型学到的动态,仍然贴着训练时的网站结构。

补充:把截图也交给世界模型Appendix A · Table 8

论文附录 A 做了一个多模态扩展:用 Qwen2-VL-2B 做世界模型,在 Mind2Web Cross-Task 上比较纯文本和「文本 + 截图」。纯文本 SR 为 23.7%,加入截图后升到 36.7%;EA / AF1 / Step SR 也从 79.2 / 75.1 / 65.0 升到 83.0 / 78.9 / 72.8。

注意这是同一主干(Qwen2-VL-2B)内部的对比,不能直接把 36.7% 和主表的 25.4%(Llama-3.1-8B 纯文本)横比——两者换了模型。论文的结论是:视觉模态本身带来了明显增益,且用更精细的图像提示(如 Set-of-Marks)还有空间。

效率:便宜 6.8 倍、快 5.3 倍,但不是每个领域都赢

指标 / 领域Tree searchWMA
API 成本 / 实例$2.7$0.4
推理时间 / 实例748.3 s140.3 s
Shopping SR28.1%20.8%
CMS SR16.5%14.3%
Reddit SR10.5%10.5%
Gitlab SR13.3%13.3%
Map SR25.8%26.8%

Table 4,GPT-4o 策略。成本和时间在 10% 的 WebArena 实例上测;Tree search 的数字来自 Koh et al. 2024。Reddit、Gitlab 打平,Map 略高,Shopping 明显低。

论文的措辞是「comparable performance」:在 CMS、Reddit、Gitlab、Map 四个领域与树搜索接近,但没有全面超过。真正的优势是把 748 秒和 $2.7 压到 140 秒和 $0.4——如果任务量很大,这个差距比几个点的 SR 更影响可用性。

消融:抽象比训练更关键

设置Overall SR
奖励估计不看模拟下一状态(只用 ot, at)18.0%
世界模型不训练(GPT-4o-mini + 2-shot)17.5%
不做观测抽象(预测完整 accessibility tree)14.5%
完整 WMA22.0%

Table 5,200 个 WebArena 任务(Shopping 50 / Gitlab 50 / Map 100),GPT-4o-mini 策略。完整 WMA 的分领域 SR:Shopping 32.0%、Gitlab 14.0%、Map 21.0%。

三个消融分别拿掉「下一状态」「训练」「抽象」:去掉下一状态,价值函数退化成 Q 函数(18.0%);不训练世界模型,换成 prompting(17.5%);不做抽象,直接预测整棵树(14.5%)。抽象的影响最大,说明「预测什么」比「用多大的模型」更决定成败。

07

它解决的是「选得更好」,不是「看得更远」

论文自己的数据里,能读出四条硬边界和两条工程边界。

边界一

世界模型会编造不存在的未来

论文从 WebArena 里抽了 50 个错误预演,人工分类:反事实想象 42%、不熟悉网页组件 26%、描述正确但过于笼统 24%、其他 8%。反事实想象是最主要的一类——模型会「脑补」出商店里根本没卖的商品,或者一个并不存在的页面元素。

反事实想象 42% 低组件能力 26% 过于笼统 24% 其他 8%

覆盖率(预测描述覆盖真实观测句子的比例)也说明它还远不够准:用 GPT-4o 当 judge,GPT-4o-mini 的世界模型覆盖真实观测的 33.50%,GPT-4o 是 33.85%,论文训练的世界模型是 42.99%(Table 10,100 个样本)。提升明显,但离「可靠模拟器」还有距离。

边界二

绝对性能仍低于 oracle 树搜索

GPT-4o 策略下,WMA 有选择时是 16.6%,树搜索是 19.2%。论文的辩护是「相对提升更大」(+29.7% vs +28.0%),但绝对差距是实打实的:树搜索用 oracle 下一状态,WMA 用模拟,模拟误差会直接变成错误选择。

如果环境查询很便宜、或者任务对正确率的要求高于成本,树搜索仍然是更强的上限。

边界三

单步有效,多步会漂

WMA 的主实验是单步预演。把世界模型接进多步搜索后,误差会随深度累积。论文 Table 9 的结果:(w=1,d=1) 7.1%、(w=2,d=1) 10.1%、(w=3,d=1) 17.1%、(w=3,d=3) 19.6%、(w=9,d=1) 20.5%。

同样的探索预算下,加宽(更多候选)比加深(更多步模拟)更划算。论文还指出一个很工程的问题:页面重新加载后,后端算出的 element ID 可能变化,搜索时选中的元素在执行时可能对不上。

边界四

换网站、换领域,增益迅速衰减

Mind2Web 的 Cross-Task 涨 10.1 个点,但 Cross-Website 只涨 2.3 个点,Cross-Domain 只涨 0.6 个点。世界模型学到的页面动态和训练网站强相关;到了新网站,预演质量下降,选择器也跟着失效。

论文没有给出在线更新世界模型的实验。真实网站还会变版、改库存、换文案,这些都是离线训练的盲区。

边界五

价值函数是另一个瓶颈

价值函数用 Mind2Web 的进度奖励 t / len(τ) 微调,学的是「离目标走了多远」,不是「任务最终是否成功」。论文对比过:prompted GPT-4o-mini 做价值函数是 12.7%,微调 Llama-3.1-8B 是 13.5%——只差 0.8 个点。

如果价值函数有偏,世界模型预演得再准也会选错。WMA 把「模拟」和「评估」拆成两个模型,但也把误差来源变成了两个。

边界六

候选集是天花板

策略模型是冻结的,每步只保留 3 个候选。如果正确动作根本没被采样出来,世界模型和价值函数都无能为力。论文 Figure 6 显示 k 增大时 SR 有上升趋势,但每多一个候选就多一次世界模型前向和一次价值打分,成本和收益要一起算。

换句话说:WMA 只能重排策略模型已经想到的动作,不能替它想出没想到的动作。

什么时候别用

一句话总结:WMA 把「试错」换成了「预演」,但预演的质量就是它的上限。它适合作为现有 web agent 的一层可插拔选择器,而不是替代策略模型或环境交互的万能方案。