
从 2021 年开始,我一直用 Notion 管理工作、学习和写作笔记。多维表格一度让我以为,笔记的组织问题终于解决了。
但几年下来,我遇到的仍然是同一批问题:会议纪要写完再也没人看,调研材料三个月后和记忆一起蒸发;明明记得讨论过某个问题,却怎么也找不到,即使找到了,也不知道当时为什么会得出那个结论。
今年年初,我转到 Obsidian。起初我以为这只是又一次工具迁移,后来才意识到,真正的变化不是从 Notion 换成 Obsidian,而是开始让 AI 参与知识库的长期维护。
过去的工具降低了「记下来」的成本,却没有降低「用起来」和「维护好」的成本。这篇文章要讲的,就是我如何用 Obsidian + Claude Code 搭建一套持续维护的知识库,并通过 Claudian 插件把日常操作集成在 Obsidian 内完成,尝试解决后两个问题。
现在最主流的「AI + 知识库」方案是 RAG(检索增强生成)。把文档切成小块,向量化后存进数据库;查询时取 top-k 相关片段,喂给 LLM 拼一个回答。在最常见的只读式 RAG 中,一次查询通常不会反过来更新知识库。
听起来很合理,但用起来有几个绕不开的问题。
RAG 擅长从材料中找到相关片段,但「发现矛盾、更新旧结论、建立长期关联」通常不在它的默认职责里。
让 AI 来维护笔记这个念头,不是我原创的。卡帕西(Andrej Karpathy)很早就提过类似的想法--既然 LLM 能读写文件,为什么不直接让它帮你维护笔记?他管这叫 LLM wiki。顺着这个思路,我开始想:如果 LLM 能读文件、写文件、理解上下文,那它能不能不只是帮我记笔记,而是帮我维护一个活的、可以自己生长的知识库?而 Obsidian 以本地文件为核心,这一点过去常被视为协作上的限制,但在 AI 直接读写知识库的场景中反而成了优势--AI 拿到的是你硬盘上最完整、最真实的笔记原文,而不是被切碎、被向量化之后的片段。
卡帕西的 LLM wiki 给了方向,网上也有很多开源方案,但我看了下都不太适合我,于是我和 AI 一起把这套东西共创了出来。
核心思路是让 LLM 来帮你维护笔记。它读一次原始来源,从中提取关键事实,写入结构化的笔记,然后持续维护。新内容到来时,自动更新受影响的旧笔记,而不是每次从头读原文。查询时直接读已经综合好的笔记,而不是在原始碎片里现翻。
知识库最耗人的不是阅读,而是持续记账;这恰好是 LLM 最适合承担的重复劳动。
为了看得更清楚,这里列一下两种方式的对比:
维度 | 常见的只读式 RAG | 持续维护式知识库 |
|---|---|---|
核心动作 | 切片->向量->检索->默认不写回 | 让 AI 读懂->写笔记->持续维护->自动更新 |
知识状态 | 源材料通常不因查询而更新 | 结构化,复利 |
查询成本 | 每次都走完整链路 | 读已综合的笔记,极低 |
长期维护 | 通常需要另行设计 | 核心价值所在 |
整个流程串起来,是这样的:
原始资料(只读)
↓
AI 提取事实与结论
↓
生成结构化笔记
↓
更新受影响的旧笔记
↓
矛盾校验(一致 / 软矛盾 / 硬矛盾)
↓
发现关联并补充 wikilink
↓
查询时直接读取维护后的知识
↓
按需检查矛盾、孤岛、重复与过期后面的每一章,基本都在解释这条链路上的某一环。
规则和工具先放一放,先把这条链路完整跑一遍。以一篇关于「工地验收」的新文章为例。
一篇工地验收文章进入 00-inbox/ 后,AI 会保留原文,生成结构化摘要,找到「空鼓」「基装」等受影响的旧笔记,判断新旧结论是否冲突,再更新内容并补充双向链接。以后查询相关问题时,直接读取这些维护过的笔记;隔一段时间,我再主动检查孤岛、重复和过期内容。具体每一步的机制,下一节「收录」会展开。
这套做法区别于传统笔记的核心差异:笔记体系不是静态文档的集合,而是一套持续运行的维护流程。它主要跑在我 vault 的长期积累区--10-work/、20-knowledge/、50-creative/ 的学习和写作区,以及会议修正版笔记。日常其实只做三件事。
这条路上最常做的事。每次有一个新内容(文章、会议纪要、调研报告),不是简单存档,而是走一套完整的「让 AI 维护」流程。落在 00-inbox/ 里的新资料,我会先让 inbox-organizer skill 整理一过--标准化 frontmatter、判断该归到哪个目录、补上 description 和 tags,再进入正式收录。
> [!warning] 标注,等人工裁决后再落盘。一次收录的收益是持续的。下次再问相关问题,不需要重新消化全部原始材料,只需定位并读取已经维护过的笔记。
我的查询流程和常见的只读式 RAG 有一个关键差别:它优先读取已经持续维护过的笔记,而不是每次都从原始材料片段开始拼答案。
和搜索引擎的本质区别在这里。搜索引擎帮你找到网页,查问帮你综合已有的结构化知识。前者是「找」,后者是「用」。
这条路独有的。传统笔记从来没有体检的概念,笔记烂了就烂了,没人知道。体检由我显式触发,不靠定时任务--平时收录时已经过过矛盾校验门,体检是隔一段时间再兜一道。
检查五个维度:
关键原则,体检不擅自删除。先出报告,人工确认后再操作。即使确认要删,也会先移到 workspace/trash/ 保留可恢复性。
看完这三件事,你大概也能感觉到:收录、查问、体检每一步,都需要 AI 按一套固定的规矩来。这些规矩,就写在我的 CLAUDE.md 里。
如果这套 AI 维护的笔记库是一家公司,那 CLAUDE.md 就是这家公司的员工手册。告诉 AI 我们公司是做什么的(这是 Obsidian vault)、每个部门负责什么(目录说明)、什么事不能做(禁止事项)、工作流程和规范(写作规范)、公司有什么特色工具(Obsidian 功能)。有了这本手册,AI 就能像老员工一样,不用每次都问,直接按规则做事。
Claude Code 启动时会自动读取工作目录下的 CLAUDE.md。这意味着你不需要每次打开终端都重新解释一遍「这是我的 Obsidian vault,图片要放到 30-assets/img/,不要删除文件」。更重要的是,当你有多个 Skill、多个工作流之后,CLAUDE.md 是唯一的全局约束层。Skill 只管自己的任务,CLAUDE.md 管所有任务的共同底线。
我的 CLAUDE.md 迭代了很多版,最后沉淀出五个关键模块。
第一,Vault 身份与格式。 告诉 AI 这是 Obsidian Vault,不是普通文件夹--使用 [[双向链接]] 连接相关笔记、用 YAML frontmatter 管理属性、图片用 ![[图片路径]] 嵌入、总结和报告中引用来源笔记时优先使用 wikilink。这点很关键,因为很多 AI 对 Markdown 的默认行为是「当成纯文本文档处理」,你不说,它就不会主动建立双向链接,不会在前置元数据里填 tags,也不会把图片放到正确的目录。这些看起来不重要的细节,恰恰是知识库长期可维护性的基础。
第二,目录职责。 写清楚每个目录是干什么的。我的目录结构,摘自实际 CLAUDE.md:
docs/
├── 00-inbox/ # 收件箱,新内容暂放,待分类
├── 10-work/ # 工作区,进行中的工作
├── 20-knowledge/ # 长期知识库
├── 30-assets/ # 资产区(图片、模板、会议纪要)
├── 40-archive/ # 长期归档
└── 50-creative/ # 个人创作区当你说「帮我把这篇调研整理到合适的位置」,AI 看到这个目录说明,就知道技术选型调研放 20-knowledge/references/,会议纪要走 30-assets/meeting/。不用每次都解释。
第三,安全边界。 写清楚不能做什么,这比能做什么更重要:不直接删除文件(即使确认删除也必须先移动到 workspace/trash/ 保留可恢复性)、所有正式图片资产统一存放于 30-assets/img/ 并用描述性文件名、不要破坏 YAML frontmatter、不要覆盖原始会议纪要(生成修正版时新建 _修正版.md)。AI 有读写文件的能力,不划红线,它有时候会好心办坏事--比如为了让目录「更好看」批量重命名你的文件,或者把截图随手放在根目录。
第四,笔记类型。 统一写作规范,用 frontmatter 建立类型系统:
---
created: 2026-05-09
updated: 2026-05-09
type: meeting-note # meeting-note | report | source | concept | reading-note | pattern
tags:
- 验收
status: Draft
---我把每篇笔记的 type 显式标注出来。meeting-note(会议纪要)、source(外部来源的摘要)、concept(主题笔记)、reading-note(精读笔记)、pattern(可复用模式)。这本质上是用 YAML 给笔记体系建立一个类型系统,让 Obsidian 的搜索、Bases、Graph view 都能正常工作。
第五,工作流程。 收录、查问、体检这三件事,每件都写成显式的步骤序列,让 AI 严格遵循,不自由发挥。也就是上一节讲的那三件。
一个实用技巧。CLAUDE.md 不需要从零手写。更有效的做法是先用 Claude Code 的 /init 指令自动生成一版初始说明,然后每次发现 AI 做了你不满意的事,就把对应的规则加进去。这个过程是逐步迭代的,你不可能第一天把所有规矩都定好,但每次纠正都会让后续合作更顺畅。完整的 CLAUDE.md 比较长,我在文末放了一份教程链接,感兴趣的可以照着搭。
如果 CLAUDE.md 是宪法,三工作流是法律程序,那工具链就是执法力量。我的经验是少即是多--每个工具只负责一件事,组合起来才不会乱。
层次 | 工具 | 职责 |
|---|---|---|
知识载体 | Obsidian | 保存 Markdown、链接与元数据 |
AI 执行器 | Claude Code | 读取、整理和更新文件 |
全局规则 | CLAUDE.md | 约束所有操作 |
可复用流程 | Skill | 固化收录、会议、周报等任务 |
关联发现 | graphify | 发现隐含关系与知识社区 |
链接回写 | wiki-relate | 将关联写回笔记 |
CLAUDE.md 上一章讲过了,下面分别看其余几个。
为什么是 Obsidian 而不是 Notion 或纯文件夹?三个根本原因。
我当前在用的核心插件/功能:
插件/功能 | 用途 |
|---|---|
Backlinks / Graph view | 双向链接与图谱视图,原生功能 |
Bases | 数据库视图,按 frontmatter 属性筛选笔记 |
Dataview | 用类似 SQL 的语法查询笔记元数据 |
Templates | 模板引擎,批量生成结构化笔记 |
obsidian-git | 自动 commit + push,版本控制保底 |
Claudian | Claude Code 在 Obsidian 内的集成面板,直接对话操作 vault |
一个实用建议。不要一上来全装。先装 obsidian-git(保底)和 Templates(提效),其他边用边装。
很多人以为 Claude Code 只是写代码的工具。但其实,Claude Code 是一个可以读写任何文本文件的 CLI。把它指向 Obsidian vault 的根目录,它就变成了一个可以理解你全部笔记上下文的 AI 助手--收件箱整理、会议纪要修正、精读笔记、周报生成,这些日常操作它都能做,背后是各个 Skill 在跑(下一节展开)。
Claude Code 的威力不在任何一个单独的功能,而在于所有这些能力共享同一份 CLAUDE.md 规则。AI 不需要每次重新理解你的知识库结构,它读完 CLAUDE.md 就知道目录怎么走、格式怎么来、什么不能做。
如果说 CLAUDE.md 是公司基本法,那 Skill 就是具体岗位的标准操作手册。我把它叫作「专业工具箱」,每个工具都是为特定场景定制好的,拿起来就能用,不用自己从零打造。
什么时候你需要一个 Skill?当你发现自己反复对 AI 说同样的话的时候。
「以后帮我整理会议纪要时,都要:只修明显的 ASR 错误、不改动原意、保留决策和待办、输出修正版和修正总结。」
这段话说三遍就该沉淀成 Skill 了。我日常把常用的流程都沉淀成了 Skill,需要时一句话调用,不用每次重新交代。几个我自己沉淀、最常用的:
加上前面讲过的 wiki-relate,这几个 Skill 覆盖了我知识库日常的收录、整理、关联和产出。
graphify 是一个开源工具,项目地址在 GitHub。它扫描指定目录,提取笔记中的实体和关系,生成一张可查询的知识图谱。相比关键词搜索,它更适合发现没有被显式标注的关联--比如多篇笔记都提到「空鼓」,它能把这几篇连起来,还能做社区发现,把紧密关联的笔记聚成知识板块;它也能暴露知识缺口和孤岛笔记,让体检有据可依。
但关联如果只停留在图谱里,笔记本身仍然没有变化。因此我又基于 graphify 自建了 wiki-relate skill:新建或大改笔记后,自动在文末加入「## 参考信息」章节,把相关页面以 wikilink 写回笔记。简单说,graphify 负责发现,wiki-relate 负责记账。它还支持精细控制:frontmatter 里写 wiki-relate: skip 显式跳过(比如草稿不想被关联)、wiki-relate: force 强制关联;命令支持 --dry-run 预览不落盘、--skip-update 连续多篇时跳过图谱更新。
这些维护动作都不靠定时任务,而是由具体动作触发:整理 inbox 时会触发 graphify 更新,新建或大改笔记会触发 wiki-relate 补链。人脑记不住所有关联,笔记越多,这一对工具就越不可或缺--这正是前面那句话的落地:记账是 LLM 最适合承担的重复劳动。
[!note]- graphify 的产物与命令 对指定目录运行
graphify <path>,自动提取实体和关系构建图谱。运行后在graphify-out/产出三类资产:交互式 HTML 图谱(graph.html)、结构化数据(graph.json)和文字报告(GRAPH_REPORT.md)。查询用graphify query "<问题>",打开graph.html看可视化图谱。
这条路最大的陷阱是「什么都要收录」,这会导致噪音淹没信号。
我的输入规则很简单。 只收集能回答某类问题的内容。比如验收知识库只收四类信息:验收标准(「这个地方合格吗?」)、历史验收记录(「之前类似情况怎么处理的?」)、常见问题(「这个问题怎么解决?」)、优秀案例(「好的做法是什么样的?」)。如果一篇内容不属于任何明确的「可查询问题域」,它就不应该占用收录的精力。
我见过很多人花三周设计一个「完美的目录体系」,然后用了三天就发现不合适。
正确做法。 先有 00-inbox/ 和 10-work/,边用边长。当某个目录下文件超过 30 个、开始感到混乱时,再拆分子目录。让结构从实际需求中长出来,而不是从想象中设计出来。一句话:先让它存在,再让它变好。
AI 有读写文件的能力,不划红线,它有时候会好心办坏事--比如为了让目录「更好看」批量重命名你的文件,或者把截图随手放在根目录。
其中图片的混乱是知识库退化的头号杀手。「截图放根目录」「同一张图出现在三个地方」「命名全是 image.png」,这些问题不会立刻致命,但三个月后当你要找一张架构图时,你会发现时间全浪费在翻文件上。
我的规则很简单。 所有正式图片资产统一放 30-assets/img/,用描述性文件名(不要 image.png),在笔记中用 ![[img/文件名]] 引用。这条规则写在 CLAUDE.md 的「禁止事项」里,AI 会严格遵守。
我的 CLAUDE.md 现在的版本比第一版长了 5 倍。不是因为一开始没想清楚,而是每次发现 AI 做了不符合预期的事,我就追一条规则进去。
一个好习惯。 每次 AI 让你皱眉头,问自己一句「我能在 CLAUDE.md 里加一条什么规则来防止这种事再次发生?」两个月后,你的定制化规则就是你的知识库最大的护城河。
知识库的建设靠的是长期养,而不是三分钟热度。
每天花 10 分钟做一点(把 inbox 清空、给新笔记补两条 wikilink),比一个月突击一天效果好十倍。知识的复利效应需要时间才能显现,你的第二大脑不会一夜之间变聪明,但它每天都在变聪明一点点。
如果你看到这里想动手试试,我之前在培训的过程中,给大家留过一些课后练习,仅供参考。
第 1 天,30 分钟。
第 3 天,15 分钟。
第 7 天,20 分钟。
第 14 天,30 分钟。
两周后,你会开始感受到知识复利的苗头。以前翻半天找不到的东西,现在几个 wikilink 跳转就到了。
回顾这段实践,我最深的体会:
知识库不是用来「看」的,是用来「用」的。
一个只能看的知识库,无论结构多精美、笔记多丰富,最终都会变成电子坟墓。真正有价值的知识库,是当你做决策、写报告或准备会议时,能以很低的成本调出相关上下文、历史判断和关联材料,而不必重新翻找全部原文。
这需要三个前提。
从「找资料」到「用知识」,中间差的不是更好的工具,而是一套让知识自己生长、自己记账、自己质检的机制。这套机制,Obsidian + Claude Code 给得了你。