LLM Wiki vs 传统向量知识库

两种根本不同的知识管理范式 —— 完整对比 + Oh My KB 实践验证 · 2026-07-16

这是同一问题的两种完全不同的解法。

RAG(Retrieval-Augmented Generation):把文档切成碎片,向量化存库。每次提问时临时检索,从碎片堆里拼答案。无记忆、无积累、无复利。

LLM Wiki(Karpathy 2025):人负责收集素材放入 raw/,LLM 负责将素材"编译"成互链的 Markdown Wiki。知识在摄取时就被消化——写摘要、更新概念、标注矛盾、建立交叉引用。每次摄入让整个 wiki 更聪明。

RAG 问"答案可能在哪个 chunk 里";LLM Wiki 问"我已经知道了什么,新信息怎么融入"。一个是搜索引擎的延伸,一个是知识系统的构建。

LLM Wiki 的三层架构

📦 Raw 层 — 不可变地基

原始素材存储区。LLM 只读不改,永远保留原文完整。人往里丢文章、PDF、对话记录——不需要整理格式,不做预处理。

一句话:丢进去就是投入,不需要"先整理好"。

📝 Wiki 层 — LLM 的代码库

LLM 全权维护的结构化知识层——相互链接的 Markdown 文件。包括摘要、概念、对比、综合讨论。LLM 自己写、自己改、自己维护交叉引用。

类比:Wiki = 代码库,LLM = 程序员,Obsidian = IDE。

📋 Schema 层 — 系统灵魂

CLAUDE.md / AGENTS.md 文件定义目录结构、页面格式、命名规则、操作步骤。所有指令集中于此,Wiki 增长时只需更新 schema,无需修改每个页面。LLM 严格遵循 schema 维护 Wiki,人通过修改 schema 控制生态系统走向。

三种核心操作:Ingest · Query · Lint

📥 Ingest(摄入)

  1. 读原始素材全文
  2. 写结构化摘要(核心论点 + 证据 + 个人判断)
  3. 更新/新建相关概念页面
  4. 更新 All-Sources 索引
  5. 记录操作日志

一篇新素材可能触碰 10-15 个已有页面

🔍 Query(查询)

  1. 读 index.md 定位相关页面
  2. 钻入 2-3 个最相关的 Wiki 页面
  3. 综合回答,附带引用链接
  4. 好答案存档回 Wiki(可选)

不是从碎片拼答案,而是从已组织好的知识页合成

🧹 Lint(体检)

  1. 扫矛盾(两页对同一事实说法不一致)
  2. 扫过期(引用了已被替换的信息)
  3. 扫孤儿页(无入链引用)
  4. 扫缺失交叉引用

Wiki 级别的健康检查,防止知识腐烂

传统 RAG 的三大根本缺陷

① 只见局部

基于语义相似度的 top-K chunk 天然偏向"最像"而非"最相关"。关键证据可能出现在与查询用词不同的段落里,但 embedding 距离很远,直接被跳过。跨文档的关联性完全丢失。

② 精神分裂

同一个问题,不同 chunk 来源不同时期、不同作者、不同立场。RAG 把它们等权拼接,LLM 在碎片间左右横跳——前一句引用 2024 年的结论,后一句引用 2026 年的修正,但不标注矛盾。

③ 无维护概念

RAG 不区分"已被新证据推翻的旧事实"和"当前有效的新事实"。新旧 chunk 混存,同等对待。没有版本管理、没有冲突标记、没有过期机制。知识越加越脏。

LLM Wiki 的设计就是针对这三个病灶的:Ingest 时整合跨文档关联(治①)、标注矛盾来源(治②)、维护更新过期内容(治③)。

同一问题的两种回答

以知识库实际对话为例——用户问"Agent 记忆系统选型建议":

✅ LLM Wiki 版回答(实际产出)

根据我们之前的调研(2026-07-16 上交清华 12 系统评测),Agent 记忆没有通吃方案,需要先判断你的主要失败模式:

跨会话聚合失败 → 选图/树结构(Zep/Cognee),它们有时间版本管理,能标记旧事实过期。

长对话精确事实丢失 → 保留原始内容比摘要更重要,SimpleMem 在 Locomo Recall@1 达 39.0。

成本敏感 → LightMem 3.67s/查询,Zep 155s/查询。成本不由结构复杂度决定,由维护范围决定。

我们的记忆系统(CLAUDE.md + recent.md + topics/)对应论文四模块雏形,但缺显式时间版本管理和冲突处理。详见 [[2026-07-16-Context-Token失效机制]]

↳ 每个判断都有出处、有时间、有来源标注。跨文档知识已在家整理好。

❌ RAG 版回答(推测)

根据检索结果,Agent 记忆系统包括 Mem0、Letta、Zep、Cognee 等方案…

(chunk 3 来自 2025 年的 Mem0 宣传文,说"一行代码接入记忆")

(chunk 7 来自 2026 年论文,说"没有通用赢家")

…两者在结论层面存在分歧…

(chunk 2 缺失——关于成本的核心数据被 embedding 排序挤到了第 6 名没被召回)

↳ 碎片拼接、观点冲突不标注、跨文档关联全丢。每次查都得重新拼。

系统维度对比

维度LLM Wiki传统 RAG 向量库
知识加工时机摄取时编译——进库即消化、关联、整合查询时检索——来了问题才从零搜索
知识累积模式复利增长——每次 Ingest/Query 都让 wiki 更丰富无状态——查 100 次和第一次没区别,无积累
数据形态互链 Markdown 页面(摘要+概念+对比),人类可读向量碎片(chunk),人类不可直接阅读
维护者LLM 全权负责——人只投喂素材和提问管 chunk 大小、索引策略、embedding 模型版本
Token 效率——按需钻 2-3 个页面(claude-obsidian 实测降 95%)——top-K chunk 全塞 prompt,同质片段重复消耗
知识一致性——来源/日期/作者可追溯,矛盾可标注可修正——碎片拼接,新旧混存,"精神分裂"
跨文档关联天然——编译过程中通过 wikilink 显式建立引用图丢失——chunk 间无显式关联,依赖 embedding 隐式相似
版本/过期管理内置——旧事实可标记过期,新事实更新实体页——不区分新旧,等权检索等权拼接
回答可溯源性完全可追溯——每个结论都有 wikilink 回原文——可以追溯 chunk 但不知道 chunk 的上游文档
规模边界≤40 万字最优;400 万+需引入检索辅助天生大文档量,但小规模时过度设计
查询模式Index → 定位页面 → 钻取 → 合成(结构导航)语义搜索 → top-K → 拼接(相似匹配)
人类可读/可浏览✅ Obsidian 当浏览器,可随意翻阅探索❌ 不可读,不可浏览
典型工具Claude Code + Obsidian · claude-obsidian · llm-wiki · MoxtLangChain · Pinecone · Weaviate · Chroma · Qdrant
最好用的场景个人知识库 · 小团队文档 · 调研积累 · 第二大脑企业知识库 · 客服 FAQ · 大文档量快速检索

规模适用边界

LLM Wiki 最佳
≤40 万字(≈200-400 篇)
index.md 导航足够
覆盖 90% 个人场景
混合区
40 万–400 万字
index + 向量检索协同
Oh My KB 在此区间
需要检索为主
>400 万字
纯 index 导航失效
企业级须上检索辅助

Karpathy 原话:"40 万字以内扁平索引+LLM 导航够用。400 万字以上同套办法会垮——须引入检索。但关键是:编译模式解决的问题(只见局部/无维护概念/无复利)对所有规模都成立。"

LLM Wiki 的关键设计原则

① 增量编译纪律 — 前 10 篇必须一篇篇来,边编译边纠正格式和详略,把纠正结论写回 CLAUDE.md。批量摄入省的时间会以页面质量失控加倍还回。
② 双输出防蒸发 — 每次问答不仅是输出给用户,还要把好答案写回 Wiki。对话是一次性的,Wiki 是持久的。不存回 = 知识蒸发。
③ Token 三级预算 — index.md(极简导航)→ Wiki 页(结构化知识)→ raw(原文核查)。由浅入深,不一次性加载全部上下文。
④ 源文件拆分粒度 — 一本书整文件喂 vs 按章拆 68 文件,编译质量天差地别。大粒度出 AI 烂泥,小粒度出 210 概念页 + 4600 交叉引用。
⑤ Lint 必跑 — 每次编译后跑 lint:查矛盾、查过期、查孤儿页、查缺失交叉引用。不跑 = wiki 里的矛盾随时间累积、永远不被发现。
⑥ 模型分级省钱 — Ingest 用便宜模型(摘要+概念更新),Query 用强模型(综合推理+判断)。不要用大炮打蚊子。

适用边界与反方声音

⚠️ 不是你有了 LLM Wiki 就不需要 RAG。 超过 40 万字后,index 导航开始吃力,需要向量检索辅助。企业级文档量(百万篇)下纯 LLM Wiki 不现实。两者是互补关系,不是替代关系。

LLM Wiki 的五个已知局限

局限说明缓解方案
规模天花数百篇后 LLM 在 Ingest 时难以准确判断所有需更新的关联页面引入 QMD/向量索引辅检索;按领域分库
Agent 场景失效Markdown Wiki 作为 Agent 运行时记忆层结构性失效——token 预算不够、数据格式不匹配混合架构:Markdown 服务人,结构化 DB 服务 Agent(Mercu 方案)
小体量无效益少于 10 篇时编译成本 > 手动整理边界条件:只在页面可压缩"分散在多来源里的事实"时才赚
过度关联风险LLM 可能建立过多低质量 wikilink 导致 wiki 膨胀Lint 操作 + 人工剪枝 + 关联质量评分
"外包理解"陷阱让 LLM 替你读和总结 = 可能外包了你的理解(学习型使用致命)区分学习型 vs 研究型使用;关键领域自己读原文

Oh My KB 的实现对照

📍 当前架构映射(已落地)

🔧 仍有差距

知识库范式的历史演进

阶段代表核心思路关键局限
1. 纯关键词搜索Elasticsearch · SolrBM25 匹配,返回原文段落不懂语义,"苹果股票"和"水果价格"无法区分
2. 向量语义检索Pinecone · Weaviate · Chromaembedding 化 → 语义相似 → top-K 拼接只解决"找到",不解决"理解"和"积累"
3. Agentic RAGLangChain · LlamaIndex · CohereLLM 自主规划检索步骤,多轮检索+综合仍是从零检索,每次跑完整流程
4. LLM WikiKarpathy llm-wiki · claude-obsidian摄取时编译,持久化知识层,复利累积规模上限约 40 万字纯结构导航
5. 混合架构(当前前沿)Oh My KB(Wiki+QMD)· Moxt · MercuWiki 层服务人类 + 检索层服务 Agent + 混合导航系统复杂度上升,需同时维护两套体系