从朴素到智能:RAG 为什么需要 Agent 化——Agentic RAG 系列之一

一句话价值:大模型会思考,但不知道你公司内部的文档;RAG 就是"喂资料"的办法。但最朴素的 RAG 是条死板的流水线------不管问题多简单,都硬走一遍检索生成。本文用五个"卡壳的瞬间",讲清楚为什么固定流程不够用,以及"智能 RAG"到底在智能什么。


先看一个现实的坑

公司内部的 Agent,基本都要接 RAG。为什么?因为 LLM 能推理,但它的知识截止在训练数据,不知道你公司内部的规章、文档、产品资料。要让它基于内部资料回答,就得在提问时把相关资料"喂"进去------这就是 RAG(Retrieval-Augmented Generation,检索增强生成)。

最朴素的 RAG 是一条固定的三件套流水线:

flowchart LR A[用户问题] --> B[向量检索 top-k] B --> C[拼接成 prompt] C --> D[LLM 生成答案]

用 LangGraph 写出来,就是两个写死 next 的节点(这正是 naive-rag.mjs 的实现骨架):

js 复制代码
const graph = new StateGraph(GraphState)
  .addNode("retrieve", retrieveNode)   // 检索:相似度 top-k
  .addNode("generate", generateNode)   // 生成:拼接 prompt 给 LLM
  .addEdge(START, "retrieve")
  .addEdge("retrieve", "generate")     // next 写死:永远先检索后生成
  .addEdge("generate", END)
  .compile()

这玩意能跑,但问题也很快暴露------下面五个场景,每一个都会让它"卡壳"。


五个"不够用"的瞬间

1. 简单问题也在浪费资源

用户问 1 + 1 = ?,它照样去向量库里检索一遍、拼 prompt、再生成。检索、拼接、额外的 token,全都是浪费。 复杂问题需要检索,简单问题根本不需要------但固定流程没有"跳过检索"的开关。

2. 检索错了没人纠

流程里没有"评估"这一步:检索回来的内容到底准不准、够不够,没人判断。检索错了就错了,LLM 只能基于一堆不相关的片段硬编,编错了也没人拦

3. 多步推理做不了

问一句:「《天龙八部》四大恶人排行第二的是谁?此人之子在身世揭晓前,其生父在武林中的公开身份是什么?」

这个问题要先查 A(四大恶人老二是谁),拿到中间结果,再查 B(他儿子的生父身份)。固定流程只会检索一次,把"最终答案"当"单条证据"去搜,永远搜不到------因为答案散在多段、需要拼接推理。

4. 纯语义检索会"认错人"

「高血糖」和「低血糖」,语义上极其相近,向量相似度很高;但它们恰恰是相反的概念。纯语义检索分不清这种"专业术语、精确实体",容易把「低血糖该吃什么」匹配到「高血糖」的片段上去。这种场景,关键词匹配(BM25、like 查询)反而更准。

5. 本地库没有就干瞪眼

知识库里没有的内容,固定流程只会硬着头皮用不相关的片段生成------LLM 就开始"一本正经地胡说八道"。它不会想到"去联网搜一下补上",因为没有这个工具,也没有这个决策。


升级路线图:从"固定"到"智能"

这五个坑,指向同一个根因:流程是写死的。要解决它们,不是把检索做得更准(那是另一回事),而是让流程本身"会思考、会判断、会纠错"。

于是 RAG 有了三层演进:

Naive RAG Advanced RAG Agentic RAG
流程 固定三件套 仍是固定流水线,但检索前后加了优化 图/Agent 让流程可决策、可循环
是否检索 永远检索 永远检索(简单问题也照走) 路由判断:简单问题直接答
检索几次 一次 一次(但质量更高) 多步:先查 A 再查 B
有没有纠错 自我评估,不够就再来

一句话概括这条主线:

把"死板的检索生成流水线",升级成"可思考、可判断、可纠错的智能 RAG 架构"。

而这背后真正的分水岭,不是"加了什么组件",而是"控制权交给了谁"------本文先立全局,后续三篇分别展开 Advanced 的优化、Agentic 的本质、以及怎么落地设计。


本篇小结

  1. RAG 解决的是"LLM 不知道内部资料",最朴素的做法是固定三件套:检索 → 拼接 → 生成。
  2. 固定流程在五个场景会卡壳:简单问题浪费资源、无纠错、多步推理做不了、纯语义检索认错人、本地没有不会联网。
  3. 五个坑指向同一根因:流程写死,没有决策
  4. 升级路线分三层:Naive(固定)→ Advanced(优化但固定)→ Agentic(可决策可循环)。
  5. 真正的分水岭是"控制权交给谁",下一篇先讲 Advanced RAG 到底优化了什么、以及它为什么仍不够。

系列预告

  • 下一篇:Advanced RAG 做对了什么------查询改写、HyDE、混合检索、重排,把固定流水线打磨到极致,但天花板在哪。
  • 之后:Agentic RAG 不是"加个路由" (控制权易主的本质)、架构师视角的四层设计(怎么落地)。
相关推荐
掰头战士1 小时前
三道保险丝,最后只能放弃治疗? 一文聊聊我的agent是怎么做死循环检测的
typescript·llm·agent
不好听6131 小时前
Advanced RAG:把检索流水线打磨到极致——Agentic RAG 系列之二
llm
掰头战士3 小时前
AgentLoop: 从 while(true) 到生产级循环
typescript·llm·agent
Albart5753 小时前
大模型无限循环输出、重复生成文本:参数层面规避幻觉输出实战
大模型·llm·vllm·大模型推理·幻觉·重复输出
玉宇夕落3 小时前
llm模块二 结构化输出 LangChain 结构化输出完全指南:从 JSON 解析到 withStructuredOutput
langchain·llm
桃西西呀6 小时前
体检报告上一堆箭头看不懂?背后的逻辑就是随机森林:一群树投票,比一棵树靠谱
人工智能·机器学习·llm
JouYY6 小时前
我用DSH高效管理了我的prompt收藏
架构·llm·agent
CoderJia程序员甲7 小时前
GitHub 热榜项目 - 周榜(2026-09-12)
ai·大模型·llm·github·agent
多云行者8 小时前
LLM Gateway科普:大模型统一接入与治理,究竟解决了什么
大模型·llm·gateway·api·大模型统一接入