# 用知识库替代你的大脑外存:Karpathy 方法完整实战指南
**作者**: Jing Wang
**日期**: 2026-04-14T12:37:46.000Z
**来源**: [https://x.com/jingwangtalk/status/2044032365929083158](https://x.com/jingwangtalk/status/2044032365929083158)
---

Andrej Karpathy 最近分享了一个让很多人重新思考"笔记"这件事的做法。
他的核心观点很简单:与其每次从海量原始资料里向量检索相似片段,不如先让 LLM 把你的原始资料一次性"编译"成结构化的 wiki 文件。查询的时候,LLM 读的是已经被提炼过的知识——概念定义清晰、来源有迹可查、词条之间有交叉链接。
这个设计解决了传统 RAG 的一个根本缺陷:向量检索找的是语义相近的文本片段,但它不知道"Agent Harness"和"工具调用"之间的关系,也不知道这个概念是谁提出来的、跟哪些其他概念有冲突。Wiki 格式天然保留了这些关系。
更重要的是,知识在这个过程里持续沉淀。每一次查询都会触发 wiki 更新,你的笔记不再是静态档案,而是随着你的使用持续生长的知识网络。
这篇文章带你完整走完这套系统的搭建流程,包括三个版本:
- Obsidian 版本:有图形界面,适合日常知识管理和内容消费
- 本地文件夹版本:适合已有大量工作文档的场景,用 Claude Code 直接操作
- Graphify 一键版本:社区封装的 Python 工具,适合想快速启动的用户
newsletter文章链接:
https://open.substack.com/pub/zerofuturetech/p/your-second-brain-rebuilt-a-complete?r=5c8syw&utm_campaign=post&utm_medium=web&showWelcomeOnShare=true
Youtube视频链接:
https://youtu.be/f5R-0DHRTQk
## 先理解这套系统的设计逻辑
搭建之前,花五分钟理解架构,后面每一步都会更清晰。
三层文件结构
knowledgebase/
├── raw/ # 只读原料仓库,agent 永远不改这里
│ ├── articles/ # 网页剪藏
│ ├── podcasts/ # 播客转录文字
│ ├── my-notes/ # 个人随手记
│ └── assets/ # 图片、PDF 等附件
│
├── wiki/ # agent 维护的知识库,检索的核心
│ ├── concepts/ # 概念页,每个文件对应一个概念
│ ├── entities/ # 实体页:人物、工具、组织等"名词"
│ ├── summaries/ # 原始资料的摘要,一对一关系
│ ├── syntheses/ # 跨资料综合分析,手动触发
│ ├── scenarios/ # 具体场景的应用分析
│ ├── qa/ # 高质量问答记录
│ ├── INDEX.md # 整个 wiki 的导航目录
│ └── log.md # 追加式操作日志
│
└── Claude.md # agent 的运行指令,整个系统的灵魂
raw/ 的规则只有一条:只进不改。 Agent 永远不动这里的内容,所有原始资料保持原样。
Claude.md 是什么,为什么它是灵魂
Claude.md 不是普通的说明文档,它是 agent 的行为规范,把整套知识管理的逻辑写死成文件。你把它粘贴给 Claude Code 或任何 agent,它就知道自己是谁、该做什么、按什么顺序做。
它包含几个关键设计:
身份定义:agent 的职责是"编译"(把原始资料提炼成 wiki),而不是"回答"(直接从原始文件里找答案)。这个区别很重要——编译是一次性的重投入,换来后续每次查询的低成本。
五种页面格式:concepts、entities、summaries、syntheses、qa 各有固定的 frontmatter 结构,其中 source_files 字段记录了每个 wiki 页从哪些 raw 文件生成。原始文件更新时,系统知道要重新编译哪些下游页面。
Token 预算策略:先读 INDEX.md(轻量,几 KB),再读 2-3 个相关 wiki 页(中等),最后才读 raw 原始文件(重量)。防止每次对话都把所有内容塞进上下文。
两个强制输出:每次对话必须同时给出"回答"和"wiki 更新",不能二选一。这是防止知识蒸发的关键约束——有价值的问答不会消失在聊天记录里,而是沉淀进 qa/ 文件夹。
引用格式约束:引用 wiki 页用 [[页面名]],引用原始资料用 [文件名],没有来源的结论不算数。这个规则保证了知识库的可追溯性。
四种标准操作

## Obsidian 版本完整搭建
第一步:安装 Obsidian 并创建文件结构
下载 Obsidian,免费本地使用,数据存储在你自己的设备上。
创建 Vault 之后,你有两种方式建立文件结构:
方式 A(推荐):Git Clone 模板
https://github.com/jingw2/llm-wiki-template
cd knowledgebase
模板里已经包含完整的文件夹结构、Claude.md(中英文两个版本,保留一个)、以及预配置的插件列表。
方式 B:手动创建
按照上面的目录结构手动建文件夹,然后从 GitHub 上下载 Claude.md 粘贴进去。
第二步:安装内容采集工具
网页文章采集:Obsidian Web Clipper
进入 Obsidian 设置 → Community Plugins → 浏览,搜索 Web Clipper 安装。
同时在浏览器里安装对应扩展(支持 Chrome / Firefox / Arc)。
插件配置:进入插件设置 → General → Vaults,输入你的知识库文件夹名(比如 knowledgebase),回车保存。
使用方式:在任何网页上点击浏览器扩展图标,选择保存路径(raw/articles/ 或 raw/my-notes/),一键把文章转成 Markdown 保存到知识库。文章的标题、来源 URL、发布日期会自动填入 frontmatter。
播客内容采集:视频转录
推荐使用 videotranscriber.com(免费额度够日常使用),把 YouTube 或播客链接粘贴进去,几分钟内生成完整对话脚本。
把脚本内容复制,在 raw/podcasts/ 里新建一个 Markdown 文件,文件名建议格式:YYYY-MM-DD-播客名-集数.md,粘贴内容后加上基本的 frontmatter:
---
title: "播客标题"
source: "https://youtube.com/..."
date: 2025-01-15
type: podcast
---
图片和 PDF
直接拖拽到 raw/assets/ 文件夹,Obsidian 会自动处理路径引用。PDF 可以用 Obsidian 内置查看器打开,也可以配合 PDF Highlights 插件直接在 Obsidian 里标注。
第三步:安装 Claudian 插件(连接 Claude Code)
Claudian 是 Obsidian 和 Claude 之间的桥梁,安装流程需要通过 BRAT 插件来管理:
在 Community Plugins 里搜索并安装 BRAT
打开 BRAT 插件,点击 "Add Beta Plugin"
粘贴 Claudian 的 GitHub 仓库链接
启用插件
安装完成后,进入 Claudian 设置 → Claude 页签 → Environment:
- API Endpoint:填入你的模型接口地址(支持 OpenAI 兼容格式)
- API Key:填入对应的 API Key
- Model:填入模型名称
> 模型选择建议:知识库的 Ingest 工作(编译 wiki)是重复性任务,对推理能力要求不高。推荐用性价比高的国产模型(如 DeepSeek、Qwen)来处理 ingest,节省成本。Query 阶段如果需要复杂推理,再换用更强的模型。
第四步:建立初始索引
打开 Obsidian 主界面,点击左侧边栏的 Claudian 图标,开始第一次对话。
初始化全量 Ingest(第一次使用,处理所有已有文件):
Agent 会逐个读取 raw/ 下的文件,为每个文件生成对应的 summaries/ 页面,提取出现的概念更新 concepts/,识别人物/工具/组织写入 entities/,最后更新 INDEX.md。
增量 Ingest(后续有新文件时):
或者扫描变更:
扫描 raw/,对比 log.md,ingest 所有有变更或新增的文档
第五步:生成 Syntheses 和 Scenarios
当 wiki 积累到一定量,手动触发跨资料的综合分析——这是整个系统里最有价值的部分。
生成 Synthesis(主题综合):
生成 Scenario(场景分析):
定期 Lint(健康检查),建议每月一次:
日常使用:直接提问
搭建完成后,在 Claudian 对话窗口里自然提问就行:
Agent 会按 token 预算策略执行:先读 INDEX.md 定位相关页面,读取 2-3 个 wiki 页给出回答,同时把这次问答更新到 qa/ 文件夹,并附上参考文档路径。
## 本地文件夹版本(Claude Code 直接操作)
如果你本地已经有一个文件夹积累了大量工作文档——会议纪要、项目资料、技术文档、读书笔记——同样的逻辑可以直接迁移,不需要 Obsidian。
第一步:整理目录结构
假设你的原始文件在 ~/Documents/work-files/,按以下结构重新组织:
work-knowledge/
├── ~/Documents/work-files/ # 把原始文件都移到这里
│ ├── 2024-projects/ # 按你自己的分类组织即可
│ ├── meeting-notes/
│ └── research/
│
├── wiki/ # 新建,wiki 的主体
│ ├── concepts/
│ ├── entities/
│ ├── summaries/
│ ├── syntheses/
│ ├── scenarios/
│ ├── qa/
│ ├── INDEX.md # 空文件,等待 agent 生成
│ └── log.md # 空文件
│
└── Claude.md # 从模板复制,修改文件目录部分
注意:Claude.md 里的目录说明需要根据你的 raw/ 结构调整,删除 articles/podcasts 等分类描述,替换成你实际的文件夹结构。
第二步:用 Claude Code 建立 wiki
在 work-knowledge/ 目录下打开终端,启动 Claude Code:
cd ~/work-knowledge
claude
然后输入 Ingest 指令:
按照 Claude.md 的 ingest 流程,处理 raw/ 下的所有文件。
文件类型包括 .md, .txt, .pdf, .docx。
全部处理完后运行 /index 生成 INDEX.md。
Claude Code 会在 Auto Mode 下自动读取文件、生成 wiki、更新索引,全程不需要人工干预。
第三步:配置 MCP 实现持续更新(进阶)
如果你的工作文档经常更新,可以配置 Claude Code 的 MCP(Model Context Protocol)来监听文件变更,自动触发增量 Ingest。
在 ~/.claude/claude.json 里添加:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/你的用户名/work-knowledge"]
}
}
}
配置后,Claude Code 能直接访问文件系统,你可以在任何终端里用自然语言查询你的工作知识库。
Token 成本优化建议
本地文件版本的 Ingest 通常涉及大量文件,token 成本是主要考量。几个实用策略:
分批处理:不要一次性 ingest 所有文件,按文件夹分批,每批处理完成后确认 wiki 质量再继续。
使用免费模型做 Ingest:OpenCode 支持接入本地模型(如 Ollama + Qwen2.5)来处理 ingest 任务,成本接近零。Query 阶段再切回 Claude。
# 在 OpenCode 里用本地模型 ingest
opencode --model ollama/qwen2.5:14b
设置文件大小过滤:在 Claude.md 里加一条规则,超过 50KB 的单个文件只提取摘要,不全文处理,避免超长文档占用过多 token。
## Graphify — 社区封装的一键工具
如果你不想手动搭建文件结构和配置 Claude.md,社区有人封装了一个叫 Graphify 的 Python 工具,把整套流程打包成命令行界面。
安装
pip install graphify
基本使用
# 初始化知识库
graphify init --source ./raw --output ./wiki
# 处理所有文件
graphify ingest ./raw
# 查询
graphify query "Agent Harness 的核心设计原则是什么"
# 生成关系图
graphify graph --output knowledge-graph.html
Graphify 的技术特点
Graphify 采用 pipeline 工作模式,每个文件经过两个阶段处理:
阶段一:静态分析(不调用 LLM,几乎零成本)
- 提取文件的基本元数据(标题、日期、文件类型)
- 识别文档内的显式链接和引用
- 建立初步的文件关联图
阶段二:LLM 语义提取(调用 LLM,有成本)
- 提取关键概念和实体
- 生成摘要
- 建立概念之间的语义关联
这个两阶段设计的好处是:静态分析可以用来过滤不值得 LLM 处理的文件(比如只有几行的短笔记、重复内容),减少不必要的 API 调用。
## 常见问题
Q:知识库应该存多少文件才值得建?
没有硬性门槛。如果你有超过 20-30 篇你会反复参考的文章或文档,就值得建。文件越多,知识库的价值越明显——单文件查询 LLM 直接读原文就够了,知识库的优势在于跨文件的关联。
Q:Claude.md 多久需要更新一次?
Claude.md 是静态的运行规范,不需要频繁更新。只有在你想改变 wiki 的结构(比如新增一种页面类型)或调整 agent 行为(比如修改 token 预算策略)时才需要修改。
Q:wiki 文件可以手动编辑吗?
可以,但要注意保持 frontmatter 格式正确,尤其是 source_files 字段。如果你手动修改了 raw/ 里的原始文件,记得重新 ingest 对应的 wiki 页面,或者跑一次 Lint 找出不一致的地方。
Q:这套方案和 NotebookLM 有什么区别?
NotebookLM 是黑盒,你不知道它怎么处理你的文档,数据在 Google 服务器上,无法自定义 agent 行为。这套方案完全本地化,wiki 文件是普通 Markdown,任何编辑器都能打开,你对整个处理流程有完全控制权。
## 快速上手 Checklist
Obsidian 版本
- [ ] 下载并安装 Obsidian
- [ ] 创建文件结构(git clone 模板或手动)
- [ ] 安装 Web Clipper 插件(Obsidian + 浏览器扩展)
- [ ] 安装 BRAT 插件,通过 BRAT 安装 Claudian
- [ ] 在 Claudian 里配置 API Key 和模型
- [ ] 往 raw/ 里扔几篇文章做测试
- [ ] 运行初始 Ingest,检查生成的 wiki 质量
- [ ] 提问测试:问一个你知道答案的问题,验证引用来源是否准确
本地文件夹版本
- [ ] 整理 raw/ 文件夹结构
- [ ] 复制 Claude.md,修改目录说明部分
- [ ] 安装 Claude Code(npm install -g @anthropic-ai/claude-code)
- [ ] 运行初始 Ingest
- [ ] (可选)配置 MCP filesystem server
这套系统真正的价值不在于"能找到文件",而在于知识会在使用中自动增值。每一次提问,都是一次知识的整理和沉淀。你的知识库会随着你一起成长,而不是成为一个只进不出的数字仓库。
如果你搭建过程中遇到问题,欢迎在评论区留言。
## 相关链接
- [Jing Wang](https://x.com/jingwangtalk)
- [@jingwangtalk](https://x.com/jingwangtalk)
- [1.3K](https://x.com/jingwangtalk/status/2044032365929083158/analytics)
- [https://open.substack.com/pub/zerofuturetech/p/your-second-brain-rebuilt-a-complete?r=5c8syw&utm_campaign=post&utm_medium=web&showWelcomeOnShare=true](https://open.substack.com/pub/zerofuturetech/p/your-second-brain-rebuilt-a-complete?r=5c8syw&utm_campaign=post&utm_medium=web&showWelcomeOnShare=true)
- [https://youtu.be/f5R-0DHRTQk](https://youtu.be/f5R-0DHRTQk)
- [下载 Obsidian](https://obsidian.md/)
- [https://github.com/jingw2/llm-wiki-template](https://github.com/jingw2/llm-wiki-template)
- [videotranscriber.com](https://videotranscriber.com/)
- [https://youtube.com/](https://youtube.com/)
- [@modelcontextprotocol/server-filesystem](https://x.com/@modelcontextprotocol/server-filesystem)
- [@anthropic](https://x.com/@anthropic)
- [Upgrade to Premium](https://x.com/i/premium_sign_up)
- [8:37 PM · Apr 14, 2026](https://x.com/jingwangtalk/status/2044032365929083158)
- [1,396 Views](https://x.com/jingwangtalk/status/2044032365929083158/analytics)
---
*导出时间: 2026/4/20 15:04:07*