Phase 4 前 6 篇讲的是固定 RAG——一条写死的「检索→生成」链。这一篇是 Phase 4 收束,讲它的进阶:Agentic RAG

固定 RAG 有个问题:不管什么问题都检索。但有些问题不需要检索(常识),有些要检索好几次(要综合多份资料),有些检索一次不够要换个角度再查。固定 RAG 做不到这些「判断」——它就是无脑检索。Agentic RAG 就是把「检索」交给 Agent 判断。

固定 RAG 的局限

固定 RAG 的流程是写死的:问题来了 → 检索 → 拼进 prompt → 模型答。每一步都执行,不判断。

固定 RAG:每次都检索

这在简单问答场景够用。但遇到下面情况就不行:

  • 不需要检索的问题:「1+1 等于几」这种常识,检索反而塞进无关资料干扰
  • 要多次检索的问题:复杂问题要先查 A,根据 A 再查 B,固定流程只查一次
  • 要改写查询的问题:第一次查的不好,要换个说法再查,固定流程不会改写

Agentic RAG:把检索变成工具

Agentic RAG 的思路:把「检索」做成一个工具,交给 Agent 决定调不调、调几次

回忆 Phase 3——Agent 能调用工具。如果把 retriever 包成一个工具,Agent 就能:

  • 判断这个问题要不要查(不查直接答)
  • 决定查什么(自己构造查询)
  • 查完看结果够不够,不够再查(循环)
  • 综合多次查询的结果回答

Agentic RAG:检索变成工具

这其实就是 Phase 3 的 Agent + 一个「检索工具」。Agent 的核心 loop(第 18 篇)负责判断,检索工具负责查。Agent 决定何时用这个工具。

一个例子:复杂问题的多轮检索

假设用户问「对比 LangGraph 和 AutoGen 在多 Agent 上的差异」。

固定 RAG 会怎么做:把整个问题作为查询检索一次,可能只命中其中一部分(比如只命中 LangGraph 的),回答不完整。

Agentic RAG 会怎么做:

  1. Agent 判断:这是个对比问题,要分别查 → 调检索工具查「LangGraph 多 Agent」
  2. 看结果,再查「AutoGen 多 Agent」
  3. 两份都有了,综合对比生成回答

多轮检索的例子

Agent 通过多次调用检索工具,逐步补齐信息——这是固定 RAG 一次检索做不到的。

实现:用 Phase 3 的 create_agent

Agentic RAG 的实现,本质就是 Phase 3 那套:

# retriever 包成工具
@tool
def search_knowledge(query: str):
    """检索知识库"""
    return retriever.invoke(query)

# 用 create_agent,把这个工具给它
agent = create_agent(model=model, tools=[search_knowledge])

Agent 自动获得「判断要不要检索、检索什么、检索几次」的能力——这些不是你写的,是 Agent 的核心 loop(ReAct)自带的。你只管把检索包成工具。

这也是为什么 Phase 3 要先讲 Agent——Agentic RAG 就是 Agent 的一个应用。掌握了 Agent,Agentic RAG 是水到渠成的。

固定 RAG vs Agentic RAG:怎么选

维度 固定 RAG Agentic RAG
检索决策 每次都查 Agent 判断
查询次数 固定一次 按需多次
复杂度 简单、可控 复杂、消耗多
延迟 低(固定流程) 高(多轮判断)
适合 明确的问答 复杂、需多步检索

固定 vs Agentic RAG

一个判断:如果用户问题大多是一次检索能答清的,用固定 RAG(简单快);如果问题常需要多步检索、综合分析,用 Agentic RAG。Agentic RAG 更强但更贵更慢,不是所有场景都需要。

收束:Phase 4 完成

这一篇讲完,Phase 4(RAG 检索)就完成了。回顾这 7 篇:

  • 25 RAG 全景:五段流水线
  • 26 Loaders:读进来
  • 27 Splitters:切分(比 embedding 重要)
  • 28 Embeddings:向量化
  • 29 Vector Stores:存储与可替换性
  • 30 Retrievers:检索与进阶策略
  • 31 Agentic RAG:让 Agent 决定检索

到这里,你已经能搭出从简单到 Agentic 的各种 RAG。下一篇开始 Phase 5——Tools / MCP / 记忆:讲 Agent 的「手」(工具与 MCP 协议)和「脑」(记忆模型)。


关于十三Tech

我是十三,All in AI Agent 方向的架构师,专注 AI 工程实践。我相信 AI 是程序员的最佳搭档。

如果你想跟完这套「图解 LangChain」,欢迎关注公众号 「十三Tech」。全系列 42 篇,会按认识基础、LangGraph 状态机、Agent 与 middleware、RAG 检索、Tools/MCP/记忆、生产化收束这条线更新。

十三Tech公众号二维码