一只阿木木

程序员视角:为什么知识管理本质上是一个工程问题

程序员视角:为什么知识管理本质上是一个工程问题

我做了很多年后端开发。

Java、Spring Boot、数据库设计、系统架构。

这些年养成了一个习惯:

遇到问题,先想清楚它的本质是什么。

所以当我开始认真对待「知识管理」这件事的时候,我也用了同样的方式想这个问题。

知识管理,到底是一个什么问题?

我最开始的理解是错的

最开始我觉得,知识管理是一个习惯问题。

只要我足够勤奋,每天记笔记,每本书都写读书报告,每个想法都整理归档,知识自然就管理好了。

于是我买了漂亮的笔记本,装了 Notion,折腾了一套 Zettelkasten,还看了很多知识管理大佬的教程。

结果呢?

笔记越来越多,但真的需要用的时候,我还是找不到。

找到了,也不知道怎么用。

用了,发现它和我当前的项目没有真正的连接。

我陷入了一个循环:

text

记 → 整理 → 忘 → 重新记 → 再整理 → 再忘

直到有一天,我突然意识到:

我是在用管理「个人习惯」的方式,解决一个「系统工程」的问题。

难怪解决不了。

换一个视角看知识管理

作为程序员,我每天处理的核心问题是什么?

text

数据怎么存?
数据怎么查?
数据怎么被系统调用?
数据怎么产生价值?

你看,这四个问题,和知识管理的核心问题,完全一样:

text

知识怎么存?
知识怎么找?
知识怎么被 AI 调用?
知识怎么驱动项目?

那一刻我意识到:

知识管理不是习惯问题,而是工程问题。

它需要的不是更勤奋,而是更好的系统设计。

用工程思维重新理解知识管理

让我具体拆解一下。

知识库 = 数据库

做后端的人都知道,一个好的数据库设计,核心不是「存了多少数据」,而是:

text

数据结构是否合理?
索引是否完善?
查询是否高效?
数据之间的关系是否清晰?

你的知识库也一样。

一个堆满笔记的 Obsidian,和一个设计糟糕的数据库没有区别。

数据量越大,查询越慢,最终系统崩溃。

而一个好的知识库,应该像一个好的数据库:

text

结构清晰(文件夹 = 表结构)
有索引(标签、双链 = 索引)
关系明确(wikilink = 外键关联)
可以高效查询(搜索 = SQL 查询)

结论:与其每天记笔记,不如先花时间设计好知识库的「表结构」。

调用知识 = 写查询语句

做后端时,我从来不会把整个数据库都读进内存,然后再在内存里找我要的数据。

我会写一条精确的 SQL:

SQL

SELECT insight, source, tags
FROM knowledge_base
WHERE project = 'AI第二大脑'
  AND topic IN ('知识管理', '第二大脑', 'PKM')
ORDER BY relevance DESC
LIMIT 10;

但大多数人用知识库的方式是:

打开 Obsidian,开始翻。

这相当于:

SQL

SELECT * FROM knowledge_base;
-- 然后用眼睛扫一遍

数据量小的时候没问题。

数据量大了,这个方式彻底崩溃。

所以我现在让 Claude 调用知识库的方式,更像是在执行一条精确的查询:

text

请在 02-notes/ 里找到所有和「知识复用」相关的内容,
结合 01-books/ 里关于 PKM 的 Skill,
返回可以支撑「知识库不是仓库」这个观点的具体内容。

这不是在和 AI 聊天。

这是在用自然语言写查询语句。

CLAUDE.md = 接口文档

做后端时,我们有一个东西叫接口文档。

它告诉调用方:

text

这个系统能做什么
输入是什么格式
输出是什么格式
有哪些限制和规则
哪些字段是必填的

没有接口文档,对接就是噩梦。

每次调用都要猜,猜错了就报错,然后来回沟通,效率极低。

CLAUDE.md,就是我给 Claude 写的接口文档。

它告诉 Claude:

text

这个知识库是谁的
它能做什么
文件结构是怎样的
有哪些规则和限制
输出时要遵循什么格式

没有 CLAUDE.md,Claude 每次进入我的 Vault 都是从零开始理解。

有了 CLAUDE.md,它能立刻知道「这里是阿木木的知识库,应该这样工作」。

结论:CLAUDE.md 不是配置文件,是系统接口文档。它的质量决定了 AI 能不能真正理解你的系统。

book-to-skill = 模块化封装

做后端时,我们不会把所有逻辑都写在一个方法里。

我们会把功能封装成模块、组件、服务。

需要用的时候,直接调用。

Java

// 不是这样
// 把所有逻辑全部堆在一起

// 而是这样
BookService.getInsights("building-a-second-brain", topic);

book-to-skill 做的就是这件事。

它把一本书封装成一个模块。

需要用的时候,直接调用这个 Skill。

不需要的时候,它就静静待在那里,不消耗任何资源。

这是程序员最熟悉的思路:

先封装,后调用。

Obsidian + Claude Code = 运行时环境

后端系统有一个概念叫运行时环境。

它是代码真正执行的地方。

代码写好了,要跑起来,需要一个运行时。

我的知识系统也一样:

text

Obsidian = 代码仓库(存储所有知识)
Claude Code = 运行时(真正执行任务的引擎)
Claudian = IDE(我和运行时交互的界面)

三者缺一不可。

只有 Obsidian,知识是静态的,不会自己动。

只有 Claude Code,没有知识库,AI 是通用的,不是你的。

Claudian 把两者连在一起,让知识在项目现场运转起来。

为什么大多数人的知识管理失败了?

用工程的视角来看,答案很清晰:

text

他们在写代码,但没有系统设计。
他们在存数据,但没有数据库设计。
他们在调接口,但没有接口文档。
他们在开发,但没有运行时环境。

这不是态度问题,不是勤奋问题。

这是工程问题。

工程问题,要用工程方法解决。

我想说的话

我不是要告诉你,只有程序员才能做好知识管理。

我是想告诉你:

当你把知识管理当成一个系统工程来设计,很多困惑会自动消失。

你不会再纠结「我应该用 Notion 还是 Obsidian」。

因为一个有经验的工程师知道:

工具不重要,架构才重要。

你不会再焦虑「我记的笔记不够多」。

因为工程师知道:

不是数据量的问题,是查询效率的问题。

你不会再迷茫「AI 怎么帮我管理知识」。

因为你知道:

AI 是运行时,知识库是代码仓库,CLAUDE.md 是接口文档。先把系统设计好,再谈运行。

用工程思维搭知识系统,不是程序员的专利。

它只是一种更清醒的方式,看清楚你真正在做一件什么事。

我是【一只阿木木】,AI 知识系统架构师,坐标杭州。

扫码加入行动营👇获取更多Obsidian + AI数字大脑实践

Image

关注【一只阿木木】。

我相信:在 AI 时代,每个普通人都该拥有一个自动生长的知识系统

去做,才是真的学。🌊