RAG 烂大街?烂大街的只是那条流水线------真正的分水岭在这五处
当"会搭 RAG"不再稀缺,核心竞争力搬去了哪里
📦 项目源码:weather-travel-recommend-system ------ 基于气象大数据的出行推荐系统,AI Agent 全栈项目。FastAPI + PostgreSQL(TimescaleDB/pgvector/PostGIS) + Redis;LangGraph + MCP + Skill + RAG,对接 DeepSeek API。
TL;DR :2023 年你写"切块→嵌入→TopK→塞 Prompt"能拿 offer,2026 年这套流程已经写在每一个教程的第一页。但有个数据很讽刺:2025 年的统计里,95% 的 RAG 系统仍然只用单路向量检索 ------也就是说,绝大多数系统停在教科书的及格线上,而及格线之上还有五道真正的分水岭:把上下文还给切块(Contextual Retrieval,检索失败率降 67%)、让检索从"动作"变"决策"(Agentic RAG)、按问题类型路由而不是追新架构、从查文档升级到长记忆、以及一条谁也抄不走的评测闭环。这篇讲清每道分水岭的底层逻辑、关键数字和对应的开源项目,最后给我自己项目定的三步升级路线。
目录
- 先承认:烂大街的是流水线,不是问题
- 分水岭一:把上下文还给切块------Contextual Retrieval
- 分水岭二:检索从"动作"变"决策"------Agentic RAG
- 分水岭三:按问题类型路由,别追新架构
- 分水岭四:从查死文档,到长记忆
- 分水岭五(暗线):评测闭环------唯一抄不走的东西
- 落地:我的 33 块试验田,三步升级
- 可复用清单
1. 先承认:烂大街的是流水线,不是问题
先把"烂大街"拆准。烂大街的是什么?是 Naive RAG 那条流水线:切块 → 嵌入 → 向量库 TopK → 拼 Prompt → 生成。它烂大街到什么程度------开源框架把它封装成了一个函数调用,任何架构师一周内都能搭出一个"能演示"的版本。
演示能跑 和生产可用之间的鸿沟,就是竞争力所在。行业里有句话我深以为然:RAG 项目的失败,80% 不在算法,在数据质量和检索质量的度量缺失。
还有一个经常被拿来说事的问题:"长上下文模型会不会杀死 RAG?"我的判断是:杀死不了,但会重新分工 。Anthropic 自己给过一个分界参考:知识库小于 20 万 token(约 500 页)时,直接全塞 Prompt 加缓存更省事;但库一大,检索依然是唯一经济的方案------而且企业场景里还有长上下文给不了的三样东西:权限隔离 (谁能看哪部分)、数据新鲜度 (文档在变)、成本(每请求都塞全库,账单会教做人)。
所以问题从来不是"要不要 RAG",而是"你的 RAG 凭什么不是及格线水平"。下面五处,就是我梳理 2025--2026 这波演进后认为真正拉开差距的地方。
2. 分水岭一:把上下文还给切块------Contextual Retrieval
先看一组我认为是这两年 RAG 领域性价比最高的数字,来自 Anthropic 的实验(指标:top-20 检索失败率):
| 方案 | 失败率 | 相对改善 |
|---|---|---|
| 基线(普通嵌入) | 5.7% | --- |
| + 上下文嵌入 | 3.7% | -35% |
| + 上下文 BM25 | 2.9% | -49% |
| + 重排 | 1.9% | -67% |
做法朴素到令人发笑:切块入库前,让 LLM 看着整篇文档 ,给每个块写一段 50--100 token 的"处境说明"(这块属于哪个文档、哪个章节、讲什么的),拼在块前面再去做嵌入和 BM25 索引。
为什么有效?回到第 3 篇讲过的切块损耗:一个块写着"营收环比增长 3%",但它从文档里被切出来的那一刻就不知道"哪家公司、哪个季度"了------语义检索和关键词检索都救不了它。Contextual Retrieval 做的事,就是把切掉的那半句语义补回来。
它背后的思路比技巧本身更值钱:把算力花在入库时,换查询时的可靠 。入库是一次性的(用 Prompt 缓存后成本约 $1/M token),查询是千万次的。同思路的还有 late chunking:先让长上下文嵌入模型读完整篇文档,再切分它输出的 token 级向量------每个块的向量天然带着全文语境。两条路殊途同归:索引侧的上下文密度,决定了查询侧的天花板。
顺带一提,这也解释了为什么 BM25 不该被扔:补出来的上下文里全是公司名、产品编号这类精确词------恰恰是第 3 篇说的"向量盲区",两路合起来才是完整的。
3. 分水岭二:检索从"动作"变"决策"------Agentic RAG
Naive RAG 的动作是写死的:查一次,答一次。Agentic RAG 把模型从"答题者"升级成"检索调度员"------它自己决定查不查、查什么、够不够、要不要再查。业界把它拆成四层递进:
- 路由:判断查不查、走哪条通道(改写?数据库?网页?);
- 查询规划:复杂问题拆成子问题;
- 自适应检索:边查边判断"继续还是作答"------Self-RAG / CRAG 的思想;
- 多智能体分工:检索、改写、验证、生成各配专职 agent。
这里有个对工程实践无比友好的结论。2026 年的 RAGSearch 统一基准(Do We Still Need GraphRAG? )系统对比后发现:只配"最小工具集"的 Agentic RAG------一个检索工具加少量辅助------就能大幅拉近与 GraphRAG 的差距 ,尤其在强化学习设定下几乎追平;重型图谱真正守住的阵地只剩"复杂多跳推理"。也就是说:Agentic 化的红利不需要重装备,Function Calling 加两三个趁手的工具就能吃到大部分。
这对我这种个人项目是重大利好。我的 search_knowledge 目前就是"查一次、答一次"的教科书动作。升级路径已经很清晰:在 LangGraph 里给检索节点加一个自检环------拿到检索结果先让模型判断"这些材料够不够回答",不够就改写查询再查一轮,两轮还不够就明确说"资料库里没有"。CRAG(Corrective RAG)的核心就是这个环,实现成本半天。再进一步的 Probing-RAG 干脆不问模型"你确定吗"(嘴会骗人),直接读它中间层的激活状态判断置信度------这个思路对自托管开源模型的团队很有意思,闭源 API 用不了。
4. 分水岭三:按问题类型路由,别追新架构
GraphRAG 火了之后,"上图谱"一度成了政治正确。但 2026 年的几轮大规模评测给出了冷静得多的答案:不存在普适最优的 RAG 架构,存在的是"问题类型 → 架构"的路由表。
| 问题类型 | 谁赢 | 数字 |
|---|---|---|
| 单跳事实型("XX 的营业时间") | 朴素 RAG 仍最强 | 准确率 66.87%,超过多数 GraphRAG 变体 |
| 多跳关联("A 的负责人审批的部署是谁管的") | 图谱 / Agentic | 向量空间里根本没有这条关系链 |
| 全局归纳("这批文档的主题是什么") | GraphRAG 显著占优 | 47.64% vs 朴素 RAG 35.08% |
| 效率敏感的多跳 | HippoRAG | 检索延迟 2.44s,GraphRAG 要 44.87s |
(数据来自 2025.2 的 RAG vs GraphRAG 对比、WildGraphBench 2026.2 等评测。)
代价表也要看清:GraphRAG 的图构建要烧约 8000 万 token,是 Advanced RAG 的 40--80 倍;轻量化的 LightRAG(双粒度检索,Legal 数据集胜率 85% vs 朴素 RAG 的 15%)和海马体启发的 HippoRAG(Personalized PageRank 一步多跳)把成本和延迟压下来了一大截,但"图构建成本"这个税总是要交的。
我的结论写在标题里了:别追架构,先给你的问题分类 。八成日常请求是单跳事实题,朴素 RAG 加重排就够了;真正需要图谱的是那种"关系链查询"和"全局归纳题"------先统计你自己评测集里的题型分布,再决定要不要交图谱的税。Deep Research 类产品把这件事推到了极致:它们的骨架(规划→找料→记账→成稿→证据不足回头补查)本质就是"按研究阶段路由不同的检索策略",其中"结构化研究笔记"(已确认事实/待验证假设/已排除方向四分区)是工程上最值得抄的一块。
5. 分水岭四:从查死文档,到长记忆
传统 RAG 查的是静态文档库------但 Agent 的工作负载越来越"活":用户上轮说过的话、上周确认的偏好、三天前的失败尝试,这些不在任何文档里。
这就是记忆系统这条线在 2025--2026 爆发的原因,代表项目三兄弟各有侧重:
- Mem0:会话级记忆抽取与检索,跨会话个性化,接入成本最低;
- Zep 的 Graphiti :时序知识图谱------实体和关系带时间 validity,检索时 BM25 + 向量 + 图遍历三路合击,全程零 LLM 调用(记忆的构建在写入时完成),是目前生产验证最充分的方案,Neo4j 官方都在托管它;
- 声明式记忆(CLAUDE.md / AGENTS.md):最土也最普及------一个 Markdown 文件每次会话开头注入。别笑,我自己此刻就在用这套(工作区 MEMORY.md),它解决的是"规则类记忆"------不需要检索,每次都在。
值得记住的判断:知识图谱在记忆场景的价值和在文档场景完全不同------文档是给人读的(切了不心疼),交互记录是关系密集的("谁批准的→批准人是谁的上级"这种链式查询,向量空间根本没有表示)。这也是为什么 Zep 们不约而同选了图。
6. 分水岭五(暗线):评测闭环------唯一抄不走的东西
前四道分水岭都是"技术",最后这道是"习惯",但它恰恰是唯一无法被开源项目填平的。
道理很简单:开源把所有架构平民化了 。Contextual Retrieval 有 cookbook,Agentic RAG 有综述,GraphRAG 有现成实现------任何团队一个月内都能把五个方向各搭一版。搭完之后呢?哪一版更好?在你自己的数据上,没人知道------除非你有评测集。
Anthropic 那张漂亮表格的前提是人家测了;Clinical 场景那项研究里,"按主题边界切块"让检索 F1 从 0.24 翻到 0.64------这么大的差异,不测就是纯玄学 。评测集的搭建也没那么玄:不用追求大而全,从真实失败案例反向构造 30--50 道题(每题标注"正确答案来自哪个块"),跑 recall@k 和失败率,就够支撑绝大多数决策了。RAGAS 这类框架可以加分,但自建的 30 道真题永远比别人的 1000 道基准题有用。
这也是我在第 14 篇总结的那条硬规则的 RAG 版:"这个东西如果坏了,我怎么知道?"------检索变差往往不报错,只是答案悄悄变笨。没有评测闭环的 RAG 团队,等于闭着眼睛开车。
7. 落地:我的 33 块试验田,三步升级
诚实说,我自己的项目就停在"烂大街层":33 块纯向量召回,EMBED_TOP_K=5,Top-1 命中靠的是语料干净(第 3 篇的运气)。按这篇的框架,我的升级路线按性价比排序:
- 入库侧上 Contextual Retrieval(半天):16 个文档总共 33 块,入库时让 DeepSeek 给每块写 50 字处境说明------数据量小到成本可以忽略,预期收益最确定;
- 查询侧加自检环 (半天,第 3 章的 CRAG 轻量版):
search_knowledge结果先判"够不够",不够改写再查------正好复用现成的 LangGraph 循环和 MCP 工具链,这是"最小工具集"路线的标准姿势; - 攒 30 题评测集(一天,但永远增值):从真实问法反向出题,标好标准出处块。前两步做得对不对,全靠它说话。
至于图谱和记忆系统,我的语料太小、交互历史太短,暂时不交那个税------知道什么税不用交,也是竞争力的一部分。
8. 可复用清单
- 烂大街的是流水线,不是"正确时机拿到正确上下文"这个问题------95% 的系统还停在单路向量。
- 入库侧的上下文密度决定查询侧天花板:Contextual Retrieval(块前拼处境说明)降低 67% 检索失败,是性价比之王;late chunking 是它的嵌入侧孪生。
- Agentic 红利不需要重装备:一个检索工具 + "够不够"自检环 = CRAG 的八成收益;工具堆多了反而乱。
- 先给问题分类再选架构:单跳事实题朴素 RAG 最强,全局归纳才轮到图谱;图谱的构建税(数千万 token)先问值不值。
- 交互记忆是另一个物种:链式关系查询向量空间表示不了,Mem0/Graphiti 按需上;规则类记忆用一个 Markdown 文件就够。
- 评测集是唯一抄不走的护城河:30 道从真实失败案例反推的真题,胜过任何公开基准。
- 知道什么税不用交,也是竞争力。
下一篇预告
A 辑下一篇想写 A5「Agentic Search 与 Deep Research」:把第 3、4 章的"检索调度员"展开讲透------四层递进怎么一步步落进 LangGraph、结构化研究笔记怎么设计、以及"证据不足回头补查"这个闭环为什么是 Deep Research 和普通 RAG 的真正分水岭。要的话我接着写。
参考资料
- 项目源码(仍在更新中) ------ 本文升级路线对应
backend/app/services/{rag_service,knowledge_loader}.py - Anthropic - Introducing Contextual Retrieval ------ -67% 检索失败率的完整数字与方法
- Do We Still Need GraphRAG?(RAGSearch 基准,arXiv 2604.09666) ------ Agentic Search 与 GraphRAG 的统一对比
- Agentic RAG 综述(arXiv 2501.09136) ------ 四层递进分类与训练路线
- LightRAG(HKU) ------ 图谱轻量化:双粒度检索
- HippoRAG(arXiv) ------ 海马体记忆索引 + Personalized PageRank
- Zep Graphiti ------ 时序知识图谱记忆,检索期零 LLM
- Mem0 ------ 会话级记忆层