蒸馏 Karpathy 的 LLM Wiki 为 Agent Skill

6 阅读5分钟

一、Karpathy 的 LLM Wiki 是什么

前 OpenAI 联合创始人 Andrej Karpathy 最近提出了一个想法:让 LLM 替你维护一个持久的个人知识库(Wiki) ,而不是每次提问都从原始文档重新检索。

原文链接:gist.github.com/karpathy/44…

核心观点:

Instead of just retrieving from raw documents at query time, the LLM incrementally builds and maintains a persistent wiki — a structured, interlinked collection of markdown files that sits between you and the raw sources. When you add a new source, the LLM doesn't just index it for later retrieval. It reads it, extracts the key information, and integrates it into the existing wiki — updating entity pages, revising topic summaries, noting where new data contradicts old claims, strengthening or challenging the evolving synthesis.

The wiki is a persistent, compounding artifact.  The cross-references are already there. The contradictions have already been flagged. The synthesis already reflects everything you've read.

简单翻译:知识不是每次都重新检索,而是一次性编译好,持续维护。每新增一份资料,整个知识库都会变得更强。

架构分三层:

  • Raw sources — 原始文档,不可变
  • Wiki — LLM 生成并维护的结构化 Markdown 页面
  • Schema — 配置文件(如 CLAUDE.md),告诉 LLM 怎么维护这个 wiki

二、LLM Wiki 能干什么

Karpathy 列举了很多场景:

  • 个人成长:记录目标、健康、心理状态,随时间构建自我画像
  • 深度研究:读论文、文章、报告,逐步构建带有论证演化的知识体系
  • 读书笔记:边读边建 Wiki,结束时你拥有一个像 Tolkien Gateway 那样的深度知识库
  • 团队知识管理:Slack 线程、会议记录、项目文档自动维护成内部 Wiki
  • 竞品分析、尽职调查、旅行规划、课程笔记、兴趣深挖 — 任何需要持续积累知识的场景

本质上,LLM Wiki 解决的是一个经典问题:人类放弃 Wiki 的原因不是不会写,而是维护成本随时间指数增长。LLM 不怕枯燥,不怕忘记更新交叉引用,一次操作能改 15 个文件。

三、LLM Wiki vs RAG

维度RAGLLM Wiki
知识处理查询时实时检索 chunk提前编译好,查询时直接读取
跨文档关联每次重新发现已经建好交叉引用
矛盾检测不做新资料入库时自动标记矛盾
累积效应无,每次从零开始每加一份资料,整个库更丰富
维护成本需要向量数据库、Embedding只需要 Markdown + Git
适用规模海量文档(万级+)中小规模(百级 sources,数百 pages)
基础设施重(向量库、检索管线)轻(Markdown 文件 + index.md)

LLM Wiki 的优势:简单、可累积、人可读、Git 天然版本控制。在个人知识管理这个场景下,它比 RAG 更自然。

LLM Wiki 的不足:不适合海量数据(Karpathy 自己说 ~100 sources 是舒适区);依赖 LLM 的上下文窗口;当 Wiki 增长到数百页以上时,单靠 index.md 导航会吃力,需要引入搜索工具(如 qmd)。

一句话总结:RAG 是"搜索引擎",LLM Wiki 是"知识库"。搜索每次从零开始,知识库是持续编译的。

四、我把它做成了一个 Claude Code Skill

Karpathy 的原文是一个想法文档,不是实现。他说:

This document is intentionally abstract. It describes the idea, not a specific implementation.

我基于这个想法,做了一个可直接使用的 Claude Code Skill — llm-wiki

技能设计

5 个命令:

命令用途
/init初始化知识库目录结构和配置文件
/ingest处理新资料:分类归档 → 生成摘要 → 提取实体 → 更新主题
/query从知识库回答问题,好的回答可回填为新页面
/lint健康检查:矛盾、孤立页、缺失引用
/status查看知识库概览

架构设计

我做了一个关键改进:两区 raw/ 模型

raw/
  buffer/           ← 缓冲区:用户随便丢文件进来,无需命名分类
  archive/          ← 归档区:ingest 后 LLM 自动分类存放,不可变
    assets/
    <category>/     ← interview/、career/、research/ 等语义分类
wiki/               ← LLM 维护的知识库
  sources/          ← 源文档摘要
  entities/         ← 实体页(人物、组织、概念、技术)
  topics/           ← 主题页(综合分析)
  index.md          ← 内容目录
  log.md            ← 变更日志
CLAUDE.mdSchema 配置

用户只需要把文件丢进 raw/buffer/,LLM 在 ingest 时自动分类、命名、移动到 raw/archive/,然后生成所有 wiki 页面。

五、Skill 工作流

初始化

/init  创建目录结构  生成 CLAUDE.md  初始化 index.md 和 log.md

摄入资料(核心流程)

用户丢文件到 raw/buffer/(或直接对话中提供)
       ↓
LLM 读取内容,判断语义类型
       ↓
移动到 raw/archive/<category>/<name>.md(不可变)
       ↓
生成 wiki/sources/<name>.md(摘要页)
       ↓
提取实体 → 创建/更新 wiki/entities/*.md
       ↓
更新 wiki/topics/*.md(综合分析)
       ↓
更新 wiki/index.md + log.md

一个资料通常会影响 10-15 个 wiki 页面。这是关键 — 不是简单索引,而是真正的知识整合。

所有页面通过 [[wikilink]] 互相引用,在 Obsidian 的 Graph View 里能看到一张有机的知识网络图。

六、Skill 源码

目录结构

~/.claude/skills/llm-wiki/
├── SKILL.md                     主文件:5 个命令 + 架构 + 约定
└── references/
    └── schema-template.md       CLAUDE.md 模板(/init 时使用)

GitHub链接


总结

Karpathy 提出了一个优雅的想法:让 LLM 当你的知识库程序员。我做的 Skill 就是把这个想法落地成可复用的工具:

  1. 丢文件 → raw/buffer/
  2. 说 /ingest → LLM 自动分类、生成摘要、提取实体、更新主题
  3. 问问题 → LLM 从已编译的知识库综合回答
  4. 好答案自动回填 → 知识持续复利增长

本质上就是把"维护知识库"这件人类最讨厌做的事,交给不会偷懒的 LLM。

如果你也在用 Claude Code + Obsidian,可以直接把这个 Skill 放到 ~/.claude/skills/llm-wiki/ 目录下开始使用。有任何想法欢迎评论区交流 🙌