如何从零实践 Karpathy LLM Wiki 知识库
🏗️ 第一步:搭建基础环境
1.1 安装 Obsidian
从 Obsidian 官网下载安装。创建一个新 vault,放在你记得住的路径——比如 ~/wiki 或 ~/Documents/llm-wiki。"Vault" 在 Obsidian 中就是一个文件夹,里面所有东西都是纯 Markdown。
1.2 安装 Claude Code(推荐 Agent)
确保你有 Claude Code CLI(npm install -g @anthropic-ai/claude-code),并且已配置好 API Key。
1.3 安装 Obsidian Skills
这些 Agent Skills 是为 Obsidian 设计的,遵循 Agent Skills 规范,可被任何兼容 agent 使用,包括 Claude Code、Codex 和 Open Code。
方法一(最简单,Marketplace):
text
/plugin marketplace add kepano/obsidian-skills
方法二(npx):
Bash
npx skills add https://github.com/kepano/obsidian-skills
方法三(手动,Claude Code):
将该仓库的内容添加到你 Obsidian vault 根目录下的 /.claude 文件夹中。
Bash
git clone https://github.com/kepano/obsidian-skills.git cp -r obsidian-skills/.claude /path/to/your/vault/ 方法四(Codex CLI):
将 skills/ 目录复制到你的 Codex skills 路径中(通常是 ~/.codex/skills)。
1.4 验证 Skills 安装成功
在你的 vault 中运行 Claude Code,然后问 "What skills do you have access to?"。 它应该能列出 obsidian-markdown、obsidian-cli、obsidian-bases、json-canvas、defuddle 等 skill。
📁 第二步:创建三层目录结构
三层架构:raw/(不可变来源),wiki/(LLM 生成的页面),以及 CLAUDE.md(schema)。
在你的 vault 根目录执行:
text
my-wiki/ ← Obsidian Vault 根目录 ├── raw/ ← 第一层:原始来源(只增不改) │ ├── papers/ │ │ ├── attention-is-all-you-need.pdf │ │ └── scaling-laws.pdf │ ├── articles/ │ │ └── 2026-04-karpathy-llm-wiki.md │ ├── transcripts/ │ ├── bookmarks/ │ └── notes/ ├── wiki/ ← 第二层:LLM 编译生成的知识页面 │ ├── index.md ← 目录(每个页面一行摘要) │ ├── log.md ← 时间线(追加记录所有操作) │ ├── transformer.md │ ├── attention-mechanism.md │ ├── scaling-laws.md │ └── ... ├── CLAUDE.md ← 第三层:Schema 规范文件(最重要!) ├── .claude/ ← Obsidian Skills 所在位置 │ └── skills/ │ ├── obsidian-markdown/ │ ├── obsidian-cli/ │ ├── obsidian-bases/ │ ├── json-canvas/ │ └── defuddle/ └── _templates/ └── note.md 📜 第三步:编写 Schema 文件(最关键的投资)
创建 ~/knowledge/CLAUDE.md(或 AGENTS.md 用于 Codex)。Schema 文件应至少定义:## Directories — raw/: 源文档,仅追加,永不编辑。
下面是一个最小可行 CLAUDE.md 模板:
Markdown
# Knowledge Base Schema ## Identity You are the maintainer of my personal LLM Wiki. Obsidian is the IDE; you are the programmer; the wiki is the codebase. ## Directories - `raw/`: Source documents. Append-only. Never edit originals. - `wiki/`: LLM-generated pages. You own these files. - `wiki/index.md`: Table of contents. One line per page with summary. - `wiki/log.md`: Chronological append-only operation log. ## Page Format Every wiki page must follow this structure: - Title as H1 - Frontmatter: tags, created, updated, sources - Summary paragraph (2-3 sentences) - Body with [[wikilinks]] to related concepts - ## Sources section listing raw/ files this page draws from - ## See Also section with [[backlinks]] ## Naming Convention - Use lowercase-kebab-case slugs: `attention-mechanism.md` - One concept per page ## Operations ### Ingest When I say "ingest [source]": 1. Read the source from raw/ 2. Extract key concepts, entities, claims 3. For each concept: update existing page OR create new page 4. Add [[wikilinks]] between related pages 5. Update index.md with any new pages 6. Append to log.md: date, operation, files touched ### Query When I ask a question: 1. Search index.md for relevant pages 2. Read those pages 3. Synthesize answer with [[wiki-link]] citations 4. If answer represents new knowledge, suggest saving as wiki page ### Lint When I say "lint": 1. Find orphaned pages (no inbound links) 2. Find broken [[wikilinks]] 3. Flag contradictions between pages 4. Identify stale claims 5. Suggest missing cross-references 6. Append findings to log.md ## Rules - Always cite sources: [[page-name]] for wiki, (raw/filename) for sources - Flag contradictions explicitly with > [!warning] callouts - Never delete raw/ files - Ask before bulk operations touching >10 files 你和 LLM 共同演进这个文件。具体如何将其适配 Claude Code,可参见 CLAUDE.md 的官方文档。
🚀 第四步:第一次 Ingest(最关键的冷启动)
4.1 准备来源
将你的第一批文档放入 raw/ 目录。关键建议:聚焦同一主题。
同主题的 5 篇论文 > 不同主题的 5 篇论文
4.2 启动 Claude Code 并执行 Ingest
Bash
cd ~/my-wiki claude 然后在 Claude Code 对话中输入:
text
请读取 CLAUDE.md 中的 schema 规则,然后 ingest raw/papers/attention-is-all-you-need.pdf
把来源放入 raw/,告诉 LLM 处理它。Karpathy 偏好一次一个来源并由人工审查。批量摄入加少量监督也可以——在 schema 中记录你的选择。
4.3 审查生成结果
LLM 完成后,检查:
wiki/ 下新增了哪些页面wiki/index.md 是否已更新wiki/log.md 是否记录了操作[[wikilinks]] 连接在 Obsidian 中打开 vault,使用「图谱视图」查看知识网络的形成。
🔌 第四步(进阶):使用 Slash 命令自动化
如果你想要更结构化的工作流,可以安装 llm-wiki-plugin:
该插件将模式打包为一个 Claude Code skill 加上六个 slash 命令(/wiki:init, /wiki:ingest, /wiki:query, /wiki:lint, /wiki:stats, /wiki:graph)以及一小组 Python 脚本(BM25 搜索、结构化 lint、带规模阈值的统计,加上可选的编译图谱层)。你策展来源和提问;Claude 做簿记。
安装后的日常操作变得极其简洁:
/wiki:init | |
/wiki:ingest | raw/ 中的新来源 |
/wiki:query | |
/wiki:lint | |
/wiki:stats | |
/wiki:graph |
🔄 第五步:日常运行三个操作循环
📥 每日:Ingest
text
# 用 Obsidian Web Clipper 保存一篇文章到 raw/articles/ # 然后告诉 Claude: ingest raw/articles/2026-06-new-article.md 关键洞见:wiki 层是一个复利增长的制品。每次你向系统喂入新文档,模型不只是总结它——它会整合它。现有实体的交叉引用已经在那里了。矛盾会被标记出来。
🔍 随时:Query
text
查询:Transformer 的注意力机制和 Mamba 的选择性状态空间有什么本质区别?
LLM 搜索相关页面、阅读它们并综合出带引用的答案。答案可以采取不同形式——Markdown 页面、对比表格、幻灯片、图表。重要洞见:好的答案可以作为新页面归档到 wiki 中。你请求的对比、分析、发现的联系——这些都有价值,不应消失在聊天历史中。你的探索像摄入的来源一样在知识库中复利增长。
保存有价值的答案:
text
把上面的回答保存为 wiki 页面
🔧 每周:Lint
text
run lint
定期让 LLM 对 wiki 进行健康检查。 LLM 还会建议要调查的新问题——lint 是主动的,不仅仅是清理。
📊 第五步(进阶):使用 lucasastorian/llmwiki 实现全自动维护
如果你想让 wiki 完全自主维护,这是最完整的全栈实现:
克隆仓库并安装依赖。将其指向你的文件夹——PDF、Word 文档、PowerPoint、Markdown、笔记。LLM Wiki 将它们索引到本地搜索索引中。你的文件保持原位;不会被移动或上传。
Bash
git clone https://github.com/lucasastorian/llmwiki.git cd llmwiki python -m venv .venv && source .venv/bin/activate pip install -r api/requirements.txt -r mcp/requirements.txt cd web && npm install && cd .. 通过 MCP 连接 Claude。MCP 使 Claude 能够读取、写入和搜索你的 wiki。将打印的 JSON 配置粘贴到 claude_desktop_config.json(Claude Desktop)或 .claude/settings.json(Claude Code)中。
关键特性:Claude Routine 自动维护
将其设为自我维护。设置一个 Claude Routine——一个按计划自动运行的提示——这样 Claude 无需你记得就能刷新 wiki。
部署每晚 Claude Routine 来自主地将来源综合到永久知识库中。因为剪辑器会连同来源一起捕获你的高亮和边注,wiki 不仅成为你读了什么的记录,更是你对其思考了什么的记录。
🏗️ 第六步:超过 200 页后的规模化
6.1 安装 QMD(Tobi Lütke 的搜索引擎)
Tobi Lütke(Shopify CEO)构建了 QMD,一个本地 Markdown 文件搜索引擎。它使用混合 BM25/向量搜索加上 LLM 重排。Karpathy 推荐它作为 LLM Wiki 的搜索层。它同时提供 CLI 和 MCP 服务器,所以 Claude Code 可以用它来高效导航大型 wiki。
6.2 两层 Lint
当 wiki 增长到几百页时,将 Lint 拆分为两层:
Bash
# 第一层:程序化检查(确定性,快速) scripts/lint.sh # 检查幽灵链接、孤立页面、格式违规 # 第二层:LLM 语义检查(需要理解力) # 在 Claude Code 中: run semantic lint # 查找矛盾、过期声明、缺失联系 📋 实践案例:Aaron Fulkerson 的 "Exo" 生产系统
一个真实的高强度实践案例值得学习——
他最终将构建的系统命名为 Exo(exocortex 的缩写——外部认知层)。名字来自系统自身——在一次深夜会话中他问系统它正在变成什么。26 个 skills、14 个 MCP 服务器、8 个 hooks,以及一个包含数百个文件的 Obsidian vault,由模型维护。Karpathy 的 gist 描述了模式。他的文章描述了当你把它推过理论进入两个月生产使用后会发生什么。
⚡ 快速启动清单(最小可行方案)
适合今天下午就想跑起来的人:
Bash
# 1. 创建 vault mkdir -p ~/my-wiki/{raw,wiki,.claude} cd ~/my-wiki # 2. 安装 Obsidian Skills git clone https://github.com/kepano/obsidian-skills.git /tmp/obs-skills cp -r /tmp/obs-skills/.claude/* .claude/ # 3. 创建 Schema(复制上面的 CLAUDE.md 模板) vim CLAUDE.md # 4. 创建导航文件 echo "# Wiki Index" > wiki/index.md echo "# Operation Log" > wiki/log.md # 5. 放入你的第一个来源 cp ~/Downloads/some-paper.pdf raw/papers/ # 6. 启动 Claude Code claude # 7. 在 Claude Code 中: # "读取 CLAUDE.md,然后 ingest raw/papers/some-paper.pdf" 一个下午完成搭建。此后系统只需三个命令运行。
🔑 常见问题与排错
.claude/commands/ 创建后重新启动 | |
wiki/sources/<project>/ 下,确认 `ls wiki/sources | |
.llmwiki-state.json;如果缺失,传一次 --force 让它重建 | |
[[wikilinks]] | |
🗺️ 推荐学习路径
text
第1天 → 搭建 vault + CLAUDE.md + 安装 Skills ↓ 第1周 → 聚焦一个主题,ingest 5-10 个来源 每次 ingest 后在 Obsidian 中审查图谱 ↓ 第2-3周 → 开始 Query,把好答案存为新页面 第一次 Lint,修复发现的问题 ↓ 第1月后 → 迭代改进 CLAUDE.md schema 引入 slash 命令或 llmwiki 全栈方案 ↓ 第3月后 → 考虑 QMD 搜索引擎 设置 Claude Routine 自动维护 探索 Exo 级别的 MCP + Hooks 深度集成 Wiki 之所以保持活力,是因为维护成本接近于零。这个模式最适合在数周或数月内积累文本研究——论文、文章、转录、会议笔记、书籍章节、客户通话。
普通人如何用 AI 搭建自己的知识操作系统?
一个程序员出身的知识工作者,公开记录自己如何用 AI 工具搭建个人知识系统、把读过的书和做过的项目变成可复用资产的全过程。
我是【一只阿木木】——公开建造我的 AI 第二大脑。
欢迎加入行动营👇获取更多Obsidian + AI数字大脑实践
我相信:在 AI 时代,每个普通人都该拥有一个自动生长的知识系统
欢迎关注【一只阿木木】🌊