整理日期: 2026-04-29
一、RAG 技术演进全景
RAG 的代际演进
RAG 1.0 (2023) 基础 RAG
检索 → 拼接 → 生成(线性流水线)
↓
RAG 2.0 (2024-2025) 高级 RAG
混合搜索 + 重排序 + 智能分块 + 查询优化
↓
RAG 3.0 (2025-2026) 架构 RAG
Agentic RAG / GraphRAG / 多模态 RAG / Modular RAG
二、文档解析与分块(Chunking)
文档分块是 RAG 的第一步,也是决定检索质量的最关键环节之一。
2.1 分块策略对比
| 策略 | 原理 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 固定大小分块 | 按固定字符数/词数切分(如 500 词/块) | 简单、快速 | 切割可能打断语义 | 结构化文本、代码 |
| 递归分块 | 先用大分隔符(段落),再逐级细分(句子→短语) | 保留层级结构 | 需调分隔符参数 | 长文档、报告 |
| 语义分块 | 用嵌入模型计算句间相似度,在语义突变处切分 | 语义完整性好 | 计算开销大 | 多主题文档 |
| 递归语义分块 (RSC) 2025 | 递归 + 语义结合的混合策略 | 上下文相关性最优 | 实现复杂 | 复杂文档 |
| 层级分块 | 大块(文档级)→ 中块(段落级)→ 小块(句子级) | 兼顾上下文和精度 | 存储开销大 | 知识库搜索 |
| AST 分块 2025 | 用抽象语法树按代码结构分块 | 保留代码语义结构 | 仅适用于代码 | 代码库 RAG |
| Agentic 分块 2026 | 用 Agent 智能决策分块策略和大小 | 自适应最优 | 成本高 | 多类型文档 |
2.2 分块大小选择指南
| 块大小 | 适用场景 | 说明 |
|---|---|---|
| 100-200 tokens | 精确问答 | 适合需要精确定位答案的场景 |
| 200-500 tokens | 通用 RAG(推荐) | 平衡上下文和精度 |
| 500-1000+ tokens | 总结/概述 | 适合需要理解大段语义的场景 |
2.3 文档解析最佳实践
原始文档 → 格式识别 → 文档解析 → 分块 → 元数据标注 → 嵌入 → 存储
↓
表格/图片/代码单独处理
关键技巧:
- 元数据标注:在分块时保留标题、章节号、来源等元数据,可在检索时作为过滤条件
- 上下文增强:给每个块添加上下文摘要(如文档标题+章节名),帮助嵌入模型理解
- 重叠窗口:块之间保留 10-20% 的重叠,避免信息丢失
三、检索增强技术
3.1 混合搜索(Hybrid Search)
核心思路:向量检索(语义) + 关键词检索(精确匹配) 互补
用户查询
↓
├→ 向量检索(语义相似度)→ 候选集 A
└→ 关键词检索(BM25) → 候选集 B
↓
合并候选集 A ∪ B
↓
使用 RRF(Reciprocal Rank Fusion)重新排序
RRF score(doc) = Σ 1/(k + rank_i(doc)) # k 通常取 60
↓
Top-K 结果
为什么有效:
- 向量检索:理解"苹果"和"iPhone"的语义关系
- 关键词检索:精确匹配"PROJ-2024-001"这样的内部编号
- RRF:把两者的排序结果公平地融合
3.2 查询优化(Query Optimization)
| 技术 | 原理 | 效果 |
|---|---|---|
| 查询改写 | 用 LLM 改写用户的原始查询,使其更适合检索 | 提升检索覆盖率 |
| 子查询分解 | 把复杂查询拆成多个子查询分别检索 | 处理多跳问题 |
| HyDE(假设文档嵌入) | 先用 LLM 生成假设答案,再用假设答案检索 | 对专业领域查询特别有效 |
| Step-back 提示 | 先生成更抽象的问题,同时检索抽象和具体问题 | 捕获不同粒度的相关信息 |
| 多查询扩展 | 生成查询的多个变体,合并检索结果 | 提升召回率 |
3.3 重排序(Reranking)
在检索到 Top-N(如 20-50)个候选后,用专门的**交叉编码器(Cross-Encoder)**重排序:
Bi-Encoder(向量检索): query 和 doc 分别编码,快速但不精确 → 召回 50 个
Cross-Encoder(重排序): query 和 doc 一起编码,精确但较慢 → 精选 Top-5
常用重排序模型:
BAAI/bge-reranker-v2-m3— 中文表现好,支持多语言jina-reranker-v2-base-multilingual— 多语言支持cohere-rerank— API 服务,效果好但收费Qwen3-Reranker— 通义千问重排序模型,与 Qwen3-Embedding 配合使用
四、高级 RAG 架构(2025-2026)
4.1 Self-RAG(自反思 RAG)
核心思路:让 LLM 在生成过程中自我审查,判断是否需要更多检索。
用户查询 → 检索 → 生成
↓
┌── 反思 ──┐
↓ ↓
答案有用? 答案忠于原文?
↙ ↘
Yes No → 重新检索 → 重新生成
↓
输出答案
自反思维度:
- 是否需要检索? → 判断问题是否需要外部知识
- 检索到的文档有用吗? → 评估检索质量
- 生成的答案忠实于原文吗? → 防止幻觉
适用场景:研究工具、法律分析、学术写作
4.2 Corrective RAG(CRAG,校正 RAG)
核心思路:在检索后、生成前加一道"质量检查",对不靠谱的检索结果进行修正。
用户查询 → 检索 → 评估检索质量
↓
┌───────┼───────┐
↓ ↓ ↓
高相关 部分相关 不相关
↓ ↓ ↓
直接生成 补充搜索 用内部知识
↓ ↓
生成 生成/拒绝
关键优势:
- 即插即用,可与多种 RAG 方法组合
- 主动检测和纠正事实性幻觉
- 短文本和长文本生成都有显著提升
4.3 Adaptive RAG(自适应 RAG)
核心思路:根据查询复杂度,动态选择最合适的检索策略。
用户查询 → 查询分类器
↓
┌───────┼────────┐
↓ ↓ ↓
简单问题 复杂问题 常识问题
↓ ↓ ↓
单次检索 多次检索 无需检索(直接用
↓ ↓ LLM 自身知识)
生成 迭代检索
↓
生成
性能提升:在部分评测中提升 50%+,同时通过不过度设计简单查询来节约成本。
4.4 Agentic RAG(智能体 RAG)
核心思路:把 RAG 从"线性流水线"升级为"智能体工作流",让 Agent 自主决定检索策略。
用户查询 → Agent(规划+决策)
↓
┌───────┼──────────────┐
↓ ↓ ↓
检索文档 搜索网页 查数据库/工具
↓ ↓ ↓
└───────┼──────────────┘
↓
Agent 评估结果
(够不够?要不要再搜?)
↓
生成回答
关键能力:
- 自主规划:Agent 决定搜索哪些信息源
- 多步推理:支持多轮检索和验证
- 工具调用:可以访问数据库、API、搜索等
- 自我纠正:发现信息不够时主动补充检索
2026 趋势:Agentic RAG 正成为默认架构,基于 LangGraph 等框架实现。
4.5 GraphRAG(知识图谱 RAG)
核心思路:把文档中的信息构建成知识图谱,检索时同时利用图结构和语义。
文档处理 → 实体/关系抽取 → 构建知识图谱
↓
用户查询 → 图谱检索(结构化关系)+ 向量检索(语义)→ 融合 → 生成
优势:
- 能回答需要多跳推理的问题("A 公司的 CEO 之前在哪家公司工作?")
- 对领域知识的关系理解更深
- 适合医疗诊断、法律研究等需要结构化推理的场景
常用工具:
- Neo4j + LangChain
- Microsoft GraphRAG(开源)
- 自定义知识图谱构建管线
4.6 Modular RAG(模块化 RAG)
核心思路:把 RAG 看作 LEGO 积木,每个组件独立、可替换、可组合。
┌────────────┐ ┌────────────┐ ┌────────────┐
│ 查询理解模块 │ →│ 检索模块 │ →│ 上下文过滤 │
└────────────┘ └────────────┘ └────────────┘
↓
┌────────────┐ ┌────────────┐
│ 提示构建模块 │→│ 生成模块 │
└────────────┘ └────────────┘
典型模块:
- Query Enhancement(查询增强):改写、扩展、分解
- Adaptive Routing(自适应路由):根据查询类型路由到不同检索器
- Parallel Retrieval(并行检索):多检索器同时工作
- Context Filtering / Distillation(上下文过滤/浓缩):去除无关内容
- Answer Generation(答案生成):LLM 生成
2026 趋势:模块化 RAG 被视为最灵活的架构,适合大规模企业级部署。
五、多模态 RAG
5.1 技术概览
多模态 RAG 支持文本、图像、视频、音频的统一检索和生成。
文本 → 嵌入 → 向量库
图片 → 嵌入 → 向量库
用户查询 → → 多模态生成
视频 → 嵌入 → 向量库
音频 → 嵌入 → 向量库
5.2 多模态嵌入模型
| 模型 | 支持模态 | 特点 |
|---|---|---|
| Qwen3-VL-Embedding (2B/8B) | 文本+图像+视频 | 统一语义空间,2026.01 发布 |
| CLIP | 文本+图像 | 经典多模态嵌入 |
| Jina-Clip-V2 | 文本+图像 | 开源多语言 |
5.3 典型应用场景
- 图文检索:用文字搜图片、用图片搜视频
- 文档理解:PDF 中同时检索文本内容和表格/图片
- 多媒体知识库:统一检索文本、截图、视频片段
六、向量数据库选型
6.1 主流方案对比
| 数据库 | 类型 | 开源 | 亮点 | 适合场景 |
|---|---|---|---|---|
| Milvus | 分布式 | ✅ | 性能领先,延迟 10-100ms,云原生 | 大规模生产 |
| Qdrant | 分布式 | ✅ | Rust 编写,性能好,易部署 | 中型项目 |
| Weaviate | 分布式 | ✅ | 内置向量+属性混合搜索 | 企业级 |
| Pinecone | SaaS | ❌ | 托管服务,零运维 | 快速上线 |
| Chroma | 嵌入式 | ✅ | 轻量,开发友好 | 原型/小项目 |
| pgvector | 插件 | ✅ | 基于 PostgreSQL | 已有 PG 生态 |
6.2 选型建议
原型/小项目 → Chroma(最简单)或 pgvector(已有 PG)
中型项目 → Qdrant(性能好,开源)或 Weaviate
大规模生产 → Milvus(性能最佳)或 Pinecone(不想运维)
七、评估与可观测性
7.1 RAGAS 评测框架
RAGAS(Retrieval-Augmented Generation Assessment) 是最流行的开源评测框架。
评测维度:
| 维度 | 说明 | 范围 |
|---|---|---|
| Faithfulness(忠实度) | 答案是否忠实于检索到的上下文 | 0-1 |
| Answer Relevancy(答案相关性) | 答案是否回答了问题 | 0-1 |
| Context Precision(上下文精度) | 检索到的上下文中相关信息的比例 | 0-1 |
| Context Recall(上下文召回) | 是否检索到了所有需要的信息 | 0-1 |
| Aspect Critique(方面评价) | 有害性、正确性、连贯性等 | 0-1 |
7.2 评测工具对比
| 工具 | 特点 | 集成 |
|---|---|---|
| RAGAS | 开源,组件级+端到端指标 | LangChain, LlamaIndex, Haystack |
| LangSmith | LangChain 官方,生产监控 | LangChain |
| Arize Phoenix | 可观测性+评估 | 通用 |
| Giskard | 开源,聚焦信任和忠实度 | 通用 |
| Galileo AI | 检测幻觉,组件级调试 | 通用 |
八、工程框架选型
8.1 主流 RAG 框架
| 框架 | 特点 | 适用场景 |
|---|---|---|
| LangChain | 生态最丰富,社区最大 | 通用 |
| LlamaIndex | 专注数据索引和检索 | 数据密集型 |
| LangGraph | 支持有状态 Agent 工作流 | Agentic RAG |
| Haystack | 模块化设计,端到端 | 企业搜索 |
| Ragas | 评估专用 | 评测 |
8.2 2026 新兴开源框架
- Qwen-Agent:通义千问 Agent 框架
- Llama 4:Meta 开源的推理框架
- Cursor / Aider:AI 辅助编程集成
九、生产级 RAG 架构参考
┌───────────────────────┐
│ 用户查询层 │
└──────────┬────────────┘
↓
┌───────────────────────────┐
│ 查询理解与路由 │
│ (简单/复杂/多模态/常识) │
└───────────┬───────────────┘
↓
┌──────────────┬────┴────┬────────────────┐
↓ ↓ ↓ ↓
┌───────────┐ ┌───────────┐ ┌───────┐ ┌──────────┐
│ 向量检索 │ │ 关键词检索 │ │图谱检索│ │ 网页搜索 │
│ (语义) │ │ (BM25) │ │(关系) │ │ (实时) │
└─────┬─────┘ └─────┬─────┘ └───┬───┘ └────┬─────┘
└──────────────┴───────────┴─────────────┘
↓
┌─────────────────────────┐
│ RRF 融合 + 重排序 │
│ (Cross-Encoder) │
└───────────┬─────────────┘
↓
┌─────────────────────────┐
│ 上下文过滤/浓缩 │
│ (CRAG: 相关评估+修正) │
└───────────┬─────────────┘
↓
┌─────────────────────────┐
│ Prompt 构建 │
│ (系统提示+上下文+问题) │
└───────────┬─────────────┘
↓
┌─────────────────────────┐
│ LLM 生成 │
│ (Self-RAG 反思) │
└───────────┬─────────────┘
↓
┌─────────────────────────┐
│ 答案后处理 │
│ (引用标注+质量检查) │
└───────────┬─────────────┘
↓
┌───────────┐
│ 返回用户 │
└───────────┘
十、最佳实践清单
数据层
- 文档质量 > 数量:清洗、去重、格式标准化
- 分块时保留元数据(标题、章节、来源)
- 为每种文档类型测试不同分块策略
- 块之间保留 10-20% 重叠
检索层
- 使用混合搜索(向量 + BM25)
- 加入重排序步骤(Cross-Encoder)
- 查询改写 / 扩展
- 微调整嵌入模型用于领域场景
生成层
- 加入 Self-RAG 反思机制
- 答案附带引用来源
- 设置拒绝回答阈值(检索质量不够时拒绝回答)
评估层
- 用 RAGAS 建立评估基线
- 生产环境接入可观测性工具
- 定期 A/B 测试不同策略
参考来源
- Advanced RAG Techniques (Neo4j, Oct 2025)
- 9 Advanced RAG Techniques (Meilisearch, Aug 2025)
- RAG Techniques You Must Know in 2025 (Towards AI, Sep 2025)
- RAG 2.0: The 2025 Guide (vatsalshah.in, Aug 2025)
- Agentic RAG Survey (arXiv:2501.09136v4, Apr 2026)
- MultiRAG: Agentic Multi-Modal Retrieval (ACM, Dec 2025)
- A unified multimodal GenAI platform integrating GraphRAG (Nature, Apr 2026)
- Next-Generation Agentic RAG with LangGraph (Medium, Mar 2026)
- Adaptive-RAG (arXiv:2403.14403)
- Corrective RAG (arXiv:2401.15884)
- Modular RAG (arXiv:2407.21059)
- Self-RAG (DataCamp)
- Corrective RAG (DataCamp)
- Adaptive RAG (Meilisearch)
- Modular RAG (Meilisearch)
- Best Chunking Strategies for RAG in 2026 (Firecrawl)
- The Chunking Paradigm: Recursive Semantic (ACL, 2025)
- Top 10 Vector Databases for 2025 (Medium)
- Best Vector Databases for RAG in 2025 (DataCamp)
- Top 5 RAG Evaluation Tools (Braintrust)
- RAG at Scale (Redis, 2026)
- 10 RAG Architectures in 2026 (Techment)
- RAG in 2026 (DataForest)
- Advanced RAG: Hybrid Search (iNTEXURE, Aug 2025)