Agentic RAG 深度解读:检索增强与 Agent 能力的深度结合
Agentic RAG 深度解读:检索增强与 Agent 能力的深度结合
Agentic RAG: Combining Retrieval-Augmented Generation with Agent Capabilities
本文记录我的论文学习过程与核心理解
一、论文基础介绍
基本信息
| 项目 | 信息 |
|---|---|
| 论文 | Agentic RAG(不是一个单一论文,是一类研究方向) |
| 核心论文 | 《Query Rewriting in RAG》- LlamaIndex 《Routing Strategies》- 自然语言处理顶会 |
| 核心贡献 | ① Query Rewriting ② Routing ③ Iterative Retrieval ④ Tool Calling |
| 引用 | 1000+(相关论文总引用) |
| 相关开源 | LlamaIndex、LangChain、AutoGen 等主流框架已支持 Agentic RAG |
论文背景与动机
在前八篇论文中,我们依次解决了:
- CoT:推理能力
- ReAct:推理+行动协同
- Toolformer:自主工具使用
- AgentVerse:多 Agent 协作
- MetaGPT:结构化 SOP 协作
- Voyager:终身学习能力
- MemGPT:层级记忆管理
- Computer Use:多模态 GUI 控制
但有一个根本问题始终存在:
LLM 的知识是静态的、有截止日期的。对于需要最新信息或私域知识的任务,LLM 本身无法回答。
RAG(检索增强生成)解决了知识时效性问题,但传统 RAG 是一个"单向、无判断、不反思"的管道。
Agentic RAG 要解决的核心问题是:
如何让 RAG 系统像 Agent 一样,具备规划、判断、迭代和自适应能力?
二、核心问题
传统 RAG 的流程与局限
传统 RAG 的核心流程
用户问题 → query → 向量数据库 → Top-K 文档 → Generator(LLM) → 回答
↑
用 embedding 相似度搜索三个核心组件:
- Retriever(检索器):把 query 和文档都转成向量,做相似度匹配
- Vector DB(向量数据库):存储文档的向量(Milvus / Pinecone / Chroma)
- Generator(生成器):把检索到的文档 + query 交给 LLM 生成回答
传统 RAG 的核心局限
| 局限性 | 表现 |
|---|---|
| 无法判断检索质量 | 检索到的文档可能不相关,但模型只能硬用 |
| 无法迭代优化 | 一次检索不够,不会自动再搜一次 |
| 无法处理复杂问题 | 需要对比分析的问题,单次检索无法完成 |
| 无法规划检索策略 | 不知道该用什么关键词、从哪个知识库检索 |
| 无法处理多跳问题 | 复杂问题需要先查"依赖"再查"答案" |
核心洞察
传统 RAG 是一个"单向管道"——检索到什么就用什么,生成什么就信什么。Agentic RAG 在这个管道上加入了 Agent 的"大脑",让它能规划、能判断、能迭代。
三、Agentic RAG 核心机制
机制一:Query Rewriting(查询改写)
Agent 帮用户把"日常语言"改写成"更适合检索的语言"
用户原始问题:"那个关于AI的政策文件说什么?"
↓ Agent 改写
检索 query:"人工智能政策文件 2024"为什么需要改写?
- 用户的问题包含代词("那个"、"它")或省略
- 日常表达和检索语言有差异
- 同一个意思有多种表达方式
Query Rewriting 解决的核心问题:
- 用户问题表述不清 → 改写成精准检索词
- 检索不到结果 → 尝试同义词改写
机制二:Routing(路由)
Agent 判断该从哪个知识库、用哪种策略检索
用户问题 → Agent 判断 → 应该查"政策库"还是"技术库"还是"新闻库"
↓
路由到对应知识源或检索策略Routing 可以决定:
- 用哪个知识库(企业内部知识库 vs 公开网络)
- 用哪种检索策略(向量检索 vs 关键词检索 vs 知识图谱)
- 是否需要触发特殊工具(计算器、Web 搜索)
机制三:Iterative Retrieval(迭代式检索)
检索结果不满意?Agent 决定重新检索
第一轮检索 → Agent 评估结果(相关?不相关?)
↓ 不满意
第二轮检索(改写 query,换关键词)
↓
第三轮检索(如还不满意)
↓
直到 Agent 认为够用这就是"迭代优化"——传统 RAG 做不到的。
机制四:Tool Calling(工具调用)
Agent 可以调用多种工具,不只是向量检索
Agent 可以用:
├── 向量检索(Vector Search) ← 语义相似度检索
├── 关键词搜索(BM25) ← 关键词精确匹配
├── 知识图谱查询(Knowledge Graph)← 关系型知识
├── Web 搜索(Web Search) ← 实时网络信息
├── 计算器(Calculator) ← 数学计算
└── 自定义工具(API 调用) ← 业务系统对接Agent 决定什么时候用什么工具。
四、Agentic RAG 架构图
┌──────────────────────────────────────────────────────────┐
│ Agent(大脑) │
│ • 规划(Planning) → 决定下一步做什么 │
│ • 评估(Evaluating) → 判断检索结果够不够 │
│ • 决策(Deciding) → 该用哪个知识源、什么策略 │
│ • 迭代(Iterating) → 不满意就重来 │
└──────────────────────────────────────────────────────────┘
↑ plan ↑ evaluate ↑ decide
│ │ │
┌────┴────┐ ┌─────┴─────┐ ┌────┴────┐
│ Query │ │ Router │ │ Tools │
│Rewriter │ │(知识源路由)│ │(多工具) │
└─────────┘ └───────────┘ └─────────┘
↑
┌─────────┼─────────┐
↓ ↓ ↓
VectorDB Knowledge Web Search
Graph五、多跳检索(Multi-hop Retrieval)
什么是多跳检索
多跳检索 = 需要多次检索 + 信息整合才能回答的问题。
单跳:我直接知道答案
多跳:我需要先查"它是谁/是什么",才能回答原本的问题四种典型需要多跳的场景
场景一:指代消解(Coreference)
| 问题 | 隐含依赖 |
|---|---|
| "三体小说的作者还写过什么书?" | 先要知道"作者是谁"(第一跳),再查其他作品(第二跳) |
| "那家公司后来被谁收购了?" | 先要知道"那家公司是哪家"(第一跳),再查收购方(第二跳) |
判断词: "它"、"那家"、"这个"、"作者"
场景二:比较问题(Comparative)
| 问题 | 隐含依赖 |
|---|---|
| "北京和上海哪个GDP更高?" | 先分别查北京 GDP、上海 GDP(两跳),再对比 |
| "Python和Java哪个更适合后端开发?" | 先查两者特点,再基于场景对比 |
判断词: "哪个更..."、"比...更好/差"
场景三:因果问题(Causal)
| 问题 | 隐含依赖 |
|---|---|
| "为什么特斯拉在得州建厂?" | 原因不只一个,需多源综合 |
| "为什么OpenAI选择做AGI?" | 需从多个维度综合 |
判断词: "为什么..."
场景四:时间推理(Temporal)
| 问题 | 隐含依赖 |
|---|---|
| "Netflix转型流媒体之前是什么业务?" | 先查转型前是什么,再查具体内容 |
| "iPhone发布前,乔布斯在做苹果之前做了什么?" | 先查在苹果之前,再查具体内容 |
判断词: "之前/之后"、"在...之前/之后"
一句话判断法
如果回答这个问题需要先知道另一个问题的答案,就需要多跳。
六、Agentic RAG vs 传统 RAG 对比
| 维度 | 传统 RAG | Agentic RAG |
|---|---|---|
| 流程 | 线性管道 | 环形/循环 |
| 检索次数 | 一次 | 可迭代多次 |
| 检索质量 | 不评估 | Agent 判断 |
| 知识源 | 单一 | 多源路由 |
| 复杂推理 | 不支持 | 支持多跳 |
| 自适应 | 否 | 是 |
| 工具调用 | 仅向量检索 | 多工具协作 |
七、与前文的递进关系
AI Agent 能力演进
文本推理 (CoT)
↓
推理+行动 (ReAct)
↓
自学工具 (Toolformer) ← 内化工具到模型
↓
多Agent协作 (AgentVerse/MetaGPT) ← 协作编排
↓
终身学习 (Voyager) ← 外部技能库
↓
层级记忆 (MemGPT) ← 记忆管理
↓
多模态GUI控制 (Computer Use) ← 视觉感知+物理操作
↓
检索增强Agent (Agentic RAG) ← 知识管理+智能检索关键跨越
| 维度 | 之前的状态 | Agentic RAG 的突破 |
|---|---|---|
| 知识来源 | LLM 内部知识 | 外部向量数据库 |
| 知识更新 | 需重新训练 | 实时更新知识库 |
| 检索能力 | 一次性检索 | 迭代优化检索 |
| 知识管理 | 无管理 | Agent 规划+路由 |
八、知识要点
知识要点 1:Agentic RAG 的 4 个核心能力
Agent 为 RAG 带来了哪 4 个核心能力?
| 能力 | 核心作用 | 解决问题 |
|---|---|---|
| Query Rewriting | 优化用户输入 prompt | 问题表述不清、检索词不精准 |
| Routing | 动态选择知识库和检索策略 | 该查哪里、用什么方式查 |
| Iterative Retrieval | 迭代优化检索结果 | 一次检索不满意就重来 |
| Tool Calling | 多工具协作 | 不只向量检索,还有关键词、知识图谱、Web 搜索等 |
知识要点 2:Query Rewriting vs Routing
| 机制 | 作用时机 | 核心问题 |
|---|---|---|
| Query Rewriting | 检索前 | "用户问的对不对?怎么改写才能检索到更准的信息?" |
| Routing | 知识源选择 | "该查哪个知识库?用哪种检索策略?" |
知识要点 3:多跳检索判断
判断标准:如果回答这个问题需要先知道另一个问题的答案,就需要多跳。
| 问题 | 是否多跳 | 理由 |
|---|---|---|
| "《三体》的作者是谁?" | 否 | 直接从知识库得出答案 |
| "为什么特斯拉选择在得克萨斯州建厂?" | 是 | 原因多元,需多源综合 |
| "2024年诺贝尔物理学奖得主的主要贡献是什么?" | 是 | 需先确认得主(第一跳),再查贡献(第二跳) |
九、框架对比总结
Naive RAG → Agentic RAG 演进
【Naive RAG】
用户问题 → 检索 → 生成 → 回答
(单向管道,无法反思)
【Agentic RAG】
用户问题 → Agent规划 → Query改写 → 检索 → Agent评估
↑ ↓
← ← ← 迭代优化 ← ← ← ← ← ← ← ←Agentic RAG 的本质
Agentic RAG = RAG(检索管道)+ Agent(规划/判断/迭代)= 让检索系统拥有"大脑"
典型实际应用场景
场景一:企业私域知识库问答
场景描述: 企业内部有大量文档(制度、流程、技术文档),员工经常需要查找答案
具体应用:
- 员工问:"我司离职流程是什么?"
- Agent 自动路由到"HR知识库",迭代检索相关文档,返回精准答案
- 如果检索结果不相关,自动改写 query 重新检索
代表产品:
- Notion AI(企业知识管理 + AI 问答)
- Confluence AI(Atlassian 企业知识库)
- AskLib(企业知识问答平台)
价值: 从"找文档"变成"找答案",知识获取效率提升 5-10 倍
场景二:法律/医疗等专业领域问答
场景描述: 律师/医生需要从海量判例/文献中检索相关信息
具体应用:
- 律师问:"类似案件法院通常怎么判?"
- Agent 自动进行多跳检索:第一跳查相关案例,第二跳查判决依据,第三跳综合分析
- 涉及多个法律条文时,自动路由到不同知识库
代表产品:
- CaseText(法律文书分析)
- UpToDate(医疗文献检索)
- Westlaw Edge(法律研究平台)
价值: 专业领域信息过载问题的终极解决方案
场景三:产品售后智能客服
场景描述: 用户咨询产品问题,客服需要从产品文档、FAQ、维修记录中找答案
具体应用:
- 用户问:"这款打印机卡纸怎么办?"
- Agent 先检索"故障排除文档",如果不够,再检索"维修历史记录"
- 多次迭代优化,直到找到具体解决方案
代表产品:
- Zendesk AI(智能客服)
- Intercom Fin(AI 客服助手)
- Salesforce Einstein(CRM + AI 客服)
价值: 解决 70% 常见问题,降低人工客服压力
场景四:代码库智能问答(Code RAG)
场景描述: 开发者需要了解某个代码模块的功能、历史、用法
具体应用:
- 开发者问:"这个函数为什么这样实现?"
- Agent 检索代码注释、提交历史、设计文档
- 涉及多个仓库时,路由到不同代码库
代表产品:
- GitHub Copilot Enterprise(代码问答)
- Sourcegraph Cody(代码智能搜索)
- Cursor(AI 代码编辑器)
价值: 加速代码审查、知识传承 onboarding
十、总结
| 维度 | Agentic RAG |
|---|---|
| 研究类型 | RAG + Agent 交叉方向 |
| 核心创新 | 四大机制(Query Rewriting / Routing / Iterative Retrieval / Tool Calling) |
| 实战价值 | 高(企业知识管理、私域知识问答必备) |
| 启发意义 | 打开了"RAG系统智能化"的大门 |
一句话总结: Agentic RAG 在传统 RAG 的检索管道上加入了 Agent 的规划、判断和迭代能力,让检索系统从"被动查资料"变成"主动找答案"。
相关论文:
- CoT 推理:《CoT 论文精读》
- ReAct 循环:《ReAct 论文精读》
- Toolformer:《Toolformer 论文精读》
- AgentVerse:《AgentVerse 论文精读》
- MetaGPT:《MetaGPT 论文精读》
- Voyager:《Voyager 论文精读》
- MemGPT:《MemGPT 论文精读》
- Computer Use:《Computer Use 论文精读》
- Self-Discovering:《Self-Discovering 论文精读》
如果你也在学习 AI Agent,欢迎交流讨论,我的 blog:https://sunrong.site