🟡 进阶

用 Obsidian + AI 管理个人知识库:Karpathy 的 LLM Wiki 做法

它不是又一个"AI 读我的笔记"插件,而是一条分工:你只负责挑料、定规则、做判断;整理、建链接、写索引、找矛盾全部交给一个能读写你本地文件夹的 AI 代理。读完这篇,你能判断自己该不该上这套做法,并且照着命令把第一次"编译"跑通。

📅 更新于 2026-09-13

3 层
架构:raw / wiki / 规则文件
0 套
个人规模要自己运维的向量库
10–15 页
收录一份资料通常牵动的页数
40 分钟
从零到第一次跑通

0030 秒速览:三句话 + 按处境对号入座

读完这一篇,你能做三个判断:我这种规模的资料值不值得上这套做法;如果值得,第一步该敲哪几条命令;以及它在什么情况下会变成负担——那部分和第 04 节一样重要,很多人是被"看起来很美"骗进去的。

🔑 先记住三句话(后面都是细节)

① 整理一次,反复受益——知识要在"收进来的那一刻"被整理成成品(一篇篇按概念写的页面)并留下来,而不是每次提问都让 AI 从原始资料里重新翻一遍;② raw/ 是金库,wiki/ 是办公区——原始资料只增不改不删,成品随便改、改坏了能重建,重要结论回 raw/ 对一遍;③ 你写规则,AI 写笔记——越用越值钱的不是页数,是你那份不断变准的规则文件(06)。

按你现在的处境,直接看这一节

你现在的状态直接看为什么
笔记存了上千条,从没回头看过01 → 10你的问题正是它冲着的"死法一",先看 5 分钟能跑通的最小例子(10)
一直在用 ChatGPT 网页版总结文章02、04你要先分清"一次性加工"和"持续工程"的差别,再决定要不要换(02)
装过 embedding 检索类笔记插件,觉得不好用02、03这套做法刻意不用那类方案,原因和它的替代品都在这里(03)
只想赶紧动手,不想先读理论10 → 11跑通最小例子再回头看架构,理解会顺很多(10)
已经建了库,但 AI 产出不合心意06 → 17先改规则文件,再骂 AI;换模型是最后一步(06)
不确定自己该不该上这套04那一节整篇在说反面的情况,看完能省下几个周末(04)
还不会用终端和 AI 代理04 → 17先把前置能力补上,别双重学习负担(04)
想直接抄一份能用的规则文件06 → 18两份可直接保存的规则文件 + 目录树都在那里(06)

一条可执行的最短路径

1
先在试验田里跑通,不碰你的真笔记(约 5 分钟)

见 10。mkdir -p ~/Desktop/test-kb/raw → 丢两篇有交叉主题的短 Markdown → 在文件夹里启动 AI 代理 → 粘一段初始化指令。跑通标准是:Obsidian 图谱里有两个以上节点、节点之间有连线。

2
确认你选的是哪条"园丁",再决定规则文件叫什么(约 10 分钟)

Claude Code 读 CLAUDE.md,Codex 读 AGENTS.md(05)。这一步不是形式——规则文件的文件名写错,AI 进门就当没看见。

3
搬进真知识库,并做一次 git 快照(约 40 分钟)

见 11:建目录、装 Web Clipper、把剪藏位置指到 raw/、写第一版规则文件、git init 存一份底稿。

4
用真实的料跑一圈完整闭环(第 1 周)

收集 → 编译 → 提问 → 回流,见 13。第一周只收 5 篇,一次一篇,专门观察 AI 在哪里不听话,把它翻译成规则文件里的一句话。

5
加上每周一次的体检(第 2 周起)

见 14:一条口令让 AI 找出矛盾页、过时结论、孤儿页、缺词条,挑 1–2 条真重要的执行。别天天做。

📌 读完你应该能

用三五句话给朋友讲清"它到底是个什么东西、和让 AI 总结文章差在哪";独立判断自己的资料量够不够格上这套;照着命令把第一次"编译"跑通;遇到 AI 产出不对时,知道该去改规则文件而不是换模型。本文讲的是这套做法本身(怎么落地、什么时候别用),不是某个 AI 代理的安装教程。

01笔记的两大死法:它到底冲着什么问题来的

先说清问题,再谈方法。绝大多数个人笔记系统最后都死在同一个地方,只是症状不同。你需要先认领自己的症状,后面才知道哪一节是在治它。

死法一:只进不出,变成赛博囤积

"收藏夹 + 文件夹 + 打标签"这套模型,收的时候很爽,用的时候才发现:当初没分好类、命名乱七八糟、几千条根本搜不到。这里要说句公道话:问题不在你懒,而在整理的成本被人为留给了你——而分类、起名、找关联恰恰是 AI 最擅长的重复劳动。这套做法的第一个动作,就是让 AI 把"整理"这件脏活整个接过去:你只负责把原始材料丢进 raw/(03 会讲这个目录)。

死法二:每次提问都从零开始,没有积累

用过"AI 问答笔记"的人多半有同感:你问它一个问题,它现场把笔记切块、算相似度、拼一段答案给你;下次再问,它又"重新发现"一遍。Karpathy 在原始文档里点名批评的就是这种基于切块的检索方式,他的原话是:

📖 原话(Karpathy,个人知识库方法文档)

"the LLM is rediscovering knowledge from scratch on every question. There's no accumulation."

大意:大模型每次提问都从零"重新发现"知识,没有任何积累。奇怪的是,一个需要综合五份文档才能回答的细问题,它每次都得把那些碎片重新找出来拼一遍,什么都不沉淀下来。

❌ 解释器式用法:每次运行都要从头读一遍源码

你把文章丢进收藏夹,等要用的时候,AI 现场读一遍原文、现场理解一遍。它每次都在同一个起点重新盖楼,你昨天的结论、发现的矛盾,今天一点都用不上。

✅ 编译器式用法:编译一次,之后反复受益

新资料一进来,AI 就把它"编译"进一本已有的、按概念组织的页面集合里:新建该建的页、补该补的页、建好互相链接、刷新索引、在日志里记一笔。之后你提问,它读的是这份成品。

💡 类比的边界(说完正面也要说反面)

"编译器"这个类比到这里就不准了:编译器是很确定的——同一份源码编译两次,产物应该一样;而 AI 编译同一份资料两次,写出来的页面可能措辞不同、重点略有偏差。它不是精确的编译,更接近"一个每天都在维护百科的实习生"。所以这套做法必须配一条兜底:重要结论回原始资料核对(16)。

为什么"没有积累"是致命的

因为知识库的价值来自复利:你昨天读的资料、得出的结论、发现过的矛盾,今天应该能直接用上。若每次都是现场检索,你的笔记永远只是一堆待处理的原料,AI 的回答也从不沉淀——等于每天都在同一个起点重新盖楼。Karpathy 的对策是把整理成果固化成"wiki"(一本你自己的一人百科),让它持久存在、随新资料持续更新、还能被复查。他的另一句原话是:

📖 原话(Karpathy,个人知识库方法文档)

"the wiki is a persistent, compounding artifact. ... The cross-references are already there. The contradictions have already been flagged."

大意:wiki 是一件持久、会复利累积的产物——交叉引用早就建好了,矛盾也早就被标记出来了。注意"已经"两个字:这些活是在收录那一刻干的,不是在提问那一刻干的。

⚠️ 一个诚实的前提

这套做法的价值建立在"你会持续往知识库里喂资料、并且偶尔回来查看"之上。它解决的是"整理与复用"的累,不解决"输入"的懒。如果你连收集都不做,任何工具都救不了你——这也是 04 把它列为"可以再等等"的第一条理由。

02这套方法是什么(先破四个错想)

一句话版本

把 Obsidian(一个在本地文件夹上运行、用纯文本 Markdown 存笔记、支持双向链接的笔记软件,官方就叫它"第二大脑"那类东西)当作"壳",再配一个能读写你硬盘上文件的 AI 代理(能自己读文件、改文件、跑命令的 AI,比如 Claude Code 或 Codex),让 AI 把你收集来的原始资料整理成一本结构化、互相链接的个人 wiki。这一整套玩法最早由 Andrej Karpathy 在一份公开文档里提出来,社区管它叫「Karpathy 的 LLM Wiki」。

讲方法的人值得不值得听,值得先花两句话交代:Karpathy 是 OpenAI 的创始成员之一(2015)、前特斯拉 AI 总监(2017–2022,负责 Autopilot 的视觉部分),2024 年创办 AI 教育公司 Eureka Labs。比头衔更重要的是他的输出方式——他习惯把"我怎么用 AI 干活"直接公开成文档或代码让人抄,这篇讲的这套方法就是他公开文档里的一例(出处见 98 [1])。他还说过一句最能概括分工的话:"Obsidian is the IDE; the LLM is the programmer; the wiki is the codebase."(Obsidian 是写代码的软件,大模型是程序员,wiki 是代码库。)

先破掉四个错想

❌ 错想一:它又是一个"AI 笔记插件"

那种做法是每次提问前把你的笔记切碎、算相似度、捞几块喂给大模型。这套做法恰恰反对它:整理发生在收录那一刻,提问只是去读成品(03)。

✅ 实际上:干活的是终端里的 AI 代理,Obsidian 只是壳

Obsidian 负责"显示、点击、看图",不负责"想"。它的价值在于笔记就是本地纯文本,AI 能直接读写,不需要任何私有格式转换。

❌ 错想二:它是让我偷懒不思考

恰好相反。Karpathy 反复强调人的精力要花在"哪些资料值得收、资料之间什么关系、结论对不对"上——这些判断反而变得更重了。

✅ 实际上:外包的是"记账",不是"理解"

他解释这套为什么成立时说得很直白:维护知识库真正累的不是读和想,是记账——更新交叉引用、保持摘要不过时、标记新数据和旧结论的冲突。人会放弃 wiki,是因为维护负担长得比价值快;AI 不会烦、不会忘记更新一条引用,一次能碰 15 个文件。

❌ 错想三:它是 Obsidian 的官方功能

Obsidian 本身完全不知道"LLM Wiki"是什么,也没有这个开关。它是被当成"阅读与展示的壳"来用的。

✅ 实际上:它是一份"方法描述",不是一份软件

Karpathy 在文档结尾特意声明:"This document is intentionally abstract."(这份文档是刻意写得抽象的。)具体目录结构、页面格式、工具选择都取决于你的领域和偏好——他也明说里面提到的一切都是可选的、模块化的,用不上的直接忽略。

❌ 错想四:要装一堆 Obsidian AI 插件

市面上确实有几十个"AI + Obsidian"插件,但这套做法的"大脑"不在 Obsidian 里,装了也不会更像它。

✅ 实际上:一个插件都不装也能跑

全部依赖只有三样:Obsidian(看)、一个能读写文件夹的 AI 代理(干)、一份规则文件(管)。Karpathy 提到的两个插件(Dataview、Marp)明确是可选项,属于"会更好用",不是"必须装"(15)。

它和最近的近义词差在哪

最容易和它混淆的是 RAG(检索增强生成,Retrieval-Augmented Generation:提问时先从资料里"捞"相关片段,再交给大模型拼答案)。两者都用大模型、都基于你的文档,但整理的时机不同——这是全篇最值得记住的一条区分。

维度RAG(提问时检索)本做法(收录时编译)为什么这个差别重要
整理发生在什么时候提问那一刻,临时找相关片段收录那一刻,一次成型成本被挪到了"收进来"的时候,所以提问变便宜、也变稳
跨文章综合每次都要重新拼,结果可能不一样早已写进同一批页面的关系里你需要的是结论,不是每次重算一遍结论
矛盾处理往往被"和稀泥"式地混在一段话里显式标出「⚠️ 冲突」并互相链接知道"哪里还没定论"和知道"结论是什么"同样值钱
产物形态一段聊天记录,回答完就散一批留得住的 Markdown 文件文件能复查、能回退、能被别的工具再加工
需要的额外设施向量库、切块策略、相似度算法一个目录 + 一份规则文件个人规模下,少一层设施就少一类故障
最适用的规模海量文档(几千篇以上)个人几百篇以内规模一变,最优解会翻转——别把任何一方当万能药

Karpathy 点名不推荐在个人规模上用检索方案,理由拆开是三条:相似不等于相关——和问题字面最像的片段常常并不含答案,尤其是"比较 A 和 B""为什么"这类需要推理的问题;切块的边界是任意的——一个观点被拦腰切成两段,AI 读到的永远是不完整的碎片,容易一本正经地编;没有积累——索引不会因为你读得更多而变聪明。而 "wiki" 方案里这些整理都发生在收录那一刻,提问只是去读那份已经整理好的成品。

⚖️ 公平地说,反过来的边界也存在

这套做法到了几千上万篇、海量文档的规模就顶不住了:一份索引塞不进一次对话能看到的文字量(也就是上下文窗口,模型一次能同时"看到"的字数上限),届时带向量库的完整检索管线反而更必要。准确的说法是:个人知识库用 wiki 编译,海量资料库用检索管线。这也是 04 的一条硬边界。

03三层目录 + 四个文件:为什么个人规模可以不建向量库

三层架构:一切都是文件,规则写在说明书里

这套做法不依赖任何私有数据库。原始文档里的架构只有三层,用"谁动它"就能记住:

raw/
原始素材层
只增不改不删 · 你往里丢
→
wiki/
编译成品层
按概念一页 · AI 全权维护
→
规则文件
说明书
CLAUDE.md / AGENTS.md
层装什么谁动它为什么关键
raw/ 原始素材网页剪藏、PDF 转出的文本、截图、会议记录、别人的文章只有你:往里丢;AI 只读,不改、不删、不整理它是"唯一事实来源"——wiki 里每条结论都能回溯到这里某个文件,防止 AI 编了东西却没人发现
wiki/ 编译成品AI 写的词条页:一个概念一页(如"心流"一页、"番茄工作法"一页),带摘要、互相链接AI 全权:建页、改页、建链接、保持一致性这是你真正反复阅读和提问的对象。按"概念"而不是"来源"组织,才可能跨文章综合
规则文件(说明书)一份写规则的 Markdown:怎么收录、页面什么格式、冲突怎么办人起草,AI 照章执行,双方持续共同修改整套系统的"章程"。规则写得好,AI 才不是"很忙但没用"(06)
index.md 索引全库目录:每个页面一行,带链接 + 一句简介AI 每次收录/更新时刷新AI 提问前先读它导航;你扫一眼就知道全库有哪些概念
log.md 日志按时间追加的操作流水:哪天收录了什么、改了哪些页AI 每次操作后追加一行出问题时能回放"这个库是怎么长成现在这样的"
⚠️ 一个最容易晕的点:目录名不是原作者写死的

Karpathy 的文档只点名了两个文件——index.md 和 log.md——以及一份"说明书"。他明确说这份文档是刻意抽象的,具体目录结构取决于你的领域、偏好和所选的模型。raw/、wiki/ 这两个名字是社区把他这份想法落地成模板时的通用约定(参考 98 [4])。所以你学的是一套分工,目录名和措辞可以按你的习惯改——只要在规则文件里告诉 AI。这反而让这套做法很难过时。

"编译一次"到底指什么

想象你收了一篇文章进 raw/。老办法是:等你哪天要问 AI,它现读这篇。这套做法的办法是:新资料一进来,AI 立刻动手编译它一次——读出要点、和你讨论、和现有 wiki 对照、新建或更新相关词条、把词条互相链接好、刷新 index.md、在 log.md 记一笔。原文档里对"一次收录会牵动多少页"有个很直观的数字:

10–15 页单独一份资料通常牵动的 wiki 页面数(原文:A single source might touch 10-15 wiki pages.)
1 条/次原作者偏好的收料节奏:一次一条、全程参与

这个数字意味着:一份新资料不是孤零零被归档,而是要和已有的知识网充分"接线"。所以它也解释了为什么 AI 一次收录要花几分钟到十几分钟——社区那份最流行的落地模板给的实测经验是单篇 5 到 15 分钟(看出处 98 [4])。

为什么是"增量编译",而不是"每次全量重读"

资料不断进来、wiki 不断长大。收录时做的是定向更新:新页该建就建、旧页该补就补、索引该刷就刷,而不是每次都把全部笔记重新整理一遍。这样做有两个好处:省钱(只读新文件和相关旧页),以及避免"AI 顺手把你辛苦整理好的旧内容推翻重写"。规则文件里必须把这条写死,否则新手最常见的翻车就是"每次收录都重读全库,又贵又慢"(17)。

为什么个人规模可以不建向量库:一份索引就够了

很多人的第一反应是"不做检索,AI 怎么找得到我要的东西?"。答案在规模与导航方式:AI 提问时先整份读 index.md(一本很薄的目录),再顺着指向去读具体页面。个人规模下(原文档给的经验值是约 100 份来源、几百个页面),这份索引能整份放进模型的上下文窗口(模型一次能同时"看到"的文字量上限),于是 AI 相当于拿到一张"书的地图",不用在一大堆原文里大海捞针。原话是 "the LLM reads the index first to find relevant pages, then drills into them."(先读索引找到相关页面,再深入其中。)

📖 说人话版本

你不需要理解"上下文窗口"的底层原理,只要记住这个画面:AI 每次进库先翻开 index.md 这本目录,指着目录去书架(wiki/)取书,而不是把整个图书馆(raw/)的书都搬出来翻。你的 wiki 就是那本被整理好的书。

这也是"编译一次、反复受益"的另一个侧面:真正的检索负担,在收录那一刻就被提前消化掉了——哪些概念该放一起、谁该链谁,都在写页面时解决了。等到你真的涨到几千上万篇、一份索引塞不进上下文窗口时,才需要认真考虑检索方案(15 给了那时的升级路线)。

可能撞见的名词,先混个脸熟

你在英文讨论里会高频碰到下面这几个词。知道它们指什么即可,不需要会实现——更不需要在这套做法里用到它们。

名词大白话这套做法对它的态度
context window(上下文窗口)AI 一次能"同时看到"的文字量,像它的工作台面个人规模下整份索引 + 几个相关页能放上台面,这是"不用检索"的前提
embedding(向量)把文字转成一串数字,让机器算"谁和谁语义像"刻意不用它——用了就要维护一套向量库这类额外设施
chunk / 切块把长文切成小块再喂给 AI 的做法被点名批评:切点常常正好切在观点中间,容易让 AI 拼出幻觉
retrieval(检索)提问时先从资料里"捞"相关片段这套做法的"检索"发生在收录时(写成页面),不在提问时
agent(代理)能自己一步步干活(读文件、改文件、跑命令)的 AI这套做法的"园丁"就是它,普通聊天机器人当不了(05)
RAG(检索增强生成)上面 embedding + 切块 + 检索这一整套的合称本做法刻意反其道而行(02 有逐条对比)

顺带说清一个近亲:Zettelkasten(卡片盒笔记法)。它的理念和这套做法同源——都是"一张卡片一个概念、卡片之间互相链接"——但分工不同:卡片盒笔记法要求人亲手写永久笔记、亲手建链接,思考质量高,但很累;这套做法把"写页面与建链接"外包给 AI,人退到"选料、定规则、判断"的位置。想两者结合也行:重要概念你自己也写一版放进 wiki/,让 AI 的版本和你的版本互相链接、互相校验。

04什么时候不该这么做(整篇都在说反面)

这一节的存在理由很简单:这套做法的门槛不在命令,而在它需要你持续投入。下面这些情况,做了不如不做——不是因为它不好,而是因为你的处境用不上它。

六种"现在别碰"的处境

你的处境别用它做什么 / 该用什么替代为什么
一年新增资料不到几十篇先用 Obsidian 自带的全文搜索料太少,收益还盖不住"搭一套系统 + 持续喂料"的成本;杀鸡不必用牛刀
只想要"快速检索我记没记过 X"Obsidian 全文搜索(Mac 上默认 Cmd + Shift + F)这类问题要的是命中,不是综合;让 AI 走一遍收录流程纯属绕远路
完全不碰终端、也没用过任何 AI 代理先花一天装好一个代理、跑通一次别在这套做法里第一次学代理——那是双重学习负担,容易中途劝退(17)
团队协作、要权限和多人同时编辑正式的团队知识库方案这套是给个人规模设计的:纯文件、无权限模型、无并发控制(16)
资料是百万级文档、要做企业检索带向量库的完整检索管线一份索引塞不进上下文窗口之后,"先读索引"这条路就断了
资料高度敏感、不允许出本机本地模型,或干脆先别上这套云端模型的默认使用方式要求你先把资料交给它——这是前提不是缺陷

三种"别对 AI 用"的动作

即使你已经上了这套做法,也有三类活不该丢给它。这条边界值得贴在墙上:

✅ 交给 AI 代理

新料入库、页面增改、建索引;跨概念综合、找矛盾、定期体检;把一轮讨论整理成专题页或文档。

🙅 别用它,自己来

纯检索"我记没记过 X"(全文搜索更快);临时翻一条原文(直接去 raw/ 看);价值判断与最终结论——那是"人"的活。

三个最容易劝退新手的误区

❌ 一上来就追求"架构完美"

花一个周末设计目录分类、命名规范、标签体系,结果一条料都没收——这是把"整理焦虑"换了个地方发作。

✅ 先用试验田跑通,规则边用边加

先用 10 的最小例子确认"AI 能在我文件夹里维护 wiki"这件事成立,之后每遇到一次不满意就加一条规则(06)。

❌ 以为要装一堆 Obsidian 插件

在插件市场里挑 AI 插件挑一晚上,越想越复杂,最后放弃。

✅ 一个插件都不装也能跑

干活的是终端里那个 AI 代理;Obsidian 只负责显示。Karpathy 提到的 Dataview / Marp 都是可选项(15)。

❌ 把 wiki 当"真理数据库"

wiki 里的每句话都是 AI 重写的"蒸馏",日子久了可能和原始出处渐行渐远;一份写错的摘要会被后面的人(包括你)当权威记录引用。

✅ 把 wiki 当"待考证的索引"

真正的来源是 raw/,最高裁判是你自己。凡是拿去写文章、做决定的结论,回原始资料核对一遍。

🚫 一条硬边界:别拿它做团队方案

这套是为"个人规模"设计的:没有权限模型、没有并发编辑、没有审查流。资料量到几千上万篇、或者需要多人同时维护时,请换带权限与向量库的正式方案。用它硬撑的结果通常是:文件冲突、AI 改掉别人的页、以及谁都说不清哪页是对的。

05四个角色:谁装什么、谁不装

很多人问"那我要不要装一堆插件?"——不用。这套玩法的精髓是各司其职、尽量少而薄:四样东西,每样只干一件活。

🗂️
Obsidian —— 壳 / 阅读器
把笔记显示成页面、画知识图谱、做全文搜索。它只负责"看"和"写",不负责"想"。免费、本地优先。
📥
Obsidian Web Clipper —— 进料口
浏览器扩展,一键把网页剪成干净的 Markdown 存进 raw/。它是你往知识库喂资料的传送带。
🤖
AI 编程代理 —— 园丁
Claude Code、Codex 这类能读写你文件夹的代理。整理、建链接、写索引、找矛盾都归它。核心劳动力。
📜
规则文件 —— 章程
一份很薄的 Markdown,告诉 AI"我们这个 wiki 怎么组织"。它决定了整个知识库的架构。

为什么偏偏是 Obsidian

因为它天生符合这套做法的三个需求,几乎像为它设计的:① 笔记就是本地文件夹里的纯文本 Markdown——AI 代理能直接读写,不需要任何私有格式转换;② 原生支持 [[双向链接]] 和反查面板——页面之间的链接它能直接显示、点击、跳转;③ 免费且本地优先——私人笔记不上别人的服务器。Karpathy 自己也在这套做法里点名用了它的 Web Clipper 和图谱视图。

💡 一定要用 Obsidian 吗

不必须,但它是现成最优解。任何"本地 Markdown + 能显示 [[链接]] + 有反查"的编辑器都行——Obsidian 只是把这几件事做成了开箱即用。真正不可替代的是"AI 能读写你本地文件夹"这一条,那是 AI 代理的活,不是编辑器的活。

为什么不能就用 ChatGPT 网页版

很多人第一反应是"我用 ChatGPT 网页版帮我整理笔记行不行"。可以,但很别扭,因为它读不到你硬盘上的文件夹:你得手动上传文件,它也没法在你本地持续维护几百个文件、保持链接和索引一致。而 Claude Code / Codex 这类能读写你电脑文件夹的代理,天然就是"园丁"——你告诉它在哪个目录干活,它就能建文件、改文件、跑命令(默认需要你点头同意)。这正是"Obsidian 是壳、代理是程序员"能成立的前提。

两个主流的"园丁"怎么选

代理规则文件叫什么上手入口什么时候选它
Claude Code(Anthropic 官方)CLAUDE.md装好后在库文件夹里敲 claude中文资料与教程多;想按目录授权、想用官方插件体系时
Codex(OpenAI 官方,终端版)AGENTS.md装好后在库文件夹里敲 codex已经在用 OpenAI 生态、或公司统一用 Codex 时
其他能读写本地文件的代理(如 OpenCode)看它自己的约定同上:先 cd 进库文件夹再启动你已经在用别的代理,没必要为了这套再装一个

Karpathy 的原文正是拿 Codex 和 Claude Code 举例。选哪个都行,但选了哪个,规则文件就起对应的名字——这是新手第一个静默翻车点:文件名叫错,AI 进门就当没看见(17)。

一个必须理解的机制:代理的"授权"

这类代理在修改你电脑上的文件之前,默认都会先征求你的同意:它想新建 wiki/心流.md 或改动 index.md 时,会列出要做的事,让你选允许 / 拒绝 / 本次全部允许。这意味着它没法在你眼皮底下偷偷删掉你的笔记。等你信任它了,可以在初始化时把库文件夹设为"允许自动执行",但建议至少前两周每次看它一眼,尤其盯着它有没有碰 raw/。

💡 权限的最小可用原则

如果代理支持按目录授权,只给它这个库文件夹的权限就够了,别给它整个用户目录——把"事故半径"缩小到知识库内,就算 AI 闯祸也翻不了天。具体授权界面随工具不同,卡住时问你的代理或查它的官方文档。

06规则文件:整套系统唯一的杠杆

同样一套 Obsidian + AI 代理,不同人用出来的效果差很多,差别几乎全在这份文件上。Karpathy 的原文对它有一句定位:"This is the key configuration file — it's what makes the LLM a disciplined wiki maintainer rather than a generic chatbot."(这是关键的配置文件——正是它让大模型成为一个有纪律的 wiki 维护者,而不是一个通用聊天机器人。)而且他和 AI 是共同演化这份文件的:边用边加,不是一次写完。

一份可以直接起步的规则文件

很多人卡在"规则文件到底写多细"。不必一步到位——先写能约束住 AI 不闯祸的那几条,之后边用边补。下面这份是中文读者能直接保存使用的最小版本(存成 CLAUDE.md 或 AGENTS.md,放在库根目录):

# 我的 LLM Wiki 工作章程 你是这个知识库的园丁。库结构: - raw/  原始素材。你只读、不改、不删、不整理 = 唯一事实来源。 - wiki/ 成品。每个「概念」一个 .md 文件;不按来源分。 - index.md 全库目录:每页一行「[[链接]] + 一句简介」。 - log.md   操作流水:每次改动后追加一行(日期 | 动作 | 改了哪些页)。

硬性规则: 1. 绝不修改或删除 raw/ 里的任何内容。 2. wiki 每页页首写 2-3 句摘要,正文用 [[ ]] 链接相关页; 同一概念只允许存在一页,发现重复就合并而非另起一页。 3. 来源说法冲突时,不得擅自取舍:在页面标「⚠️ 冲突」,log 里记录,并向用户提问。 4. 收录新源时做增量更新:只建新页 / 补相关旧页 / 刷 index / 记 log,禁止重写全库。 5. 每页尽量记录它依据的 raw 来源文件名,方便回溯。

欢迎你根据我的反馈持续改进本文件——规则由人机共同演化。

这份文件为什么"再薄也有用":逐条拆给你看

规则它挡住的失败没有它会怎样
raw/ 只读、不改、不删、不整理AI"顺手帮你整理"原始资料唯一事实来源被改写,以后无法回溯"AI 到底基于什么写的"
一概念一页,重复就合并同一概念散落在多页,越用越乱出现"深度工作"在 A 页讲一半、B 页讲一半,提问时它只读到一半
页首 2–3 句摘要页面退化成原文复制粘贴wiki 变成第二个 raw/,你还是得自己读全文
冲突标 ⚠️ 并提问,不得擅自取舍AI 悄悄选了一边,你以为是定论知识库里留下没有依据的"结论",且你不知道它从哪来
增量更新、禁止重写全库每次收录都重读全库,又贵又慢花费上去、速度下来,还可能把整理好的旧页推翻重写
每页记来源文件名结论与原始资料脱钩想核对时不知道回哪个文件看,等于放弃了"可审计"这个最大优势

规则文件里该写什么、不该写什么

该写进去(长期有效)别写进去(会过期或噪音)判据
库结构、命名约定、页面格式要求"今天先处理 2026-09-13 剪的那篇"一次性的指令放对话框里,别写进章程
禁区(raw/ 只读)与冲突处理规则某篇具体文章的结论或细节章程管"怎么干",不管"内容是什么"
增量更新、索引维护、日志格式大段背景介绍、你的个人简历问自己"这条能约束 AI 的哪个动作"
被你反复纠正过的那个毛病模型的参数、版本号跟库有关才写;跟无关的技术细节别塞
⚠️ 别一上来就追求"完美规则"

你今天写的版本一定不完美,没关系。用上两周,每次 AI 产出不对,就去规则文件里加一条——这比在对话框里反复啰嗦叮嘱它更省心、也更稳定。你的主要编辑工作,会慢慢从"写笔记"变成"写规则"。社区和原作者都用"共同演化"形容这个过程:规则是长出来的,不是设计出来的。

把"骂 AI"变成"改规则":三个真实转化

"它又把 raw/ 里的原文改了!"
→ 规则第一条本来就是"raw/ 只读",再加一句"每次会话开始先确认 raw/ 未被改动,若改了就还原并报告"。改完重跑一次验证,而不是这次口头说一句就算了。
"它给同一篇文章建了两个页。"
→ 加一句"页面按概念命名,不按来源命名;发现同概念已有页面时必须合并,并在 log 里记明合并了哪些页"。
"页首摘要越写越长,一页像一篇论文。"
→ 加量化约束"页首摘要不超过 3 句;正文只保留对概念有长期价值的观点,琐碎细节丢弃"。

10最小例子:5 分钟跑通第一次"编译"

先别急着理解全部理论。下面用一个空文件夹把整条流水线走一遍,让你亲眼看到"AI 把我的两篇原始资料编译成了互相链接的 wiki 页面"。前提:你电脑上已经装好一种能读写文件夹的 AI 代理(Claude Code 或 Codex);没装的话先跳到 11 装好再回来。

1
造一个空"试验田"

在终端里新建一个空文件夹,并放入两篇很短的"原始文章"。你可以直接复制下面的命令:

# 建试验田(Mac 终端,一行一条) mkdir -p ~/Desktop/test-kb/raw cd ~/Desktop/test-kb
2
在 raw/ 里放两篇"有交叉"的短资料

随便起名(如 raw/pomodoro.md、raw/flow.md),内容类似这样即可——重点是两个概念有交叉,好让 AI 建链接:

# raw/pomodoro.md 的内容 番茄工作法:把时间切成 25 分钟专注 + 5 分钟休息的小块。 发明人是 Francesco Cirillo(1980 年代末,用厨房计时器)。 好处是降低"开始做事的门槛",对抗拖延。 很多研究说 25/5 只是经验值,可按个人节奏调。 有评论认为它和"心流"有冲突:打断可能破坏深度专注。
# raw/flow.md 的内容 心流(Flow):完全沉浸在活动中、忘记时间流逝的状态。 由心理学家 Mihaly Csikszentmihalyi 提出。 进入心流需要"挑战难度≈个人技能水平",且不被频繁打断。 和番茄钟的关系:外部打断(闹钟)可能是心流的敌人, 但番茄钟的固定节奏又帮一些人进入状态。两种观点都有人支持。
3
在文件夹里叫醒你的 AI 代理

关键前提:先 cd 进这个文件夹再启动,否则代理看不到你的库。

# 确保你 cd 到了 ~/Desktop/test-kb 再执行 claude    # 装的是 Claude Code 就敲 claude;装的是 Codex 就敲 codex
4
粘贴这段"初始化指令"

把下面整段文字粘进对话框。这就是给 AI 的一次性"任命书"——原文档建议把抽象描述直接交给代理、由它落地成 CLAUDE.md,而不是你手抄一份:

请把这个文件夹变成一个「Karpathy 式 LLM Wiki」知识库。

规则(写进 CLAUDE.md,后续每次会话自动生效): 1. raw/ 里是原始素材,我只读不改、永不删除,是唯一事实来源。 2. wiki/ 是成品库:一个概念一个 .md 文件,页首要有 2-3 句摘要, 用 [[双向链接]] 连到相关概念,维护 index.md 作为全库目录(每页一行+一句简介)。 3. 每次处理完新资料,在 log.md 末尾追加一行:日期 + 处理了哪个源 + 改了哪些页。 4. 遇到两处资料说法冲突,不要擅自二选一,在相关页面标「⚠️ 冲突」并在 log 里记录。

现在执行: - 读 raw/ 下两个文件; - 在 wiki/ 里为「番茄工作法」「心流」各建一页,把两者关系写清楚并互相链接; - 生成 index.md; - 在 log.md 记录这次初始化。
5
观察它"编译"

代理会依次建出 CLAUDE.md、wiki/番茄工作法.md、wiki/心流.md、index.md、log.md。如果它在哪一步要改动文件或跑命令,会问你是否允许——选允许即可(这个文件夹是试验田,随便造)。

6
用 Obsidian 打开"验收"

这才是最有成就感的一步:

  • 打开 Obsidian → "Open folder as vault"(打开文件夹作为库)→ 选 ~/Desktop/test-kb。
  • 左边栏看到 wiki/番茄工作法 页,正文里 [[心流]] 是蓝色可点击链接。
  • 按 Cmd + G 打开图谱视图(把所有页面和链接画成一张网的那个界面),你会看到两个节点被一条线连起来——这就是 AI 替你建的连接,而你自己一个字都没写。
  • 在番茄工作法那页点开右侧"Backlinks(反链)"(谁提到了这一页),Obsidian 会自动列出 心流。
✅ 验证成功 / 失败的判断标准

成功:Obsidian 图谱里有两个以上的点、点之间有连线;index.md 列出全库;log.md 有记录。
常见小插曲:代理把 raw/ 里的文件也"顺手整理"了——违反"raw 只增不改"。此时你应当纠正它"raw 不许改",然后看它是否重来。这恰好演示了规则文件的价值(06)。

编译后 wiki 里会长出什么样的页面

这是两个页面的示意(在 Obsidian 里就是这样的 Markdown 文件,链接都显示为蓝色可点击):

# wiki/番茄工作法.md(AI 生成,示意)

番茄工作法是把时间切成「25 分钟专注 + 5 分钟休息」小块的 时间管理技巧,用于降低开始做事的门槛、对抗拖延。

## 关键事实 - 发明者:Francesco Cirillo(1980 年代末,用厨房计时器)[raw/番茄工作法来源.md] - 25/5 是经验值,可随个人节奏调整

## 相关争议 - 与 [[心流]] 的关系存在两种观点:打断可能破坏深度专注; 也有人认为固定节奏反而帮助进入状态。[raw/番茄工作法来源.md · raw/心流来源.md] ⚠️ 冲突:上述两种说法尚无权威定论,见 log 2026-09-13。

## 反链(Obsidian 自动维护) 被 [[心流]]、[[我的专注方法论]] 引用
# index.md(AI 维护的目录,示意) ## 概念 - [[番茄工作法]] —— 时间切成小块来对抗拖延;与心流的关系存疑 - [[心流]] —— 沉浸状态;需挑战≈技能且少被打断 - [[我的专注方法论]] —— 我自己的选择与试用体验(人写的) (log.md:按时间记录每次收录与改动)

注意其中三处设计:页面按概念而非按文章建、摘要下有来源回溯(指向 raw/ 的文件名)、冲突被显式标出而不是被 AI 悄悄抹平。看懂这三处,你就读懂了整篇方法。

跑完对一遍:四行验收自检

⭐ 换一批你自己的资料再跑一次(强烈建议)

为了确认你理解了方法而不是只背会了步骤,把"番茄/心流"换成你真正关心的领域再跑一遍:正在追的某个行业的两篇报道;同一件事的两篇观点相反的文章;你自己工作里的一段经验记录 + 一篇相关教程。
重点观察:AI 是否把不同文章里的共同概念归到了同一页、并用链接表达了"这两篇在争什么"。做到这一步,你就掌握了"按概念不按来源"的精髓。

11从零搭建到真知识库(40 分钟版)

把试验田换成"正式库",只多两件事:选好文件夹、写好更完整的规则文件。下面是能走完的完整清单,每一步都给足可以直接照做的命令。

1
装 Obsidian(免费,约 5 分钟)

到官网 obsidian.md 下载并安装(Apple Silicon 的 Mac 选 Apple Silicon 版)。个人使用免费、不限条数。打开后先别急着建库,等第 2 步把文件夹建好再说。

2
新建一个专门的库文件夹(约 3 分钟)

知识库别和你别的笔记混在一起。在终端里创建并预置目录结构:

mkdir -p ~/Documents/knowledge-base/{raw,wiki} cd ~/Documents/knowledge-base

然后在 Obsidian 里点 "Open folder as vault",选 ~/Documents/knowledge-base。Obsidian 会把整个文件夹当成一个"库"(vault,就是它管理的一个文件夹),你之后看到的页面就是这里的 Markdown 文件。

📌 目录名可以改

raw/ 和 wiki/ 是社区通用的落地约定,不是原文档写死的。你用别的名字(sources/、notes/ 之类)完全没问题,只要在规则文件里告诉 AI 就行。

3
装 Obsidian Web Clipper(约 5 分钟)

在你的浏览器(Chrome / Edge / Safari 等)装 Obsidian 官方出品的 Web Clipper 扩展。装好后点扩展图标 → 设置保存目标库为你刚建的库 → 把默认保存文件夹从它默认的 clippings 改成 raw。这样你在网上看到好文章,一键就剪成干净的 Markdown 落到 raw/。

4
装一种 AI 编程代理(约 10 分钟)

任选其一(它们都能读写本地文件夹,这是本做法的前提,选型见 05):Claude Code(规则文件 CLAUDE.md)或 Codex CLI(规则文件 AGENTS.md)。

5
在库文件夹里初始化(约 10 分钟)

先 cd 进库文件夹再启动代理,让它"就任园丁":

cd ~/Documents/knowledge-base claude    # 或 codex

然后粘贴 10 第 4 步那段初始化指令。初始化完成后,库根目录下会有一个规则文件(CLAUDE.md 或 AGENTS.md),它是你日后唯一要用心维护的"章程"(06)。

6
做一次 Git 快照(可选但强烈建议,约 3 分钟)

原文档里有一句话点破了这件事的隐藏红利:"The wiki is just a git repo of markdown files."(wiki 说白了就是一个装 Markdown 的 git 仓库。)给它上个版本控制,"AI 改坏了能一键回退"就有了兜底:

cd ~/Documents/knowledge-base git init git add . git commit -m "init knowledge base"
7
收第一条料,跑通全流程(约 4 分钟)

用 Web Clipper 剪一篇你真正想学的文章进 raw/ → 回到代理对话框,说一句"收录 raw/ 里新增的那篇,编译进 wiki"。看它建页、补链、刷索引、记日志。从今往后,你的日常就都是这套动作了(13)。

你最终会跑出这样一个目录

knowledge-base/              ← 你在 Obsidian 里打开的库(vault) ├── CLAUDE.md                ← 规则说明书(用 Codex 则叫 AGENTS.md) ├── index.md                 ← wiki 全库目录:每页一行 + 一句简介 ├── log.md                   ← 操作流水:日期 | 动作 | 改了哪些页 ├── raw/                     ← 原始素材(只增不改不删)——Web Clipper 剪进来的地方 │   ├── 2026-09-13-某文章.md │   └── ... └── wiki/                    ← AI 编译的成品(一个概念一个文件) ├── 番茄工作法.md ├── 心流.md └── ...

初始化时最常见的卡点

现象原因解法
AI 说"我看不到这个文件夹"代理不是在库文件夹里启动的,或没被授权先 cd ~/Documents/knowledge-base 再启动代理;授权提示选允许
剪藏总是进 clippings/Web Clipper 的保存目标没改在扩展设置里把保存位置改成你的 raw/ 文件夹
代理把 raw/ 里的原文也改了规则文件没写死"raw 只读"在规则文件第一条写死"raw/ 只增不改不删",重跑一次验证
每次收录都重读全库,又贵又慢没告诉它做增量更新规则里写明"只处理新文件,禁止重写全库"
wiki 页面像原文的复制粘贴缺少"按概念、带摘要、别照抄"的约束规则里写明页面格式与"一概念一页、重复即合并"
它擅自判断两篇资料谁对没规定"冲突要问人"规则里写明"冲突不得擅自取舍,标 ⚠️ 并提问"

12Obsidian 侧只需掌握三件事

Obsidian 的插件有几千个,但你在这套做法里只需要三件基础能力,其余都是锦上添花。

① 双向链接:知识网的"缝线"

在笔记里输入两个左方括号 [[,Obsidian 会弹出可链接的笔记列表,选中即生成链接。链接是双向的:你在一页里写了 [[心流]],打开"心流"那页时,右侧 Backlinks(反链,"谁提到了我")面板会自动列出"番茄工作法 提到过我"及其上下文——你永远不用手动维护"谁引用了我"。这套做法是让 AI 来织这张网,Obsidian 负责把网显示出来。

# 在 wiki/番茄工作法.md 里写: 有评论认为它和 [[心流]] 冲突:打断可能破坏深度专注。

# 保存后打开 wiki/心流.md,右侧反链面板会出现「番茄工作法」这一条。

② 图谱视图:把"连接"画成一张网

快捷键 Cmd + G 打开。每个文件是一个点,链接是线。日常两个用法:

看什么怎么操作它在告诉你什么
看全局:有没有"孤岛"打开图谱视图整体扫一遍没和任何点相连的孤点 = 没接线的笔记,往往是该补链接的信号,或是该归档的临时物
看局部:这个概念和谁近对某页按 Cmd + 点击 链接,或右键 → Open local graph点太多太密的区域,往往是该拆分概念的信号
⚠️ 图谱是导航与诊断工具,不是目标本身

别为了"图谱好看"硬造链接。链接的价值在于"提问时 AI 能顺着它读到你需要的页",不在于画出来的图漂亮。

一个值得养成的习惯:每周随便点开图谱里的几个孤点。孤点通常提示两种信号之一——它该被链接进某个概念,或者它其实是该归档的临时物。这两个判断正是"人"的活,AI 替不了。

③ 附件本地化:别让笔记里的图变成叉

网页剪成 Markdown 时,图片默认还是指向原网站的地址;等那个网页删了图、或者加了防盗链,你笔记里的图就全变成叉。原文档给的做法很具体,值得照做:

1
把附件目录固定下来

Obsidian 设置 → Files and links(文件与链接)→ 把 "Attachment folder path"(附件文件夹路径)设成一个固定目录,例如 raw/assets/。

2
给"下载附件"绑一个快捷键

设置 → Hotkeys(快捷键)→ 搜索 "Download",找到 "Download attachments for current file"(下载当前文件的附件)→ 绑一个顺手的组合键,例如 Ctrl + Shift + D。

3
剪完一篇文章就按一下

剪藏完成后按那个快捷键,文章里的图片就会全部下载到本地磁盘。这一步是可选的,但它让 AI 能直接"看"这些图,而不是依赖随时可能失效的外链。

📌 一个诚实的技术限制

大模型没法在一轮里同时读"带内嵌图片的 Markdown"和那些图片。原文档给的绕过办法是:先让它读文本,再单独让它看其中一部分被引用的图片,用来补额外上下文。有点笨,但够用。

给 wiki 的文件命名与"库卫生"三条

约束怎么做为什么
文件名就是概念名wiki/番茄工作法.md、wiki/心流.md,而不是 wiki/2026-09-13 那篇讲专注的文章.md概念名稳定,链接才稳定——改名会让指向它的链接断掉
一处一义,别建重复页同一概念只留一页;发现"深度工作"既在 A 页又在 B 页提,让 AI 合并到一页、其余页面链过去重复页会让 AI 提问时只读到一半,也让你的库越用越乱
raw/ 里按时间堆就行原始资料文件名带日期即可,例如 2026-09-13-某文章.md分类和整理是 wiki 层的事;在 raw/ 里整理等于破坏"唯一事实来源"
💡 两个可选的社区插件(先别装)

Karpathy 的文档里点名过两个:Dataview(把笔记当数据库查,比如"列出所有可信度大于 0.8 的页面")和 Marp(把 wiki 内容直接导出成幻灯片)。它们都属于"会更好用",不是"必须装"——先把基础跑顺再说。

13日常闭环:收集→编译→提问→回流

知识库建好之后,你的日常只剩四种动作,循环往复。原作者在文档里坦承了自己的习惯:"Personally I prefer to ingest sources one at a time and stay involved."(我个人偏好一次只处理一条来源、并全程参与。)

① 收集
Web Clipper 剪进 raw/
零整理地囤
→
② 编译
让 AI 收录
一条一条来
→
③ 提问
先看索引
再顺着链接读页
→
④ 回流
好答案沉淀
成新的 wiki 页

① 收集:零整理地囤"原料"

看到好内容(网页、PDF 论文、别人的仓库、会议记录)→ 只管剪进 raw/。不要当场分类、改名、写感想——这些正是要外包给 AI 的活,也是 raw 层存在的意义:它替你挡住"整理焦虑",让你放心囤。

② 编译:一句话触发增量更新

回到代理对话框,说一句人话即可:

收录 raw/ 里我新剪的那篇(2026-09-13 剪藏),编译进 wiki。 先告诉我你打算新建或更新哪几页,动手前让我确认。
💡 为什么最后一句很重要

一次收录可能牵动 10–15 个页面。让 AI 先报方案、你点头再动手,能防止它"自作主张大改"。等你们默契了,可以把这句简化为固定流程写进规则文件。

还有一条容易被忽略但很关键的做法:原文档描述的收录不是"AI 自己闷头处理",而是 "the LLM reads the source, discusses key takeaways with you, then writes a summary page ..."(先读原始资料,跟你讨论关键要点,再写摘要页)。这背后是个使用原则:"外包整理"不等于"外包理解"。让 AI 先给你一段"我读到这些要点、打算这么收进 wiki",你扫一眼、纠一句,往往比全自动更省心也更准。

③ 提问:它先看索引、再顺着链接"读书"

这是整套做法体验质变的一刻:AI 不再临时翻一堆原始文章,而是去读那本已经被它整理好、互相链接的 wiki:

基于我的 wiki 综合回答:我的笔记里关于「专注」的所有观点, 把相互矛盾的地方列出来,并指出哪些论点依据的原始资料最可信。

④ 回流:好答案别浪费,存回 wiki

原文档里有一个常被忽略但很关键的习惯:有价值的回答要能被"存档"回 wiki,变成新的页面。你的探索成果、专题总结、一段深思,都值得参与后续的引用网络——这正是"知识复利"真正发生的地方:"good answers can be filed back into the wiki as new pages."

把刚才这轮讨论整理成 wiki 里的一页新专题「我的专注方法论」, 链接到番茄工作法与心流两页,并在 log 记录。

把闭环"演"一遍:一个真实的小例子

周一 · 收集

你想搞懂"AI 编码代理到底怎么选",看到两篇对比 Claude Code 与 Codex 的文章 → Web Clipper 各剪一篇进 raw/,不改名、不分类。

周二 · 编译(约 2 分钟对话)

对代理说"收录 raw/ 里那两篇,建「AI 编码代理选型」专题页"。它建页、把两篇各自的结论和分歧写清、互相链接、更新 index.md、在 log.md 记一笔。

周三 · 提问

"基于我的 wiki,我(描述你的情况)该先学哪个?列出两派观点和分歧点。"它先读索引 → 再钻进选型页 → 给你一份带依据的建议。

周四 · 回流

你决定了用哪个、试了两天有了体会 → 让代理把"我的选择与试用体验"追加进选型页。自此,这个判断就成了你 wiki 的一部分;下次别人问你理由,你直接指给它看。

不同形态的料,AI 各该"怎么编译"

不是所有进料都长一个样。给 AI 一句"它是什么形态",它能处理得更好:

进料形态AI 该做的事最常见的翻车点
网页文章提炼观点与论据 → 归到相关概念页;有价值的原文观点引用进页面整篇照抄进一页,造成"一篇原文一页",破坏按概念组织
PDF 论文 / 长文档先建"摘要页",关键方法与结论拆进对应概念页;标注可信度(论文通常高于博客)一次要读的长度超过上下文窗口,AI 偷懒只读开头
播客 / 视频转录先清洗转录噪音,再抽"这个人讲了哪几个核心观点"把口语废话也当知识点收进去
GitHub 仓库 / 代码提取"它解决什么问题、架构怎么设计",而不是把代码抄进 wikiwiki 变成代码转储,既占地方又难检索
💡 一条通用指令尾巴

无论喂什么,都在末尾补一句:"只保留对概念有长期价值的观点,丢弃琐碎细节;不确定取舍时先问我。" 这句话能挡住一大半"垃圾进库"。

⚠️ 别把"提问"当搜索引擎高频轰炸

这套做法的回报在于积累。如果只剪不收、只问不回(回答不回流),wiki 不会长大,体验也会退化回"每次现读"。养成两个小习惯:一次收一条并及时编译、有价值的回答随手回流。

14定期体检(lint):让 wiki 自己抓自己的矛盾

wiki 用久了会积累"亚健康":两页说法打架、某篇结论其实已被新资料推翻、有概念提到却没专门页、孤儿页没人链接。原文档把这件周期性检查称为 lint(字面是"代码检查",这里指全库体检),并列出了要查的东西:

📖 原话(Karpathy,个人知识库方法文档)

"contradictions between pages, stale claims that newer sources have superseded, orphan pages, missing cross-references."

大意:页面之间的矛盾、已被新资料取代的过时结论、孤儿页(没被任何页链接的页)、缺失的交叉引用。原文档还加了两项:重要概念提到了却没有自己的页、以及可以用一次联网搜索补上的数据缺口。

一句口令触发体检(建议每 1–2 周一次)

对我的 wiki 做一次 lint 体检: 1. 找出互相矛盾的页面,逐条说明冲突点; 2. 找出"已有新资料支持、但旧页面结论还没更新"的过时说法; 3. 找出没被任何页面链接的孤儿页; 4. 找出资料里反复出现、却还没有专门词条的概念。 每一项给出处理建议,动手改之前先列给我确认。

一次典型的体检报告长什么样

注意它把"问题"翻译成了"下一步动作"——这才是体检报告有用的地方:

## lint 报告(2026-09-13) 1. 冲突:wiki/番茄工作法.md 说"打断破坏心流",wiki/心流.md 认为"固定节奏助人进入心流"。 建议:在两页各加「⚠️ 冲突」标记并互相链接,等收录更权威来源后再定论。 2. 过时:wiki/某技术-背景.md 引用的数据是 2024 年的,raw/ 里 2026 的新文已给出更新数字。 建议:更新该页数字并附上新来源文件名。 3. 孤儿页:wiki/待办事项管理.md 无任何页面链接它,也无反向链接。 建议:在「时间管理」相关页补一条链接,或确认该页是否应归档。 4. 缺口:raw/ 与 wiki 里反复出现「深度工作」但还没有专门词条。 建议:新建 wiki/深度工作.md,吸收相关页里零散观点。 —— 是否按以上 4 项执行?我逐项回答或你直接说"执行 1、2、4"。

把体检结果"喂回去",才算闭环

lint 报告本身只是一张清单。真正让知识库"自我修复"的是下一步:你对 AI 说"执行 1、2、4",它改完后你在 log.md 里能看到这次体检和改动的痕迹,然后 git 提交一次。一次体检 = 一次被量化的"知识库健康修复",而不是一句没下文的口号。

关于体检的三个现实问题

问题答案为什么
多久做一次每 1–2 周一次,每次挑 1–2 条真重要的执行体检会让 AI 通读全库;个人规模(几百页内)成本可控,但别天天做
它会不会自己诊断错会。把 lint 当"待办清单",不当"诊断结论"执行体检的是 AI,写 wiki 的也是 AI,同样的盲区会传染(见下)
决定健康的是什么不是体检频率,而是你平时"一次收一条、别囤积"的习惯积压几十篇再让 AI"慢慢消化",错误会成串出现(16)
⚠️ 一个绕不开的诚实提醒:让 AI 检查 AI

lint 的执行者是 AI,而 wiki 也是 AI 写的——社区在传播这套做法时普遍提醒:这可能变成"用系统检查系统自己",同样的盲区会互相传染。三个缓解办法:① 保留不可变的 raw/ 作为"对答案的底稿",lint 报告可以回溯核对;② 关键 / 高风险的改动由人抽查原始来源;③ 别把 wiki 当真理,把它当"待考证的索引"。

lint 的深层价值:把"错"变成"可见的待办"

普通笔记系统里,错误会一直藏在你再也想不起来的地方。而 wiki 的体检把矛盾、过时、缺口显式标记出来,还顺带告诉你下一步该补什么——这就是"知识库会自我生长"的一部分。

15三种可选支路:非网页料、元数据、规模化

前面讲的是一条主路。下面三件事属于"用顺了以后自然会长出来的需求",现在可以只看个印象,需要时再回来翻。

支路一:PDF、图片、视频这些"非网页料"怎么进 raw/

Web Clipper 只管网页。要收别的形态,先转成 Markdown 再丢进 raw/,按料的类型选一条路(都不用精修,能用即可):

料的形式怎么进 raw/做到什么程度就够
PDF 论文 / 文档用 Obsidian 内置或第三方"PDF 转 Markdown"工具转出文本太长就只转你要的章节;完整性比格式重要
图片 / 截图里的文字让 AI 代理做 OCR(光学文字识别)成 .md 存进 raw/这正是选"能读写文件的代理"而不是网页聊天的理由之一
视频 / 播客先导出字幕或转录文本(很多平台自带),把转录稿丢进 raw/由 AI 清洗要点;口语废话不用你手动删
网页文章Web Clipper 一键剪藏剪完可按 12 的快捷键把图片下载到本地

进 raw/ 的唯一要求是"AI 能读到、且内容完整到可被理解",格式并不严格。粗糙不怕,整理是 wiki 层的事——这句话反过来也成立:在 raw/ 层花时间精修,就是在浪费这套做法的核心红利。

支路二:给资料带元数据,让体检变准

进阶做法是让剪藏自带元数据,AI 编译时能利用它判断可信度与时间。原文档提到社区实践里每篇可带:来源 URL、类型(论文 / 博客 / 新闻)、日期、可信度评分。Obsidian 支持在文件顶部用一段用 --- 包起来的字段区(叫 YAML frontmatter)写这些信息:

--- source: https://example.com/xxx type: blog date: 2026-09-01 authority: 0.5 --- (正文……)

这些字段对 14 的体检特别有用——判断"谁更可信、谁更新"时,AI 不用去猜。同时它们也是 Dataview 插件的输入:装上它之后,"列出所有可信度大于 0.8 的页"就变成一句查询。反过来说,如果你不做体检、也不装 Dataview,这些字段就是纯负担——所以它是一条支路,不是主线。

支路三:索引塞不下了怎么办

主路能撑到"个人几百篇以内"。再往上,一份 index.md 塞不进上下文窗口,"先读索引再钻进去"就断了。原文档在这一步给的建议很务实:先建小工具,而不是立刻上整套向量库。最常见的一种是给 wiki 页面做一个本地搜索引擎——小规模时索引文件就够了,长大了你才会想要真正的搜索。原文档点名了一个现成选择:qmd,一个本地跑的 Markdown 搜索引擎(混合关键词与向量检索,带大模型重排,全程在本机),既有命令行接口(AI 可以调用它),也有一种叫 MCP 的标准接口(AI 可以把它当原生工具用)。当然你也可以让 AI 现写一个更简单的脚本——原文档的原话就是"随着需要出现,让 LLM 帮你 vibe-code 一个朴素搜索脚本"。

📌 什么时候才轮到这条支路

判断标准很简单:当 AI 开始"找不到"你已经收录过的内容,而不是"你觉得应该上搜索了"。在此之前,加搜索引擎只会多一层要维护的设施。真到几千上万篇的规模,就该按 02 说的换带向量库的完整检索管线。

16九个会翻车的地方

这些坑按"被踩到的频率"排。前三个几乎每个新手都会遇到一次。

🗂️
坑 1 · AI 越权动了 raw/
初始化指令没写死"raw 只读",它就会"帮你整理"原始资料。规则文件第一行就要写死这条,并定期抽查。
📥
坑 2 · 一次囤几十篇再批量编译
资料堆积后"让 AI 慢慢消化",既烧钱又容易失控、错误成串。坚持一次一条、人在场。
🐌
坑 3 · 把规则文件当摆设
规则写得差,AI 会"很忙但没用"。规则文件是整套系统的瓶颈,打磨它比反复叮嘱 AI 更值。
🧊
坑 4 · 错误被"固化"进 wiki
收录时 AI 一次理解错,错误会写进页面并影响之后所有工作,像"编译进了二进制"。缓解:raw 只读可回溯 + 重要结论人工复核 + git 可回退。
🔁
坑 5 · 用 AI 检查 AI 的盲区
体检由 AI 执行、wiki 由 AI 写,盲区会传染。把体检报告当"待办清单"而不是"诊断结论",关键点回 raw 核对。
🏢
坑 6 · 拿它当团队 / 海量方案
这套是为个人规模设计的。团队协作、百万级文档请上带权限与向量库的正式方案(04)。

坑 7 · 剪藏不等于原文无损

网页剪成 Markdown 时,正文里原有的跳转链接常会丢失、图片可能因防盗链失效。对策:把它们当"要整理的观点原材料",而不是可引用的成品;正文链接丢了,等 AI 编译时统一补;图片按 12 的快捷键下载到本地。

坑 8 · 合成页会"漂移"

wiki 页面是 AI 重写的"蒸馏",日子久了可能和原始出处渐行渐远,一份写错的摘要会被当成权威记录。对策仍是那条:重要结论回 raw/ 复核——这也是把 raw/ 设成只读的唯一理由。

坑 9 · 把"提问"当搜索引擎高频轰炸

只问不回、只剪不收,wiki 不会长大,体验会退化回"每次现读"(13)。这套做法的回报来自积累,不来自查询次数。

成对示例:同一件事的两种做法

❌ 攒两周,然后说"把 raw 里这些都收一下"

AI 连着处理十几篇,中途开始偷懒、跳页、把不同文章的观点混进同一段,你事后根本分不清哪句是哪篇来的;账单也很难看(大模型按"文字量"计费,一次处理的资料越长越贵)。

✅ 一次一篇,动手前让它报方案

"收录这一篇;先告诉我你打算新建或更新哪几页,动手前让我确认。" 每次都在你能看住的范围内,出错也能立刻定位到是哪一篇引起的。

❌ 在对话框里反复教训它

"不是说了不要按文章建页吗?""摘要太长了。""别改 raw!"——每个新会话它都从零开始,你说过的全部作废。

✅ 把这次的教训写成规则文件里的一行

"页首摘要不超过 3 句""发现同概念已有页面时必须合并""绝不修改或删除 raw/ 里的任何内容"。写一次,管所有后续会话。

17排错:六个最常见的卡点

1 · AI 说"我看不到这个文件夹"
八成是你没在库文件夹里启动代理。先 cd ~/Documents/knowledge-base,再敲 claude(或 codex)。另一个原因是授权提示被你拒了——重来一次,这次选允许。
2 · 规则文件明明写了,它还是不听
先检查三件事:文件名对不对(Claude Code 读 CLAUDE.md,Codex 读 AGENTS.md);文件是不是在库根目录;规则是不是写得太笼统("整理得好一点"这种没法执行)。把笼统的改成可判定的("页首摘要不超过 3 句")。
3 · 收录一篇要十几分钟,是不是坏了
不是。一份资料可能牵动 10–15 个页面(建页 + 补旧页 + 刷索引 + 记日志),社区模板给的实测经验是单篇 5 到 15 分钟。它慢在"接线",不是卡死。真想快,就一次只收一条短的。
4 · wiki 里全是"一篇原文一页"
规则里缺"按概念组织"的约束。补两句:"页面按概念命名、不按来源命名""同一概念只允许存在一页,发现重复就合并"。然后让它把已有页面整理一轮(记得先让它报方案)。
5 · 剪藏的图全是叉
图片还指向原网站,而那个链接失效了。按 12 设好附件目录并绑"下载附件"快捷键,之后剪完一篇文章按一下;已坏的图可以重新剪一次那篇文章。
6 · 它把两个矛盾的来源"和稀泥"成一段话
规则里没写冲突处理。补上:"来源说法冲突时不得擅自取舍,在页面标「⚠️ 冲突」,log 里记录,并向用户提问。" 然后对相关页跑一次体检(14),让它把已抹平的矛盾重新标出来。
💡 一条通用排错法

任何"它产出不对"的情况,按这个顺序查:① 规则文件里有没有这条约束 → ② 文件名和位置对不对 → ③ 库文件夹对不对 → ④ 这条例外该不该写进规则。换模型排在最后——绝大多数问题不在模型的智力,在于你没把要求写成一个每次会话都能生效的规则。

18速查表:目录、口令、快捷键

把高频要用的东西集中放这里,需要时直接翻,不用回正文逐章找。

你的库应该长成什么样

knowledge-base/              ← 你在 Obsidian 里打开的库(vault) ├── CLAUDE.md                ← 规则说明书(用 Codex 则叫 AGENTS.md) ├── index.md                 ← wiki 全库目录:每页一行 + 一句简介 ├── log.md                   ← 操作流水:日期 | 动作 | 改了哪些页 ├── raw/                     ← 原始素材(只增不改不删) │   ├── 2026-09-13-某文章.md │   └── ... └── wiki/                    ← AI 编译的成品(一个概念一个文件) ├── 番茄工作法.md ├── 心流.md └── ...

五个高频口令(照抄即可)

想做什么对 AI 说的话为什么这么说
收录新资料收录 raw/ 里新增的那篇,编译进 wiki;先报方案再动手。后半句是防止它一口气大改的安全带
综合提问基于我的 wiki 综合回答:……把相互矛盾处与依据列出来。明确要求"带依据",避免它给一段没有出处的漂亮总结
沉淀好答案把刚才这轮讨论存成 wiki 新页「专题:…」,链接相关页并记 log。让探索成果参与引用网络,这是复利发生的地方
定期体检对我的 wiki 做 lint:矛盾 / 过时结论 / 孤儿页 / 缺词条,逐条给建议,动手前先列给我。四项对应原文档点名的检查项(14)
生成演示 / 文档把「…」这个专题整理成可讲给大家的 10 页提纲(或 Marp 幻灯片)。需要装了 Marp 插件才走得通(15)

命令行速查(Mac 终端)

要做什么敲什么说明
建试验田mkdir -p ~/Desktop/test-kb/raw连同 raw/ 一起建出来(-p 表示路径不存在就一起创建)
建正式库mkdir -p ~/Documents/knowledge-base/{raw,wiki}花括号会展开成 raw 和 wiki 两个目录
进库并启动代理cd ~/Documents/knowledge-base 然后 claude / codex必须先 cd,否则代理看不到你的库
初始化版本控制git init → git add . → git commit -m "init knowledge base"三连;以后每次重要改动再 git commit 一次
回退被改坏的状态git revert <提交号>AI 改崩了、体检误删了,用它退回去(不是 reset --hard)

Obsidian 快捷键速查

动作快捷键(Mac)用它做什么
打开图谱视图Cmd + G看全库链接网 / 找孤岛节点
当前页局部图谱Cmd + 点击某链接看某个概念的"附近"
建双向链接输入 [[弹出可链接笔记列表,选中即链接
全文搜索Cmd + Shift + F搜 wiki 里所有页面;也是"该不该上这套"的对照工具
命令面板Cmd + P什么功能找不到就来这搜
下载当前文件附件自己绑(例:Ctrl + Shift + D)把剪藏文章里的图片抓到本地(12)

每周 10 分钟的"健康维护清单"

1
清空积压

把这一周剪进 raw/ 但还没收录的料,逐条 ingest 掉(仍是一次一条)。

2
做一次体检

用 14 的口令跑一遍,挑 1–2 条真正重要的让 AI 执行,别贪多。

3
回库看 5 分钟

打开图谱视图,随手点几个节点读读——这是你重新"认识自己知识"的时刻,也最容易发现该补的页。

4
写一句规则

本周哪个环节让你最不爽?把它翻译成规则文件里的一句话(06)。

5
git 提交

给这周的成果存个档,让"上周的我"成为可回退的备份。

两周上手路线

时间做什么这天结束时应该确认什么
Day 1在 ~/Desktop/test-kb 把最小例子跑通(10)"AI 能在我文件夹里维护 wiki"这件事成立
Day 2照 11 建真库:装 Obsidian、Web Clipper、代理,初始化 + git 快照Web Clipper 能把网页剪进 raw/
Day 3–4剪 5 篇你真想学的主题进 raw/,一次一篇让 AI 收录把"看不顺眼的地方"记下来,准备改规则
Day 5第一次改规则:把前两天的抱怨翻译成条目从这天起你已经是"写规则的人"
Weekend拿一个你真实要解决的问题去提问,好答案回流成新页,然后 git 提交第一个里程碑留下痕迹
Week 2日常收敛为:剪进 raw/ → 每天一次收录 → 周末体检 + git 提交开始体会到"笔记在复利"
💡 一句话路线图

先用最小例子证明可行 → 再搬到真库 → 边用边把"骂 AI 的话"写进规则。别在第一天追求完美,完美是在用起来的第二周才出现的。

19术语表

这套做法的黑话不多,但英文缩写密集。下表按"你会先撞上哪个"排序,第三列写清楚它什么时候用、别当什么用。

术语大白话为什么重要 / 何时用 · 别当什么用
raw/原始素材库:你往里丢网页剪藏、PDF、转录稿的地方往里丢东西的唯一入口。别在里面做二次整理——那会破坏"唯一事实来源",让所有结论失去可回溯性
wiki/AI 整理好的成品库:一个概念一个文件你反复阅读和提问的地方。别当成又一个原始收藏夹——它按概念组织,不按来源
schema / CLAUDE.md · AGENTS.md写给 AI 的"工作章程",告诉它这个库怎么组织、什么不许做整套系统的杠杆点。AI 产出不合预期时,先改它,而不是在对话框里反复叮嘱
index.md全库目录:每个页面一行,带链接和一句简介AI 提问时先读它导航。别让它和日志混为一谈——它管"有什么",不管"发生过什么"
log.md按时间追加的操作流水:哪天收了什么、改了哪些页事后复盘与排查"wiki 为何变成这样"。别指望它帮你检索知识——它是账本不是目录
ingest / 收录让 AI 处理一条新资料,把它编译进 wiki日常最高频的动作。别一次塞几十篇让它"慢慢消化"——容易失控、错误成串
lint / 体检让 AI 全库自查:矛盾、过时结论、孤儿页、缺词条周期性做(1–2 周一次)。别等库烂了才想起来,也别天天做——它会通读全库
双向链接 [[ ]]页面之间的链接,能在被链接的页上反查"谁提到了我"把知识网连起来的关键,也是 AI 提问时"顺着读"的路。单篇孤立的笔记不必强行链接
反链 / backlinksObsidian 右侧面板:自动列出谁引用了当前页不用手维护"谁引用了我"。它显示的链接是 Obsidian 算出来的,不是你写进去的
图谱视图 / Graph View把全部页面和链接画成一张网(点 = 文件,线 = 链接)导航与诊断工具:找孤岛、找该拆的密集区。别为了图好看硬造链接
vault / 库Obsidian 管理的一个普通文件夹你的知识库就是这个文件夹本身。别把它和"某个云账户"混同——它是本地的,可以随时打包搬走
YAML frontmatter文件顶部用 --- 包起来的一段字段区(来源、日期、可信度……)给元数据用的,让体检和 Dataview 判断"谁更可信、谁更新"。不做这两件事时它是纯负担
RAG / 检索增强生成提问前临时把资料切块、算相似度、捞出相关片段交给大模型的整套做法理解它是为了知道这套做法刻意不用它。别一听到"AI + 笔记"就默认必须上 RAG
embedding / 向量把文字转成一串数字,让机器算"谁和谁语义像"检索方案的地基。本做法在个人规模下刻意不用——用了就要多养一套向量库
chunk / 切块把长文切成小块再喂给 AI被点名批评的做法:切点常切在观点中间。遇到它时要警惕"AI 拼出幻觉"
context window / 上下文窗口AI 一次能同时"看到"的文字量上限决定这套做法能撑多大:索引能整份放进去,就不必上检索。它是规模判断的尺子
agent / 代理能自己读文件、改文件、跑命令的 AI这套做法的"园丁",普通聊天机器人的替代品。授权时只给库文件夹,缩小事故半径
MCP一种让 AI 把外部工具当原生功能调用的标准接口只在支路里出现:本地搜索引擎(如 qmd)通过它接给 AI。用不上就别研究

99一句话总结

🎯 核心要点

Karpathy 的 LLM Wiki 做法 = 用一个能读写本地文件夹的 AI 代理,把你丢进 raw/ 的原始资料在收录那一刻就"编译"成一本按概念组织、互相链接、随收录增量更新的 wiki(配 index.md + log.md + 一份人机共同演化的规则文件);Obsidian 只是这本 wiki 的阅读与展示壳(双向链接 + 图谱),你负责挑料与判断,AI 负责其余一切。

📌 下一步就走这一步

先在 ~/Desktop/test-kb 把 10 的最小例子跑通——亲眼看到 AI 把你的两篇文章编译成互相链接的页面。遇到报错,把红色错误信息直接发给你的 AI 助手,它现在就是你的"园丁"。

记住这三句话

坚持三个月,你会得到什么

98来源与证据边界

本文关键事实均经以下来源核实(2026-09-13 访问)。标 [1] 的是一手来源,其余为核对用的辅助来源。

#来源用它核实了什么
[1]Andrej Karpathy 公开文档《LLM Wiki》
https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f
一手来源:三层架构(raw 只读 / wiki 由 LLM 全权拥有 / schema);index.md 与 log.md 两个必建文件及各自用途;对切块式检索的批评原话("no accumulation"、"compiled once and kept current"、"Obsidian is the IDE; the LLM is the programmer; the wiki is the codebase."、"The human's job is to curate sources…");单份资料可牵动 10–15 页;"一次一条、全程参与"的偏好;提问先读索引;lint 的检查项;wiki 就是装 Markdown 的 git 仓库;附件本地化与图谱视图的做法;Dataview / Marp / qmd 三个可选项;"这份文档刻意写得抽象"的声明
[2]Obsidian 官网
https://obsidian.md
官方定位:笔记以本地纯文本 Markdown 存在本地设备、可离线、个人使用免费;双向链接与图谱视图的官方介绍
[3]Obsidian Web Clipper 官方页
https://obsidian.md/clipper
官方出品的浏览器扩展;一键保存网页;用模板自定义保存到库的方式
[4]社区主流落地模板 julianoczkowski/karpathy-llm-wiki
https://github.com/julianoczkowski/karpathy-llm-wiki
把方法落地为"Obsidian + Web Clipper + Claude Code"的完整步骤:raw/ 目录约定、把原文档交给代理生成规则/索引/日志的初始化提示词、单篇收录 5–15 分钟的经验值、"几百篇以内舒服"的规模判断
[5]Obsidian 帮助中心
https://help.obsidian.md
库(vault)概念与入门、[[链接]] 用法、核心与社区插件体系、附件与图谱视图的官方说明
[6]Andrej Karpathy 人物简介
https://en.wikipedia.org/wiki/Andrej_Karpathy
身份背景:OpenAI 创始成员、前特斯拉 AI 总监、2024 年创办 Eureka Labs
[7]Obsidian 社区插件目录(官方索引)
https://github.com/obsidianmd/obsidian-releases
核实 Dataview、Marp、Smart Connections 等插件确实存在于官方社区目录(截至 2026-09-13 目录内共 7562 个插件)
[8]qmd(本地 Markdown 搜索引擎)
https://github.com/tobi/qmd
核实原文档点名的那条支路是真实可用的工具:本地运行、混合关键词与向量检索、MIT 许可

证据边界与时效说明

这几个链接建议收藏

⌂