10 万人收藏了 @karpathy 的这条帖子:

4 月 3 日

LLM 知识库。我最近发现一件特别有用的事:用 LLM 为各种自己感兴趣的研究主题建立个人知识库。这样一来,我最近消耗的大量 token,就不再主要用来操作代码,而是更多用来操作知识。 https://x.com/karpathy/status/2039805659525644595

然后他直接放出了一整份 GitHub Gist。

5,000+ star,1,400+ fork,只用了两天。

大多数人也会把它收藏起来。

然后什么都不做。

不是因为这件事很难。

而是因为从来没人把可以直接照抄的提示词给到他们。

这正是我准备补上的部分。

我会把整套系统从头到尾带你走一遍,给你每一步都能直接复制粘贴的提示词,并告诉你这套方法会在哪些地方出问题,免得你白白浪费一个周末,最后只搭出一个根本撑不起规模的玩具。


“人类的工作是筛选来源、引导分析、提出好问题,并思考这些材料究竟意味着什么。LLM 的工作是除此之外的一切。” 这是 Andrej Karpathy 的原话。


核心概念(60 秒版)

你的知识现在散落在各个地方。

文章分散保存在 4 个不同的应用里。

2023 年存下来的书签,你大概率永远不会再点开。

会议记录躺在某个你已经忘了存在的文件夹里。

现在,当你向 AI 询问“你自己的资料”时,它每次都会从零开始。

上传文档,提出问题,得到答案。

下一次会话呢?

它什么都不记得了。

这就是 ChatGPT 文件上传、NotebookLM 以及大多数 RAG 系统的工作方式。

没有积累,只有一次性的检索。

Karpathy 的思路正好把这件事反了过来。

不是每次都让 AI 去你的原始文件里现找答案,而是先让 AI 把资料读一遍,再编译成一个结构化 wiki。

里面有摘要、有交叉引用、有概念之间的连接,也会显式标出互相矛盾的地方。

这一切都由 AI 维护。

而且全部都只是简单的 Markdown 文件。

下一次你再提问时,AI 不需要重新翻原始材料。

它只需要读取自己已经搭好的 wiki。

连接关系已经存在。

综合结论已经包含你读过的所有内容。

你每新增一个来源,wiki 就会更丰富一点。

你每提出一个问题,它的答案也可以反过来再写回系统。

知识不再每次重置,而是不断复利。

Karpathy 自己的结果是:围绕单一研究主题,整理了大约 100 篇文章、约 40 万字的知识库。

这些内容不是他亲手写的。

是 AI 帮他写、帮他链接、帮他分类、帮他维护的。

没有数据库。

没有 embedding。

没有向量库。

只有文件夹和文本文件。

为什么你现在就该关心?

现在最值得关注的,有三个实际用法:

如果你是内容创作者或市场人,这就是一台内容研究引擎。把竞品拆解、热点文章、用户洞察全都丢进 raw/,wiki 会自动浮现出你手工整理时很难发现的模式和选题角度。

如果你是创业者或顾问,这就是你做客户项目、市场研究和竞争分析的第二大脑。你每输出一份报告,都能反哺回系统。到第 3 个月时,你的 AI 对这个领域的理解,可能已经超过大多数新招进来的人。

如果你是学生或研究者,那这几乎就是 Karpathy 搭这套系统的原始用途:针对几十篇论文做深度研究,让 AI 跟踪概念如何相互连接、作者之间哪里存在分歧、还有哪些空白有待补上。

这套方法同样适用于大量企业研发工作流。

开始搭建前:你需要什么

→ 任意一个能够读取本地文件的 AI 编码工具(Claude Code、Cursor、Codex 或类似产品)

→ 一个文本编辑器(推荐 Obsidian,不过 VS Code、记事本,甚至任何能编辑文本的工具都行)

→ 至少 10 份你真正关心的同主题资料

→ 30 分钟完成首次搭建,此后每加一份资料大约再花 10 分钟

就这些。

不需要特殊软件。

不需要额外注册账号。

也不需要安装插件。


接下来就是完整搭建过程。

总共 7 步。

每一步我都会给你一段能直接贴进 AI 里的提示词。

按顺序照着做就行。


第 1 步:创建文件夹结构(2 分钟)

在你电脑上的任意位置创建这个目录:

my-knowledge-base/
├── raw/           # 你的源材料。AI 只读,不改。
│   └── assets/    # 图片、截图、图表
├── wiki/          # AI 维护的 wiki。你来读,AI 来写。
├── outputs/       # 查询生成的报告、分析和答案
└── CLAUDE.md      # 驱动整个系统的 schema 文件

三个文件夹,一个文件。

如果你在这里花了超过 2 分钟,那你就是想太多了。

第 2 步:写出你的 Schema 文件(所有人都会跳过这一步,别跳)

Schema 决定了“普通聊天机器人”和“有纪律的 wiki 维护者”之间的差别。

它会告诉你的 AI:这个知识库是关于什么的、应该怎样组织、当你加入资料、提问、或做维护时,它该怎么做。

几乎所有其他教程都会给你一个 10 行模板。

下面这个才是完整、可投入实战的 schema。

它基于 Karpathy 的 gist,并为真实使用场景做过工程化整理:

# Knowledge Base Schema
 
## 身份
这是一个关于 [你的主题] 的个人知识库。
由一个 LLM 智能体维护。人类负责筛选资料和提问,LLM 负责其余一切。
 
## 架构
- raw/ 存放不可变的源文档。绝不要修改 raw/ 中的文件。
- wiki/ 存放编译后的 wiki。这个目录完全由 LLM 负责。
- outputs/ 存放生成的报告、分析和问题回答。
 
## Wiki 约定
- 每个主题在 wiki/ 中都有一个独立的 .md 文件
- 每个 wiki 文件都以 YAML frontmatter 开头:
  ---
  title: [主题名称]
  created: [日期]
  last_updated: [日期]
  source_count: [为该页面提供信息的 raw 源文件数量]
  status: [draft | reviewed | needs_update]
  ---
- frontmatter 后先写一段摘要
- wiki 页面之间统一使用 [[topic-name]] 作为内部链接
- 每一个事实性断言都要标明来源:`[Source: filename.md]`
- 当新信息与已有内容冲突时,要显式标记:
  > CONTRADICTION: [旧结论] vs [新结论] from [source]
 
## 索引与日志
- wiki/index.md 按分类列出所有页面,并给每页写一句简介
- wiki/log.md 是只能追加的时间顺序记录
- 日志条目格式:## [YYYY-MM-DD] action | Description
  (action 可选:ingest、query、lint、update)
 
## Ingest 工作流
当处理一个新的来源时:
1. 完整阅读源文档
2. 与用户讨论关键收获
3. 在 wiki/ 中创建或更新一页摘要
4. 更新 wiki/index.md
5. 更新 wiki 中所有相关的实体页与概念页
6. 从已有页面补上指向新内容的反向链接
7. 标记任何与既有 wiki 内容相矛盾的地方
8. 在 wiki/log.md 中追加一条记录
9. 一份来源通常应该影响 10 到 15 个 wiki 页面
 
## Query 工作流
当回答问题时:
1. 先读 wiki/index.md,找出相关页面
2. 读取所有相关 wiki 页面
3. 综合答案,并用 `[Source: page-name]` 标注依据
4. 如果答案暴露出值得保留的新洞见,主动提出把它写回 wiki/
5. 把高价值回答保存到 outputs/
 
## Lint 工作流(每月一次)
检查以下问题:
- 页面之间的矛盾
- 被新来源推翻但仍未更新的陈旧结论
- 没有入链的孤立页面
- 被提到却从未解释的概念
- 缺失的交叉引用
- 没有标注来源的断言
输出:`wiki/lint-report-[date].md`,并标明严重级别
 
## Focus Areas
[列出这个知识库覆盖的 3 到 5 个主题]

直接复制这份模板。

改掉焦点领域那一段。

然后把它放到项目根目录,命名为 CLAUDE.md

第 3 步:把资料丢进 raw 文件夹(10 分钟粗暴倾倒,零整理)

打开 raw/,把你现有的一切资料都丢进去:

→ 把文章复制粘贴成 .md.txt 文件

→ 从你现在用的任何笔记工具里导出笔记

→ 把截图和图表保存到 raw/assets/

→ 论文、PDF、竞品拆解,一股脑扔进去

→ 把你囤了好几个月的书签也倒进去

不要整理。

不要重命名。

不要先清洗一遍。

那是 AI 的工作,不是你的。

Karpathy 给了一个很好用的小建议:安装 Obsidian Web Clipper 浏览器扩展,它可以一键把任意网页转成 Markdown。

再设置一个快捷键(Settings → Hotkeys → "Download attachments"),这样所有图片都能拉到本地,AI 也就能一起引用。

如果你不用 Obsidian,直接从浏览器复制粘贴同样没问题。

这里追求的是体量。

不是完美。

第 4 步:执行你的第一次 Ingest

打开你的 AI 智能体。

把它指向你的项目目录。

然后贴上这段提示词:

INGEST PROMPT:

"读取 CLAUDE.md 中的 schema。然后处理 raw/ 里的 [FILENAME]。完整读完它,先和我讨论关键收获,然后:在 wiki/ 中创建摘要页,更新 wiki/index.md,更新所有相关概念页和实体页,补上反向链接,标记任何冲突,并把这次 ingest 追加到 wiki/log.md。"

一开始请一次只处理一个来源。

Karpathy 自己也是这么做的。

读它生成的摘要。

检查它更新了哪些页面。

告诉 AI 哪些点应该被强调。

这会比你一口气批量喂完所有资料,产出好得多。

当你处理了 5 到 10 个来源之后,wiki/ 里通常就会出现一个索引、一个日志,以及 15 到 30 个互相关联的页面。

到了这一步,系统的价值就开始真正显现了。

第 5 步:开始向你的知识库提问

当你已经有了 10 个以上的 wiki 页面时,这套系统就会开始真正有用。

贴上这段提示词:

QUERY PROMPT:

"读取 wiki/index.md。基于这个知识库里已有的内容,回答:[你的问题]。说明答案参考了哪些 wiki 页面。如果这次回答暴露出值得保留的新连接,就创建一个新的 wiki 页面,并同步更新索引。"

最能榨出价值的问题,通常是这些:

→ “这个知识库目前最大的三个空白是什么?”

→ “哪些来源之间彼此矛盾?矛盾点分别是什么?”

→ “基于现有内容,我下一步最该研究什么?”

→ “只用 wiki 里的内容,写一份关于 [topic] 的 500 字 briefing”

→ “[concept A] 和 [concept B] 之间存在哪些连接?”

其中最关键的闭环是:

好的回答,应该再写回 wiki。

不论那是一次对比、一段分析,还是你新发现的一条连接。

这些内容会像被 ingest 进来的资料一样,继续在知识库里复利。

你每问一个问题,下一次答案都会更好。

第 6 步:每月做一次健康检查

这一步几乎没人做。

但它恰恰是防止整套系统慢慢腐烂的关键。

贴上这段提示词:

LINT PROMPT:

"按照 CLAUDE.md 中定义的 lint 工作流,对 wiki/ 做一次完整健康检查。输出到 wiki/lint-report-[date].md,并使用严重级别(🔴 errors、🟡 warnings、🔵 info)。另外,建议 3 篇最能填补当前知识空白的文章。"

它为什么重要?

因为当 AI 写错了一点点,而你又把它保存回系统时,下一次回答就会建立在这个错误之上。

两个月之后,你可能会有五个页面一起强化同一个错误。

健康检查的作用,就是在错误滚成雪球之前把它揪出来。

每月一次。

花你 10 分钟。

如果你希望这套系统保持可信,它就是不可谈判的固定动作。

第 7 步:让它开始复利

这才是整套系统真正开始回本的地方。

当你连续使用了 4 到 6 周之后,你就不再只是“搜索笔记”了。

你是在查询一个结构化知识系统。

它对来源之间连接关系的理解,很可能已经比你本人还要清楚。

有三种方式可以加速这种复利:

把探索产出回写进去:当 AI 生成了一段你觉得有价值的比较、分析或总结时,把它保存进 wiki/outputs/

Karpathy 说,他自己的探索和查询结果“总是会在知识库里累加起来”。

加入可视化输出:让 AI 把答案渲染成 Markdown 表格、图表或者幻灯片(Marp 格式)。

这些都会变成可复用资产,而不是一次性聊天记录。

把一切放进版本控制:你的 wiki 本质上只是一些 Markdown 文件。

初始化一个 git 仓库。

你就拥有完整历史、分支能力,以及随时撤销 AI 误改的能力。


好,搭建过程讲完了。

下面是其他人很少会告诉你的那部分。


这套系统会在哪些地方失效(诚实版)

这还是一种新出现的模式,不是成熟产品。

Karpathy 自己也把它称作“一堆很 hacky 的脚本集合”,并明确说过,这里还有很大的产品化空间。

所以,在你把自己的知识全面托付给它之前,先知道以下这些限制:

上下文窗口的天花板。

Karpathy 的 wiki 在大约 100 篇文章、40 万字的规模上仍然可用。

但即便是 128K token 的上下文窗口,实际也只能装下大约 9.6 万词。

AI 回答问题时,依赖的是“先读索引,再有选择地读取相关页面”这套流程。

这意味着它一定会漏掉一些东西。

已有研究表明,LLM 会出现 “lost in the middle” 效应,也就是长输入中间部分的信息更容易被忽略。

你的查询结果一定存在盲区。

请接受这一点。

错误会复利。

AI 在某个 wiki 页面里写下一个细微错误。

你基于它提问。

错误进入答案。

你再把这个答案写回去。

现在就有两个页面一起强化这个错误了。

每月 lint 能帮助缓解,但负责 lint 的 AI 与最初犯错的 AI 本身有着同样的盲区。

这是整套系统最大的风险。

Karpathy 的 gist 下面有位评论者一针见血地说过:“当输出被写回系统时,错误也会一起复利。”

幻觉不会消失。

wiki 方案能减少幻觉,因为 AI 的答案更多建立在你的来源之上。

但它并不能彻底消除幻觉。

AI 仍然可能编造出原始资料中并不存在的连接。

更糟的是,由于 wiki 看起来很权威,页面干净、引用齐全、交叉链接完整,你会更容易相信那些其实是错的内容。

所以,不要盲信。

成本并不是零。

每次 ingest、每次 query、每次 lint,都会消耗 token。

一个来源如果会影响 10 到 15 个页面,在前沿模型上跑一遍 API,成本大约可能是 2 到 5 美元。

50 个来源,光 ingest 就可能花到 100 到 250 美元。

比雇研究助理便宜。

但绝对不是免费。

它扩不到企业级。

Karpathy 认为,不依赖 RAG、仅用索引文件的方式,在大约 100 篇文章这个量级仍然能跑得动。

但到 10,000+ 来源时,这个模式就会崩。

索引会大到难以管理。

数千个页面之间的一致性也几乎不可能维持。

到那时,你最终还是需要这套系统原本想绕开的那一整套基础设施。

要知道它的上限在哪里。

单模型的盲区。

你的整个 wiki,本质上都是由一个模型对所有来源做出的解释。

而任何模型都有自己的偏见和习惯性误差。

如果你在做高风险决策,Karpathy 的 gist 里还有评论建议:让 4 个以上模型独立回答同一个问题,再比对它们的一致程度。

这会更稳妥。

当然,也会把成本放大 4 倍。

该怎么应对

→ 错误复利:每月做一次 lint。关键断言手工交叉验证。高风险决策绝不要盲信 wiki。

→ 上下文限制:每个 wiki 只聚焦一个领域。你有多个领域,就建立多个知识库。

→ 成本控制:ingest 和复杂查询用前沿模型;简单更新交给更便宜的模型。

→ 幻觉风险:上面的 schema 已经要求每条断言都附带来源引用。如果某一页里有断言却没有 [Source: filename],lint 就应该把它揪出来。

→ 规模上限:接受这本来就是个人工具,不是企业级基础设施。如果你真的用到超出它的上限,那反而说明它已经帮你创造了足够大的价值。

为什么它依然重要

尽管上面说了这么多限制,它依然是当下最实用的个人知识系统之一。

原因其实很简单:

人类之所以会放弃 wiki,并不是因为它没价值,而是因为维护成本增长得比回报更快。

你一开始整理得很开心。

前两周感觉良好。

然后维护成本迅速杀死动力,你再也不想碰它了。

LLM 不会觉得无聊。

它不会忘记补一条交叉引用。

它也不会抱怨一次要改 15 个文件。

Lex Fridman 也确认过,他运行着一个类似的系统。

他会让 AI 生成交互式 HTML 可视化,并创建“迷你知识库”,在 7 到 10 英里的跑步过程中加载到语音模式里使用。

DAIR.AI 的 Elvis Saravia 也一直在构建面向 AI 研究整理的 LLM 知识库。

Karpathy 发出 gist 后的 48 小时内,GitHub 上就出现了多个开源实现。

这已经不再只是实验了。

它正在变成所有认真做研究的人越来越常见的工作方式。

完整提示词库(整段复制)

这篇文章里的所有提示词,都整理在这里:

SCHEMA:直接复制第 2 步里的完整 CLAUDE.md 模板。

INGEST(单个来源):

"读取 CLAUDE.md 中的 schema。处理 raw/ 里的 [FILENAME]。完整读完它,先和我讨论关键收获,然后:创建摘要页、更新索引、更新所有相关页面、补上反向链接、标记冲突,并记录这次 ingest。"

INGEST(批量,监督更少):

"读取 CLAUDE.md。按顺序处理 raw/ 中所有尚未处理的文件。对每个文件:创建摘要、更新索引、更新相关页面,并记录这次 ingest。自动继续执行。"

QUERY:

"读取 wiki/index.md。回答:[QUESTION]。标明参考了哪些 wiki 页面。如果这次答案值得保留,就主动提出把它写成新的 wiki 页面。"

LINT:

"按照 CLAUDE.md 中的 lint 工作流,对 wiki/ 做一次完整健康检查。输出到 wiki/lint-report-[date].md,并使用 🔴/🟡/🔵 严重级别。再建议 3 篇最值得补齐的文章。"

EXPLORE:

"读取 wiki/index.md,找出当前主题之间 5 个最有意思、但还没有被充分探索的连接。针对每一个连接,说明它可能揭示什么洞见,以及还需要什么来源来验证它。"

BRIEF:

"基于 wiki/ 里的全部内容,写一份关于 [TOPIC] 的 500 字 executive briefing。标明来源。结构固定为:当前状态、关键张力、开放问题、建议的下一步。"

去搭吧

把 Karpathy 的 gist 收藏起来,和真正从中受益之间的差别,通常只差一个下午。

选一个主题。

创建文件夹。

复制 schema。

把你已经有的资料丢进去。

跑第一次 ingest。

明天再加一个来源。

下周再加五个。

这个 wiki 每次都会变得更聪明一点。

这就是整套方法的核心。

三个文件夹。

一个 schema。

一个替你做那些你自己永远懒得做的脏活累活的 AI。

别再只会收藏书签了。

开始真正编译你的知识。


解锁我全部的提示词和自动化 👇

https://godofprompt.ai/complete-ai-bundle