RAG 发展历程 —— 从起源到 Agentic RAG

检索增强生成(Retrieval-Augmented Generation, RAG)是将外部知识检索与大语言模型生成能力结合的核心技术。
本文梳理 RAG 从 2020 年诞生至今的完整演进脉络,涵盖关键论文、技术范式、评估体系与未来方向。


一、起源:RAG 的诞生(2020)

开山之作

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

核心思想:

  • LLM 将事实知识存储在参数中,但访问和精确操控知识的能力有限
  • 在知识密集型任务上,性能落后于任务特定的检索架构
  • 提出结合参数记忆(预训练 seq2seq 模型)与非参数记忆(Wikipedia 稠密向量索引)的通用微调方案

两种 RAG 形式:

形式机制特点
RAG-Sequence整个生成序列基于相同的检索段落检索一次,用于整个回答
RAG-Token每个 token 可以使用不同的检索段落每步动态检索,更灵活但计算成本高

关键发现:

  • RAG 模型比纯参数 seq2seq 基线生成更具体、多样、事实性强的语言
  • 在三个开放域 QA 任务上达到 SOTA
  • 提供了决策的可追溯性(provenance)—— 知道答案来自哪篇文档

同期奠基工作

论文时间贡献
Dense Passage Retrieval (DPR)2020-04双编码器框架学习稠密表示,端到端训练稠密检索器
REALM (Guu et al.)2020-02预训练语言模型 + 可微知识检索器,知识文本作为隐变量

二、发展阶段总览

timeline
    title RAG 技术演进时间线
    2020 : 原始 RAG (Lewis et al.)
         : DPR, REALM
    2021 : kNN-LM (2T tokens)
         : 检索增强预训练
    2022 : Atlas (few-shot RAG)
         : HyDE, REPLUG
         : 向量数据库商业化起步
    2023 : Self-RAG, CRAG
         : RAPTOR, Chain-of-Note
         : LangChain / LlamaIndex 生态爆发
         : 长上下文 vs RAG 之争开始
    2024 : Modular RAG 范式确立
         : GraphRAG (Microsoft)
         : Agentic RAG
         : RAG-Fusion, Adaptive RAG
    2025 : Agent 与 RAG 深度融合
         : 多模态 RAG
         : RAG 评估体系成熟 (RAGAS, ARES)

三、第一阶段:Naive RAG(2020-2022)

基本流程

用户查询 → Embedding → 向量相似度检索 → Top-K 文档 → 拼接 Prompt → LLM 生成

核心局限

问题表现原因
低精度检索到的 chunk 与问题不相关粗粒度语义匹配误差
低召回遗漏关键信息单一检索策略覆盖不足
幻觉仍存模型编造检索文档中没有的信息LLM 参数知识与检索知识冲突
冗余重复多段落内容重复缺乏去重和综合机制
上下文窗口浪费无关信息占据 token检索结果未经过滤压缩

早期改进尝试(2021-2022)

论文/技术时间改进点
Improving LM by retrieving from trillions of tokens (kNN-LM)2021-12从 2T token 数据库检索,证明大规模检索增强的有效性
Atlas2022-08预训练检索增强语言模型,少量样本即可学习知识密集型任务
REPLUG2022用检索增强黑盒语言模型,无需微调 LLM
Promptagator2022-09用 LLM 生成查询来训练任务特定检索器

四、第二阶段:Advanced RAG(2022-2023)

Advanced RAG 针对 Naive RAG 的检索质量问题,在检索前、检索中、检索后三个阶段进行优化。

4.1 检索前优化(Pre-retrieval)

数据索引优化:

  • 分块策略(Chunking):按语义、固定长度、递归、文档结构等策略切分
  • 元数据增强:添加标题、时间、类别等标签辅助过滤
  • 混合索引:向量 + 关键词 + 图结构

查询优化:

技术核心思想代表工作
Query Rewriting改写用户查询以更好地匹配文档语义空间Query2Doc, ITER-RETGEN
HyDE (Hypothetical Document Embeddings)生成假设答案再嵌入,用假设答案检索真实文档HyDE (2022)
Step-Back Prompting先抽象出概念和原理,再基于原理推理Zheng et al. (2023)

4.2 检索优化(Retrieval)

Embedding 模型优化:

  • 领域微调:在特定领域数据上微调嵌入模型(如 BGE-large-EN)
  • 动态嵌入:根据上下文动态调整表示(如 OpenAI text-embedding-ada-002)
  • 对比学习:强化正样本、挖掘难负样本

检索策略演进:

策略说明适用场景
Dense Retrieval向量语义相似度语义理解要求高的开放域问题
Sparse Retrieval (BM25)关键词匹配精确术语、ID、代码片段
Hybrid Search稠密 + 稀疏融合(如 RRF)通用场景,兼顾语义和精确匹配
多路召回向量 + 关键词 + 图遍历同时召回复杂企业知识库

对齐优化:

  • 查询-文档对齐:解决用户查询与文档表达不一致的问题
  • 检索器-生成器对齐:用 LLM 反馈信号微调检索器(AAR, UPRISE)

4.3 检索后优化(Post-retrieval)

重排序(Rerank):

  • 粗排(向量相似度)→ 精排(交叉编码器Cross-Encoder)
  • 多样性排序(DiversityRanker)
  • 解决 “Lost in the Middle”(LostInTheMiddleRanker)

上下文压缩:

  • 信息压缩:将检索文档压缩为摘要,减少噪声(RECOMP)
  • Prompt 压缩:去除对生成无贡献的 token
  • 重定位:将最相关上下文放在 prompt 两端

4.4 本阶段标志性工作

论文时间核心贡献
Self-RAG2023-10自适应检索 + 反思 token,模型自主决定何时检索、如何评价检索结果 extrinsic-hallucinations
CRAG (Corrective RAG)2024-01检索评估器判断检索质量,低质量时触发网络搜索修正
RAPTOR2024-01递归嵌入-聚类-摘要,构建树状多层抽象结构
Chain-of-Note2023-11为检索文档生成阅读笔记,评估相关性后综合答案
FLARE2023-05前向-looking 主动检索,预测下一句内容作为查询
IRCoT2022-12检索与思维链推理交错进行,互相增强

Self-RAG 的关键洞察:不要无差别检索固定数量的段落。模型应自主判断是否需要检索、检索内容是否相关、生成内容是否得到检索内容支持。这与 Autonomous-Agents 中 “Tool Use 的瓶颈不在工具本身,而在知道何时用” 的洞察一致。


五、第三阶段:Modular RAG / Agentic RAG(2023-2024)

5.1 Modular RAG 范式

Modular RAG 将 RAG 系统拆分为可插拔的功能模块,不再固定流程:

graph LR
    A[用户查询] --> B{路由模块}
    B -->|简单查询| C[直接生成]
    B -->|知识查询| D[检索模块]
    B -->|多步推理| E[查询分解]
    
    D --> F[向量检索]
    D --> G[关键词检索]
    D --> H[图检索]
    
    E --> I[子查询1]
    E --> J[子查询2]
    I --> D
    J --> D
    
    F --> K[重排序]
    G --> K
    H --> K
    
    K --> L[上下文融合]
    L --> M[LLM生成]
    
    M --> N{质量评估}
    N -->|不满意| O[反馈循环]
    O --> D
    N -->|满意| P[最终输出]

核心模块:

模块功能示例
搜索模块多策略检索向量 + 关键词 + 图
记忆模块利用历史交互用户偏好、先前检索结果
融合模块多源信息综合RAG-Fusion(多查询召回融合)
路由模块查询分类与分发按领域路由到不同知识库
预测模块预测需要检索的内容FLARE 的前向预测
任务适配器针对任务定制检索策略代码检索 vs 法律检索

5.2 Agentic RAG

Agentic RAG 将 RAG 与 Agent 能力结合,使系统具备:

  • 自主决策:判断是否需要检索、检索什么、何时停止
  • 工具使用:不仅检索静态文档,还可调用 API、数据库、搜索引擎
  • 多步推理:复杂问题分解为子查询,迭代检索-生成
  • 自我修正:评估生成质量,不满意则重新检索

与 Agent 记忆架构的关系:

  • RAG 的向量检索相当于 Agent 的长期语义记忆
  • Modular RAG 的路由和融合模块类似于 Agent 的规划能力
  • Self-RAG 的反思 token 相当于 Agent 的自我监控
  • 参见 agent-memory-design-references 中 Letta 对 “naive RAG 污染上下文” 的批评

5.3 GraphRAG:结构化知识检索(2024)

GraphRAG(Microsoft Research)

与 Baseline RAG 的核心差异:

维度Baseline RAGGraphRAG
索引对象文本 chunk 的向量实体、关系、声明构成的知识图谱
检索方式向量相似度图遍历 + 社区摘要
全局推理弱(难以连接分散信息)强(社区层次摘要支持整体理解)
复杂查询难以回答需要综合多源信息的问题通过图结构连接”断点”

GraphRAG 流程:

  1. 索引阶段
    • 文本 → TextUnits
    • 提取实体、关系、关键声明
    • 使用 Leiden 算法层次聚类
    • 自底向上生成社区摘要
  2. 查询阶段
    • Global Search:利用社区摘要回答整体性问题
    • Local Search:围绕特定实体展开邻居和关联概念
    • DRIFT Search:结合社区信息的动态展开检索
    • Basic Search:标准向量搜索作为 fallback

六、RAG 与 Fine-tuning 的关系

维度RAGFine-tuning
知识更新实时更新知识库即可需要重新训练模型
适用场景快速演变的知识(新闻、产品文档)固定格式、风格、领域推理模式
幻觉风险较低(可追溯来源)可能因学习新知识而加剧幻觉
成本检索基础设施成本训练计算成本
定制化提示词工程 + 知识库组织模型行为深层定制

关键洞察:两者不是互斥的,最佳实践是迭代结合:

  • 用 RAG 注入最新、易变的知识
  • 用 Fine-tuning 优化输出格式、指令遵循、领域推理风格
  • 用 Prompt Engineering 发挥模型固有能力

参见 extrinsic-hallucinations:Gekhman et al. (2024) 证明用 SFT 更新 LLM 知识有风险,会加剧幻觉。这强化了”用 RAG 而非 Fine-tuning 注入新知识”的实践原则。


七、评估体系

7.1 评估维度

RAG 评估关注三个质量分数四项能力

质量分数:

指标含义评估对象
Context Relevance检索上下文的相关性和精确性检索模块
Answer Faithfulness答案对检索内容的忠实度生成模块
Answer Relevance答案对问题的相关性端到端

四项能力:

  • Noise Robustness:噪声鲁棒性(无关文档存在时仍正确回答)
  • Negative Rejection:拒答能力(无相关信息时承认不知道)
  • Information Integration:信息整合能力(多源信息综合)
  • Counterfactual Robustness:反事实鲁棒性(面对错误信息不被误导)

7.2 评估工具

工具特点
RAGAS无需人工标注,自动评估上下文相关性、忠实度、答案相关性
ARES使用合成数据训练评判模型
TruLens可解释的 RAG 评估框架
RGB / RECALL学术基准测试集

八、挑战与未来方向

当前核心挑战

  1. 长上下文 vs RAG

    • 1M+ token 上下文窗口使 “把整个文档塞进去” 成为可能
    • 但长上下文注意力衰减、成本高昂、检索定位更精确
    • 趋势:RAG 不会消失,而是与长上下文互补 —— RAG 负责粗筛,长上下文负责细读
  2. 生产级 RAG 的工程复杂度

    • 数据清洗、chunk 策略、嵌入选择、检索融合、重排序、prompt 工程……
    • 每个环节都需要大量实验调优
    • 需要系统化的评估和监控体系
  3. 多模态 RAG

    • 从文本扩展到图像、音频、视频、代码
    • 统一多模态嵌入空间、跨模态检索
  4. RAG 安全与隐私

    • 企业私有数据的访问控制
    • 检索内容的权限隔离(不同用户看到不同文档)
    • 提示注入攻击防护

未来方向

方向描述
RAG + Agent 深度融合Agent 自主决定检索策略、评估检索质量、迭代优化
Self-Improving RAG系统从用户反馈中自动优化索引和检索策略
联邦 RAG跨组织、跨数据源的安全联合检索
实时 RAG毫秒级知识更新,支持高频变化场景(股市、赛事)
认知架构集成将 RAG 纳入 Agent 的认知架构(如 CoALA 中的程序/语义/情景记忆)

九、关键论文速查表

论文年份类别一句话贡献
Retrieval-Augmented Generation (Lewis et al.)2020起源提出参数记忆 + 非参数记忆的结合范式
Dense Passage Retrieval (Karpukhin et al.)2020检索端到端稠密检索器,双编码器框架
Improving LM by Retrieving from Trillions of Tokens2021规模证明大规模检索增强语言模型的有效性
Atlas (Izacard et al.)2022训练检索增强的少样本学习
HyDE2022查询生成假设答案再嵌入检索
Self-RAG (Asai et al.)2023自适应反思 token 实现自适应检索与自我评估
CRAG (Yan et al.)2024修正检索质量评估 + 动态修正策略
RAPTOR (Sarthi et al.)2024结构递归树状摘要实现多层次检索
GraphRAG (Microsoft)2024结构化知识图谱 + 社区摘要支持全局推理
RAG Survey (Gao et al.)2023综述RAG 全面综述:Naive → Advanced → Modular

十、与知识库已有内容的关联

  • extrinsic-hallucinations —— Self-RAG、RARR、FAVA 等反幻觉方法是 RAG 的重要分支;“用 RAG 而非 SFT 注入新知识”是关键设计原则
  • Autonomous-Agents —— RAG 是 Agent 长期记忆的技术基础;Self-RAG 的 “知道何时检索” 与 Agent Tool Use 的 “知道何时用工具” 是同一类问题
  • agent-memory-design-references —— Letta 的 Memory Blocks、MemGPT 的读写记忆设计为下一代 RAG 提供了架构启发
  • DeerFlow / Deep-Agents —— 生产级 Agent 框架中的 RAG 实践(DeerFlow 的 18 层中间件包含 SummarizationMiddleware、MemoryMiddleware 等 RAG 相关组件)
  • 核心概念 —— LangGraph 的 Checkpointer 和 Store 为 RAG 提供了持久化和跨会话记忆的基础设施

十一、待深入研究

  • 各种分块策略(fixed-size, recursive, semantic, agentic)的实际效果对比
  • 嵌入模型微调的具体实践(BGE, M3E, GTE 等中文场景选择)
  • Hybrid Search 的 RRF 融合公式与权重调优
  • Rerank 模型(Cross-Encoder, Cohere Rerank, bge-reranker)的延迟与效果权衡
  • GraphRAG 的索引成本与查询延迟在实际业务中的可行性
  • RAGAS 评估指标与人工评估的一致性验证
  • 长上下文模型(1M+ tokens)对 RAG 架构的影响 —— RAG 会消失还是进化?
  • Agentic RAG 的具体实现模式(LangGraph 中的检索节点设计)