RAG 把「先检索、再生成」写死成流水线,模型只能看到搜索引擎摘要。WebThinker 把搜索、点链接、写章节、查大纲、改报告全做成推理链里模型自己吐出的工具调用,搜索结果直接插回思考过程;再用迭代在线 DPO 教会它怎么用工具更划算。
难点不在「能不能搜」,而在谁来决定搜什么、搜到哪一层、什么时候够了。预定义 RAG 让外部脚本决定,推理模型只是个下游消费者;WebThinker 把这套决策交还给模型本身的思维链。
它只有两个模式:解题模式下,模型调用 Deep Web Explorer——一个由同一类 LRM 驱动的子 agent,内部还能继续搜索、点击链接;写报告模式下,主模型用 Tdraft / Tcheck / Tedit 边想边写,具体文字由「助手 LLM」(实验里是与骨干同尺寸的 Qwen2.5-Instruct)基于探索到的文档记忆去落地。
训练用的是自己采样 → 按三条规则排出偏好对 → 在线 DPO → 用新模型重新采样的闭环,两轮迭代。不加训练的 Base 版就已经全面超过 Search-o1,RL 版再把 GAIA 从 44.7 推到 48.5。
读完这节你应该明白:为什么一个只会被喂检索结果的推理模型,天花板在流程设计者手里。
LRM(如 QwQ-32B、DeepSeek-R1)的长链推理很强,但知识停在参数里。论文在 Table 1 里给了一组对照:QwQ-32B 直接作答,GPQA 平均 64.1,比 Qwen2.5-72B 的 49.5 高出一大截;可到了 GAIA 只有 22.3、WebWalkerQA 只有 4.3。推理能力不会自动换来前沿信息。
标准 RAG 把外部知识补进来,但论文 Figure 2 (a) 画的流水线是这样的:检索脚本固定发起搜索 → 拿回摘要 → 生成答案。模型从头到尾没机会说「这条摘要不够,我想点进去看原文」,也没机会说「这一节可以写了,先去写,后面缺数据再回来搜」。
RAG 的每一步检索都由外部代码触发,检索和推理之间只有一次性的信息交接。于是搜索深度被固定、搜索时机被固定、写作时机也被固定。要突破,就得让「搜索 / 导航 / 写作」变成模型思维链里可以随时发出、随时收结果的动作。
换个说法:这篇论文要的不是更强的检索器,而是把研究动作内化进模型的一次生成过程——模型仍在续写同一个思维链,只是中途插入「我去查一下」。
按论文 Table 1 / Table 2 的同口径数据看,多数 RAG 变体在需要真推理的 HLE 上几乎没有增益。
标准 RAG 只按原问题检索一次;Query Planning 先把问题拆子问题再检索;Iterative RAG 多轮补检索。作者把三者都接到 QwQ-32B 上。
GAIA 有效:24.3 → 32.0 → 35.0(Iterative),确实比直接作答的 22.3 好。
HLE 几乎没动:7.2 → 9.6 → 9.6,与直接作答的 9.6 持平。释义见本节末尾的提示。
Search-o1 让推理模型在思考中发出搜索,配合 Reason-in-Documents 模块把检索文档压缩后插回推理链,可以说是 WebThinker 最接近的先行者。
明显优于 RAG:GAIA 39.8,HLE 10.8(Table 1 / Table 2,Search-o1-32B 评测数字)。
但只调用搜索引擎、拿摘要:论文指出它没有页面级导航,无法顺着链接深入。
两个程序给出的最优路线合起来提示了缺口:搜索要自主(学 Search-o1),探索要更深(超过只读摘要),而且写作也要被纳入同一个思考过程——这三件事正好对应 WebThinker 的三个组件。
论文 §4.4 的说法是:RAG 在 GAIA、WebWalkerQA 这类「找信息」任务上能提升,但在需要「推理与搜索深度融合」的 HLE 上增益不稳定。换句话说,问题变成「搜到这页之后,该不该相信、下一步该查什么」,这需要模型自己连续做判断,而不是外部脚本排好队。
另一个值得留意的现象:Table 1 里 GPQA 一列,RAG 迭代版对 QwQ-32B 只有 65.2,而 Search-o1 是 67.2、WebThinker Base 是 68.7。(本页推断:GPQA 是「Google-proof」题,多检索可能反而引入噪声——论文只给出上述数字,未对此作解释。)
三个组件对应三个能力:深度探索(Deep Web Explorer)、边想边写(Think-Search-and-Draft)、用得省(在线 DPO)。
论文 Eq. 1 给了解题模式的目标分布:思维链 R 的每个 token,条件里除了之前的思考,还包含之前所有工具调用的输出;最后再生成答案 y。
实现上不靠特殊架构,全靠特殊 token:模型输出 <|begin_search_query|>…<|end_search_query|> 时生成暂停,系统执行搜索,把结果包在 <|begin_search_result|>…<|end_search_result|> 里插回上下文,模型继续往下想。整个研究过程是一次连续生成,加几次确定性插入。
主模型每发一次搜索,外面并不是直接调 Bing,而是把「原始问题 + 助手 LLM 生成的详细搜索意图 + top-10 网页正文」交给 Explorer(Eq. 3)。Explorer 自己有两种动作:直接调搜索引擎(拿标题、URL、摘要),或用 Crawl4AI 抓取某个链接的全文——长页面还会由助手 LLM 按「点击意图」摘要。它一直循环到自己认为信息够了,才输出一段 Final Information 还给主模型。
这正是 Chapter 02 里 RAG 缺少的「多跳」。论文附录 D 的 GAIA 案例:主模型先搜 Finding Nemo 主角鱼的非本土目击记录,得到「Fred Howard Park, Florida」;再搜这个公园的邮编得到 34689。而 ASH 会议截稿案例里,Explorer 直接点开一个 PDF 链接把附带会议的截稿时间也找了出来——这需要页面内的导航动作,单靠搜索引擎摘要做不到。
报告模式下,主模型多了三个写作工具,且都由「助手 LLM」(实验中与骨干同尺寸的 Qwen2.5-Instruct)在后台执行,不把整段文字塞回主推理链,以免打乱思考节奏:
给定章节名与写作要求,助手 LLM 从文档记忆 M 里取 top-k 文档写出这一节(Eq. 4)。
只返回当前报告的标题大纲,让主模型知道写到哪、还缺什么,而不是回灌全文。
按编辑指令让助手 LLM 输出整篇修改后的报告,修掉重复、补上遗漏。
所有探索过的网页都进入文档记忆 M。主模型的核心工作是编排:何时搜、搜到够了就写哪一节、什么时候回头检查、什么时候收尾(Eq. 5 里以 EOS 为终止)。
下面把附录 D 的找到 Nemo 那条 GAIA 题的真实轨迹压缩成 8 步。红框标出的步骤里,工具输出是插回主思考链的(S/I);蓝框是 Explorer 内部的动作;第 8 步只有最终答案 A。拖动进度,看每一步是谁在决定。
r 主模型思考
S 主模型发起搜索
I Explorer 返回信息
W 写章节
C 查大纲
E 改报告
A 最终答案
附录 D.1 的 GAIA 案例里,主模型共发出 3 次搜索,前两次对应“找地点”和“找地点→查邮编”,第 3 次是重复确认「只有这一处目击」,随后给出邮编 34689。本模拟把第 3 次重复确认折叠进第 7 步(主模型收尾),因此轨迹是 8 个标记而非原始文本的全部来回。
切到「报告模式」演示的是 Section 3.4 的另一种交错形态:r 想 → S 搜 → r 判断够了 → W 写一节 → C 查大纲 → E 改… → A 结束。两种模式的工具集合不同,但都共享同一条思维链。
工程上的关键约束是:验收信号只能来自最终答案对不对,于是「工具用得好不好」必须被编码成偏好规则。
训练数据来自六个数据集(SuperGPQA、WebWalkerQA Silver、OpenThoughts、NaturalReasoning、NuminaMath、Glaive),总量约 3k:先用 QwQ-32B 直接作答,只留下做错的题;每题再用 WebThinker-32B-Base 采 n 条轨迹。Glaive 另在每轮迭代采 1.5k 题做偏好构造。对同一题的两条轨迹 (Ri, Rj),按优先级从高到低判:
然后直接套标准 DPO 损失(Eq. 6),β 控制偏离参考策略的程度。真正的「在线」在于闭环:
D′;D ← D′、πref ← πθ,回到训练。实验配置上,论文 §4.3 写明的硬数字是:主实验骨架 QwQ-32B,助手为同尺寸 Qwen2.5-Instruct,生成上限 81,920 tokens,在线 DPO 2 轮,训练序列长度 32,768,Bing 搜索 k=10。换到 DeepSeek-R1 家族时,先做冷启动 SFT(从 QwQ-32B 版 WebThinker 采的 7.8k 条轨迹),再走同样的 RL 流程——这是为了让 R1 系列先学会稳定的工具 token 格式。
两种轨迹的「长度比」lenj/leni > γ 时,更短的 i 胜出。拖动按钮切 γ,下面按规则优先级逐条判定(数值是示例,仅用于理解规则,不是论文数据)。
论文 Table 3 左栏给了这套迭代机制的对照:离线 DPO(用旧的偏好集一次性训练)在四个基准上的平均是 43.2(比不做训练的 42.1 高 1.1 点),而迭代在线 DPO 是 45.4,比 Base 的 42.1 高 3.3 点、比离线 DPO 高 2.2 点。可见「用新策略重新采样」不是可有可无的修饰:换回一次性离线偏好集,一半以上的训练增益就没了。同时也要注意,RL 相对 Base 的绝对增益是 3.3 点,而消融里去掉了 Explorer 会掉到 38.3——地基仍是 Explorer。
注:论文 §4.7 正文把 RL 版平均误写为 44.9,与 Table 3 的 45.4 冲突,本节以 Table 3 为准。
下图重绘论文 Figure 3:两种模式共享 Explorer,报告模式额外接上三个写作工具和文档记忆。
Tcheck 返回的大纲即可判断进度。以下数字全部来自论文 Table 1、Table 2、Figure 4 和 Table 3,Pass@1,由 Qwen2.5-72B-Instruct 判对错。
两个反直觉的发现:
44.7、HLE 13.0,已经全面超过 Search-o1 的 39.8 和 10.8。换句话说,框架(Explorer + 工具调用格式)本身贡献了一大块,RL 是在此之上的加速。| 方法(32B 档) | GPQA | GAIA | WebWalkerQA | HLE |
|---|---|---|---|---|
| QwQ-32B 直接作答 | 64.1 | 22.3 | 4.3 | 9.6 |
| RAG-QwQ-32B w/ Iterative RAG | 65.2 | 35.0 | 31.5 | 9.6 |
| Search-o1-32B | 67.2 | 39.8 | 34.1 | 10.8 |
| WebThinker-32B-Base(免训练) | 68.7 | 44.7 | 41.9 | 13.0 |
| WebThinker-32B-RL | 70.7 | 48.5 | 46.5 | 15.8 |
| o3-mini (High),闭源参考 | — | — | — | 14.0 |
来源:Table 1(GPQA/GAIA/WebWalkerQA)、Table 2(HLE)。o3-mini 与 WebThinker 不是同一评测设定下的完整对比,仅作参照。
Table 3 左栏四基准平均(论文把四个平均称为 Avg.,并报告 RL 版为 45.4):
| 设置 | GPQA | GAIA | WebWalkerQA | HLE | Avg. |
|---|---|---|---|---|---|
| WebThinker-32B-RL | 70.7 | 48.5 | 46.5 | 15.8 | 45.4 |
| 换成离线 DPO | 69.2 | 45.6 | 44.0 | 14.2 | 43.2 |
| 不做训练(Base) | 68.7 | 44.7 | 41.9 | 13.0 | 42.1 |
| 去掉点击链接 | 69.7 | 42.7 | 42.6 | 15.2 | 42.6 |
| 去掉 Deep Web Explorer | 63.6 | 38.8 | 38.5 | 12.0 | 38.3 |
拆掉 Explorer,平均掉到 38.3,比不做训练的 42.1 还低——说明 Explorer 是地基。只去掉「点链接」平均掉到 42.6、GAIA 从 48.5 掉到 42.7,可见页面导航不是锦上添花。
| 方法 | 全面性 | 深入性 | 事实性 | 连贯性 | 平均 |
|---|---|---|---|---|---|
| RAG-Qwen2.5-72B | 5.7 | 5.3 | 6.4 | 6.3 | 5.9 |
| RAG-DeepSeek-R1 | 6.6 | 6.4 | 7.1 | 7.1 | 6.8 |
| Grok3 DeeperSearch | 6.4 | 6.1 | 7.0 | 6.5 | 6.5 |
| Gemini2.0 Deep Research | 8.1 | 8.0 | 7.7 | 7.7 | 7.9 |
| WebThinker-32B-Base | 8.4 | 8.2 | 7.7 | 7.8 | 8.0 |
| WebThinker-32B-RL | 8.3 | 8.4 | 7.7 | 7.9 | 8.1 |
注意 8.1 只是 32B 模型。Gemini2.0 Deep Research 是闭源系统,WebThinker 以 32B 骨干在四个维度上都不落下风。消融右栏还有一个信号:去掉「自主写报告」后平均掉到 6.6,是所有消融里跌幅最大的——边想边写是报告质量的主要来源,三个写作工具本身次之。
论文 §4.6 与 Figure 5 报告,WebThinker-R1-7B 相对直接作答在 GAIA 上提升 174.4%、WebWalkerQA 上 422.6%;相对标准 RAG 分别是 82.9% 和 161.3%。用 Figure 5(a)/(b) 的柱子可复核:GAIA 7.8→31.1、13.8→31.1;WebWalkerQA 3.8→13.8、4.2→13.8,与这四个百分比吻合。这是本文少有的「小模型也吃得上」的证据。
论文 §5 自己承认三条局限,附录里的评测设定又暴露出两条需要留意的边界。
模型文本输入文本输出,GAIA 只能用纯文本验证集 103 题,HLE 只能从 500 道纯文本样本中抽测。真实网页里大量信息在图表和图片中,这部分完全看不到。
工具是预先定义的特殊 token(搜索、点击、写、查、改)。换成新工具(代码解释器、数据库 API)需要重新教模型输出格式,并且训练信号的唯一验收是最终答案,新工具是否必然「用得好」没有做验证。
Explorer 只做「点链接 / 按钮」,不理解表单填写、滚动加载、验证码这类真实网页交互,也没有对失败页面的恢复策略。
问题对错由 Qwen2.5-72B-Instruct 判,报告质量由 DeepSeek-R1-671B 与 GPT-4o 打 listwise 分。附录 C.3.2 明确说不做人类评估(报告特征太明显、容易认出系统),并用随机排序缓解位置偏差——但裁判模型与骨干部分同源,仍可能有利好。8.3 与 8.1 这种差距落在打分误差带内。
每次主搜索都意味着抓 10 页、Explorer 多轮推理、助手 LLM 摘要;RL 训练又把序列压到 32,768。训练分布与推理分布之间的落差意味着,在解特别长的 WebWalkerQA 任务时,有多少次是被 max 81920 截断、有多少实际走完,论文没有单独报告。这种框架对推理成本是直接的放大。
一句话总结:WebThinker 解决的是「谁来编排研究动作」,不是「研究质量的上限」。它的增益主要来自 Explorer 的深挖能力(消融里去掉就掉到 38.3)。任务一旦需要看图、填表、操作复杂网页,就得换成多模态骨干或 GUI 级浏览器工具,并不存在「接上新工具就自动学会用」的保证。