【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% 时,将对话转交人工或高亮提示用户"该回答仅供参考"。

相关推荐
小雨xs7 小时前
Vulnhub靶场DC-9 渗透测试笔记
笔记
whyTeaFo7 小时前
MIT 6.1810: xv6 book Chapter3: Page tables 笔记
笔记
東雪木8 小时前
JVM 与 Java 内存模型 专属复习笔记
java·jvm·笔记·java面试
kinl20189 小时前
Softmax Linear Units (SoLU)
笔记
叶~小兮9 小时前
K8s常用组件学习笔记
笔记·学习·kubernetes
星恒随风9 小时前
从零开始理解 ResNet(上):为什么 CNN 需要“残差连接”?
人工智能·笔记·神经网络·学习·cnn
Wils0nEdwards9 小时前
claude.md 使用方法
笔记
Engineer邓祥浩9 小时前
宏观认知(1):AI 是什么——吴恩达《AI for Everyone》Week1 学习笔记
人工智能·笔记·学习
我是一只码蚁10 小时前
记一次苍穹外卖项目 Maven 编译报错的排查与解决全过程
java·经验分享·笔记·后端·架构·maven