LLM Wiki 是什么
2026 年 4 月,Andrej Karpathy 发布了一篇 GitHub Gist,提出了一种全新的个人知识管理范式:让 LLM 做”知识编译器”,提前把原始资料编译成结构化 Wiki,查询时直接读取已编译好的知识,而不是每次从文档碎片中检索。
核心理念:LLM 不只是写代码的工具,更擅长组织知识。你丢原始素材进去,LLM 自动帮你生成结构化、双向链接的 Wiki 页面,知识越攒越聪明。
| 特性 | 说明 |
|---|---|
| 架构 | 三层结构:raw/(原始素材)→ wiki/(LLM 编译的知识)→ CLAUDE.md(规则文件) |
| 核心操作 | Ingest(摄入)、Query(查询)、Lint(健康检查) |
| 数据格式 | 纯 Markdown,人类可读,任意编辑器可打开 |
| 知识积累 | 有状态的——每次摄入都在丰富知识库,不是每次都”重新发现” |
| 工程复杂度 | 零基础设施,只需文件夹 + LLM + 文本编辑器 |
| 透明度 | 每一条声明都可追溯到具体的 .md 文件和 raw/ 源文件 |
| 适合规模 | 100–500 篇高质量文档,sub-100K token 的 Wiki 总量 |
Karpathy 原话:“This is the end of the forgotten bookmark. For the individual, it’s a compounding research assistant.” —— 这是收藏夹吃灰的终结。对个人而言,它是一个产生复利的研究助手。
这篇文章适合谁
- 收藏夹爆满的研究者:存了几百篇文章但再也没打开过,想系统化消化信息
- 个人知识管理者:试过 Notion、Obsidian、Logseq 但始终缺一个自动整理机制
- AI 深度用户:已经在用 Claude Code / Cursor / Codex,想让它帮你自动维护知识库
你将收获什么
- 理解 LLM Wiki 的核心思想——为什么”编译优于检索”,它和 RAG 到底有什么区别
- 掌握从零搭建的完整流程——从目录结构到 CLAUDE.md 配置到第一次摄入
- 了解可直接使用的社区方案——不用从零写 CLAUDE.md,用现成 Skill 一键初始化
核心架构
my-knowledge-base/├── raw/ # 第一层:原始素材(只读,不可变)│ ├── articles/ # 网页文章│ ├── papers/ # 论文 PDF 转 Markdown│ ├── repos/ # 代码仓库文档│ └── data/ # 截图、表格等├── wiki/ # 第二层:LLM 编译的结构化知识│ ├── index.md # 总索引,每次操作必须更新│ ├── log.md # 仅追加的操作日志│ ├── concepts/ # 概念词条│ ├── entities/ # 人物、组织、项目│ ├── sources/ # 每篇素材的摘要页│ └── comparisons/ # 对比分析页├── outputs/ # 输出产物(报告、幻灯片、lint 结果)└── CLAUDE.md # 第三层:Schema 规则文件(最关键)分工明确:
- 你:筛选素材、提问引导方向、审核 Wiki 质量、维护
raw/ - LLM:读取素材、生成摘要和概念页、维护交叉引用、更新索引、标记矛盾
Karpathy 用编译器类比来描述这个过程:
| 编译器概念 | LLM Wiki 对应 |
|---|---|
| 源代码 | raw/ 目录 |
| 编译器 | LLM |
| 可执行文件 | wiki/ 目录 |
| 测试/检查 | Lint 操作 |
| 运行时 | Query 查询 |
环境准备
| 工具 | 用途 | 必需? |
|---|---|---|
| Claude Code | 主 LLM Agent,读取素材、生成 Wiki 页面 | 是 |
| Obsidian | Wiki 前端——图谱视图、反向链接、搜索 | 推荐 |
| Obsidian Web Clipper | 浏览器扩展,一键将网页转为 Markdown 存入 raw/ | 推荐 |
| Git | 版本控制,每次 Wiki 更新可追溯 | 推荐 |
| Marp(Obsidian 插件) | 将 Markdown Wiki 页面转为演示幻灯片 | 可选 |
| Dataview(Obsidian 插件) | 对 Wiki frontmatter 做结构化查询 | 可选 |
本质上只需要一个文件夹 + Claude Code。Obsidian 和 Git 是锦上添花,但不装也能跑通完整流程。
社区项目一览
Karpathy 的 Gist 发布后一周内,社区涌现了大量实现。如果你不想从零手写 CLAUDE.md,这些现成项目能帮你一键初始化,直接开始用:
| 项目 | 特点 | 安装 |
|---|---|---|
| karpathy-llm-wiki | 多平台支持(Claude Code / Cursor / Codex / OpenCode),783⭐,含级联更新、冲突检测、两级 lint、多模态摄入 | npx add-skill Astro-Han/karpathy-llm-wiki |
| llm-wiki-skill | 多平台支持(Claude Code / Codex / OpenClaw),1449⭐,水彩卡片风知识图谱、一句话零配置初始化、SHA256 智能去重、微信公众号/知乎等国内素材源 | bash install.sh --platform claude |
| git-wiki | 托管在你自己的 Git 仓库中,本地混合搜索(BM25 + 向量 + LLM 重排),纯离线 | bash <(curl -sL https://git.io/git-wiki) |
| llm-wiki-manager | 8 种操作模式,4 个幂等 Python 脚本,多 Wiki 路由,自动日期标注 lint 报告 | git clone 到 skills 目录 |
推荐:追求功能完整选 karpathy-llm-wiki,中文用户偏好本地化体验选 llm-wiki-skill,数据隐私要求极高的选 git-wiki(纯本地搜索,不依赖云端 LLM)。
快速上手
第一步:创建目录结构
mkdir -p ~/my-wiki/{raw/{articles,papers,repos,data},wiki/{concepts,entities,sources,comparisons},outputs}touch ~/my-wiki/wiki/index.mdtouch ~/my-wiki/wiki/log.mdcd ~/my-wikigit initecho "outputs/" >> .gitignore第二步:编写 CLAUDE.md(最关键的一步)
CLAUDE.md 是把通用 LLM 变成守纪律的知识工人的核心。没有它,输出质量不稳定;有了它,LLM 每次操作都遵循统一规范。
# My Personal Wiki
## 项目结构- `raw/` — 原始素材,只读。永远不要修改这里的文件。- `wiki/` — LLM 生成和维护的 Markdown 页面。- `wiki/index.md` — 总目录。每次操作后必须更新。- `wiki/log.md` — 仅追加的操作日志。- `outputs/` — 生成的报告、lint 结果等。
## 页面规范
每个 Wiki 页面必须包含 YAML frontmatter:
---title: "页面标题"type: concept | entity | source-summary | comparisonsources: - raw/articles/某篇文章.mdrelated: - "[[相关概念]]"created: YYYY-MM-DDupdated: YYYY-MM-DDconfidence: high | medium | low---
命名规则:- 文件名用 kebab-case,与概念名一致(如 `attention-mechanism.md`)- 内部引用统一用 `[[wikilinks]]`- 引用来源时始终链接回 `raw/` 文件路径
## 工作流
### Ingest(摄入)1. 读取 raw/ 中的新素材2. 和用户讨论关键发现3. 在 wiki/sources/ 中创建素材摘要页4. 更新或新建 concept/entity 页面5. 更新 wiki/index.md6. 在 wiki/log.md 末尾追加:## [YYYY-MM-DD] ingest | 素材标题
### Query(查询)1. 先读 wiki/index.md 定位相关页面2. 读这些页面,综合回答3. 用 [[wikilinks]] 标注引用来源4. 如果回答有留存价值,主动询问是否保存为新 Wiki 页面
### Lint(健康检查)1. 扫描所有 Wiki 页面,检查矛盾2. 找出孤页(无入链的页面)3. 标记被引用但未创建的概念4. 找出被新素材取代的过时声明5. 结果保存到 outputs/lint-YYYY-MM-DD.md第三步:添加第一批素材
用 Obsidian Web Clipper 浏览器扩展,把你感兴趣的文章一键转为 Markdown,保存到 raw/articles/。
或者手动操作:
# 假设你有一篇想收藏的博客文章cp ~/Downloads/some-article.md raw/articles/第四步:启动 Claude Code,开始摄入
cd ~/my-wikiclaude然后对 Claude 说:
“我把 3 篇文章放到了 raw/articles/ 里。请全部摄入,创建对应的 Wiki 页面,更新索引。”
Claude Code 会逐一读取每篇素材,生成结构化 Wiki 页面,建立交叉引用,更新索引——一次性完成。
第五步:用 Obsidian 查看知识图谱
# 用 Obsidian 打开 wiki/ 目录作为 Vault# 点击左侧 Graph View 按钮,即可看到知识节点和双向链接图谱此时你应该能看到类似这样的效果:每篇文章摘要是一个节点,提取出的概念是另一个节点,它们之间通过 [[双向链接]] 相连,形成一张可视化的知识网络。
[此处插入 Obsidian 图谱截图:节点+连线形成知识网络]
如果暂时没有截图,也可以用 Obsidian 打开你的 Wiki Vault,点击左侧 Graph View 按钮自行查看。节点越大表示被引用次数越多,连线越密表示知识关联越丰富。
进阶玩法
三步编译法(社区改进版)
Karpathy 原版的”摘要 + 链接”足够好,但社区在实践中迭代出了更深入的版本:
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1. 浓缩 | 砍到核心结论(≤ 3 条)+ 关键证据 | 不是摘要,是提炼 |
| 2. 质疑 | 对每条结论追问——前提假设是什么?换个场景还成立吗?数据来源可靠吗?有没有反例? | 主动发现盲区 |
| 3. 对标 | 跨领域找类似现象,创建迁移链接 | 让知识产生跨界关联 |
这让 Wiki 不仅”存储”知识,还能主动发现矛盾、填补盲区、跨界关联。
Git 自动提交 Hook
#!/bin/bash# 每次提交后自动做一次轻量 lintclaude --print "对 wiki/ 做一次快速健康检查,只标记严重问题,结果追加到 outputs/lint-$(date +%Y-%m-%d).md"定时 Lint
用 cron 定期跑健康检查:
# 每天凌晨 3 点执行 lint0 3 * * * cd ~/my-wiki && claude --print "执行完整 lint,结果保存到 outputs/" && git add -A && git commit -m "auto lint $(date +%Y-%m-%d)"多 Wiki 管理
当你积累了多个领域的知识库后(如 AI 研究、投资笔记、课程笔记),可以创建多个 Wiki 目录,每个有自己的 CLAUDE.md:
~/wikis/├── ai-research/│ ├── raw/ wiki/ CLAUDE.md├── investment-notes/│ ├── raw/ wiki/ CLAUDE.md└── course-notes/ ├── raw/ wiki/ CLAUDE.md累积到一定程度后:微调小模型
Karpathy 提出的终极愿景:当 Wiki 数据通过持续 LLM 维护变得足够”纯净”后,用 Wiki 数据微调一个小模型,把知识直接压缩进模型权重——你的个人知识库变成专属私有大模型。
不过这一步需要 Wiki 规模达到数千页、质量经过多轮 lint 打磨后才可行,属于远期目标。
LLM Wiki vs RAG:什么时候用哪个
| 维度 | RAG | LLM Wiki |
|---|---|---|
| 状态 | 无状态——每次查询独立 | 有状态——知识持续积累 |
| 基础设施 | 向量数据库 + Embedding + 检索管线 | 一个文件夹 |
| 交叉引用 | 每次查询临时发现 | 摄入时预建,始终可用 |
| 每次查询 Token 成本 | 高(检索 + 重排 + 生成) | 低(读索引 + 定向读页面) |
| 可追溯性 | Chunk 级引用,常有损 | 文件级引用,追溯到 raw/ |
| 矛盾检测 | 不检测——冲突片段共存 | Lint 时主动标记 |
| 适合规模 | 百万级文档 | 100–500 篇高质量文档 |
| 内容更新 | 需重建索引 | 增量编译即可 |
选 RAG 的场景: 百万级文档、内容频繁变动、多团队规模。
选 LLM Wiki 的场景: < 500 篇源文档、希望知识产生复利、零基础设施偏好、个人或小团队使用。
常见问题
Q:我用 ChatGPT / Cursor / Codex 行不行?
都可以。Karpathy 的方法论是工具无关的——核心是 raw/ → wiki/ → CLAUDE.md 三层架构。Claude Code 的原生 Agent 能力最强,但任何能读文件、写文件的 LLM 工具都能胜任。社区已有 Cursor 和 Codex 的适配实现。
Q:原始素材放什么格式?PDF 行不行?
建议尽量转成 Markdown。LLM 读取 Markdown 最可靠,PDF 解析依赖具体工具,可能丢失格式。Obsidian Web Clipper 能一键把网页转 Markdown。如果只有 PDF,可以先用 pdftotext 或 LLM 自带的 PDF 阅读能力转成文本。
Q:Wiki 太大会不会让 LLM 上下文不够用?
Karpathy 原版 Wiki 约 100 篇文章、400K 词,在 Claude 200K 上下文中完全放得下。如果 Wiki 超过上下文窗口,社区已经有方案:git-wiki 内置本地混合搜索(BM25 + 向量 + LLM 重排),llmwiki(Rust crate)用 Tantivy + fastembed 实现无需 LLM 索引也能扩展。
这两个方案都能让 Wiki 规模突破上下文限制:
- git-wiki:用
qmd做本地搜索,搜索后只把相关页面送进上下文 - llmwiki:替换
index.md为真实搜索引擎(BM25 + 语义搜索 + 混合 RRF)
Q:和 Obsidian 自带的关系图谱有什么区别?
Obsidian 图谱只展示 [[链接]] 关系,不会自动发现缺失的概念、标记矛盾、或跨文章提炼主题。LLM Wiki 的 Lint 操作能做 Obsidian 本身做不到的语义分析。
Q:隐私怎么办?数据都在本地?
所有数据都在本地 Markdown 文件中。用 Claude Code 时数据会发送到 Anthropic API,但你也可以切换到本地模型(Ollama + 开源模型)。纯 Markdown 格式意味着数据不受厂商锁定。
总结
Karpathy 的 LLM Wiki 不是要革 RAG 的命,而是提供另一种哲学:编译优于检索、质量优于数量、显式关联优于隐式 Embedding。
对于个人知识管理,它是最轻量的方案——你只需要文件夹 + Claude Code,就能让 AI 帮你把收藏夹里吃灰的文章变成活的、会生长的知识网络。
参考资源
- Karpathy 原始 Gist — llm-wiki.md
- karpathy-llm-wiki — 多平台支持(Claude Code / Cursor / Codex / OpenCode),783⭐
- llm-wiki-skill — 中文优化版,支持 Claude Code / Codex / OpenClaw,知识图谱可视化
- git-wiki — 本地混合搜索版
- llm-wiki-manager — 8 模式多 Wiki 管理
- llmwiki — Rust 原生搜索引擎(Tantivy BM25 + fastembed 语义搜索 + 混合 RRF),突破上下文窗口限制
- Karpathy 的 LLM Wiki:不用 RAG 也能构建个人知识库 — Toolin AI
- 告别收藏夹吃灰:Karpathy 的 LLM 知识库方法,我复现了一遍
- How to Build Karpathy’s LLM Wiki — Dev.to