返回博客列表

LLM Wiki 冲上 1.91 万星:让模型把文档增量'读成'持久知识库,而非每次重新 RAG

2026-09-13T14:00:00+08:00
LLM WikiKarpathyRAG知识库AgentObsidian

2026 年 4 月,Andrej Karpathy 在 GitHub Gist 上发了一个设计文档《llm-wiki.md》,提出了一个大胆的命题:大多数 RAG 系统让模型每次从零检索答案,知识从不积累。更好的做法是让模型增量构建并维护一个持久的、互相链接的 Markdown 知识库——知识被"编译"一次并持续更新,而不是每次查询都重新推导。

这个 gist 在 Hacker News 上拿了近 300 分,催生了一波实现。其中最有影响力的,是 nashsu(x.com/nash_su)的 llm_wiki:一个跨平台桌面应用,5 个月冲到 1.91 万星。仓库地址:https://github.com/nashsu/llm_wiki

这篇文章拆解 LLM Wiki 这个模式:它为什么是 RAG 的替代思路、llm_wiki 怎么落地它、以及和"Agent 上下文数据库"这类新方案的关系。

本文 outline

  1. 先看原始问题:RAG 的"从零开始"困境
  2. Karpathy 的答案:LLM Wiki 三层设计
  3. llm_wiki 落地:Tauri 桌面应用,1.91 万星
  4. 三个核心操作:Ingest / Query / Lint
  5. 知识图谱:4 信号建图
  6. 与 RAG、OpenViking、Mem0 的关系
  7. 适用场景与局限

1. 先看原始问题:RAG 的"从零开始"困境

传统 RAG 的工作方式:把文档切成 chunk → 向量化 → 查询时检索相关 chunk → 塞进上下文让模型回答。问题在哪?

每次都是从零开始。同一份文档,你问三遍,模型就要检索三遍、重新理解三遍。知识没有被沉淀——模型"读过"的文档,下次还是"没读过"。文档之间的关联、矛盾、综合结论,也从来不会被提取和固化。

Karpathy 的核心观察:知识应该被编译一次,然后持续更新,而不是每次查询都重新推导。他拿人类对比——学者积累知识靠的是做笔记、写综述、整理文献卡片,而不是每次回答问题都去翻原始资料。

这就是"LLM Wiki"模式的第一性原理:让模型像学者一样做笔记

2. Karpathy 的答案:LLM Wiki 三层设计

LLM Wiki 模式把知识库分成三层:

第一层:原始资料(Raw Sources)。不可变的原文——文章、论文、图片、数据。LLM 只读不改,这是事实的最终来源。

第二层:Wiki。LLM 生成的一堆 Markdown 文件。这一层完全由 LLM 拥有——它创建、更新、交叉引用这些文件。实体页、概念页、摘要页、综合页,互相用 wikilink 链接。

第三层:Schema。一份规则文档,告诉 LLM wiki 怎么组织、有什么页面类型、按什么工作流维护。类似 CLAUDE.md / AGENTS.md 之于编码 Agent。人和 LLM 共同演化它。

几个关键设计理念:

  • "LLM reads what it needs, writes what it learns":LLM 读原始资料、写/维护 wiki;人很少自己写。人的职责是筛选资料、提问、指导方向。
  • Obsidian 是 IDE,LLM 是程序员,wiki 是代码库。知识库就是一堆普通 markdown 文件,放进 Obsidian 就是可视化知识库,放进 git 就有版本历史和协作。
  • 为什么这个模式可行:人类放弃 wiki 是因为维护成本增长速度超过价值;LLM 不会厌倦,一次可以碰 15 个文件,维护成本约等于零。
  • 规模主张:索引式导航在中等规模(约 100 个来源、几百个页面)表现"出奇地好",避免了对 embedding RAG 基础设施的需求

思想谱系甚至可以追溯到 Vannevar Bush 1945 年的 Memex 构想——个人知识库 + 关联路径。Bush 没解决的是维护问题,现在 LLM 解决了。

3. llm_wiki 落地:Tauri 桌面应用,1.91 万星

nashsu 的 llm_wiki 是这个模式最完整的实现。硬数据:

指标
GitHub 星 19,148(2026-09-13)
许可证 GPL-3.0
主语言 TypeScript + Rust 后端
创建时间 2026-04-08
最新版本 v0.6.11
技术栈 Tauri v2 + React 19 + Tailwind v4

它不是 CLI 工具,而是一个桌面 GUI:三栏布局(知识树 + 聊天 + 预览)、活动面板、多会话聊天。支持 macOS/Windows/Linux,还有 Chrome 网页剪藏扩展。

存储上极其朴素:内容就是普通 markdown 文件 + YAML frontmatter,没有数据库。应用状态在 .llm-wiki/ 的 JSON 里,可选向量索引用 LanceDB(嵌入式,Rust 写的)。目录结构:

my-wiki/
├── purpose.md      # 目标、关键问题
├── schema.md       # 结构规则、页面类型
├── raw/sources/    # 不可变的原始资料
├── wiki/
│   ├── index.md    # 内容目录(每次摄入更新)
│   ├── log.md      # 追加式操作日志(可 grep 解析)
│   ├── overview.md # 自动更新的全局摘要
│   ├── entities/ concepts/ sources/ queries/ synthesis/
└── .obsidian/      # Obsidian 库配置

这个目录结构本身就是 LLM Wiki 模式的精华:index.md 是导航入口,log.md 是可解析的操作时间线(前缀如 ## [2026-04-02] ingest | Title,grep/awk 就能用),entities/concepts/synthesis/ 是分类的知识沉淀。

4. 三个核心操作:Ingest / Query / Lint

llm_wiki 把 LLM Wiki 模式的操作收敛成三个动作:

Ingest(摄入):加入一个来源,LLM 读它、写摘要和实体/概念页、更新目录、追加日志。一个来源可以触碰 10-15 个 wiki 页面——这就是"知识被编译"的具象化。增量机制:用 SHA256 哈希跳过未变化的文件(省 token)、两步 chain-of-thought 摄入(先分析后生成)、串行摄入队列带崩溃恢复和 3 次重试、源文件夹自动监听。

Query(查询):LLM 先读 index.md 找到相关页面,再深入,综合答案并带引用。好答案可以归档回 wiki(wiki/queries/),让探索成果持续积累——查询本身也在写知识库

Lint(体检):定期健康检查:矛盾、过时声明、孤立页面、缺失交叉引用、数据缺口。这是对"LLM 会幻觉"的直接回应——引入 Review 系统(人机协同)和 Lint,因为纯 LLM 维护的 wiki 需要质量护栏。

多格式解析覆盖 PDF、DOCX、PPTX、XLSX、EPUB/MOBI、Org mode、图片、网页剪藏。多模态支持:视觉 LLM 给 PDF 里的图片加说明、图像感知搜索。还内置 Deep Research(Tavily/SerpApi/SearXNG 多查询网页搜索,结果自动摄入)。

5. 知识图谱:4 信号建图

llm_wiki 不只是个 markdown 文件夹,它有知识图谱功能:从 wiki 页面的 wikilink 和 frontmatter 计算实体间关系,用 4 个信号加权:

  • 直接链接 ×3.0
  • 来源重叠 ×4.0
  • Adamic-Adar 系数 ×1.5(共同邻居)
  • 类型亲和 ×1.0

配合 Louvain 社区检测,能发现"惊人连接"、"知识缺口"、"桥节点"。图谱用 sigma.js 可视化,可以浏览整个知识库的关系网络。查询管线也利用图谱做 2 跳扩展,提升召回。

6. 与 RAG、OpenViking、Mem0 的关系

这三个对比特别值得写清楚,因为它们正好覆盖"Agent 长期知识"的不同路线:

vs 传统 RAG:RAG 是"查询时从原始文档检索、从零回答"——无积累、无交叉引用、矛盾从不被标记。LLM Wiki 是"知识先编译成结构化 wiki、再增量维护"——交叉引用和矛盾已经存在于产物里。wiki 本身就是记忆,不是检索索引。llm_wiki 里的向量搜索(LanceDB)是可选项,不是核心。

vs OpenViking(昨天写的火山引擎项目):OpenViking 是给 Agent 用的"上下文数据库"——viking:// 虚拟文件系统(resources/memories/skills),L0/L1/L2 分层加载,Agent 像操作文件一样操作上下文。它也有 ov compile 能把资料编译成 wiki。一句话区别:OpenViking 是面向 Agent 检索的上下文存储基础设施,LLM Wiki 是面向人的、可读的、互链的知识产物(Agent 维护它、人浏览它)。

vs Mem0:Mem0 是 Agent 的"记忆层"——存用户偏好、会话状态,运行时语义检索,是机器可读的。LLM Wiki 是人类可读的互链知识库,你在 Obsidian 里浏览。一句话区别:Mem0 是"Agent 记得关于你的事",LLM Wiki 是"Agent 从你的文档中学到的东西"。两者互补,不是竞争。

7. 适用场景与局限

适合:个人知识库(目标/健康/心理)、跨周/跨月的深度研究(论文逐步演化)、读书(构建一本书的伴生 wiki)、团队知识库(喂 Slack/会议记录)、竞品分析、尽职调查、旅行规划、课程笔记。

局限(要诚实说)

  • 规模天花板:索引导航在 ~100 来源、几百页面表现好;更大需要可选向量索引,且 token 预算限制上下文
  • 成本高:每次摄入是多次 LLM 调用(两步 CoT),token 成本远高于朴素 RAG 索引——这是"持久产物"的代价
  • 依赖 LLM 质量:整个 wiki 由 LLM 维护,所以项目才加了 Review 系统和 Lint——LLM 会幻觉、会漏
  • 串行摄入:摄入是队列串行的,有设计考量但大资料库导入慢
  • 仅桌面:没有 headless/CLI 优先的工作流(HTTP API + MCP server 部分弥补了 Agent 场景)
  • 项目年轻:2026-04 创建,生态还在早期,259 个 open issues

一个值得注意的生态信号:这个 gist 催生了一整个 mini-movement——llm-wiki-agent(3.5k 星)、llm-wiki-skill(2.5k 星)、karpathy-llm-wiki(2.2k 星)、llm-wiki-compiler(2k 星),以及 wuphf、vault-operator、mcptube(YouTube 变体)、memento(邮件变体)。"让模型维护知识库"这个思路,正在被不同方向反复验证。

对正在做 Agent 长期知识方案的团队:LLM Wiki 模式值得认真研究——它和 OpenViking 的"上下文数据库"、Mem0 的"记忆层"一起,构成了 2026 年"Agent 知识基础设施"的三条路线。选哪条,取决于你的核心诉求是"人可读的知识资产"、"Agent 可检索的上下文"还是"机器可读的记忆"。

参考


作者: itech001 来源: 公众号:AI人工智能时代(the-ai-era) 网站: https://www.theaiera.top/ 关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top

关注公众号,获取更多 AI 技术干货!

分享给朋友