
用真实生产取舍解释六种 Agentic RAG 模式
大多数 RAG 演示在理想环境下运行良好,但一旦面对真实用户,问题便接踵而至:检索到无关上下文、浪费大量 tokens,却依然无法避免幻觉。问题的根源往往不在于模型或检索算法本身。
而在于传统 RAG 对所有查询都采用千篇一律的处理方式。
Agentic RAG 改变了这一范式。系统不再机械地执行检索,而是能够自主决策何时检索、检索什么、以及何时停止。
本指南将深入解析 Agentic RAG 的本质,揭示传统 RAG 在生产环境中的失效原因,并指导你如何为实际系统选择正确的 Agentic RAG 模式。
传统 RAG 的工作原理(从第一性原理出发)

首先,让我们回顾传统 RAG 的工作方式。检索增强生成(RAG) 通常包含以下步骤:
- 检索相关信息:在生成回复前,先从外部知识库中检索相关内容。
- 查询时获取外部数据:这一点至关重要,因为大语言模型存在知识截止日期。它们不了解你的内部流程或近期变更。如果信息不在提示词中,模型就无法使用。
- 基于来源生成答案:RAG 通过搜索知识库、将相关文档加入提示词,并基于这些来源生成有依据的答案来解决上述问题。
示例:假设你正在为一款 SaaS 产品构建客服机器人。用户提问:“如何启用双重身份验证?”如果没有 RAG,模型可能只会给出通用的安全建议。而有了 RAG,系统会检索你产品实际的技术文档,并生成针对性的操作指南。
基本流程非常直观:
- 将用户查询转换为数值向量表示(嵌入)。
- 在向量数据库中检索具有相似向量的文档。
- 将排名靠前的检索结果加入提示词。
- 生成最终回复。
这套流程虽然有效,但也存在固有的缺陷。
传统 RAG 为何在生产环境中失灵

固定的流水线式处理方法会以可预见的方式失效。
- 无关检索频繁发生:用户问:“你们的退款政策是什么?”系统却可能检索到关于支付处理、订阅管理、账号设置的文档,仅仅因为它们都提到了“钱”。真正的退款政策可能被埋没在第五个检索结果中。模型不得不在大量噪声中寻找有效信号。
- 过度检索浪费资源:简单问题与复杂问题被同等对待。用户问:“你们的邮箱地址是?”系统仍然检索 5 篇文档并传给模型。对于一个模型本可直接回答的问题,你白白多花了 10 倍的 tokens 成本。
- 延迟层层叠加:对查询进行嵌入(50ms)、向量数据库查询(100ms)、结果重排序(150ms)、生成回复(800ms)。一个简单问题也可能需要超过 1 秒的响应时间,用户体验会明显感知到延迟。
- 上下文窗口限制带来取舍难题:即使检索到 10 篇相关文档,也可能无法全部放入有限的上下文窗口。是应该截断内容,还是先进行摘要?每一个选择都会引入新的失败风险。
- 幻觉问题依然存在:即使检索结果良好,模型仍可能产生幻觉。它可能抓住检索上下文中的某句话,忽视其他文档中的矛盾信息,并围绕它构建整个回答。或者将检索到的信息与训练数据混杂,产生看似自信实则错误的答案。
根本问题在于,传统 RAG 对所有查询一视同仁。无论用户实际需要什么,它都检索相同数量的文档,使用相同的搜索策略,并遵循相同的生成模式。
“Agentic RAG”的真正含义

Agentic RAG 赋予系统决策能力。系统不再遵循固定的流水线,而是在每一步进行推理,动态决定接下来要做什么。
可以这样理解:如果传统 RAG 是一条流水线,那么 Agentic RAG 则是一棵决策树。
- 在传统 RAG 中,每个查询走相同的路径:先检索,再生成。
- 在 Agentic RAG 中,系统会基于观察进行分支决策:我是否需要检索?应该检索哪些来源?已有的信息是否足够?是否需要进一步获取更多信息?
这并不意味着系统变得完全自主或不可控。其核心价值在于:你利用大语言模型的推理能力来引导整个检索过程,而不仅仅是最后的生成步骤。
一个简单的示例可以说明这一点:
- 用户问:“240 的 15% 是多少?”传统 RAG 可能会检索关于百分数计算的文档。而 Agentic RAG 能够识别这是一个模型可直接求解的数学问题,从而完全跳过检索步骤。
- 另一个用户问:“过去两年我们的定价如何变化?”传统 RAG 可能会检索当前的定价页面。而 Agentic RAG 则能识别出需要历史数据,从而去搜索归档文档、对比不同版本,并综合总结变化点。
“Agentic”的部分指的就是这个动态的决策循环。 系统观察查询,决定采取何种动作(检索、计算、生成),评估动作结果,再决定是继续执行下一个动作还是返回最终答案。
Agentic RAG 的核心工作流
让我们通过一个文档助手的例子,看看 Agentic RAG 如何处理真实查询。
查询: “对比 2.x 和 3.x 版本中的认证方法”
系统会经历一系列决策步骤:
-
解析目标
模型识别到这是一个比较任务,而非简单的信息查找。它需要来自两个不同版本的信息,并提取特征进行对比。 -
决定是否检索
模型检查是否能够仅凭其训练数据回答。结论是否定的,因此需要检索外部信息。 -
选择检索来源
系统不是对所有来源发起一次笼统搜索,而是有针对性地选择:- 2.x 版本的归档文档
- 3.x 版本的当前文档
-
检索并评估
系统检索两个版本的文档,并评估信息的完整性:- 2.x 版本的内容足够。
- 3.x 版本的内容不完整,且引用了另一份指南。
因此,系统决定发起第二轮检索。
-
精炼检索
针对缺失的 v3.x 认证细节,系统发起一次定向搜索,并成功检索到所需信息。 -
校验与生成
当两个版本的信息都足够后,系统生成结构化的对比结果,例如:- OAuth 2.0 和 API keys(两个版本均有)
- JWT(仅 v3.x 支持)
- 引用具体的文档章节
这正是工作流“Agentic”的体现。系统动态决定了何时检索、使用哪些来源、以及是否需要多轮检索。而传统 RAG 通常只会执行一次检索,并期望初始结果就足够好。

六种 Agentic RAG 系统类型
Agentic RAG 并非单一的架构,而是一组模式的光谱,每种模式在检索流程的不同节点引入了决策能力。
1. 条件式(单步)Agentic RAG
最简单的 Agentic 行为是决定是否进行检索。在任何检索发生之前,模型会先评估查询。
- 这个问题能否仅凭模型的训练知识回答?
- 是否需要最新的外部信息?
- 这是一个无需检索的纯计算或推理任务吗?
基于此类评估,系统要么跳过检索直接生成答案,要么检索一次后再生成。
工作方式:
1. 接收用户查询。
2. 模型评估:是否需要外部信息?
3. 若不需要:直接基于模型内部知识生成答案。
4. 若需要:检索相关文档,然后生成答案。
5. 返回最终结果。
适用场景: 当你的查询混合了多种类型时。有些需要最新数据(如产品规格、文档),有些则不需要(如通识问题、数学计算、逻辑推理)。你希望避免不必要的检索成本。
优点:
* 在混合型应用中,可在 30–40% 的查询上减少检索开销。
* 对无需检索的查询响应更快。
* 实现与调试相对简单。
* 通常在保持总体延迟相近的同时,能显著降低成本。
缺点:
迭代/多步 Agentic RAG
有时,单次检索不足以获取所需信息。迭代或多步模式通过“检索-评估-再检索”的循环,动态优化查询过程。
工作方式:
1. 基于用户初始查询执行首次检索。
2. 大语言模型评估检索结果的充分性与相关性。
3. 若评估认为信息不足,则生成一个更精炼的查询,进行再次检索。
4. 重复此过程,直至达到预设的最大迭代次数(通常为2-3次)。
5. 基于累积的上下文信息生成最终回答。
此模式适用于用户查询本身较为模糊,或知识库规模庞大且内容多样化的场景。它能够从一次不理想的初次检索中恢复,通过逐步精炼来提升最终答案的质量。
优点:
* 显著提升对复杂或模糊查询的回答质量。
* 具备从糟糕的初次检索中恢复的能力。
缺点:
* 每次迭代(检索+评估)都会增加系统延迟。
* 多步处理导致更高的Token消耗。
* 需要设计谨慎的停止条件,以避免陷入无意义的循环。

工具路由 Agentic RAG
在实际应用中,数据源往往是异构的,可能包括文档数据库、API、搜索引擎或用户数据库等。工具路由模式负责分析查询,并将其智能地路由至最合适的数据源。
工作方式:
1. 分析用户查询,理解其信息需求。
2. 大语言模型判断哪些数据源与此需求相关。
3. 将查询路由至相应的工具(如特定API、数据库或搜索引擎)。
4. 根据需要,顺序或并行地执行这些工具调用。
5. 整合各工具的返回结果,生成最终回答。
当系统拥有多个独立的数据后端,且不同查询需要访问不同来源时,此模式非常有效。它能避免对每个查询都进行全量搜索,提升效率。
优点:
* 通过使用最相关的数据源,大幅提升答案的相关性。
* 减少对无关数据源的无谓调用,优化性能与成本。
* 能够灵活结合实时API数据与静态文档内容。
缺点:
* 需要为每个工具准确定义并提供清晰的描述。
* 路由决策本身会增加一次大语言模型调用开销。
* 路由错误会导致查询被发送至错误的数据源。
* 系统需要更复杂的工具管理和错误处理机制。

基于规划的 Agentic RAG
对于需要按特定顺序执行多个步骤的复杂查询,基于规划的模式会先制定一个行动计划,再按步骤执行。
工作方式:
1. 大语言模型分析查询,并将其分解为一个多步骤的执行计划。
2. 计划明确每一步需要检索或计算什么,以及步骤间的依赖关系。
3. 系统按顺序执行计划中的每一步。
4. 每一步的执行结果可能会影响后续步骤的输入或逻辑。
5. 最后一步综合所有中间结果,生成最终回答。
此模式适用于处理多面向、操作顺序至关重要的复杂任务,尤其是那些需要将检索与计算或API调用相结合的场景。
优点:
* 能够有效处理需要顺序逻辑的复杂查询。
* 规划步骤提供了清晰的推理过程可见性,便于调试。
* 允许在执行前对计划进行验证或调整。
缺点:
* 制定规划会增加请求的前置延迟。
* 如果初始计划制定有误,可能导致整个执行路径偏离。
* 若早期步骤失败,系统较难自动恢复或调整计划。

反思/自评估 Agentic RAG
为了确保输出质量,反思模式会在将答案返回给用户之前,增加一个自我评估和修正的环节。
工作方式:
1. 基于检索到的信息生成初步答案。
2. 启动一个评估步骤,根据预设的质量标准(如准确性、完整性)审查该答案。
3. 若答案通过评估,则直接返回给用户。
4. 若未通过评估,则触发修正机制,例如检索更多信息或根据评估反馈重新生成答案。
此模式适用于答案质量至关重要、产生幻觉(hallucination)成本高昂的场景,并且要求具备清晰、可衡量的质量标准。
优点:
* 能在错误答案到达用户前将其拦截。
* 显著提升答案的完整性与准确性。
* 为系统输出增加了一层质量保证。
缺点:
* 生成成本几乎翻倍(初稿生成 + 评估/重生成)。
* 增加显著的延迟(通常为500–1000毫秒)。
* 依赖清晰且可自动化度量的评估标准。

多智能体 RAG
这是最复杂的模式,通过多个专业化的智能体(Agent)协作处理查询的不同方面。一个协调者(Coordinator)负责分解任务并管理各智能体。
工作方式:
1. 协调者分析查询,将其拆解为多个独立的子任务。
2. 将每个子任务分配给具有相应专长的智能体。
3. 各智能体并行执行自己的任务(可能调用不同的工具)。
4. 协调者汇总所有智能体的输出,综合生成最终回答。
重要提示:大多数生产系统并不需要如此复杂的架构。仅当您的查询确实包含大量可并行处理的、相互独立的子任务,且已被证实更简单的模式无法满足需求时,才应考虑此模式。
优点:
* 允许真正的并行处理,在理想情况下可降低整体延迟。
* 每个智能体可以针对特定任务类型进行深度优化。
缺点:
* 系统实现和调试的复杂度极高。
* 智能体间的上下文管理与协调非常棘手。
* 对于多数应用,使用更简单的模式通常能获得更稳定、更易维护的结果。
回顾与前瞻
至此,您已经理解了传统RAG(固定流程)与Agentic RAG(具备决策能力)的核心区别,并了解了六种主流的智能体模式。它们体现了“自主性”的逐级增强。
需要强调的是,大多数生产级系统只会选择性地采用其中一两种模式,而非全部。上述模式解决了Agentic RAG“做什么”和“怎么做”的问题。接下来,我们将探讨生产实践中至关重要的议题:如何平衡与控制延迟与成本,以及如何为您的具体用例选择最合适的模式。
生产实践:管理延迟与成本
引入智能决策在带来灵活性的同时,也可能增加延迟与计算成本。以下是几种有效的优化策略:
基于置信度的条件检索
在检索前,先让大语言模型评估当前查询需要外部信息的置信度(例如1-10分)。仅当置信度低于某个阈值(如7分)时才触发检索,否则直接基于内部知识生成。这种简单的启发式方法,在混合型应用中可减少30-40%的不必要检索。
迭代系统中的早停机制
不要固定进行N次迭代。在每次检索后,立即评估已获信息是否足够满足一个预设的质量阈值。一旦达到阈值,立即停止迭代。这避免了在第一次或第二次迭代已成功时,仍进行多余循环。
实施多级缓存
* 向量缓存:缓存常见查询的嵌入向量。
* 结果缓存:根据数据新鲜度要求,缓存检索结果1-24小时。
* 答案缓存:对完全相同的查询缓存完整答案。
* 语义缓存:识别语义相似的不同查询(如“如何重置密码?”与“我忘记密码了该怎么办?”),返回缓存答案。
* 效果:对于FAQ类应用,缓存策略可降低50-70%的向量数据库或API调用。
先浅后深检索策略
首先执行一次快速但相对粗略的检索(例如返回20个候选片段)。如果大语言模型评估后认为需要更高精度或更多上下文,再触发一次更彻底、更精确(但也更慢)的检索。这使得简单查询能快速返回,同时为复杂查询保留了深入搜索的能力。
并行流式评估
不必等待所有检索片段全部返回后再开始评估。可以在片段从数据库流式返回时即开始进行相关性评估。当最后一个片段到达时,前几个片段的评估可能已经完成,从而加速整体决策。
基于预算的迭代控制
为每个查询设定一个Token预算(涵盖检索和生成)。系统在运行过程中跟踪消耗,当接近预算上限时,强制终止迭代,并基于当前已获得的信息生成答案。这能有效防止个别复杂查询导致成本失控。
非关键路径的异步精炼
对于实时性要求高的场景,可以先快速返回一个质量可接受的初始答案。同时,在后台异步启动一个更复杂的精炼流程(如反思模式)。如果精炼后的答案质量有显著提升,再通过通知等方式更新给用户。这平衡了“速度”与“质量”的用户体验。
关键在于度量。为每一步设置埋点,追踪每条代码路径处理的查询百分比,并度量每种模式的延迟与 Token 消耗,从而优先优化处理流量最大的慢速路径。
如何选择合适的 Agentic RAG 模式
可以通过回答以下问题来逐步收敛到合适的模式。
模型能否仅凭训练数据回答大多数查询?
- 能:从 条件式单步 Agentic RAG 开始。让系统在可能时跳过检索。这是最简单且通常已足够的智能体模式。
- 不能:继续下一个问题。
你是否拥有多个需要不同访问方式的数据源?
- 是:使用 工具路由式 Agentic RAG。让系统选择要查询的后端,这可以避免搜索无关来源并提升精度。
- 否:继续下一个问题。
查询是否经常含糊或信息不足?
- 是:考虑 迭代式 Agentic RAG。允许系统基于已发现的信息逐步精炼搜索。为控制延迟,建议将迭代次数限制在 2–3 次。
- 否:继续下一个问题。
查询是否需要按特定顺序完成多个步骤?
- 是:使用 基于规划的 Agentic RAG。让系统创建并执行一个计划。当步骤顺序至关重要时(例如,先查询先决条件再查询资格),这种方法很有效。
- 否:继续下一个问题。
答错的代价是否很高?
- 是:在所选的基础模式上叠加 反思/自评估 行为。这可以在错误到达用户前将其拦截,但需要接受由此带来的延迟开销。
- 否:你所选的基础模式可能已足够。
其他考量因素:
- 延迟敏感性:实时对话应用更适合条件式单步模式;批处理任务则可以考虑使用带反思的基于规划模式。
- 容错要求:高风险领域(如医疗、法律、金融)更适合自评估模式;低风险场景可以省略。
- 数据复杂度:简单、结构良好的文档用条件式检索即可;混乱、异构的数据则更能受益于工具路由或迭代模式。
- 预算限制:更强的智能体行为意味着更多的 LLM 调用。如果成本受限,应从简单模式开始,仅在度量数据证明有必要的地方增加“智能”。
多数生产应用最终会采用混合方案:例如,使用条件式检索跳过不必要的搜索,用工具路由选择正确的数据源,并仅对被标记为高风险的查询进行选择性自评估。
结论
Agentic RAG 是一个光谱,而非非此即彼的二元选择。
光谱的一端是固定流程的传统 RAG;另一端则是能够规划、执行、评估并迭代的完全“自治”系统。大多数生产系统处于两者之间。
应从能解决你当下问题的最简单模式开始。设置完善的埋点,度量系统在何处失败,并且只为解决这些特定的失败点才增加“智能”。
如果 90% 的查询用传统 RAG 已能良好处理,就不要盲目地到处添加智能体行为。只需聚焦于那 10% 的疑难案例。
如果检索本身已经足够快速且廉价,你可能不需要条件逻辑。如果你的数据高度同质化,你也可能不需要工具路由。
我们的目标不是构建最炫酷或最复杂的系统,而是构建一个能在你的延迟与成本约束内、稳定服务用户的系统。
Agentic RAG 为你提供了在简单检索失效时的“补救工具”。请谨慎使用。那些在生产中表现最好的系统,都是只在有充分理由时才增加复杂度、对一切进行严密度量、并始终将用户体验放在首位的系统。
关注“鲸栖”小程序,掌握最新AI资讯
本文来自网络搜集,不代表鲸林向海立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/archives/23575
