原文:mp.weixin.qq.com/s/R3MJ-y8cm...(2026年10月03日)

前三篇里,RAG 一直是"扁平"的:把文档切成小片,平铺着存,查询时按相似度捞几片回来。这在很多场景已经够用,但它有一类问题天生答不好。
书里给了两个典型案例。统计计数 :知识库里放了 100 份独立文本,其中 90 只黑猫、10 只白猫,用户问"黑猫白猫各占多少"。系统会卡在三重障碍上------top-k 限制了召回数量,大部分样本根本捞不回来;每份文本的描述有差异,检索分数参差不齐,样本持续遗漏;而检索的逻辑是"找相似片段",统计却需要"遍历全部文档"。第二类是跨文档关联:答案分散在好几篇文档里,靠"找相似"根本串不起来。
说到底,扁平检索解决了"召回相关片段",却没解决"知识的层级和关联"。这一篇要看的,正是三种让知识"长出骨架"的思路。
一、总思路:索引前,先让大模型整理一遍
先记住一个总原则:结构化索引 = 在建立索引之前,先用大模型把知识整理一遍------归纳、抽象、建立关联。多花一些算力,换更好的检索质量。
业界主要有两条路:树状层次(RAPTOR) 和实体关系图(GraphRAG)。它们解决的都是"如何组织知识"。

二、RAPTOR:把知识叠成一棵会总结的树
RAPTOR 全称是"递归抽象处理、面向树组织的检索"。它的做法很直观:把文本块先嵌入、再聚类、再总结,然后自下而上地搭树------底层是细碎的原文块,往上一层是它们的摘要,再往上一层是摘要的摘要,直到树顶一个概括全局的根节点。
这样检索时就有了"跨层穿梭"的能力。书里举例,查询"请解释 SSE 指令集":系统可能先在较高层摘要里定位到"SIMD 指令集"这个宏观概念,再顺着树往下钻,在叶子节点找到 SSE 的详细技术描述。这种由宏观到微观的路径,特别适合层级化的技术文档,以及"先总后分"式的提问。
三、GraphRAG:把知识织成一张关系网
GraphRAG 走的是另一条路:从原文里抽出实体 和关系,织成一张知识图谱,再把关系紧密的实体聚成"社区"、为每个社区生成摘要。
检索时,它是在"关系网"里漫游。同样查"SSE 指令集":它先定位图谱里的"SSE"实体,沿关系边找到"XMM 寄存器""浮点运算"以及具体指令(如 ADDPS),再借所在社区提供它在 CPU 架构中位置的上下文。这种办法特别擅长回答"谁和谁有关""A 怎么影响 B"这类关系型问题。
选型其实不难:RAPTOR 适合层级化、需要由总到分的技术文档;GraphRAG 适合医疗、法律、人际这类多实体复杂关联的场景。 通用场景用前面讲的混合检索就够了------结构化索引成本更高,按需选用。

四、第三种哲学:把上下文做成"文件系统"(OpenViking)
树也好、图也好,本质上还是"另建一套索引"。字节跳动旗下的火山引擎开源项目 OpenViking 提出了第三种思路:文件系统范式。
它不把上下文看成扁平的向量碎片或图谱节点,而是把 Agent 所需的一切------记忆、资源、技能------映射成一台虚拟文件系统里的目录和文件,每个条目都有唯一的 URI(形如 viking://):
arduino
PLAINTEXT
viking://
├── resources/ 外部文档资源
├── user/memories/ 用户偏好记忆
└── agent/ Agent 自身的技能与经验
妙处在于:大模型在训练里"见过"几百万次 ls、cd、cat、find 这些操作,让 Agent 用自己最熟的指令去翻自己的记忆,反而比向量召回更直观、也更可解释------出问题时你能看到它"翻了哪个文件夹"。
OpenViking 另外两个关键设计是分层加载 (把每个文件切成 L0/L1/L2 三层,按需加载,避免一次把几千 token 塞进窗口)和自迭代(会话结束后自动沉淀记忆,让 Agent"越用越聪明")。它的前提是文件之间要互相引用链接,搭成横向关联网络,避免知识变成一座座孤岛。
五、让知识保持"新鲜":时效与治理
知识库不是建好就完事,它会过期:政策更新了、产品下架了、组织架构改了。所以还需要一套治理机制:
增量更新 ,让新文档能加进索引,而不是每次全量重建;版本感知检索 ,让系统识别信息的时间敏感性和版本差异,优先返回最新状态;过期清理 ,基于时效规则自动归档或删除过时内容。前面讲 Mem0 v3 的"带时间戳、按时间排序"其实也是同一个思想在记忆侧的体现------让"当前事实"能被时间戳区分出来。
小结
扁平 RAG 只能"召回相关片段",答不了统计与跨文档关联。要补上这一环,可以让大模型在索引前先整理知识:想分层就叠成 RAPTOR 的树,想建模关系就织成 GraphRAG 的图,想更轻量、更可解释就用 OpenViking 的文件系统范式。再配上一套时效治理,知识才不会"越用越旧"。
知识被组织得越来越像样了。但检索的动作还是"被动"的------你问,它才找。下一篇,就看它如何变得更主动:Agentic RAG、上下文感知检索,以及全章收束的"双层记忆架构"。
🔗
延伸阅读(开源项目) :树状索引看 RAPTOR (github.com/parthsarthi03/raptor);知识图谱看微软的 GraphRAG (github.com/microsoft/graphrag)与 Zep / Graphiti (github.com/getzep/graphiti);文件系统范式看 OpenViking(github.com/volcengine/OpenViking)。书里对应 chapter3 的 structured-index 实验。