QAgent: A modular Search Agent with Interactive Query Understanding


TL;DR

本文提出了 QAgent,一个统一的智能体 RAG 框架,它通过一个采用两阶段强化学习策略训练的模块化搜索智能体,进行交互式查询理解和自适应检索,从而提高了对复杂问题的检索质量和作为可插拔模块的泛化能力。

关键定义

相关工作

当前,大型语言模型在处理知识密集型任务时,面临知识过时和幻觉等挑战。检索增强生成 (Retrieval-Augmented Generation, RAG) 通过引入外部知识缓解了这些问题,但传统 RAG 的“检索-阅读”工作流过于僵化,难以处理需要多步推理的复杂查询。

为了提升灵活性,近期工作引入了查询优化、规划、反思和迭代检索等方法,形成了智能体 RAG (Agentic RAG) 的雏形。然而,这些方法大多缺乏有效的反馈和持续优化机制。基于强化学习 (Reinforcement Learning, RL) 的搜索智能体(如 Search-R1)虽然展示了强大的自主推理和决策能力,但在实际应用中仍面临两大瓶颈:

  1. 复杂查询理解不足:直接使用原始查询进行检索往往无法获取有效信息。
  2. 泛化能力有限:现有 RL 训练方法通常将检索和生成端到端优化,导致智能体可能过度拟合“信息利用”环节,而非专注于提升核心的“信息检索”能力,这使得其作为独立子模块部署时性能下降。

本文旨在解决上述问题,核心目标是:

  1. 设计一个能够理解和分解复杂查询,以弥合用户意图与检索器能力之间差距的搜索智能体。
  2. 提出一种训练策略,确保智能体在作为可插拔子模块时具备强大的泛化能力,专注于为下游任务提供高质量信息。

本文方法

本文提出了一个名为 QAgent 的统一智能体框架,其核心是一个通过多轮交互循环进行推理和检索的搜索智能体,并通过一种创新的两阶段训练策略进行优化。

创新点

本文方法的核心创新在于其为提升泛化能力而设计的两阶段训练策略,它将搜索智能体显式地定位为一个专注于“信息检索”的独立模块,而非一个端到端的问答系统。

多轮查询优化循环

QAgent 的工作流程被建模为一个序贯决策过程,智能体在一个循环中与检索系统进行多轮交互。

在每一轮 $t$,智能体遵循以下步骤:

  1. 计划 ($I^{pre}_{t}$): 基于历史信息和原始查询 $q$ 进行规划。
  2. 生成搜索查询 ($S_t$): 生成一组优化的查询 ${q_{t,1}, \dots, q_{t,m_t}}$。
  3. 检索与整合 ($C_t$): 执行搜索并聚合所有查询返回的文档,形成上下文 $C_t = \oplus_{j=1}^{m_i} \mathcal{R}(q_{ij})$。
  4. 反思 ($I^{post}_{t}$): 评估当前累积的信息是否足以回答问题,并决定是继续下一轮交互还是停止。

整个过程形成一个轨迹 $\tau=(q,I^{pre}_{1},S_{1},\mathcal{C}_{1},I^{post}_{1},\dots,\mathcal{C}_{T},I^{post}_{T},\hat{A})$。这种灵活的交互模式允许智能体根据上下文动态调整搜索策略,以应对不同类型的复杂查询。

两阶段强化学习训练策略

为解决现有 RL 训练智能体时泛化能力不足的问题,本文设计了一个两阶段的训练流程。

第一阶段:端到端强化学习训练

此阶段的目标是让智能体初步学会如何通过搜索来解决问题。训练采用端到端的方式,奖励函数直接与最终答案 $\hat{A}$ 的正确性挂钩:

\[R(\tau)=\mathbb{I}\{r_{\mathrm{fmt}}(\tau)=1\}\cdot\mathrm{EM\_{s}}(A^{\*},\hat{A}).\]

其中 $A^*$ 是标准答案,$\mathrm{EM_s}$ 代表严格精确匹配。这种方式能同时提升智能体的信息检索和信息利用能力。然而,本文分析发现,训练后期模型会倾向于通过提升自身的“信息利用”能力来“hacking”奖励,而不是继续优化“信息检索”能力,这会损害其作为通用检索模块的泛化性。

第二阶段:泛化强化学习训练

这是本文方法的核心,旨在将智能体训练成一个专注于信息检索的“子模块”。其关键设计是解耦检索与生成

  1. 智能体执行搜索,收集到一个文档集 $\mathcal{K}$。
  2. 使用一个固定的(frozen)、独立于智能体的生成器 $\mathcal{G}$,基于 $\mathcal{K}$ 和原始查询 $q$ 生成答案 $\tilde{A} = \mathcal{G}(q, \mathcal{K})$。
  3. 奖励函数基于这个外部生成器的答案 $\tilde{A}$ 来计算,而非智能体自身的答案:
\[R(\tau)=\mathrm{EM}(A^{\*},\tilde{A})+0.5*Hit(\tau,A^{\*})\]

其中 EM 为非严格匹配,Hit 表示智能体的完整轨迹中是否包含标准答案。

优点

这种两阶段设计的核心优点在于:

实验结论

实验在多个开放域问答数据集(包括多跳和单跳)上进行,验证了 QAgent 的性能和泛化能力。

主要结果

1. 端到端问答性能

如下表所示,QAgent 在端到端问答任务中表现出色,相较于同样基于 RL 训练的 Search-R1,在平均 EM 和 F1 分数上分别提升了 0.52% 和 2.66%。这证明了 QAgent 框架的整体有效性。


方法 2WikiMHQ HotpotQA Musique NQ TQA 平均
  EM/F1 EM/F1 EM/F1 EM/F1 EM/F1 EM/F1
Vanilla 12.0/20.8 13.0/22.4 4.8/10.0 22.8/30.3 25.6/31.0 15.6/22.9
Naive RAG 23.4/31.3 47.0/59.6 13.0/20.2 34.4/43.6 45.4/52.5 32.6/41.4
Search-o1 37.0/49.4 48.2/60.8 27.6/36.7 51.6/60.3 49.8/57.9 42.8/53.0
ZeroSearch 30.6/43.8 39.4/52.9 20.6/30.1 48.0/59.3 43.8/54.5 36.5/48.1
Search-R1 41.2/54.2 51.2/64.2 26.8/35.0 52.6/62.3 54.0/62.4 45.2/55.6
QAgent (本文) 42.2/55.4 52.6/66.1 27.2/35.8 52.8/63.8 53.6/63.1 45.7/56.8


2. 作为子模块的性能(泛化能力)

这是实验的核心。如下表所示,当将各种方法训练的智能体作为独立的检索模块,并搭配一个固定的生成器时,QAgent 的优势极为明显。其平均 EM 分数比 Search-R1 高出 4.59%,比 Naive RAG 高出 5.35%。这有力地证明了第二阶段泛化训练的成功,QAgent 具备出色的泛化能力,能作为高效的即插即用模块。


方法 生成器 2WikiMHQ HotpotQA Musique NQ TQA 平均
    EM EM EM EM EM EM
Naive RAG 3B 23.4 47.0 13.0 34.4 45.4 32.6
ReRank 3B 30.4 49.2 16.4 39.0 47.2 36.4
Search-o1 3B 31.6 46.8 17.6 36.2 43.6 35.2
ZeroSearch 3B 27.6 41.6 14.8 39.4 41.2 32.9
Search-R1 3B 29.8 46.0 15.8 36.0 45.0 34.5
QAgent (本文) 3B 35.0 49.8 18.2 40.4 49.2 38.5
QAgent (本文) 7B 40.8 55.4 23.2 49.2 57.4 45.2


分析与洞察


训练阶段 2WikiMHQ HotpotQA Musique NQ TQA
  EM/F1 EM/F1 EM/F1 EM/F1 EM/F1
无训练 37.0/49.4 48.2/60.8 27.6/36.7 51.6/60.3 49.8/57.9
阶段一 41.0/53.5 50.8/63.6 26.6/34.9 52.4/62.2 53.4/61.9
阶段二 (QAgent) 42.2/55.4 52.6/66.1 27.2/35.8 52.8/63.8 53.6/63.1


总结

实验结果充分证明,QAgent 通过其创新的两阶段训练策略,成功地训练出一个在复杂问答任务中表现优异、且具有强大泛化能力的模块化搜索智能体。它不仅在端到端任务上取得了领先,更重要的是,它能作为即插即用的组件高效地集成到大型系统中,为现实世界的 RAG 应用提供了可靠的解决方案。