【Agent笔记 | 第四篇】Agentic RAG

目录

[1. Agentic RAG 与 传统 RAG 的核心区别](#1. Agentic RAG 与 传统 RAG 的核心区别)

[2. Query Rewrite(查询重写)算不算 Agentic?](#2. Query Rewrite(查询重写)算不算 Agentic?)

[3. 多轮检索(Multi-turn Retrieval)如何设计?](#3. 多轮检索(Multi-turn Retrieval)如何设计?)

[4. 检索失败后 Agent 应该怎么调整策略?](#4. 检索失败后 Agent 应该怎么调整策略?)

[5. Agentic RAG 的成本和稳定性问题怎么控制?](#5. Agentic RAG 的成本和稳定性问题怎么控制?)


1. Agentic RAG 与 传统 RAG 的核心区别

两者的根本差异在于控制流(Control Flow)的主导权。

  • 传统 RAG (流水线式): * 架构: 线性且静态(Query -> 检索 -> 组装Prompt -> LLM生成)。

    • 特征: 无论问题多复杂,都只执行一次检索和一次生成。LLM 被动接收检索到的上下文,如果检索回来的内容是垃圾,LLM 产出的也是垃圾(Garbage in, garbage out)。
  • Agentic RAG (智能体式): * 架构: 动态且循环(基于 ReAct、Plan-and-Execute 等范式)。

    • 特征: LLM 作为"大脑"主动参与流程。它会评估 用户问题、规划 需要哪些信息、调用 不同的检索工具、判断检索结果是否足够,并决定是直接回答还是继续补充检索。

2. Query Rewrite(查询重写)算不算 Agentic?

结论是:视其驱动方式而定。 * 不算 Agentic(属于高级 RAG 技巧): 如果你的 Query Rewrite 只是一个固定的前置规则或单次 LLM 调用(例如:让 LLM 把用户的口语化提问改写为 3 个适合向量检索的关键词),这依然是流水线的一部分。

  • 算作 Agentic 的情况: 如果 Query Rewrite 是基于自我反思(Self-Reflection)触发的。例如,Agent 进行了第一次检索,阅读结果后发现没有命中答案,自主决定调整搜索词并重写 Query 进行第二次检索。这种具备"观察 -> 判断 -> 动作调整"的重写,就是典型的 Agentic 行为。

3. 多轮检索(Multi-turn Retrieval)如何设计?

设计高鲁棒性的多轮检索,通常依赖以下几个核心模块的配合:

  • 任务拆解 (Decomposition): 面对复杂问题(如"对比A公司和B公司2023年的营收增速"),Agent 首先将其拆解为子问题:"A公司2023年营收"、"B公司2023年营收"。

  • ReAct 循环 (Reasoning + Acting): * Thought: 我需要先找出A公司的营收。

    • Action: 调用财务数据库检索 "A公司 2023 营收"。

    • Observation: 获取到具体数字。

    • Thought: 接下来我需要找B公司的...

  • 记忆与状态管理 (State Management): 在多轮循环中,必须有一个统一的 Scratchpad(暂存区)记录"我已经知道了什么"和"我还需要查什么",防止 Agent 像无头苍蝇一样重复检索相同的内容。

4. 检索失败后 Agent 应该怎么调整策略?

一个成熟的 Agentic RAG 面对检索失败(如:返回为空、相似度极低、或提取不出有效信息)时,应该有一套梯度的 Fallback(降级/回退)策略:

  • 策略一:搜索词降维与泛化。 放弃精确匹配或长句匹配,提取核心实体。如果用户问"如何处理报错代码0x8000FFFF中的内存溢出",系统找不到完整案例,可以回退检索"0x8000FFFF"。

  • 策略二:切换检索路由(Router)。 向量检索(Dense Retrieval)找不到,可能因为需要的是精准匹配,Agent 应自主切换到 BM25/Elasticsearch 关键词检索;如果涉及实体关系,切换到知识图谱(Graph RAG)或 SQL 数据库查询。

  • 策略三:引入外部知识(Web Search)。 当本地知识库确实缺失时,Agent 判断权限后,调用 Google/Bing Search API 去公网寻找答案。

  • 策略四:反向澄清(Clarification)。 当系统发现用户的 Query 存在歧义或严重缺失条件导致无法检索时,Agent 应停止盲目尝试,主动向用户提问("请问您指的A系统是v1.0还是v2.0版本?")。

5. Agentic RAG 的成本和稳定性问题怎么控制?

这也是目前企业级落地最难跨越的门槛。Agentic RAG 的试错机制会导致 Token 消耗成倍增加,且容易陷入死循环。

成本控制 (Cost):

  • 大小模型协同 (Model Routing): 不要所有节点都用 GPT-4o 或 Claude 3.5 Sonnet。意图识别、简单的 Query 改写、判断检索结果是否相关的打分任务,可以使用微调过的本地小模型(如 Llama-3-8B 或 Qwen-7B)处理。只有最终的规划和长文总结才使用昂贵的大模型。

  • 语义缓存 (Semantic Cache): 对高频的相似多轮检索路径进行缓存,直接返回之前的推理结果,跳过 Agent 思考过程。

稳定性控制 (Stability):

  • 设置绝对护栏 (Hard Limits): 必须在工程层面限制 Agent 的 max_iterations(最大循环次数)。超过限制(如 3 或 5 次)强制终止思考,使用现有信息尽力回答或宣告失败。

  • 结构化输出约束: 强依赖 JSON 模式或函数调用(Function Calling)来限制 Agent 的输出格式,防止因为大模型胡言乱语导致下游代码解析崩溃。

  • 人机协同介入 (Human-in-the-loop): 设定置信度阈值,当 Agent 评估自己找出的答案置信度低于 60% 时,将对话转交人工或高亮提示用户"该回答仅供参考"。

相关推荐
马可家的菠萝39 分钟前
个人知识库怎么建?从一个正在学的技术主题开始
前端·笔记·知识管理·个人知识库
ss2731 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 17 PostgreSQL SQL高级查询:窗口函数、CASE、COALESCE
数据库·笔记·postgresql
叶子丶苏1 小时前
提示词工程格式四段式与少样本-VibeCoding入门笔记06
人工智能·笔记
问心无愧05132 小时前
[极客大挑战 2019]HardSQL
笔记
m0_646429972 小时前
BCrypt 与 JWT 认证流程学习笔记
笔记·学习
问心无愧05132 小时前
[GXYCTF2019]BabyUpload
笔记
http阿拉丁神猫6 小时前
Go语言入门笔记:从基础到开发环境搭建(二)
开发语言·笔记·golang
HRBorderInsight9 小时前
马来西亚人均收入一个月多少钱,个人薪资和家庭收入要分开看
经验分享·笔记
又見山11 小时前
本地 Markdown 与数据主权:你的笔记到底属于谁
笔记·obsidian
撩得Android一次心动12 小时前
Jetpack Compose 知识点整理2【个人用】
android·笔记·学习·kotlin·compose