Agentic AI 架构入门(八):Agentic RAG——从被动链条到主动研究员

课程:《Agentic AI Architectures with Patterns, Frameworks and MCP》笔记整理(第 395–430 页)


1. 传统 RAG 的局限

1.1 什么是传统 RAG(复习)

  • RAG = Retrieval-Augmented-Generation(检索增强生成)——企业生成式 AI 最常用的架构
  • 目标:用特定私有文档回答用户问题,而不是 LLM 训练数据
  • 口诀:别让 LLM 猜答案——把答案给它,让它总结
  • 本质:「接地(Grounding)」机制——让 LLM 扎根事实,减少幻觉,能用新信息

1.2 传统 RAG 架构:被动管道

传统 RAG 是单向线性「链」

[Query 查询] -> [Embed 嵌入] -> [Search 搜索] -> [Stuff 塞入] -> [Generate 生成]
  1. 用户查询:“我们 Q3 营收多少?”
  2. 嵌入:查询转成向量(数字列表)
  3. 搜索:用向量找向量库中 Top-K(前5) 最相似的文本块
  4. 塞入:原始文本块「塞」进 LLM 的提示上下文
  5. 生成:LLM 只用给定文本回答

1.3 核心问题:RAG 「被动又笨」

管道不能自己思考

  1. 单次检索(One-Shot):只搜一次——Top-K 结果差或无关,整个过程就失败
  2. 不能自我纠正:LLM 不能"顶嘴"检索器——不能说"这些搜索结果没用,换个查询词再搜"
  3. 复杂多步问题直接失败:查询"对比我们 Q3 营收与头号竞争对手 Q3 营收"——单次搜索不可能同时找到两者,只会找到其中一个或噪音

1.4 架构师视角:局限总结

  • 系统:线性单向「链」;智能:LLM 只在最后用一次(总结)
  • 失败模式:脆弱——第一步(检索)不完美就全盘失败
  • 后果:只能回答简单"查表式"问题,不能做研究

我们有的是「检索器系统」,不是「推理系统」


2. Agentic RAG:定义与超能力

2.1 正式定义

  • 不是「改进」,是根本性的架构转变:从被动数据管道 → 主动智能过程
  • 定义:把「推理 Agent」(LLM)放在整个检索与综合过程的「总指挥」位置
  • 「主动研究员」模型:不是被动接收数据,而是主动决定搜什么、何时搜、如何应对搜索结果
  • 核心转变:LLM 不再在链条末端——LLM 是整个循环的「编排者」

2.2 新架构:「循环」不是「链条」

传统 RAG(链):  [Query] -> [Search] -> [Stuff] -> [Generate]
                   (单向被动管道,每步只执行一次)

Agentic RAG(环):[Agent: Reason/Plan]
                   -> [Agent: Act (Search)]
                   -> [Results: Perceive]
                   -> [Agent: Reason/Reflect/Update Plan]
                   -> [Agent: Act (Search Again)] ...

这就是 ReAct 模式应用到研究

架构转变

传统 RAG:链条
Query→Search→Stuff→Generate
(每步一次,单向)

Agentic RAG:循环
Reason→Act→Perceive→Reflect→Act...
(LLM 是总编排者)

2.3 三大「超能力」(逐一解决传统 RAG 的三大缺陷)

超能力 解决 说明
1. 多步检索 单次检索 搜→读→再搜,渐进构建复杂知识
2. 反思与自我纠正 笨检索 批判自己的搜索结果:“这些结果无关,我换个措辞换个关键词再搜”
3. 自主规划 复杂问题 把复杂查询(“对比 X 和 Y”)分解成逻辑多步计划:①搜 X ②搜 Y ③综合

Agent 在多步推理循环中管理检索过程——不是「链/管道」,是「主动、反思、多步」的过程——能解决传统 RAG 不可能完成的复杂多部分研究问题。


3. Agentic RAG vs 传统 RAG(三维对比)

3.1 对比 1:过程(链 vs 环)

传统 RAG(链) Agentic RAG(环)
结构 固定线性管道,每步执行一次 动态循环图,迭代进行
搜索 一次 可多次调用
LLM 位置 最后一步(总结者) 第一步 + 中央编排者

3.2 对比 2:智能(笨 vs 反思)

  • 传统 RAG(不能自纠):User Query → Dumb Retrieval(一次搜索)→ Bad Results → LLM (No Choice) 无选择 → Failure
  • Agentic RAG(为自纠而设计):User Query → Initial Results → Smart Retrieval → Agent(LLM) → Reflection 反思 → Critique:“营销废话,无关” → Self-Correct 自我纠正

3.3 「笨助理」 vs 「资深研究员」

  • 「传统 RAG 是笨助理」:用户问 “Top 5 books on finance” → 机器人"取最先找到的 5 本,递过去就走人,不知道好不好、相不相关"(单次被动查表)
  • 「Agentic RAG 是资深研究员」:用户问 “Analyze the market impact of Event A” → 研究员主动研究分析

3.4 对比 3:架构师的选择(权衡)

传统 RAG Agentic RAG
速度 快(一次搜索一次 LLM 调用,低延迟) 慢(多步 LLM 调用 → 高延迟)
成本 便宜(token 最少) 贵(每步反思都是完整 LLM 调用)
复杂度 简单(好建好调好确定) 复杂(难建难调,天然非确定)

答案是经典的架构师「看情况(it depends)」

3.5 何时用哪个?

用传统 RAG(查表任务):简单问答(“公司 PTO 政策是啥?”)、简单总结(“总结这份文档”)——目标:速度、省钱、高可靠。

用 Agentic RAG(研究任务):复杂多步问题;模糊歧义查询(“市场对我们新产品的情绪如何?”)——目标:强大、稳健、能解决复杂问题(延迟不那么重要)。

两把工具,两种工作:传统 RAG = 简单快便宜的「链」;Agentic RAG = 复杂慢贵的「环」


4. 主动研究员循环(逐步走一遍)

4.1 场景:复杂研究任务

目标:找出新产品 “Product X” 对公司 “Company Y” 的财务影响

  • 传统 RAG 为什么失败:整串查询搜一次找不到有用的东西——查询歧义、多部分,需要策略

4.2 循环逐步拆解

循环 1:

  • [Reason] 初始计划:“这很复杂,不能直接回答。计划:①先找 Product X 的发布时间 ②再找 Company Y 在发布后的季度财报”
  • [Act] 执行计划第一步:search("Product X launch date")
  • [Perceive] 观察:“搜索结果表示 Product X 于 2024 年 Q2 发布”
  • [Reason] 反思更新计划:“有发布时间了(Q2 2024),原计划更新:①已完成 ②找 Company Y 的 2024 Q2/Q3 财报”

循环 2:

  • [Act] 执行更新后的第二步:search("Company Y quarterly report Q2 2024 Q3 2024 financial impact")
  • 关键洞察:第二次搜索更聪明更具体——只有循环 1 获得的知识才能做到
  • [Perceive] 拿到第二组结果(财报)
  • [Reason] 综合:“信息齐了:①发布时间 Q2 2024 ②Q2/Q3 财报显示’新产品’部门增长 15%。计划完成,可以生成最终答案”
  • 最终输出:综合所有收集的事实成一个答案

目标:Product X 对 Company Y 的财务影响

循环1 Reason
计划:先找发布日

循环1 Act
search 发布日

循环1 Perceive
→ Q2 2024 发布

循环2 Reason
更新计划:找 Q2/Q3 财报

循环2 Act
search 财报(更聪明)

循环2 Perceive+Reason
→ 增长 15%,综合

最终答案

4.3 总结:循环的本质

  • 我们没做「单次搜索」——执行了动态多步研究计划
  • 循环 1:Agent “无知”,寻找「已知的未知」(发布日期)
  • 循环 2:Agent “知情”,用新知识寻找最终答案

[Reason → Act → Perceive → Reflect] 循环 = Agentic RAG 的核心引擎


5. Agentic RAG 三大用例

用例 1:复杂对比研究

  • 查询:“对比英伟达、AMD、英特尔过去 3 年的芯片架构”
  • 传统 RAG 失败:「致命」查询——向量库里没有任何单一文档能回答;整串搜 = 噪音
  • Agentic RAG 成功(分解):①search(“Nvidia 芯片架构 2023-2025”) ②search(“AMD …”) ③search(“Intel …”) ④synthesize_comparison(结果1,2,3)

用例 2:自动化尽职调查

  • 查询:“分析 Company Z 的市场情绪与财务健康状况”
  • 传统 RAG 失败:查询模糊——"情绪"和"财务健康"什么意思?简单向量搜索没用
  • Agentic RAG 成功(策略制定):把模糊术语翻译成具体研究策略——①search(“Z 最新季度财报”)(财务健康)②search(“Z 股票分析师评级”)(情绪)③search(“Z 近期新闻 产品发布 OR 丑闻”)(情绪)

用例 3:科学/法律文献综述

  • 查询如:“总结科学界对某新药的共识”——多步过程需要自我纠正(反思)

什么时候需要 Agentic RAG?

查询需要以下三要素之一:

  1. 分解(Decomposition):复杂查询要拆成多部分(“对比 X、Y、Z”)
  2. 策略(Strategy):模糊查询要翻译成具体计划(“分析情绪…”)
  3. 反思(Reflection):多步过程需要自我纠正(“总结共识…”)

6. 小结

本段精华:

  1. 传统 RAG = 单向链条:Query→Embed→Search→Stuff→Generate,每步一次——被动、笨、脆弱(第一步检索失败就全盘崩)
  2. 三大缺陷:单次检索 / 不能自我纠正 / 复杂多步问题失败——只能做「查表」,不能做「研究」
  3. Agentic RAG = 主动循环:LLM 从链条末端变成总编排者——Reason→Act→Perceive→Reflect 循环 = ReAct 应用到研究
  4. 三大超能力对症下药:多步检索(解单次)、反思自纠(解笨)、自主规划(解复杂)
  5. 对比三连:过程(链 vs 环)、智能(笨 vs 反思)、权衡(快便宜简单 vs 慢贵复杂)——经典「看情况」
  6. 笨助理 vs 资深研究员:取最先 5 本就递过去走人 vs 主动研究分析——一张图记住两者区别
  7. 选型:查表任务(PTO 政策问答)→ 传统 RAG;研究任务(对比/情绪分析)→ Agentic RAG
  8. 主动研究员循环实例:先搜「已知的未知」(发布日期)→ 用新知识做更聪明的第二次搜索 → 综合答案——循环 2 的查询只可能来自循环 1 的收获
  9. 三大用例:对比研究(分解)、尽职调查(策略制定)、文献综述(反思)——需要分解/策略/反思时就用 Agentic RAG
  10. 下一段预告:Agent 通信协议——ACP / A2A / AG-UI / MCP 四大协议全景(「巴别塔」问题 → 标准化协议)
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐