Deep Research 技术综述
2026-01-23 · Qi Lu · Views:
Deep Research 是一类让 LLM 自主进行多步骤信息检索与综合分析的技术。本文从方法论角度综述这一领域的核心技术,包括迭代检索框架、基于强化学习的端到端训练、以及多代理协作架构。
1. 问题形式化
1.1 从单轮 RAG 到多轮研究
传统 RAG 采用单轮检索-生成范式。给定查询 $q$,系统检索文档集 $D = \text{Retrieve}(q)$,然后生成回答:
\[a = \text{LLM}(q, D)\]这种方式的局限在于:单次检索难以覆盖复杂问题所需的多方面信息,且无法根据中间结果调整搜索策略。
Deep Research 将问题扩展为序贯决策过程。给定初始查询 $Q$,系统需要执行一系列动作 $a_1, a_2, …, a_T$,每个动作可能是:
- 生成子查询 $q_t$
- 执行搜索获取文档 $D_t$
- 综合已有信息生成中间结论
- 输出最终报告
1.2 形式化定义
将 Deep Research 建模为马尔可夫决策过程 (MDP):
- 状态 $s_t = (Q, H_t)$:初始查询 $Q$ 与历史交互 $H_t = {(q_1, D_1), …, (q_{t-1}, D_{t-1})}$
- 动作 $a_t$:生成查询、调用工具、或生成输出
- 转移 $P(s_{t+1} \mid s_t, a_t)$:由搜索引擎返回结果决定
- 奖励 $R(s_T, a_T)$:最终报告的质量评估
目标是学习策略 $\pi$ 最大化期望奖励:
\[\pi^* = \arg\max_\pi \mathbb{E}_{\tau \sim \pi}\left[\sum_{t=1}^{T} \gamma^{t-1} R_t\right]\]不同的方法在如何定义动作空间、如何训练策略、以及如何设计奖励函数上有所不同。
2. 方法分类
根据策略获取方式,现有方法可分为三类:
3. 基于提示的迭代检索
3.1 核心思想
通过精心设计的提示,让 LLM 在推理过程中自主决定何时检索、检索什么。这类方法不需要额外训练,依赖 LLM 的 instruction following 能力。其核心优势是部署简单、通用性强,但策略的质量完全取决于提示设计。
3.2 ReAct 框架
ReAct (Reason + Act) 是这类方法的基础范式,其核心思想是让模型在行动前先进行显式推理,形成”思考-行动-观察”的循环。
形式化定义
在时间步 $t$,模型基于当前状态 $s_t$ 生成三元组 $(\text{thought}_t, a_t, o_t)$:
\[p(\text{thought}_t, a_t, o_t \mid s_t) = p(\text{thought}_t \mid s_t) \cdot p(a_t \mid s_t, \text{thought}_t) \cdot p(o_t \mid a_t)\]其中:
- $\text{thought}_t$ 是模型的内部推理,用自然语言表达当前的思考过程
- $a_t \in \mathcal{A}$ 是动作,$\mathcal{A} = {\texttt{Search}[q], \texttt{Lookup}[term], \texttt{Finish}[answer]}$
- $o_t$ 是环境返回的观察结果
状态更新为 $s_{t+1} = s_t \oplus (\text{thought}_t, a_t, o_t)$,其中 $\oplus$ 表示序列拼接。
执行流程
与 Chain-of-Thought 的区别
ReAct 的关键创新在于将推理与外部工具交互交织在一起。对比标准 CoT:
| 方面 | Chain-of-Thought | ReAct |
|---|---|---|
| 知识来源 | 仅模型内部知识 | 内部知识 + 外部检索 |
| 推理形式 | 连续推理链 | 推理与行动交替 |
| 可验证性 | 低(幻觉风险) | 高(有外部依据) |
| 适用任务 | 纯推理任务 | 需要信息获取的任务 |
3.3 迭代检索的查询分解
复杂研究任务通常无法通过单次检索完成。查询分解将复杂问题转化为可检索的子问题序列。
静态分解
给定查询 $Q$,一次性分解为子查询集合:
\[\{q_1, q_2, ..., q_k\} = \text{Decompose}(Q)\]对每个子查询独立检索,然后综合:
\[a = \text{Synthesize}(Q, \{(q_i, D_i)\}_{i=1}^k)\]动态分解
更灵活的方式是根据已获取的信息动态调整后续查询。定义知识空白:
\[\text{Gap}_t = \text{Required}(Q) \setminus \text{Coverage}(H_t)\]其中 $\text{Required}(Q)$ 是回答 $Q$ 所需的信息集合,$\text{Coverage}(H_t)$ 是历史检索 $H_t = {(q_1, D_1), …, (q_{t-1}, D_{t-1})}$ 已覆盖的信息。
下一个查询基于当前空白生成:
\[q_t = \arg\max_{q} \mathbb{E}_{D \sim \text{Retrieve}(q)}[\text{InfoGain}(q, D \mid H_t)]\]其中 $\text{InfoGain}$ 衡量新检索对填补知识空白的贡献。
实践中的分解策略
输入: 复杂查询 Q
输出: 研究报告 A
1. 初始化 H_0 = ∅
2. 生成初始分解 {q_1, ..., q_k} = Decompose(Q)
3. for t = 1 to T:
a. 执行检索 D_t = Retrieve(q_t)
b. 更新历史 H_t = H_{t-1} ∪ {(q_t, D_t)}
c. 识别知识空白 Gap_t
d. if Gap_t = ∅: break
e. 生成新查询 q_{t+1} 填补 Gap_t
4. return Synthesize(Q, H_T)
3.4 局限性分析
基于提示的方法存在根本性局限:
策略不可学习:搜索策略完全由提示决定,无法从环境反馈中优化。即使某个查询策略表现不佳,系统也无法自动调整。
错误累积:在长序列推理中,早期的错误会传播到后续步骤。设每步的错误率为 $\epsilon$,$T$ 步后的成功率为 $(1-\epsilon)^T$,随着 $T$ 增大迅速下降。
提示工程瓶颈:性能高度依赖提示设计,而最优提示因任务、模型、搜索引擎而异,难以泛化。
这些局限性推动了基于学习的方法发展——既然 Deep Research 是序贯决策问题,为何不用强化学习直接优化策略?
4. 基于强化学习的端到端训练
4.1 动机
既然 Deep Research 可以形式化为 MDP,自然的想法是用强化学习直接优化策略。与基于提示的方法相比,RL 训练可以:
- 从环境反馈中学习最优搜索策略
- 涌现出人工难以设计的能力(如信息交叉验证)
- 针对特定任务和搜索引擎优化
4.2 DeepResearcher:真实环境中的 GRPO 训练
DeepResearcher (GAIR-NLP, EMNLP 2025) 是首个在真实网络搜索环境中进行端到端 RL 训练的框架。
训练目标
采用 Group Relative Policy Optimization (GRPO),完整目标函数为:
\[\mathcal{J}(\theta) = \mathbb{E}\left[\frac{1}{G}\sum_{i=1}^{G}\left[\min\left(\frac{\pi_\theta(y_i \mid x)}{\pi_{\theta_{\text{old}}}(y_i \mid x)} \cdot \hat{A}_i, \text{clip}(\cdot, 1-\epsilon, 1+\epsilon) \cdot \hat{A}_i\right) - \beta \mathbb{D}_{\text{KL}}(\pi_\theta \| \pi_{\text{ref}})\right]\right]\]其中组内相对优势为:
\[\hat{A}_i = \frac{R(\tau_i) - \text{mean}(\{R(\tau_j)\}_{j=1}^G)}{\text{std}(\{R(\tau_j)\}_{j=1}^G)}\]关键超参数:$G=16$(每 prompt 的 rollout 数),$\epsilon$ 为裁剪参数,$\beta$ 为 KL 散度系数。
奖励函数
采用双组件设计:
\[R = r_{\text{format}} + r_{\text{performance}}\]格式惩罚确保输出结构正确:
\[r_{\text{format}} = \begin{cases} -1 & \text{结构错误} \\ 0 & \text{格式正确} \end{cases}\]性能奖励基于 Word-level F1:
\[r_{\text{performance}} = \text{F1}(y_{\text{pred}}, y_{\text{gold}}) = \frac{2 \cdot P \cdot R}{P + R}\]观测掩码
工具返回的内容(搜索结果、网页内容)在训练时被掩码,只有模型生成的 token 参与梯度计算,避免外部内容干扰策略学习。
实验结果
| 数据集 | DeepResearcher | Search-R1 | R1-Searcher |
|---|---|---|---|
| NQ | 39.6 | 45.4 | 35.4 |
| TriviaQA | 78.4 | 71.9 | 73.1 |
| HotpotQA | 52.8 | 55.9 | 44.8 |
| 2WikiMQA | 59.7 | 44.6 | 59.4 |
相比 prompt engineering 基线提升 28.9 分,相比 RAG-based RL 代理提升 7.2 分。
涌现行为
训练过程中模型自发学会:制定搜索计划、交叉验证信息、承认不确定性。
4.3 Search-R1:推理过程中的动态检索
Search-R1 (COLM 2025) 将检索集成到推理模型的思维链中,让 LLM 在逐步推理过程中自主生成搜索查询。
交互格式
模型在生成推理链时,可以插入搜索调用:
\[y = y_1, ..., y_i, \texttt{<search>}, q, \texttt{</search>}, \texttt{<info>}, d, \texttt{</info>}, y_{i+1}, ...\]其中 $q$ 是模型生成的查询,$d$ 是检索返回的文档(包裹在 <information> 标签中)。
GRPO 损失函数
\[\mathcal{J}_{\text{GRPO}}(\theta) = \mathbb{E}\left[\frac{1}{G}\sum_{i=1}^{G} \frac{1}{\sum_{t} I(y_{i,t})} \sum_{t:I(y_{i,t})=1} \min(\cdot)\hat{A}_{i,t} - \beta \mathbb{D}_{\text{KL}}[\pi_\theta \| \pi_{\text{ref}}]\right]\]检索 Token 掩码
定义指示函数 $I(y_t)$:
\[I(y_t) = \begin{cases} 1 & y_t \text{ 是 LLM 生成的 token} \\ 0 & y_t \text{ 是检索返回的 token} \end{cases}\]掩码操作排除检索内容参与优化,避免外部内容的随机性导致高方差梯度。
消融实验 (LLaMA3.2-3b-base):
- 有掩码:0.305 EM
- 无掩码:0.147 EM
奖励函数
采用简单的基于结果的奖励:
\[r(x, y) = \text{EM}(a_{\text{pred}}, a_{\text{gold}})\]使用规则奖励而非神经奖励模型,避免 reward hacking。
实验结果
在多个 QA 数据集上的平均相对提升:
| 模型 | 相对提升 |
|---|---|
| Qwen2.5-7B | +26% |
| Qwen2.5-3B | +21% |
| LLaMA3.2-3B | +10% |
4.4 R1-Searcher:两阶段奖励训练
R1-Searcher 采用两阶段训练策略,分别学习”何时检索”和”如何回答”。
阶段一:学习检索调用
奖励鼓励模型学会正确调用检索:
\[R_1 = R_{\text{retrieval}} + R_{\text{format}}\]其中:
\[R_{\text{retrieval}} = \begin{cases} 0.5 & n \geq 1 \text{ (至少调用一次检索)} \\ 0 & n = 0 \end{cases}\]阶段二:学习答案准确性
基于 F1 的答案奖励:
\[R_2 = \text{F1} + R'_{\text{format}}\]其中 F1 计算预测与参考答案的词级匹配:
\[\text{F1} = \frac{2 \cdot \text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}}\]实验结果
基于 Qwen-2.5-7B-Base 的 F1 分数:
| 数据集 | R1-Searcher (F1) | 相比 ReARTeR |
|---|---|---|
| HotpotQA | 71.9 | +48.2% |
| 2WikiMQA | 63.7 | +21.7% |
| Bamboogle (OOD) | 50.4 | - |
4.5 WebRL:自演化课程学习
WebRL (ICLR 2025) 提出课程强化学习框架,解决 RL 训练中的冷启动问题。
自演化课程
从失败轨迹中生成新任务,采用广度优先进化:
\[\mathcal{T}_{t+1} = \mathcal{T}_t \cup \text{Filter}(\text{Generate}(\text{Failures}(\mathcal{T}_t, \pi_t)))\]过滤条件:critic 分数在 $[0.05, 0.75]$ 之间(避免过易或过难)。
结果监督奖励模型 (ORM)
通过二元分类评估轨迹成功:
\[r = \begin{cases} 1 & P(\text{YES}) > P(\text{NO}) \\ 0 & \text{otherwise} \end{cases}\]ORM 准确率达 80.8%,超过 GPT-4-Turbo 的 71.9%。
Actor-Critic 训练
策略更新目标:
\[\max_{\pi_\theta} \mathbb{E}\left[\sum\left(r(s_t, a_t) + \beta \log \pi_{\text{ref}}(a_t \mid s_t)\right) + \beta \mathcal{H}(\pi_\theta)\right]\]优势估计平衡偏差-方差:
\[A(s_t, a_t) = \lambda(r + V(s_{t+1}) - V(s_t)) + (1-\lambda)(r_T - V(s_t))\]其中 $\lambda = 0.5$。
经验回放过滤
仅选择 perplexity 在 $[1/0.95, 1/0.5] \approx [1.05, 2.0]$ 范围内的动作,排除过于熟悉(perplexity 过低)和过于困难(perplexity 过高)的经验。
实验结果
| 模型 | WebRL | GPT-4-Turbo | 提升 |
|---|---|---|---|
| Llama-3.1-8B | 42.4% | 17.6% | +141% |
| Llama-3.1-70B | 49.1% | 17.6% | +179% |
4.6 方法对比
| 方法 | 训练算法 | 环境 | 奖励设计 | 关键创新 |
|---|---|---|---|---|
| DeepResearcher | GRPO | 真实网络搜索 | Format + F1 | 端到端真实环境 |
| Search-R1 | GRPO | Wikipedia + 搜索 | EM | 检索 token 掩码 |
| R1-Searcher | Reinforce++ | RAG | 两阶段 F1 | 分阶段学习 |
| WebRL | Actor-Critic | WebArena | ORM | 自演化课程 |
核心技术差异
- 环境真实性:DeepResearcher 使用真实搜索引擎,其他方法多用静态语料
- 奖励信号:WebRL 使用学习的 ORM,其他方法用规则奖励
- 训练稳定性:Search-R1 的掩码机制、R1-Searcher 的两阶段设计都是为了稳定训练
5. 基于多代理的协作架构
5.1 动机
单一模型难以同时具备规划、检索、分析、写作等多种能力。多代理架构通过专门化分工解决这一问题。
5.2 STORM:多视角问答
STORM (Stanford, NAACL 2024) 模拟研究人员的工作方式:通过多视角对话收集信息。核心思想是写作前的信息收集比直接生成更重要。
视角发现
给定主题 $T$,通过相似主题的 Wikipedia 文章发现相关视角。设已有文章集合为 $\mathcal{W}$,视角发现过程为:
\[\{v_1, ..., v_k\} = \text{Discover}(T, \text{TopK}(\text{Sim}(T, \mathcal{W})))\]例如对于主题”深度学习”,可能发现视角包括:研究者、工程师、伦理学家、投资者等。
视角引导问答算法
每个视角的作者代理 $\mathcal{A}_v$ 与专家代理 $\mathcal{E}$ 进行多轮对话。问题生成考虑三个因素:
- 主题相关性:问题应与主题 $T$ 相关
- 视角一致性:问题应反映视角 $v$ 的关注点
- 历史避免重复:问题不应与已有对话 $\text{dialogue}_{<t}$ 重复
形式化为:
\[q_t = \arg\max_q \left[\text{Rel}(q, T) + \text{Align}(q, v) - \text{Overlap}(q, \text{dialogue}_{<t})\right]\]实践中通过 prompt 实现:让 LLM 扮演特定视角的作者,基于已有对话生成下一个问题。
专家代理的检索增强回答
专家代理 $\mathcal{E}$ 使用检索增强生成回答:
\[a_t = \text{LLM}\left(q_t, \text{Retrieve}(q_t)\right)\]关键设计:专家回答时必须引用来源,确保可追溯性。
大纲生成
收集完所有视角的对话后,生成文章大纲:
\[\text{Outline} = \text{Organize}\left(\bigcup_{i=1}^k \text{dialogue}_i\right)\]大纲组织遵循层次结构,自动识别章节和子章节。
完整流程
输入: 主题 T
输出: 带引用的长文章
1. 视角发现:
similar_pages = Retrieve(T, Wikipedia)
perspectives = Extract(similar_pages)
2. 模拟对话 (对每个视角并行):
for v in perspectives:
author = LLM.roleplay(v)
expert = RAG_enabled_LLM
dialogue[v] = MultiTurnConversation(author, expert)
3. 大纲生成:
all_info = Merge(dialogue.values())
outline = GenerateOutline(T, all_info)
4. 文章生成:
for section in outline:
content[section] = Generate(section, relevant_dialogue)
5. 后处理: 添加引用、润色
Co-STORM 扩展
Co-STORM 将用户引入协作环中,支持人机协作研究:
- 对话代理:理解用户意图,推进对话
- 发散代理:探索用户可能感兴趣的相关主题
- 收敛代理:将探索信息整合回主线
- 专家代理:提供检索增强的回答
形成 Turn-Level 协作:用户可随时介入对话、修正方向、追问细节。
实验结果
在 FreshWiki 数据集上,相比直接生成基线:
| 评估维度 | STORM 相对提升 |
|---|---|
| 文章组织性 | +25% |
| 信息覆盖广度 | +10% |
人工评估显示 STORM 生成的文章在组织性和覆盖度上均显著优于基线,且引用质量更高(引用能够支持对应陈述)。
5.3 分层代理架构
以 SkyworkAI DeepResearchAgent 为例:
┌─────────────────────────────────┐
│ 规划代理 (Planner) │
│ - 任务分解 │
│ - 进度监控 │
│ - 结果整合 │
└─────────────┬───────────────────┘
│
┌─────────┼─────────┐
▼ ▼ ▼
┌───────┐ ┌───────┐ ┌───────┐
│搜索代理│ │分析代理│ │写作代理│
└───────┘ └───────┘ └───────┘
代理间通信
代理通过结构化消息传递信息:
\[m_{i \to j} = (\text{type}, \text{content}, \text{metadata})\]规划代理维护全局状态,协调子代理执行。
5.4 与单代理方法的对比
| 维度 | 单代理 (RL) | 多代理 |
|---|---|---|
| 训练复杂度 | 高(端到端) | 低(可分别优化) |
| 推理开销 | 低 | 高(多次 LLM 调用) |
| 可扩展性 | 受限 | 易于添加新代理 |
| 错误处理 | 隐式 | 可在代理间显式传播 |
6. 评估方法
6.1 基准测试
| 基准 | 任务类型 | 规模 | 评估维度 |
|---|---|---|---|
| Humanity’s Last Exam | 博士级问答 | 3000+ | 准确率 |
| DeepSearchQA | 因果链推理 | 900 | 推理深度 |
| HotpotQA | 多跳问答 | 113k | F1, EM |
| FreshWiki | 长文生成 | - | 质量评估 |
6.2 评估指标
对于研究报告类任务,常用指标包括:
- 事实准确率:$\text{Acc} = \frac{\text{正确陈述数}}{\text{总陈述数}}$
- 信息覆盖度:$\text{Cov} = \frac{\mid \text{覆盖的关键点} \mid}{\mid \text{所有关键点} \mid}$
- 引用质量:引用是否支持对应陈述
7. 开放问题
-
奖励设计:如何定义”好的研究报告”?现有奖励函数难以捕捉研究质量的所有维度。
-
效率与质量的权衡:多轮检索提升质量但增加延迟,如何在有限预算下最大化信息增益?
-
幻觉控制:即使有检索增强,模型仍可能生成无据陈述。
-
泛化性:在特定搜索引擎上训练的策略能否迁移到其他环境?
参考文献
核心论文
- DeepResearcher: Scaling Deep Research via Reinforcement Learning in Real-world Environments (EMNLP 2025)
- Search-R1: Training LLMs to Reason and Leverage Search Engines with Reinforcement Learning (COLM 2025)
- WebRL: Training LLM Web Agents via Self-Evolving Online Curriculum Reinforcement Learning (ICLR 2025)
- Assisting in Writing Wikipedia-like Articles From Scratch with Large Language Models (STORM) (NAACL 2024)
- Search-o1: Agentic Search-Enhanced Large Reasoning Models
- R1-Searcher: Incentivizing the Search Capability in LLMs via Reinforcement Learning
Comments