---
layout: single
title:  "WikiLLM：基于 LLM 驱动的个人知识库"
date:   2026-04-07 20:00:00 +0800
categories: [AI 与大模型, 教程实践]
tags: [WikiLLM, HarnessEngineering, Agent, Obsidian, AndrejKarpathy]
---

<!-- more -->

## WikiLLM

利用 LLM 构建个人知识库的系统。**WikiLLM** 将原始素材"编译"成结构化、交叉链接的高质量中文 Wiki，可在 **Obsidian** 中查看。

本项目基于 **Andrej Karpathy** 提出的理念构建。详见：[LLM Knowledge Bases](https://x.com/karpathy/status/2039805659525644595)

![](/images/2026/wikillm/claude_md.png)

### 项目概述

WikiLLM 的工作流包括：

1. **数据摄入**：源文档（文章、论文、代码库、数据集、图像）被索引到 `raw/` 目录
2. **Wiki 编译**：LLM 增量地"编译"原始数据成 markdown 文件的 wiki，包含摘要、反向链接、分类概念和相互链接的文章
3. **IDE**：Obsidian 用作前端查看原始数据、编译后的 wiki 和可视化
4. **问答**：LLM 可以通过研究相关数据来回答针对 wiki 的复杂问题
5. **输出**：结果渲染为 markdown 文件、Marp 幻灯片或 matplotlib 图像，可在 Obsidian 中查看
6. **Linting**：LLM"健康检查"发现不一致、填补缺失数据、建议新文章候选
7. **额外工具**：诸如 wiki 上的朴素搜索引擎等额外工具

### 核心原则

- **LLM 编写和维护所有 wiki 数据**；手动编辑很少见
- **用户探索和查询被归档回 wiki** 以增强它
- **系统专注于 markdown 文件和 Obsidian 兼容格式**
- **图像被下载到本地** 以便 LLM 轻松引用

### 目录结构

```
wikillm/
├── raw/              # 源文档和未处理数据
├── wiki/             # LLM 编译的 markdown wiki
│   ├── concepts/     # 核心概念文章
│   ├── practices/    # 实践指南文章
│   ├── visual/       # 可视化内容
│   ├── queries/      # 查询存档
│   ├── assets/       # 图像和资源文件
│   ├── INDEX.md      # 首页索引
│   └── Glossary.md   # 术语表
├── skills/           # Claude Code 技能
├── CLAUDE.md         # 项目特定的 Claude 指令
└── README.md         # 本文件
```

### 当前内容

本 wiki 当前包含关于 **Harness Engineering** 的综合知识库，基于以下来源编译：

- OpenAI - Harness Engineering：在智能体优先的世界中利用 Codex
- Anthropic - Harness design for long-running application development
- Martin Fowler - Harness engineering for coding agent users
- LangChain - Improving Deep Agents with harness engineering
- NxCode - Harness Engineering: The Complete Guide
- MiniMax - MiniMax M2.7: Early Echoes of Self-Evolution
- Mitchell Hashimoto - My AI Adoption Journey

### 快速开始

#### 使用 Obsidian Web Clipper 采集网页内容

1. 安装 [Obsidian Web Clipper](https://obsidian.md/zh/help/web-clipper)
2. 打开配置，新建模型 WikiLLM，设置笔记位置为 `raw/` 目录。

![](/images/2026/wikillm/obsidian-web-clipper.png)

#### 使用 Obsidian 采集图像和查看 Wiki

1. 安装 [Obsidian](https://obsidian.md/)
2. 在 Obsidian 中打开本仓库作为 vault
3. 配置下载的图像存储位置为 `raw/images/` 和下载图像的快捷键。

![](/images/2026/wikillm/obsidian-setting.jpeg)

![](/images/2026/wikillm/obsidian-setting-shortcut.jpeg)

从 `wiki/INDEX.md` 开始探索

![Obsidian 索引](/images/2026/wikillm/obsidian-index.png)

#### 采集信息

1. 打开安装了 Obsidian Web Clipper 的浏览器。
2. 浏览网页，当遇到有价值的内容时，单击 Obsidian Web Clipper 图标，选择 WikiLLM 模板，添加到 Obsidian。

![](/images/2026/wikillm/obsidian-web-clipper-save-to-obsidian.png)

3. 在 Obsidian 中可以看到新添加的 markdown 文件，使用快捷键批量下载页面中的图像。

#### 使用技能

本项目包含 Claude Code 技能用于生成 wiki：

```bash
# 在 Claude Code 中
/skills 编译 wiki
```

![技能界面](/images/2026/wikillm/skill.png)

详细说明请参阅 [skills/SKILL.md](https://github.com/wang-junjian/wikillm/blob/main/skills/SKILL.md)。

#### 导出 wiki 到 PDF

安装 `Better Export PDF` 插件

![](/images/2026/wikillm/better-export-pdf-third-plugins.jpeg)

![](/images/2026/wikillm/better-export-pdf-install.jpeg)

选择需要导出的 markdown 文件或文件夹，右键选择 `Better Export PDF` 即可导出为 PDF 文件。

![](/images/2026/wikillm/better-export-pdf-export-wiki.jpeg)

![](/images/2026/wikillm/better-export-pdf-export-pdf.jpeg)

![](/images/2026/wikillm/better-export-pdf-export-pdf-file.jpeg)

---


## [Andrej Karpathy: LLM Knowledge Bases](https://x.com/karpathy/status/2039805659525644595)

最近我发现一个非常实用的方法：利用大语言模型（LLM）为各类感兴趣的研究方向搭建个人知识库。这样一来，我近期消耗的模型令牌中，用于处理代码的占比大幅减少，更多被用于处理知识（以 Markdown 文件和图片形式存储）。

![](/images/2026/AndrejKarpathy/llm-build-wiki.jpeg)

最新的大语言模型在这方面表现十分出色。具体做法如下：

### 数据导入
我先将各类源文件（文章、论文、代码仓库、数据集、图片等）归档到 `raw/` 目录下，再通过大语言模型逐步“编译”生成一份知识库，这份知识库本质就是按目录结构组织的一系列 `.md` 文件。
知识库会包含 `raw/` 目录下所有数据的摘要、反向链接，还会将数据按概念分类、撰写对应词条并完成相互关联。
为把网页文章转为 `.md` 文件，我习惯使用 Obsidian 网页剪藏插件，同时通过快捷键将相关图片批量下载到本地，方便大语言模型直接调用。

### 集成开发环境
我把 Obsidian 当作前端 IDE，既能查看原始数据、编译后的知识库，也能查看衍生的可视化内容。
需要重点说明的是：整个知识库的内容撰写与维护均由大语言模型完成，我几乎不直接手动修改。我还试用过多款 Obsidian 插件，以其他形式渲染和查看数据（比如用 Marp 制作幻灯片）。

### 问答交互
真正有意思的是，当知识库规模足够大时（比如我近期的研究知识库已有约 100 篇词条、40 万字），就可以向大语言模型智能体提出各类复杂问题，它会自主检索、梳理并给出答案。
我原本以为需要用上复杂的检索增强生成（RAG）技术，但在当前这种小规模场景下，大语言模型能自动维护索引文件和所有文档的精简摘要，轻松读取全部关键相关数据，效果已经很好。

### 结果输出
我不满足于仅在文本或终端获取答案，更倾向于让模型直接生成 Markdown 文件、幻灯片（Marp 格式）或 Matplotlib 图表，所有内容都能在 Obsidian 中查看。
根据不同查询需求，还可以生成更多种可视化格式。通常我会把这些输出结果“归档”回知识库，进一步丰富内容，让后续的查询和探索持续为知识库积累价值。

### 内容校验
我会让大语言模型对知识库进行“健康检查”，比如排查数据矛盾、通过联网搜索补全缺失信息、挖掘潜在关联以生成新词条候选等，逐步优化知识库、提升整体数据完整性。大语言模型还很擅长提出值得进一步探究的问题。

### 辅助工具
我还自行开发了一些数据处理工具，比如快速编写了一个简易的知识库搜索引擎，既可以通过网页界面直接使用，也更常通过命令行接口（CLI）将其作为工具交给大语言模型，用于处理更复杂的查询。

### 后续探索
随着知识库仓库不断扩容，自然而然会考虑结合合成数据生成与模型微调，让大语言模型通过模型权重“真正记住”这些数据，而不只是依赖上下文窗口。

### 总结
从多个来源收集原始数据，由大语言模型编译为 Markdown 格式知识库；再通过各类命令行工具驱动大语言模型完成问答，并逐步完善知识库，所有内容均可在 Obsidian 中查看。几乎无需手动编写或编辑知识库，全程由大语言模型主导维护。我认为这一方向完全有潜力诞生一款出色的新产品，而非目前这种零散脚本的组合方案。
