10分钟看懂11种RAG策略:让你的AI Agent从“能搜“到“会搜“
本文介绍了11种优化RAG(检索增强生成)系统的策略,帮助提升AI搜索的准确性和效率。文章分为查询优化和数据准备两大部分:在查询优化方面,推荐重排序、智能体RAG、知识图谱等8种方法,可显著提高搜索精准度;在数据准备方面,提出上下文感知切分、分层RAG等3种文档处理技术。作者建议根据业务需求选择组合策略,从基础方案逐步升级,并强调RAG优化是一个持续迭代的过程。文中还分享了推荐的技术栈和实用工具,
当AI搜索变成"大海捞针",你需要的是这11把"渔网"
你有没有遇到过这种情况:
问ChatGPT:"上周三的会议有哪些行动项?"它回答:“抱歉,我无法访问您的会议记录。”
问自己搭建的AI助手同样的问题,它给你返回了50条毫不相关的会议片段,或者干脆告诉你"没有找到相关信息"——明明文档就在那里!
这就是为什么**RAG(检索增强生成)**如此重要,但更重要的是——如何让RAG真正"智能"起来。
今天这篇文章,我将用10分钟 带你看懂11种RAG优化策略,让你的AI Agent从"能搜索"进化到"会搜索"。更重要的是,我会告诉你什么时候该用哪种策略,以及如何组合它们来获得最佳效果。
1分钟回顾:RAG到底是什么?
在深入策略之前,让我们快速回顾RAG的基本原理。
想象你在图书馆找资料。传统的AI就像一个博学的图书管理员,什么都知道一点,但对你公司昨天的会议内容一无所知(因为训练数据有截止日期)。
而RAG就像给这个管理员配了一套检索系统:
数据准备阶段:
-
把你的文档切成小块(chunking)
-
给每块打上"指纹"(embedding)
-
存进"档案柜"(向量数据库)
查询阶段:
-
你提问:“上周三会议的行动项?”
-
系统给问题也打上"指纹"
-
在档案柜里找相似的文档块
-
把找到的内容交给AI,生成答案
听起来很完美?但现实是——简单的RAG准确率可能只有50-60%。这就是为什么我们需要这11种优化策略。
查询优化篇:让搜索更精准的8种武器
策略1:重排序(Reranking)—— 我几乎每次都用的核心策略
原理: 两阶段筛选——先"广撒网",再"精挑选"。
第一步:从向量数据库拉50个可能相关的文档块
第二步:用专门的重排序模型(如Cross-Encoder)重新打分,只留下最相关的5个
类比: 就像招聘流程——先海选100份简历,再让HR精筛出5个候选人面试。
适用场景:
-
几乎所有RAG场景(这是我的"默认配置")
-
尤其适合文档量大、相似内容多的情况
Trade-off:
-
✅ 显著提升相关性,避免"淹没"LLM
-
❌ 略微增加成本(但完全值得)
策略2:智能体RAG(Agentic RAG)—— 给AI选择权
原理: 不再固定搜索方式,而是让AI Agent根据问题类型选择:
-
语义搜索(找相似内容)
-
关键词搜索(精确匹配)
-
读取整个文档(需要全局理解时)
类比: 就像你去餐厅点餐——有时点单品(精确搜索),有时要套餐(语义搜索),有时直接问厨师推荐(读全文)。
适用场景:
-
问题类型多样的场景
-
既需要精确查找又需要模糊匹配
Trade-off:
-
✅ 超级灵活,适应性强
-
❌ 不够可预测,需要清晰的指令设计
实践建议: 在Postgres+pgvector中,我会创建两个表——一个存文档块(chunks),一个存完整文档元数据(documents),让Agent自己选择查哪个。
策略3:知识图谱(Knowledge Graphs)—— 当数据有"关系"时
原理: 除了向量搜索,还能搜索实体关系。
比如:“找出所有与张三合作过的项目负责人”——这不是简单的语义相似,而是关系查询。
类比: 传统RAG是用Google搜索,知识图谱是用LinkedIn找人脉——不仅看内容相似度,还看"谁认识谁"。
适用场景:
-
高度互联的数据(人物关系、组织架构、产品依赖)
-
需要多跳推理(A认识B,B认识C,所以A可能认识C)
Trade-off:
-
✅ 能回答复杂关系问题
-
❌ 构建成本高(需要LLM提取实体关系),速度慢
工具推荐: Graffiti库(Python)是我最喜欢的知识图谱工具。
策略4:上下文检索(Contextual Retrieval)—— Anthropic的秘密武器
原理: 在每个文档块前面加一段"说明书",解释这块内容在整个文档中的位置和作用。
举例:
【此段落来自2024年Q3财报,讨论亚太市场增长】
---
我们在亚太地区的收入同比增长35%...
类比: 就像给每张拼图标注"这是天空的一部分"——拿出来看也能知道它的背景。
适用场景:
-
文档结构复杂
-
单个片段孤立看容易误解
Trade-off:
-
✅ Anthropic研究显示可提升30%+准确率
-
❌ 每个块都要LLM生成说明,成本和时间增加
策略5-6:查询扩展 vs 多查询RAG
这两个策略很相似,但有细微差别:
查询扩展(Query Expansion):
-
把"上周会议行动项"扩展成"2024年12月10日团队会议中提到的待办事项和责任分配"
-
一个查询→一个更精确的查询
多查询RAG(Multi-Query RAG):
-
生成多个变体:“会议行动项”+“会议待办”+“会议任务分配”
-
一个查询→多个并行查询
适用场景:
-
用户查询模糊或口语化严重时
-
需要覆盖多种表达方式
Trade-off:
-
✅ 提高召回率(不会漏掉相关内容)
-
❌ 每次搜索前都要额外调用LLM
策略7:自我反思RAG(Self-Reflective RAG)—— AI的"二次检查"
原理: 搜索完后让LLM给结果打分(1-5分),如果低于3分就重新搜索。
类比: 就像你做题后检查一遍——“这个答案靠谱吗?不靠谱?那重新做。”
适用场景:
-
对准确性要求极高的场景
-
愿意牺牲速度换取质量
Trade-off:
-
✅ 自动纠错,减少低质量回答
-
❌ 可能要多次LLM调用,成本翻倍
数据准备篇:切分文档的3种艺术
前面7种策略都是优化"怎么搜",接下来3种是优化"搜什么"——也就是如何切分和存储文档。
策略8:上下文感知切分(Context-Aware Chunking)
原理: 不是每1000个字就切一刀,而是用嵌入模型找文档的"自然边界"(比如段落结束、主题转换)。
类比: 切西瓜不是随便横竖几刀,而是顺着瓜瓤的纹理切——既整齐又不破坏结构。
适用场景:
-
文档有清晰结构(论文、报告、书籍)
-
希望每个块语义完整
Trade-off:
-
✅ 维持文档逻辑,嵌入质量高
-
❌ 比简单的字符切分复杂
工具推荐: Dockling库可以实现混合切分(Hybrid Chunking),效果非常好。
策略9:延迟切分(Late Chunking)—— 最复杂但最前沿
原理: 先对整个文档做嵌入,再切分嵌入结果(而不是先切文档再嵌入)。
类比: 传统方法是"先切西瓜再冰镇每一块",延迟切分是"先冰镇整个西瓜再切开"——每块都保留了整体的"冰爽感"(上下文)。
适用场景:
-
需要每个块都保留完整文档上下文
-
使用长上下文嵌入模型
Trade-off:
-
✅ 理论上最优的上下文保留
-
❌ 极其复杂,需要特殊的嵌入模型支持
坦白说: 这是11种策略里我唯一没实践过的,但它代表了RAG的前沿方向。
策略10:分层RAG(Hierarchical RAG)—— 用元数据玩"套娃"
原理: 存储多层级的信息——段落、章节、整个文档——通过元数据关联。
搜索策略:“小处搜索,大处获取”
-
精确搜索段落(找到这句话:“Q3收入增长35%”)
-
查元数据拉取整个章节或文档(获取完整的财报分析)
类比: 就像图书馆的分类系统——你搜"量子力学"找到某一页,但可以选择借整本书或整套丛书。
适用场景:
-
既需要精确定位又需要完整上下文
-
文档有清晰的层级结构
Trade-off:
-
✅ 平衡精确性和全面性
-
❌ 数据库设计更复杂
终极武器:微调嵌入模型
策略11:微调嵌入(Fine-tuned Embeddings)—— 当你有大量数据时
原理: 就像微调大语言模型一样,你也可以微调嵌入模型,让它理解你的领域术语和相似度规则。
举例:
-
通用嵌入模型: “订单延迟” ≈ “发货速度快”(都是关于订单的)
-
微调后的嵌入模型: “订单延迟” ≈ “商品总是缺货”(基于情感相似)
适用场景:
-
有大量领域数据(医疗、法律、金融)
-
对准确率有极高要求
-
愿意投入基础设施
Trade-off:
-
✅ 5-10%准确率提升,小模型能超越大模型
-
❌ 需要大量数据、训练成本、持续维护
黄金组合:我的3-5策略方案
视频作者给出了他的"黄金三角"推荐:
-
重排序(Reranking) - 几乎必选
-
智能体RAG(Agentic RAG) - 提供灵活性
-
上下文感知切分(Context-Aware Chunking) - 尤其推荐Dockling的混合切分
我的补充建议:
入门方案(3种):
- 重排序 + 查询扩展 + 基础切分
进阶方案(5种):
- 重排序 + 智能体RAG + 上下文感知切分 + 分层RAG + 自我反思
终极方案(专业场景):
- 重排序 + 知识图谱 + 上下文检索 + 分层RAG + 微调嵌入
选择原则:
-
从重排序开始,这是性价比最高的策略
-
根据你的数据特点选择切分策略
-
根据查询复杂度选择查询优化策略
-
逐步叠加,每次加一种并测试效果
写在最后:RAG优化是马拉松,不是百米冲刺
看完这11种策略,你可能会想:“我全都要!”
但请记住:RAG优化不是堆砌策略,而是找到最适合你业务场景的组合。
我的实践建议:
-
先建立基准线:用最简单的RAG跑通流程,测试准确率
-
逐个添加策略:每次只加一种,看效果提升多少
-
关注成本-效果比:不要为了1%的提升付出3倍的成本
-
持续迭代:随着数据增长和场景变化,策略也要调整
最后,如果你正在搭建RAG系统,推荐的技术栈:
-
向量数据库:Postgres + pgvector(配合Neon托管服务)
-
嵌入模型:OpenAI text-embedding-3 或开源的BGE系列
-
重排序模型:Cohere Rerank 或 BGE Reranker
-
知识图谱:Neo4j + Graffiti库
如果这篇文章对你有帮助,欢迎点赞、收藏、转发。如果你想深入了解某个特定策略(比如知识图谱、延迟切分),请在评论区告诉我,点赞最多的我会单独出一篇详解。
记住:最好的RAG系统不是最复杂的,而是最适合你的。
更多推荐



所有评论(0)