从传统RAG到Agentic RAG:构建可处理复杂查询的智能体系统
30款热门AI模型一站整合DeepSeek/GLM/Claude 随心用限时 5 折。 点击领海量免费额度如果你最近在尝试把 RAG 系统从“玩具”变成“工具”大概率会遇到一个尴尬的局面单次查询跑得通但一遇到复杂问题要么答非所问要么干脆说“信息不足”。这感觉就像你组装了一台精密的机器但它只能处理说明书上的标准动作一旦任务稍微绕个弯它就卡住了。问题不在于 RAG 本身而在于我们过去把它想得太简单了。传统的 RAG 流程——检索、增强、生成——本质上是一个“单步查询-应答”的反射弧。它假设用户的问题和答案都在同一个文档片段里或者至少能通过一次检索找到。但在真实的企业或生产环境中信息是分散的。一个看似简单的问题比如“项目 X 用的服务器规格是什么”答案可能藏在两个地方项目文档里只有服务器 ID而规格详情在另一个独立的资产库里。传统的 RAG 在第一站就停下了因为它找不到“规格”这个词于是要么编造要么放弃。这就是“Agentic RAG”要解决的核心问题它不再把 RAG 看作一个静态的管道而是将其升级为一个由多个智能体Agent协作的动态工作流。这些智能体各司其职有的负责拆解问题有的负责改写查询有的负责判断信息是否足够有的负责指挥下一轮搜索。它的目标不是“找到最相关的文档”而是“通过规划、推理和迭代确保最终能生成一个可信的答案”。从 Google 最近发布的 Gemini Enterprise Agent Platform 中的 Agentic RAG 框架到社区里各种基于 LangChain、LlamaIndex 的智能体实验我们正站在一个拐点上RAG 正在从一个检索增强工具演变为一个具备初步认知和行动能力的 AI 代理AI Agent系统。这篇文章我们就来拆解这个演进过程看看如何把一个基础的 RAG 系统工程化为一个能在生产环境里处理复杂、多跳查询的可信 AI Agent。1. 从“检索答案”到“规划求解”理解 Agentic RAG 的本质转变很多人第一次接触 Agentic RAG会把它理解为“多个 RAG 链的串联”。这个理解只对了一半。数量上的叠加并不是关键真正的转变在于工作模式的根本性重构。1.1 传统 RAG 的“反射式”局限让我们先明确传统 RAG有时被称为“Vanilla RAG”的工作方式接收查询用户输入一个问题。向量检索将问题转化为向量在向量数据库中搜索最相似的文本片段chunks。上下文拼接将 top-K 个检索结果拼接成提示词prompt的一部分。LLM 生成大语言模型基于拼接的上下文和原始问题生成最终答案。这个过程很像膝跳反射刺激查询一来立刻给出反应答案。它的效率很高但缺乏规划和验证能力。如果答案所需的完整信息没有被一次性检索到系统就失败了。它不会思考“我找到的片段是否足以回答问题如果不够我该去哪里继续找”1.2 Agentic RAG 的“规划-执行-验证”循环Agentic RAG 引入了一个更接近人类研究员的思维模式。以 Google 提出的框架为例它包含几个核心角色编排器Orchestrator / Root Agent相当于项目经理。它首先判断“这是一个简单问题还是一个需要多步拆解的复杂问题”如果是后者它启动规划流程。规划智能体Planner Agent相当于分析师。它负责拆解复杂问题为多个子任务并规划信息获取的路径。例如“查询服务器规格”可能被拆解为1) 在项目文档库找服务器ID2) 在资产数据库用该ID查询详细规格。查询重写智能体Query Rewriter相当于翻译官。它把自然语言问题转化为更适合底层检索系统理解的、精确的搜索查询。例如把“项目X最近进展如何”重写为“项目X 2024年第三季度状态报告”和“项目X当前主要风险”。检索分发智能体Search Fanout Agent相当于跑腿员。它根据规划将多个查询同时或按顺序发送到不同的数据源可能是不同的向量库、数据库或搜索引擎进行检索。充足上下文智能体Sufficient Context Agent这是最关键的创新点相当于质检员。它不生成答案而是负责评估目前收集到的所有信息片段是否足以完整、准确地回答原始问题如果不够它需要明确指出缺失了哪部分信息并给出具体的搜索建议例如“缺少关于过敏反应的信息建议在临床记录中搜索‘皮疹’或‘不良事件’”。合成智能体Synthesis Agent在所有信息被判定为“充足”后它负责整合所有上下文生成最终流畅、准确的答案。这个流程的核心是一个迭代循环规划 - 执行检索- 验证充足上下文检查- 再规划 - 再执行……直到信息充足为止。这打破了传统 RAG 的单次命中模式使其具备了解决复杂、多跳问题的能力。1.3 为什么“充足上下文”是工程化的分水岭“充足上下文智能体”的引入是 Agentic RAG 从实验走向工程化的关键。没有它多智能体系统可能会陷入两种困境无限循环智能体们不停地搜索却无法判断何时停止。草率作答在信息不全的情况下LLM 被迫“脑补”导致幻觉Hallucination。这个智能体实际上承担了质量门控Quality Gate的职责。它通过分析三样东西来做判断检索到的片段实际抓取的文本内容。中间草稿LLM 基于当前片段生成的初步答案但不对外输出。缺失分析对比原始问题和现有信息精确指出缺口。这种机制使得整个系统的输出变得可审计、可追溯。当答案生成时我们不仅能得到答案还能看到为了得到这个答案系统进行了几轮搜索每轮搜索的目标是什么以及最终判定信息充足的依据。这对于金融、医疗、法律等对准确性要求极高的领域至关重要。2. 构建你自己的 Agentic RAG 系统核心组件与实战路径理解了原理我们来看看如何动手搭建。一个生产级的 Agentic RAG 系统远不止是调用几个现成的智能体库。它需要一套严谨的工程化设计。2.1 技术栈选型框架与模型目前社区的主流选择是LangChain或LlamaIndex作为智能体编排框架它们提供了构建智能体工作流的基础构件。LangChain优势在于其丰富的工具Tools集成和灵活的链Chains设计非常适合构建复杂的、多步骤的智能体逻辑。它的AgentExecutor和Plan-and-Execute模式是实现规划型智能体的良好起点。LlamaIndex优势在于其“数据框架”的定位对 RAG 的各个环节索引、检索、后处理有更深度的优化。它的AgentRunner和子查询Sub-Question Query Engine功能天然适合多步查询的拆解与执行。LLM 的选择是另一个核心决策。你需要两类模型核心推理模型用于规划、重写、充足性判断、最终合成。这部分需要较强的推理和指令遵循能力。Qwen、GPT-4、Claude-3系列是常见选择。对于成本敏感或需要本地部署的场景Qwen2.5-7B/14B、Llama 3.1 8B/70B等开源模型经过精调SFT后也能胜任。嵌入模型用于将文本转化为向量进行检索。这部分更看重语义表征能力。BGE、text-embedding-3-small、voyage等都是经过验证的优质选择。一个重要的实践建议不要一开始就用最强大的模型如 GPT-4去完成所有智能体任务。这会造成高昂的成本和延迟。更合理的架构是轻量级模型负责路由与规划用较小的模型如 Qwen2.5-1.5B或经过蒸馏的模型判断问题类型并做出简单的规划决策。重型模型负责复杂推理与生成只有到了需要深度分析、充足性判断和最终答案合成的环节才调用大参数量的模型。嵌入模型独立优化选择在 MTEB 等基准上表现好的专用嵌入模型它与生成模型的能力是正交的。2.2 工作流设计从单次问答到迭代检索基于上述框架一个简化的 Agentic RAG 工作流可以如下设计graph TD A[用户输入复杂查询] -- B(编排器/路由智能体) B -- C{是否为简单查询?} C -- 是 -- D[传统RAG流程] C -- 否 -- E[规划智能体] E -- F[生成子问题与搜索计划] F -- G[查询重写智能体] G -- H[转化为精准搜索查询] H -- I[检索分发智能体] I -- J[并行查询多个数据源] J -- K[收集检索片段] K -- L[充足上下文智能体] L -- M{信息是否充足?} M -- 否 -- N[生成缺失信息反馈] N -- O[更新查询/计划] O -- G M -- 是 -- P[合成智能体] P -- Q[生成最终答案] D -- R[生成最终答案] Q -- S[输出答案与溯源] R -- S关键实现细节规划智能体的实现可以让 LLM 根据问题输出一个 JSON 结构包含sub_questions子问题列表和data_sources每个子问题对应的目标数据源如“员工手册向量库”、“项目数据库”。充足上下文智能体的实现这是工程难点。一个可行的 prompt 设计是你是一个信息质量检查员。请基于以下材料判断是否能回答问题。 问题{原始问题} 已检索到的信息[列表形式展示检索片段] 基于当前信息的初步答案草稿{由另一个LLM生成的草稿} 请按步骤思考 1. 原始问题要求的核心信息点有哪些列出A, B, C... 2. 已检索到的信息分别覆盖了哪些点请引用原文。 3. 哪些信息点尚未被覆盖或覆盖不完整 4. 如果信息不足为了找到缺失信息下一步最应该搜索的关键词或查询语句是什么 最终请输出JSON{is_sufficient: true/false, missing_points: [点A的具体描述, ...], next_search_suggestions: [建议查询1, ...]}迭代控制必须设置最大迭代次数如3-5轮和超时机制防止智能体陷入死循环。当达到上限或连续两轮检索无新信息时应触发“终止并汇总已有信息”的流程。2.3 数据层工程化超越简单的向量库生产系统中的数据源是异构的。向量数据库用于存储非结构化文档PDF、Word、网页的嵌入。Chroma、Weaviate、Qdrant、Milvus是常见选择。图数据库对于高度关联的知识如人物关系、事件脉络、实体属性Neo4j等图数据库能更好地执行多跳查询。GraphRAG正是结合了图结构与 LLM 的检索增强范式。传统关系型/NoSQL数据库用于存储精确的结构化数据如客户信息、交易记录。搜索引擎如Elasticsearch用于全文检索和复杂的过滤、聚合。Agentic RAG 的Planner Agent和Search Fanout Agent需要具备“知道该去哪里找”的能力。这通常通过维护一个数据源元数据目录来实现其中描述了每个数据源的类型、内容范围、访问方式等。智能体在规划时会参考这个目录来分配查询。3. 从演示到生产必须跨越的可靠性与效率鸿沟让一个 Agentic RAG 在 Notebook 里跑通 demo 是一回事让它7x24小时稳定、可靠、高效地服务则是另一回事。以下是几个必须解决的工程挑战。3.1 可靠性处理不确定性避免“胡说八道”智能体的核心风险在于其决策的不确定性。LLM 可能规划出错误的路径充足性判断可能出错最终合成可能产生幻觉。应对策略结构化输出JSON Mode强制要求所有智能体规划、重写、判断的输出都遵循预定义的 JSON Schema。这极大提高了程序解析的稳定性。验证与回退机制对规划结果进行基础校验如子问题数量是否合理数据源是否在目录内。如果某一步智能体输出无法解析或明显不合理触发回退策略。例如从“多智能体模式”降级到“传统 RAG 模式”并记录日志告警。最终答案的溯源与引用合成答案时必须强制要求LLM 为答案中的每一个关键事实标注来源对应检索片段的 ID。这不仅是可解释性的要求也能通过让 LLM “指认”来源间接约束其幻觉。持续监控与评估建立线上评估管道定期用标注好的测试集包含复杂多跳问题跑系统监控“答案正确率”、“溯源准确率”、“平均迭代轮次”等核心指标。3.2 效率与延迟智能不是免费的午餐多轮 LLM 调用和多步检索必然带来延迟增加。一个复杂查询耗时从传统 RAG 的 2-3 秒增加到 10-20 秒是很常见的。优化手段异步与并行化独立的子查询检索可以完全并行。规划、重写、充足性判断等 LLM 调用在资源允许的情况下也可以异步进行。缓存策略语义缓存将用户查询和中间子查询的嵌入结果缓存起来。当遇到相似查询时直接返回缓存的结果或中间信息避免重复的 LLM 调用和检索。结果缓存对最终答案进行缓存并设置合理的过期策略。模型蒸馏与量化对负责路由、重写等相对简单任务的 LLM使用经过蒸馏Knowledge Distillation或量化Quantization的小模型大幅降低推理成本和延迟。提前终止充足上下文智能体要足够“敏感”。一旦判定信息已充足立即终止迭代进入合成阶段。3.3 可观测性与调试给系统装上仪表盘当用户得到一个错误答案时你必须能快速复现整个决策链条找到是哪个环节出了问题。必须记录的关键日志原始查询。规划输出生成的子问题和数据源映射。每一轮的重写查询。每一轮的检索结果返回的片段 ID 和摘要。每一轮的充足性判断结果是否充足、缺失点、下一步建议。最终合成答案及其引用的来源。总耗时和每步耗时。理想情况下应该有一个可视化界面能够以时间线或流程图的方式回放单个查询的处理全过程。这对于调试和向业务方解释答案的生成逻辑至关重要。4. 面向未来的架构思考Agentic RAG 作为 AI Agent 的认知核心当我们把 Agentic RAG 系统做到足够可靠和高效时它会自然演变为一个更广义的AI Agent的“大脑”或“记忆系统”。AI Agent 不仅需要检索内部知识还需要调用外部工具API、数据库、代码解释器甚至执行多轮对话。4.1 与工具调用Tool Calling的融合一个完整的 AI Agent 工作流可能是用户请求“帮我分析上季度销售数据并预测下季度趋势用图表展示。”规划智能体拆解为a) 从数据库获取销售数据b) 调用数据分析工具进行预测c) 调用图表生成工具。执行对于 (a)触发 RAG 或直接 SQL 查询如果数据在结构化库中。对于 (b) 和 (c)则调用相应的工具Tool。充足上下文智能体演进版它的职责扩展为判断“为了完成用户目标当前的信息和工具执行结果是否足够”如果预测模型需要更多历史数据它会反馈“需要获取过去两年的数据作为参考”。合成智能体最终将数据、分析结果和图表整合成一份完整的报告。在这里Agentic RAG 的“检索”能力与 AI Agent 的“工具调用”能力通过同一套规划、执行、验证的框架统一了起来。数据源和工具都成了智能体可以调用的“资源”。4.2 长期记忆与持续学习目前的 RAG 主要是“静态知识库”查询。未来的生产系统需要考虑对话记忆如何将多轮对话的历史有效地纳入检索和推理范围行动结果记忆智能体调用工具后产生的结果如何结构化地存储并用于未来的决策例如这次调用某个 API 失败了下次遇到类似任务时智能体应该能“记得”并尝试替代方案。知识库的持续更新如何设计自动化或半自动化的流程将智能体在交互中产生的新知识经人工审核后反哺回知识库4.3 评估体系如何衡量一个“智能”系统的好坏对于传统 RAG我们关注Hit Rate命中率、MRR平均倒数排名等检索指标以及答案的Factual Accuracy事实准确性。对于 Agentic RAG 和 AI Agent评估维度更复杂规划准确性生成的子问题是否全面、正确路由效率是否为每个子问题选择了最合适的数据源或工具迭代效率平均需要几轮迭代能完成查询是否存在不必要的迭代任务完成度对于复杂指令最终输出是否满足了用户的所有隐含需求资源消耗单次查询的平均 Token 消耗、API 调用次数、总延迟。建立一套全面的、自动化的评估体系是迭代和优化这类系统的基石。从 Google Search 到生产级可信 AI Agent这条路的核心不是堆砌更多的模型或更复杂的代码而是引入“规划”与“验证”的思维。Agentic RAG 通过让系统学会“先想后做、做了再查、不够再找”将原本脆弱、线性的检索流程变成了一个健壮、迭代的求解过程。当你开始动手时记住这条路径先用最简单的智能体框架比如 LangChain 的 Plan-and-Execute跑通一个复杂问题的闭环感受迭代的价值然后重点攻克“充足性判断”这个质量关卡这是可靠性的核心接着像对待任何后端服务一样为它加上缓存、监控、降级、日志这些工程化设施最后再思考如何将它与你已有的工具链、业务数据库融合扩展成一个真正的、能解决实际问题的 AI Agent。这个过程不会一蹴而就但每解决一个环节的可靠性问题你的系统距离“可信”就更近一步。最终你得到的将不再只是一个问答机器人而是一个能够理解复杂意图、自主规划路径、并为你从纷杂信息中挖掘出可靠答案的智能伙伴。 30款热门AI模型一站整合DeepSeek/GLM/Claude 随心用限时 5 折。 点击领海量免费额度