Ch13 RAG修订于 二〇二六年七月二日

13.9 第四代:AI 自己决定怎么搜(Agentic RAG)

前三代的做法都是人预先定好的流程——搜几次、怎么搜、搜什么,都是固定的。

2025 年出现了新思路:让 AI 自己决定。AI 拿到问题后,自己判断——这个问题需要搜几次?每次搜什么关键词?搜索结果够不够好?不够就换个方式再搜一次。

13.9.1 Agentic RAG 的核心思想

传统 RAG 是”一次检索,一次生成”——搜一次,把结果给 LLM,LLM 生成答案。但复杂问题往往需要多步检索。比如”比较 GPT-4 和 Claude 3.5 在代码生成任务上的表现”——你不可能一次搜索就找到完美的比较文章。你需要先搜”GPT-4 代码生成评测”,再搜”Claude 3.5 代码生成评测”,然后综合两个结果来回答。

Agentic RAG 把”检索策略”也交给 LLM 来决定。LLM 不仅是答案生成器,还是检索指挥者。它的决策循环是:

拿到问题 → 思考:我需要搜什么 → 执行搜索 → 检查结果:够不够 → 不够,换个关键词再搜 → 够了,综合所有结果,生成答案

这个方向主要由 LangChain(一个连接 LLM 和外部工具的 Python 框架,用”链”的方式编排调用)和 LlamaIndex(专注于数据索引和检索增强的框架,擅长把各种类型的数据源变成可检索的索引)推动 1。

13.9.2 Self-RAG:让 LLM 自己判断检索质量

2024 年出现的 Self-RAG 是 Agentic RAG 的一个重要分支。核心思想是:LLM 在生成答案的过程中,不仅生成内容,还生成”反思标记”(Reflection Tokens):

  • [Retrieve]:我需要检索更多的信息
  • [Relevant]:这段检索结果跟问题相关
  • [Irrelevant]:这段检索结果不相关,跳过
  • [Supported]:我生成的这句话有检索结果支撑
  • [Partially Supported]:这句话部分有支撑
  • [No Support]:这句话没有支撑,可能是幻觉

LLM 边生成边反思,随时决定是否需要再搜一次,随时检查自己是否在编造。这比”搜一次就生成”的 RAG 更可靠,但推理成本也更高(需要多次 LLM 调用)。

13.9.3 CRAG(Corrective RAG):检索结果不行就纠正

CRAG 的核心思路是:对检索结果做质量评估,如果结果不好,就纠正——换个查询词再搜,或者直接去 Web 搜索。CRAG 引入了一个”检索评估器”(Retrieval Evaluator),对检索结果打分:

  • 分数高(Correct):直接使用检索结果生成答案
  • 分数中(Ambiguous):先做知识精炼(Knowledge Refinement),把不相关的部分删除或重写
  • 分数低(Incorrect):放弃检索结果,换一个查询策略重新搜索,或者直接去 Web 搜索

CRAG 的精髓在于:承认检索可能失败,但系统有”纠错”能力——不是”搜到什么东西就硬塞给 LLM”,而是”搜得不好就重新搜”。

13.9.4 Agentic RAG 的代价

成本:Agentic RAG 需要多次 LLM 调用(思考、检索决策、生成、反思),每次调用都花钱。一次 Agentic RAG 查询可能消耗 5-10 次 LLM 调用,成本是传统 RAG 的 5-10 倍。

延迟:Agentic 循环是串行的(每一步都要等上一步的结果),总延迟 = 每一步延迟之和。用户可能需要等 5-15 秒才能得到答案。

复杂度:Agentic RAG 的调试和监控比传统 RAG 难得多。你不知道 Agent 在每一步做了什么决策,出错时很难定位问题。

2026 年建议:Agentic RAG 不是所有场景都需要。对于简单的事实查询(“XX 是什么”),传统 RAG 就够了。对于复杂的多步推理(“比较 A 和 B 在三个维度上的差异”),Agentic RAG 能显著提升答案质量。关键判断标准:用户的问题是否需要多步检索才能回答? 如果需要,Agentic RAG 值得投入。


← 上一节:13.8 生成阶段 —— 让 LLM 用上检索结果 | 下一节:13.10 第五代:知识图谱辅助(Graph RAG) →

注释

  1. LangChain/LlamaIndex 2025-2026 演进 ↩

关联5

知识图谱

局部图谱 · 点节点跳转