复现 Karpathy 的个人知识库工作流:用 Obsidian 和 Claude Code 把 AI 变成你的知识管理员

8 阅读10分钟

复现 Karpathy 的个人知识库工作流:用 Obsidian 和 Claude Code 把 AI 变成你的知识管理员

灵感来源

Andrej Karpathy 最近在 X 上分享了自己的研究工作流:收集原始数据 → LLM 编译为 .md wiki → 通过 CLI 工具进行 Q&A 和增量增强 → 全部内容在 Obsidian 中查看

这套工作流的核心思想不是"让 AI 帮你搜索",而是让 AI 成为知识库的管理员——人类负责丢原始材料,AI 负责结构化整理、索引维护和交叉引用。随着知识库逐渐成型,AI 会"理解"你的知识结构,后续只需一句指令就能完成新知识的归档。

本文是对这套工作流的完整拆解,包含可直接复用的目录结构、指令文件模板和日常操作流程。

整体架构

my-wiki/
├── CLAUDE.md              # AI 管理员指令文件(核心大脑)
├── raw/                   # 原始素材:论文、博客、发布会记录等
├── wiki/                  # 精炼知识:按主题分文件夹
│   ├── _master_index.md   # 主索引:所有主题及路径
│   ├── wiki_log.md        # 操作日志:仅追加模式
│   ├── llm/               # 主题文件夹示例
│   │   ├── _index.md      # 主题索引
│   │   └── *.md           # 具体文章
│   └── agent/             # 主题文件夹示例
│       ├── _index.md
│       └── *.md
└── ai-research/           # AI 网络检索的原始完整内容

设计原则:原始素材与精炼知识严格分离。raw/ 是原材料仓库,wiki/ 是加工成品展厅,二者通过 YAML frontmatter 中的 source 字段建立溯源关系。

核心机制

CLAUDE.md:定义 AI 的角色

整个系统的核心是一个指令文件 CLAUDE.md,Claude Code 每次启动时自动读取。开头就定义了人机分工:

你是这个知识库(Vault)的管理员。`wiki/` 目录是你的专属领地。
你负责编写并维护该维基(Wiki)中的每一个文件。人类极少直接编辑这些维基文件。

这行定义从根本上改变了协作模式:人类是知识提供者,AI 是知识加工者

五种操作

操作触发条件AI 行为
Ingest(摄入)用户提供新的原始素材阅读 → 识别主题 → 生成文章 → 更新索引 → 记录日志
Query(查询)用户提问查主索引 → 查主题索引 → 读文章 → 综合回答并附引用
Lint(审查)用户要求审查遍历全部文件 → 生成矛盾/过时/孤立报告 → 等批准后修复
Log(日志)每次操作在 wiki_log.md 追加一行记录,仅追加,严禁修改
AI Research(检索)发现知识缺口网络搜索 → 保存完整原文到 ai-research/ → 文件不可变

摄入(Ingest)流程

这是最核心的环节:

    [用户提供原始材料][AI 完整阅读原始文件][识别核心研究领域][查阅 _master_index.md 匹配主题]
            ↓
    ┌─Y── 主题存在 ──N───┐
    ↓                   ↓
[在主题文件夹新建文章]  [新建主题文件夹 + _index.md + 文章]
    ↓                   |
[更新主题 _index.md]     |
    └────────┬─────────┘
             ↓
    [更新 _master_index.md][在 wiki_log.md 追加日志]

同源异构:同一材料,多个视角

最有意思的设计。当一份原始材料跨越多个研究领域时,AI 会在各主题下分别生成不同视角的文章:

         ┌─────────────┐
         │  原始材料    │
         └──────┬──────┘
                │
       ┌────────┴────────┐
       ↓                 ↓
  wiki/llm/          wiki/agent/
  侧重:模型架构      侧重:智能体能力
  侧重:基准得分      侧重:工具调用
       │                 │
       └────────┬────────┘
                ↓
         交叉链接互引

不是复制粘贴同一篇文章,而是从不同研究视角重新组织信息,底部通过交叉链接形成知识咬合。

审查(Lint)机制

定期让 AI 遍历所有文件,检查:

  • 矛盾信息:同一事实在不同文章中描述不一致
  • 过时主张:模型版本、能力指标等已更新
  • 孤立页面:没有任何交叉链接指向的页面
  • 无来源断言:缺少 source 或引用链接的陈述

审查报告带日期输出,等待人类批准后才执行修复

实操步骤

第一步:环境准备

必需软件:

软件用途安装
Claude CodeAI 引擎,负责阅读、编译、维护 wikinpm install -g @anthropic-ai/claude-code
Obsidian知识库前端 IDE,用于查看 raw/、wiki/ 和可视化输出官网下载桌面客户端

Vault 隔离建议: 建议将这个 AI 驱动的知识库与日常个人笔记分开,存放在不同的 Vault 中。这样可以避免 AI 自动生成的文件与手动笔记混杂,也方便单独对知识库进行版本控制和 Git 管理。

Obsidian Web Clipper(官方浏览器扩展):

  • 安装 Obsidian Web Clipper 浏览器扩展,用于一键保存网页为 Markdown 文件
  • 在扩展设置中,将保管库改为你的知识库仓库路径
  • 笔记位置设置为该仓库下的 raw 文件夹,确保所有抓取的网页都直接落入 raw/ 目录

Local Images Plus(社区插件):

  • 配合 Web Clipper 使用,在网页抓取时自动将图片下载到本地知识库,避免外部链接失效
  • 安装后在插件设置中将 Media folder 设置为 _resources/${notename},图片会按文章名分文件夹存储,保持目录整洁

Terminal(社区插件):

  • 安装后在 Obsidian 内直接打开终端,无需切换窗口即可运行 Claude Code
  • 在插件设置中将默认配置设置为整合式:darwinIntegratedDefault(macOS),实现 Obsidian 内嵌终端体验

其他推荐插件:

插件类型用途
Marp社区插件将 markdown 渲染为幻灯片,Karpathy 提到用它查看输出
Dataview社区插件对 wiki 中的文章进行结构化查询和聚合展示
Templater社区插件创建标准化的文章模板(frontmatter、结构骨架等)
QuickAdd社区插件快速执行自定义脚本,比如一键触发 Claude Code 的 ingest 流程

第二步:初始化目录

mkdir -p my-wiki/{raw,wiki,ai-research}
cd my-wiki

# 创建主索引
cat > wiki/_master_index.md << 'EOF'
# 维基主索引

| 主题 | 路径 | 简介 |
| ---- | ---- | ---- |
|  |  |  |
EOF

# 创建操作日志(仅追加模式)
cat > wiki/wiki_log.md << 'EOF'
# Wiki 操作日志

| 日期 | 时间 | 操作 | 简短描述 | 涉及文件 |
| ---- | ---- | ---- | -------- | -------- |
EOF

第三步:编写 CLAUDE.md

在项目根目录创建 CLAUDE.md,这是整个系统的核心配置文件。Claude Code 每次启动都会读取它。以下是可直接使用的完整模板:

# 角色 (Role)
你是这个知识库(Vault)的管理员。`wiki/` 目录是你的专属领地。
你负责编写并维护该维基(Wiki)中的每一个文件。人类极少直接编辑这些维基文件。

# 核心操作 (Operations)

## 摄入 (Ingest)
1. **识别领域**:完整阅读原始文件,识别出一个或多个核心**主题**   * **主题定义规范**:主题必须是一个**研究领域**(如 LLM, Agent, RAG, ML 等),而非具体的技术、算法或工程方法。
2.`wiki/_master_index.md` 中查找匹配的主题文件夹。
3. **若主题存在**:在该主题文件夹内新建一个 `.md` 文章(仅当新输入来源是现有文章的精确延续时,才更新现有文章)。为所有受影响的页面添加反向链接。
4. **若主题不存在**:在 `wiki/` 下创建一个使用小写字母和连字符命名的新文件夹。**必须**在此新文件夹内创建**两个**文件:一个是 `_index.md`(主题索引),另一个是用于存放实际总结文章的全新 `.md` 文件。
5. **文章格式规则**:每篇新建或更新的维基文章必须包含:
   * **Frontmatter 元数据**     ```yaml
     ---
     title: 文章标题(中文)
     source: "[[raw/原始文件名]]"
     created: YYYY-MM-DD
     ---
     ```
   * **顶级标题**:使用中文,概括文章核心主题
   * **引言段落**:2-4 句话概述
   * **核心摘要**:使用数字序号(1. 2. 3. …)列出核心要点
   * **正文内容**:简明扼要,涉及算法/架构/量化指标时提供数学公式或逻辑推导
   * **相关链接**:3-8 个指向 wiki 中实际存在页面的内部链接
6. **索引更新规则**:**始终**更新特定主题文件夹内的 `_index.md`,添加指向新文章的维基链接及简短描述。如果创建了新的主题文件夹,**必须**同步更新 `_master_index.md`。**严禁**直接创建名为 `topic_index.md` 的文件。
7. 在 `wiki/wiki_log.md` 中追加一行记录。

## 查询 (Query)
1. 首先阅读 `_master_index.md`,随后阅读匹配的主题 `_index.md`2. 完整阅读 1-3 篇具体文章。
3. 综合信息并附上引文(必须包含来源链接)来生成回答。
4. 询问是否将提供的大篇幅实质性解答归档为新的维基文章。

## 审查 (Lint)
1. 遍历并阅读维基中的所有文件,生成一份审查报告,涵盖:矛盾信息、过时主张、孤立页面、缺失概念、缺失交叉链接、无来源的断言,以及新文章建议。
2. 输出带有日期的审查报告。
3. 等待人类批准后再进行修复。

## 日志 (Log)
1. 每次操作都必须在 `wiki/wiki_log.md` 中追加一行记录,格式:`[YYYY-MM-DD] [HH:MM] [操作] [简短描述] [涉及文件]`2. 此日志为仅追加模式,严禁重写或修改现有行。

## AI 检索 (AI Research)
1. 触发条件:当人类要求你研究某个主题,或者在查询过程中发现现有维基资料无法填补的信息缺口时。
2. 在网络上搜索关于该主题的高质量、相关性强的来源。
3. 对于找到的每个来源,将其完整的原始内容(非摘要)保存为 `ai-research/` 文件夹下的 markdown 文件。
4. 该文件夹下的文件一经保存即不可更改(Immutable)。严禁覆盖,仅限创建新文件。

# 约定 (Conventions)
* **强制引用**:提供事实性信息或研究成果时,**必须始终包含来源链接*** **核心摘要**:每篇文章都强制要求包含"核心摘要(Key Takeaway)"部分。
* **命名规范**:文件名使用全小写及连字符(lowercase-hyphenated)。
* **维基链接**:所有交叉引用均须使用维基内部链接格式 `[[file-name]]`**创建任何内部链接前,必须确认目标文件在 wiki 目录中实际存在*** **列表优先**:优先使用项目符号(Bullets)而非长篇大论的段落。
* **杜绝编造**:严禁凭空捏造主张。**严禁虚构 wiki 中不存在的文件链接**。客观标记知识缺口和未解问题。
* **标记矛盾**:发现矛盾信息时必须明确标出。
* **规则边界**:如果人类提出了规则之外的请求,请提出澄清问题。严禁悄悄发明或执行新的操作指令。

第四步:日常工作流

摄入新知识:

1. 把网页/论文/博客保存为 .md 放到 raw/
2. 启动 Claude Code,说:"将这份新文档归档到我们的 wiki"
3. AI 自动:阅读 → 识别主题 → 编译文章 → 更新索引 → 记录日志

Karpathy 强调早期需要手动参与每一步,随着 wiki 逐渐成型,AI 会理解模式,最终只需一句话就能完成。

查询知识:

1. 在 Claude Code 中直接提问
2. AI 自动查索引、读文章、综合回答并附引用
3. 如回答内容丰富,可要求保存为新文章

审查维护:

1. 要求运行 "lint"
2. AI 生成审查报告
3. 人类批准后 AI 执行修复

这套工作流的优势

  • 人类做减法:只管丢原始材料,AI 负责加工整理
  • 结构化输出:统一格式保证一致性和可检索性
  • 可追溯:每篇文章通过 source 字段追溯到原始材料
  • 可审计:仅追加日志记录所有操作
  • 知识不断累积:每次查询和探索的输出都可以反哺回 wiki

与其他方案的对比

这套方案的本质区别在于:不是让 AI 搜索,而是让 AI 管理。大多数 AI 知识库方案(包括我自己用的 OpenClaw + VitePress)侧重于"AI 帮你写笔记",而 Karpathy 的方案侧重于"AI 帮你维护一个可查询、可审查、可扩展的知识网络"。

特别是同源异构跨主题摄入双层索引结构这两个设计,对于需要管理大量跨领域知识的研究者来说非常实用。

参考来源


本文基于 Andrej Karpathy 公开分享的工作流整理,结合实践细节补充。