Skip to content

重读Unix编程艺术:50年前的设计智慧,如何启发AI时代的知识库构建

Published:

刚重读了 Eric S. Raymond 的《Unix 编程艺术》,一本二十年前的软件哲学经典。

读着读着发现一件事,这本书表面上在讲操作系统和软件设计,但它的底层智慧,几乎可以逐条映射到今天我自己用 AI x Obsidian 构建个人知识系统的实践上。

Unix 哲学的核心问题是:如何在复杂性和灵活性之间找到平衡? 这恰恰也是知识管理要回答的核心问题。

这篇文章,我想把 Unix 的几条关键设计原则,和我自己构建知识库的实践做一个对照。

当然,不是为了类比而类比,而是因为这些对照确实能帮我们想清楚一些东西

01

做好一件事:原子化卡片的原则

一卡一念,才能被连接、被复用、被组合

Unix 哲学最著名的一条:每个程序只做一件事,并把它做好。

sort 只排序,uniq 只去重,grep 只搜索。每个工具都足够简单,足够可靠。没有一个工具试图大而全地解决所有问题。

映射到知识库:一张卡片只装一个想法。

这是 Zettelkasten 卡片笔记法的核心原则,也是我在 Obsidian 实践中最深刻的体会。

原子化卡片原则是卢曼卡片盒笔记法(Zettelkasten Method)的核心原则之一

一张卡片讲清楚一个概念、一个观点、一个案例,它就能被灵活地连接、组合、复用。

如果你把一张卡片写成了一篇文章,什么都有,什么都不聚焦,它就失去了原子化的灵活性。

就像 Unix 里,下面这组 Bash 命令:

git log | sort | uniq -c | sort -nr

四条命令,各自只做一件事:

这条管道,每个工具各自只做一件简单的事,但组合起来就能生成一份完整的贡献排行榜

知识库里的卡片也是如此:单张卡片看起来不过如此,但通过双向链接和 MOC(内容地图)组合在一起,就能涌现出远超个体之和的理解。

本篇文章也是受到我自己知识库上面这些卡片的启发

知识库的力量来自于卡片之间的链接,而不是任何一张孤立的卡片。

02

管道与组合:链接胜过分类

别问属于哪一类,要问能和谁组合

Unix 真正的杀手级发明不是某个具体程序,而是管道(pipe),用 | 把简单工具串成复杂工作流。

管道的核心思想是:不需要一个超级程序来处理所有事情,只要每个程序的输出可以作为下一个程序的输入,你就能通过组合来完成几乎任何任务

映射到知识库:双向链接就是知识库的管道。

传统的知识管理依赖分类,把笔记塞进文件夹层级里。但分类是刚性的:一篇笔记该放”学习方法”还是”认知科学”?一篇关于 Unix 管道设计的读书笔记,该放”编程”还是”设计哲学”?

Obsidian 的双向链接给出了一种更优雅的方案:不强制分类,而是通过链接让知识自然关联。

一篇关于”涌现”的卡片可以同时链接到”复杂科学”、“系统思维”、“蚁群行为”、“知识网络”,就像 Unix 管道可以把任意工具组合在一起一样。

奥斯卡最佳原创剧本奖得主 Dustin Lance 的剧本创作流程就是围绕卡片来的,一部电影转换为排满一张桌子的卡片,剩下的是卡片的排列、删除与重组

MOC(Map of Content)则相当于一个精心编排的管道脚本:它不存储新知识,而是把已有的卡片按主题组织起来,形成一条阅读路径。

你可以有多张不同的 MOC 指向同一批卡片,就像同一个工具可以出现在不同的管道中。

关键洞察:不要问这个知识属于哪个分类,而要问这个知识能和哪些知识组合。

03

一切皆文件:Markdown 的统一接口

纯文本是接口,工具可以换,数据留给你

Unix 做了一件非常优雅的事:它把硬盘、键盘、打印机、网络套接字……统统抽象为”文件”。你用同一套 read/write 接口就能操作所有东西。

这极大地降低了系统的复杂性。开发者不需要为每种设备学习不同的 API,只要理解”文件”这一个概念就够了。

映射到知识库:一切皆 Markdown。

Obsidian 的核心理念是”File over App”,你的笔记不是某个应用数据库里的私有格式,而是文件系统里普普通通的 Markdown 文件。这意味着:

就像 Unix 的一切皆文件让不同程序可以无缝协作一样,Markdown 的一切皆纯文本让不同的工具和工作流可以在你的知识库上自由组合

实际上,这也是为什么 Obsidian 碰上 AI 后发挥出更大价值的重要原因,Markdown 纯文本文件天然对 AI 友好呀。

04

透明性原则:可理解的知识系统

能看见输入与输出的系统,才值得信赖

Unix 的透明性原则说的是:系统的内部状态应该是对用户可见的。

不要用复杂的抽象层把实现细节藏起来。当系统出问题时,用户应该能直接看到哪里出了问题,而不是面对一个黑盒。

映射到知识库:你的知识系统应该是你”看得见”的。

这听起来理所当然,但实际操作中很多人忽略了。如果你用 Notion 那样的数据库视图管理知识,看起来很漂亮,但你很难看到知识之间的真实关系。你看到的是表格和标签,不是连接和网络

Obsidian 的图谱视图、反向链接面板、搜索功能,这些工具的目的都是让知识库的内部状态变得可见。你能看到一张卡片被哪些其他卡片引用,能看到一个主题周围聚集了哪些知识点,能发现原来这两张卡片居然有关联。

透明性的另一个层面是:AI 的作用过程也应该是可见的。

当你让 AI 帮你整理笔记、生成摘要时,你应该能追溯它用了哪些材料、做了什么判断。

AI 不应该是一个黑盒,而应该像一个透明的管道,你能看到输入是什么、输出是什么、中间发生了什么。

这也是为什么我在实践中坚持:所有进入知识库的内容,必须经过自己的大脑。AI 帮助整理,但人负责判断。

05

早发布、常发布:先完成再完美

粗糙的完整,胜过从未落地的完美

开源社区有一句名言:Release Early, Release Often. 早发布,常发布。

不要等到代码完美了才发布第一版。先让一个能跑的版本出去,然后根据反馈迭代。足够多的眼球,所有 Bug 都会浮出水面。

映射到知识库:输出是学习的一部分,而不是学习之后的附属品。

很多人的知识管理习惯是:先把知识收集好、整理好,等到准备好了再输出。结果往往是永远没有准备好的那一天。

Unix 的早发布哲学提醒我们:不完美的输出远比从未发布的完美更有价值

这也是我正在努力践行的一点:不要等什么都准备好再输出,输出本身就是学习。完成比完美重要。

06

简洁原则:大道至简

完美不是再加一点,而是无可再减。

Eric Raymond 在书中引用了 Saint-Exupéry 的话:

完美不是没有什么可以再加的了,而是没有什么可以再减的了。

Unix 的简洁原则警告我们:不必要的复杂性是万恶之源。 代码如此,系统如此,知识管理也是如此。

在知识库实践中,最大的陷阱不是做得太少,而是做得太复杂

你可能见过这样的知识库:十几层文件夹嵌套、几十个标签体系、各种复杂的模板和流程……看起来很专业,但实际上维护成本极高,用着用着就放弃了。

Unix 告诉我们:好的系统不是功能最多的系统,而是恰好够用的系统

老子说:万物之始,大道至简,衍化至繁。

说的是同一件事:先抓住本质,让复杂性在需要的时候自然涌现,而不是一开始就强行设计。

实际上,我自己开源的AI知识库模板,尽管已有所克制,但还是不够简洁,不过本着先完成再完美的原则,发布出来,用起来再说。

07

结语

工具会换,好的原则却仍能指引你设计自己的知识系统

随着自己越来越频繁的使用 AI 知识库,我也开始把 Unix 哲学作为知识库演进的底层方法论之一。

Unix 已经存在了超过 50 年。它之所以能存活这么久,不是因为它功能最强大,而是因为它的设计原则足够好:模块化、可组合、简洁、透明

这些原则不只适用于操作系统,也适用于任何需要处理复杂性的系统,包括我们自己的认知系统。

当你用 AI x Obsidian 构建知识库时,你本质上是在设计一个认知操作系统,一个管理你的输入、整理、提取、应用和输出的系统

50 年前的设计智慧,在今天依然有力。因为好的设计原则是跨时代的。

如果你也在用 AI 和 Obsidian 构建自己的知识系统,不妨试试用 Unix 的眼光重新审视它,再去迭代。

[全文完]

对 Obsidian 知识库感兴趣的话,可以看看我之前写的几篇文章:

✦ BETTER, EVERY DAY ✦

如果你对 AI 时代如何创作与学习 感兴趣

请添加下方微信,一起学习交流


下一篇
蒸汽,钢铁,无限心智【翻译】