Skip to content

LLM Knowledge Base - 为 Claude Code 构建自进化记忆系统

Karpathy 提出「用 LLM 管理个人知识库」的概念大火后,Cole Medin 基于相同架构但换了数据源——不收集外部文章,而是自动捕获 Claude Code 的会话日志,编译成结构化知识库,让编码代理随代码库进化而越来越聪明。


Karpathy 的编译器类比

Karpathy 用软件编译器的概念来解释知识库架构,这是理解整个系统的核心心智模型:

┌─────────────────────────────────────────────────────┐
│               知识库编译器类比                         │
│                                                      │
│  源代码              编译器              可执行文件     │
│  ┌──────┐           ┌──────┐           ┌──────┐      │
│  │ 原始  │ ────────▶ │ LLM  │ ────────▶ │ Wiki │      │
│  │ 数据  │           │ 处理  │           │ 查询  │      │
│  └──────┘           └──────┘           └──────┘      │
│                                                      │
│  articles/        总结/链接/        structured         │
│  papers/          结构化知识        concepts +         │
│  transcripts                       connections         │
│                                                      │
│       测试套件 = Linting(健康检查)                    │
│       运行时 = Agent 查询知识库                        │
└─────────────────────────────────────────────────────┘

编译器各阶段详解

编译器阶段 知识库对应 说明
Source Code Raw Folder 未处理的原始 markdown(文章/论文/转录)
Compiler LLM 处理 总结、链接文档、结构化知识
Executable Wiki 编译后的知识,带 back links
Test Suite Linting 检查空白、过期数据、断链
Runtime Agent 查询 搜索 wiki 获取答案

关键洞察:不需要 RAG

Karpathy 原话:「我本来以为需要搞复杂的 RAG,但 LLM 在自动维护索引文件方面做得很好。」

核心依赖 index 文件:一个描述所有文件夹和资源的索引,agent 从这里出发导航,不需要向量数据库或语义搜索。


数据流架构

Karpathy 原版(外部数据)

外部信息(网页/论文)
      │
      ▼ Obsidian Web Clipper
  ┌──────────┐
  │ Raw 文件夹 │ ← 原始 markdown
  └─────┬────┘
        │ LLM 处理(compile 脚本)
        ▼
  ┌──────────┐
  │   Wiki   │ ← concepts/connections/index
  └─────┬────┘
        │ Agent 查询
        ▼
     回答问题

Cole Medin 版(内部数据)— 核心区别

Claude Code 会话
      │
      ▼ Hooks 自动捕获
  ┌──────────┐
  │ Daily Log │ ← 对话摘要(等价于 Raw)
  └─────┬────┘
        │ Flush(每日)+ Claude Agent SDK
        ▼
  ┌──────────┐
  │ Knowledge │ ← 概念/连接/索引(等价于 Wiki)
  └─────┬────┘
        │ Agent 查询
        ▼
     回答问题

两个版本的对比

维度 Karpathy(外部) Cole Medin(内部)
数据源 网页文章、论文 Claude Code 会话日志
输入方式 Obsidian Web Clipper 手动收集 Hooks 自动捕获
处理方式 compile 脚本 + LLM Claude Agent SDK
编译触发 手动运行脚本 每日 flush 自动
适用场景 通用知识研究 代码项目记忆
核心价值 组织外部知识 保留决策和经验教训

Claude Code Hooks 机制(核心实现)

整个系统完全由 Claude Code Hooks 驱动,不需要额外安装任何东西。

三个 Hook

┌───────────────────────────────────────────────────────┐
│                  Claude Code Hooks                     │
│                                                        │
│  ① Session Start Hook                                 │
│     ├─ 加载 agents.mmd(系统描述 → 元推理)             │
│     └─ 加载 index.md(知识索引 → 高效查询起点)          │
│                                                        │
│  ② Pre-Compact Hook                                   │
│     └─ 上下文即将压缩时 → Claude Agent SDK 生成摘要     │
│                                                        │
│  ③ Session End Hook                                   │
│     └─ 会话关闭时 → Claude Agent SDK 生成摘要           │
│                                                        │
│  摘要写入 ──▶ Daily Log(标准化格式)                   │
│  每日 Flush ──▶ Daily Log → Knowledge Wiki             │
└───────────────────────────────────────────────────────┘

agents.mmd 的作用

这是全局规则文件,告诉代理整个系统的元信息:

  • 信息从哪里来(Daily Log)
  • 编译后的知识在哪(Knowledge)
  • 索引和日志文件在哪
  • 系统如何工作

让代理具备「元推理」能力——知道自己身处什么系统。


目录结构

project/
├── settings.json          # Claude Code hooks 定义
├── agents.mmd             # 全局规则(系统元描述)
├── daily-logs/            # 对话摘要(Raw 等价物)
│   ├── 2026-04-06.md
│   └── 2026-04-07.md
├── knowledge/             # 编译后知识(Wiki 等价物)
│   ├── index.md           # 索引(最重要文件)
│   ├── concepts/          # 提取的概念
│   └── connections/       # 概念间关系
└── scripts/
    ├── compile.py         # 编译脚本
    └── flush.py           # 日志 → 知识库

知识复利循环(Compounding Loop)

这是整个系统最有价值的部分——知识会自我增长:

┌──────────────────────────────────────────────┐
│            知识复利循环                        │
│                                              │
│     提问 ──▶ Agent 搜索 Wiki 多篇文章          │
│                    │                          │
│                    ▼                          │
│          综合信息 → 生成回答                   │
│                    │                          │
│                    ▼                          │
│        会话结束 → 摘要写入 Daily Log           │
│                    │                          │
│                    ▼(每日 Flush)             │
│          新概念/连接 → 写入 Wiki               │
│                    │                          │
│                    ▼                          │
│         Wiki 更大 → 下次查询更准确              │
│                    │                          │
│              回到「提问」↑                     │
└──────────────────────────────────────────────┘

关键点:无需人工维护。每次会话结束或上下文压缩时自动提取经验教训,每日自动编译到 wiki。


与其他方案的对比

方案 复杂度 数据源 自定义 维护成本
Claude Code 内置记忆 .claude/ 文件 有限
RAG + 向量数据库 外部文档 完全
Claude Memory Compiler 会话日志 完全 几乎零
Zep / Mem0 等开源方案 混合

Cole Medin 的方案优势在于: - 完全可自定义(改 compile/flush 脚本的 prompt 即可) - 代理自己能帮你改(因为它有 agents.mmd,知道系统怎么运作) - 不需要向量数据库,架构极简 - 与 Obsidian 的 graph view 天然契合


快速上手

Karpathy 版(外部知识)

发送他的 Gist PRD 到编码代理,一键生成整个系统。

Cole Medin 版(内部记忆)

# GitHub 仓库
https://github.com/coleam00/claude-memory-compiler

# 1. 在现有代码库中发送 README 的 quick start prompt 到 Claude Code
# 2. Claude Code 自动克隆 + 配置 hooks
# 3. 推荐用 Obsidian 打开项目目录作为 vault(可视化 wiki)

Obsidian 配置

  • 用 Obsidian 打开项目文件夹作为 vault
  • 推荐主题:Obsidianite + 暗色模式
  • Graph View 可视化知识网络

与我们现有系统的关联

我们当前 Hermes 系统(dtg-ob)的 llm-wiki 技能本质上就是 Karpathy 原版(外部数据)的实现。Cole Medin 的内部数据思路可以补充到我们的工作流:

我们已有的 可以借鉴的
llm-wiki(外部 → wiki 编译) Hooks 自动捕获会话日志
ob-query(wiki 查询) agents.mmd 元推理能力
wiki-full-ingest(全量编译) 每日 flush + linting 健康检查

参考资料

相关笔记