06
CHAPTER 06

RAG 与知识检索

让 Agent 拿到“对的信息”,而不是“多的信息”

检索增强生成(RAG)把外部知识注入上下文,是 Agent“接地(grounding)”、减少幻觉、访问私有/时效数据的核心手段。生产级 RAG 的质量瓶颈,绝大多数出在“检索”而非“生成”——所以要从检索工程入手。

1
文档处理与分块 Chunking
分块策略显著影响效果。常见:递归/定长、按句法结构、语义分块、基于聚类的分块。起步建议用“语义/结构化分块 + 重叠”,保留标题、来源、时间等元数据。别只切块,要理解内容结构。
2
索引与嵌入 Embedding
选择与领域匹配的嵌入模型,建向量索引。同时保留关键词/BM25 通道,为混合检索做准备。
3
查询理解与改写
用户原始问题往往不是“最佳检索查询”。做查询改写、拆分子问题、HyDE(先假设文档再检索),提升召回。
4
混合检索 + 重排 Hybrid + Rerank
向量 + 关键词混合召回,再用 cross-encoder 重排。当检索质量是瓶颈时,重排往往是性价比最高的一步。
5
生成与引用 Grounding
把重排后的少量高相关片段喂给模型,要求“仅基于给定上下文作答并标注来源”。引用可核验是可信 RAG 的关键。
6
评估与迭代 Eval
分别评估检索质量(命中率、召回、MRR)与生成质量(忠实度、相关性、是否正确引用),基于失败案例迭代分块与检索。
静态检索式 RAG
  • 推理前一次性取回“最相似”的若干块
  • 快、便宜、可控
  • 面对需要多步、动态调整的问题能力有限
Agentic 检索
  • 多步搜索:动态找信息、根据新发现调整、分析结果
  • 能处理开放、路径依赖的问题
  • 更强,但更慢、更贵,需引导
常见误区
把 RAG 当成“向量库 + 拼提示”。真正拉开差距的是:分块是否尊重内容结构、元数据是否可用于过滤、是否有混合检索与重排、是否针对“检索质量”单独评估。先用小样本评测立即起步,不要等到攒够几百条用例才动手。