Agentic RAG:智能检索增强
金融分析师需要回答这个问题:苹果公司 2024 年相比 2023 年盈利能力是否改善?
如果只是机械地搜索一次,可能只找到 2024 年的数据。但经验丰富的分析师会这样做:先检索 2024 年财报,提取净利润率;再检索 2023 年财报,提取同一指标;然后计算变化;如果发现数据异常,还会交叉验证。
这种主动规划、动态调整、自我验证的检索方式,就是 Agentic RAG 的核心理念。
6.6.1 从被动检索到主动决策
传统 RAG 采用固定的”检索一次 → 生成”流程:接收查询、执行检索、返回结果,不评估检索质量,也不动态调整策略。
Agentic RAG 是赋予检索增强生成系统智能体能力的技术范式。它让 RAG 系统从被动的检索-生成流程,进化为主动规划、动态调整、自我反思的智能检索系统。核心转变是:检索是决策而非步骤。
传统 RAG 与 Agentic RAG 的对比:
| 特性 | 传统 RAG | Agentic RAG |
|---|---|---|
| 检索流程 | 固定(检索一次 → 生成) | 动态(可多轮检索、调整策略) |
| 信息需求判断 | 无(总是检索) | 有(判断是否需要检索) |
| 检索质量评估 | 无 | 评估相关性,必要时重新检索 |
| 多源协调 | 单一检索源 | 可调用多种工具(向量库、SQL、API) |
| 答案验证 | 无 | 自我反思,交叉验证 |
6.6.2 四大核心能力
Agentic RAG 具备四大核心能力,它们相互配合,形成完整的智能检索闭环。
1. 规划(Planning)
面对复杂问题,智能体会先分解任务,规划检索路径。
用户问题:对比苹果和三星 2024 年盈利能力
规划结果:
步骤 1:检索苹果 2024 年财报,提取净利润和营收
步骤 2:检索三星 2024 年财报,提取净利润和营收
步骤 3:计算两家公司的净利润率
步骤 4:对比分析,得出结论2. 检索驱动推理(Retrieval-driven Reasoning)
智能体基于检索结果动态调整推理路径,而不是机械执行预设流程。
执行步骤 1:检索到苹果营收 3890 亿美元
发现问题:只有营收,没有成本数据,无法计算净利润
动态调整:补充检索「苹果 2024 年净利润」或「苹果 2024 年利润表」
继续执行:获取净利润 967 亿美元,计算净利润率 24.9%3. 工具使用(Tool Use)
智能体根据任务特点选择合适的工具,而不是只依赖单一检索方式。
| 信息类型 | 推荐工具 | 示例 |
|---|---|---|
| 财报数据 | 向量检索 | 检索年报 PDF 中的财务数据 |
| 结构化数据 | SQL 查询 | 查询数据库中的股价、估值指标 |
| 实时信息 | API 调用 | 获取最新股价、汇率 |
| 最新动态 | 网络搜索 | 搜索公司新闻、政策变化 |
4. 自我反思(Self-Reflection)
智能体会评估检索和生成的质量,发现问题及时纠正。
生成答案:「苹果 2024 年营收增长 15%」
自我反思:这个增速异常高,需要验证
重新检索:查找官方财报原文
发现错误:实际增速是 2.1%,之前检索到的是分析师预测
纠正答案:「苹果 2024 年营收实际增长 2.1%」6.6.3 关键设计模式
Agentic RAG 有四种关键设计模式,适用于不同场景。
Self-RAG:反射标记系统
Self-RAG 的核心是在生成过程中插入反射标记,指导每一步决策。
| 反射标记 | 含义 | 选项 |
|---|---|---|
| [Retrieve] | 需要检索吗? | yes / no / continue |
| [IsRelevant] | 文档相关吗? | relevant / irrelevant |
| [IsSupported] | 文档支持答案吗? | fully / partially / no support |
这种机制让智能体能够:
- 避免不必要的检索(当模型已有足够知识时,标记 [Retrieve: no])
- 过滤不相关的文档(标记 [IsRelevant: irrelevant] 后跳过)
- 验证答案的可靠性(只采用 [IsSupported: fully] 的内容)
金融场景示例:
用户询问:「苹果 2024 Q3 净利润是多少?」
智能体内部决策:
[Retrieve: yes] 需要检索财报数据
↓ 检索到文档
[IsRelevant: relevant] 文档是 2024 Q3 财报,相关
↓ 提取信息
[IsSupported: fully] 文档明确列出净利润 $22.9B
↓ 生成答案
「苹果 2024 Q3 净利润为 229 亿美元」CRAG:检索质量分级
CRAG(Corrective RAG)根据检索质量动态调整策略。
检索结果质量评估:
├── Correct(高相关)→ 直接使用
├── Ambiguous(部分相关)→ 补充检索 + 信息融合
└── Incorrect(不相关)→ 丢弃,尝试外部搜索Multi-Hop RAG:多文档跳跃
很多复杂问题无法通过一次检索解决,需要在多个文档之间跳转,建立逻辑链条。
问题:比亚迪 2024 年 Q3 毛利率比 Q2 提高了还是降低了?
第 1 跳:检索 2024 Q3 财报 → 毛利率 21.9%
第 2 跳:检索 2024 Q2 财报 → 毛利率 20.7%
第 3 跳:对比分析 → Q3 比 Q2 提高 1.2 个百分点
第 4 跳(可选):检索原因 → 规模效应、成本优化Adaptive RAG:策略分级
根据问题复杂度自动选择策略。
| 问题类型 | 检索策略 | 示例 |
|---|---|---|
| 简单事实 | 单次检索或直接回答 | 苹果的股票代码是什么? |
| 对比分析 | Multi-Hop | A 公司和 B 公司谁盈利能力更强? |
| 因果推理 | Self-RAG + 验证 | 股价下跌的原因是什么? |
- Multi-Hop RAG:适合跨期对比、跨公司对比、因果分析
- Self-RAG:适合需要高准确性的场景(金融分析、合规审查)
- Adaptive RAG:适合问题复杂度差异大的综合问答系统
6.6.4 GraphRAG vs Vector RAG
向量检索是 RAG 的基础方式,但它有一个根本局限:丢失关系结构。
Vector RAG 的局限
向量数据库可以回答”苹果 Q3 营收是多少?“——因为这是独立事实检索。但它很难回答”苹果的哪些供应商也报告了营收增长?“——因为供应商关系没有编码在向量空间中。
| 特性 | Vector RAG | GraphRAG |
|---|---|---|
| 准确率 | ~60-70% | ~75-85% |
| 关系结构 | 丢失 | 保留 |
| 幻觉率 | 较高 | 降低约 30% |
| 适用查询 | 独立事实检索 | 关系推理、因果分析 |
GraphRAG 的优势
GraphRAG 通过提取实体和关系,构建知识图谱,支持关系推理。
知识图谱片段:
[苹果公司] --供应商--> [台积电]
[苹果公司] --供应商--> [富士康]
[台积电] --竞争对手--> [三星电子]
可回答的问题:
- 苹果的供应商有哪些?
- 苹果和三星有共同供应商吗?
- 供应商中谁的营收增长最快?实证数据(来源:Deep Memory Retrieval Benchmark, 2024)
深度记忆检索(DMR)基准测试显示:
| 系统 | 准确率 | 关键特点 |
|---|---|---|
| Zep(时序知识图谱) | 94.8% | 最佳准确率,保留时间有效性 |
| MemGPT | 93.4% | 综合表现良好 |
| GraphRAG | 75-85% | 关系结构保留,20-35% 准确率提升 |
| Vector RAG | 60-70% | 丢失关系结构 |
| 递归摘要 | 35.3% | 严重信息损失 |
递归摘要仅有 35.3% 的准确率。这意味着简单的对话压缩可能丢失大量关键信息。选择压缩策略时要谨慎。
选择建议
| 场景 | 推荐方案 |
|---|---|
| 独立事实查询 | Vector RAG |
| 关系推理、因果分析 | GraphRAG |
| 时间敏感查询(某时点已知信息) | 时序知识图谱 |
| 成本敏感场景 | Vector RAG + 元数据过滤 |
6.6.5 记忆整合
长期运行的智能体需要定期整合记忆,保持系统健康。记忆整合(Memory Consolidation)是维护记忆质量的关键机制。
触发条件
记忆整合应在以下情况触发:
- 记忆数量超过阈值(如 10,000 条)
- 检索返回过多过时结果
- 定期调度(如每周一次)
整合流程
记忆整合流程:
1. 识别重复
- 语义相似度 > 0.95 的记忆合并
- 保留最新版本
2. 合并相关
- 同一实体的多条记忆整合
- 保留时间线完整性
3. 更新有效性
- 检查时间戳,标记过时信息
- 更新 valid_until 字段
4. 归档过时
- 超过保留期的记忆移至归档
- 保留审计痕迹金融场景示例
# 整合前
- 记忆 1:「张先生风险偏好为激进型」(2023-01)
- 记忆 2:「张先生风险偏好为稳健型」(2024-06)
- 记忆 3:「张先生经历熊市后变得谨慎」(2024-06)
# 整合后
- 张先生风险偏好:
- 2023-01 至 2024-05: 激进型
- 2024-06 至今: 稳健型
- 变化原因: 熊市经历