第二大脑:Markdown+YAML+PARA+Zettelkasten

使用 Obsidian 结合 Markdown 笔记、YAML 元数据和直接 AI 文件访问,构建一个具有 LLM 的第二大脑,从而为您的工具提供持久的项目上下文。

背景
蒂亚戈·福特的“构建第二大脑”方法论引入了 CODE 框架:捕获、组织、提炼、表达。

对于开发人员来说,这直接关系到如何在项目中学习、记录和重用知识。

社会学家尼克拉斯·卢曼(Niklas Luhmann)著有 50 多本书,他  使用装有相互连接的原子纸条的实体纸条盒开发了Zettelkasten 方法。
你的Obsidian 就是那个滑槽,你的人工智能可以随时搜索、分析和扩展它。

LLM 有三种类型的记忆:参数记忆(训练期间编码的知识)、工作记忆(当前上下文窗口)和外部记忆(磁盘上的文件)。
你的第二大脑填充了外部存储层,使人工智能能够永久访问你特定于项目的知识,这些知识在每次会话重置后仍然存在。

就像 LLM 中的神经网络将模式存储在权重中一样,你的“第二大脑”将模式存储在链接的 Markdown 文件中,利用你作为开发者的生活经验来扩展模型的记忆。

Andrej Karpathy  用一句话概括了这种架构:“Obsidian 是 IDE;LLM 是程序员;wiki 是代码库。”
您添加到每条笔记的前言部分将作为结构化元数据,显著提高人工智能检索和排序相关信息的能力。
RAG(检索增强生成)管道将您的笔记嵌入为向量,并在您提出问题时返回语义最相似的向量,并将它们直接注入到 AI 的上下文窗口中。


本地Markdown文件正在成为AI的外挂大脑

很多人可能没意识到,AI其实特别擅长读文本文件。你扔给它一个Markdown,它就跟看小作文一样轻松。关键是Markdown太简单了。没有复杂的格式,没有加密的二进制,没有需要特定软件才能打开的限制。你拿记事本就能写,Git能追踪每一次改动,放到网上能直接变成网页,喂给AI它就能理解。这东西几乎就是为人和机器共读而生的。

实际用法也特别朴实。你就把每次跟AI聊出来的有用结论,存成一个.md文件。比如你搞定了Nginx配置问题,就把最后的正确配置和踩坑过程存下来。你解决了数据库死锁,就把原因和修复方案存下来。你做了一个架构决策,就把背景、选项和最终选择存下来。不要小看这些动作,它们就是AI以后能记住你的全部基础。没有这些文件,AI就是瞎子。有了它们,AI突然就有了长期记忆。

真正有效的方法其实特别简单粗暴。你把所有的知识、决策记录、调试过程、会议纪要、架构说明,全部存成AI能直接读取的Markdown文件。关键点在于这些文件必须存放在本地,是纯文本格式。不是某个云平台的黑盒子,也不是需要联网才能调用的API,就是简简单单放在你硬盘里的点md文件。

Markdown这个格式简直绝了,人类能看懂,Git能追踪修改历史,大语言模型能直接解析,本地模型能建立索引,甚至静态网站生成器都能拿它直接搭文档站。它就像程序员世界里的一块压缩饼干,平时看着不起眼,关键时刻能救命。

YAML元数据终于让笔记从垃圾堆里站起来了

如果只是堆Markdown文件,时间长了也会出问题。你会发现自己的文件夹里躺了几百个文件,标题从“笔记1”一直到“笔记268”。你想找三个月前那个关于JWT刷新的踩坑记录,搜“JWT”出来四十个结果,搜“token”出来六十个,搜“登录”出来一百个。根本找不到想要的东西。这时候你才意识到,光有内容不行,还得有索引。

YAML Frontmatter就是干这个的。你把它写在每个Markdown文件最开头,用三个短横线包起来。里面写上title、type、status、tags、date、related这些字段。相当于给每个文件办了一张身份证。AI读文件的时候,第一眼就能看到这些元数据,立刻知道这个文件是什么类型,属于哪个项目,目前是草稿还是定稿,跟哪些其他文件有关联。没有这套东西,你的知识库就像一本没有目录没有页码没有封面的书。有了它,AI终于学会了查字典,而不是只能从头到尾瞎翻。

很多人写笔记最大的问题不是内容少,而是写完之后再也找不到。你今天记录了一个JWT token刷新方案的踩坑记录,明天写了一个Redis缓存穿透的解决方法,后天又补了一个数据库连接池配置的最佳实践。半年之后你再回头看自己的笔记仓库,感觉像走进了一个地震过后的图书馆,满地都是纸箱子,箱子上没标签,你根本不知道哪个箱子装的是什么。

更可怕的是,你搜索“登录认证”这四个字,一下子跳出三百个文件,你根本分不清哪个是最新的、哪个是废弃的、哪个是实验性质的。AI看到这种混乱状态也得懵,因为它只能看到一堆乱七八糟的文本,完全搞不懂这些文件之间的关系。

这时候YAML Frontmatter就派上大用场了。它本质上就是在每个知识文件的最开头贴上一张标签纸。文件叫什么名字,属于什么类型,当前状态是草稿还是定稿,关联哪个模块或者组件,涉及哪些技术栈,什么时候创建的,跟哪些其他内容有关系,所有这些信息都能用结构化的方式写进去。

以前你的笔记像一堆随意堆在地上的纸箱子,现在你终于开始买货架、做标签、搞分类系统了。AI读取这些元数据之后,能力直接暴涨一大截。因为它第一次能像操作数据库一样筛选知识,而不是像游客逛迷宫一样瞎转悠。

PARA结构把知识库从城中村变成了城市规划

很多人的文件夹结构完全是灾难现场。今天建一个“新建文件夹”,明天建一个“重要”,后天建一个“最终版”,一周后又来一个“最终版2”。更夸张的是,有的人会建一个“不要动”文件夹,然后自己都忘了里面放了什么。这种混乱程度,别说AI看不懂,人自己都看不懂。你的知识库像被龙卷风刮过的超市,货架东倒西歪,商品洒了一地。

PARA结构就是来拯救这种场面的。

Projects放有明确截止日期的事情,比如“五月版本发布计划”。
Areas放你持续负责的领域,比如“后端API设计”“数据库维护”。
Resources放你收集的资料和参考,比如“Redis官方文档摘录”“云成本优化文章”。
Archives放已经结束或不用的东西,比如“去年废弃的微服务方案”。

这个分类特别符合大脑直觉。AI看到这套结构,立刻就知道哪个文件是活跃任务,哪个是长期职责,哪个只是参考材料。以前你的知识库是城中村,现在终于变成有主干道有功能分区的城市。


PARA这套结构之所以这么流行,就是因为它简单到令人发指:Projects放那些有明确截止日期的项目,Areas放你需要长期负责的领域,Resources放各种参考资料,Archives放已经归档不再动的内容。

这个分类方式特别贴合人类真实的工作方式。比如说“支付系统重构”这件事,它有明确的时间节点,那就放在Projects里。而“后端架构能力”这个你需要持续提升的领域,就放在Areas里。

“PostgreSQL性能优化资料”这种参考内容,自然而然地归到Resources。去年那个做到一半就放弃的Side Project,直接扔进Archives。AI看到这样的结构,终于能理解你的工作上下文了。以前你的知识库像城中村一样电线乱拉、违建遍地,现在终于开始出现道路系统、仓储区和工业园规划。

单个文件只讲一件事让AI能精准定位知识

很多人写笔记特别喜欢写长篇小说。一个文件里同时讲了缓存击穿、数据库索引、部署流水线、前端打包、团队成员聚餐吐槽和猫的照片。这种文件喂给AI,AI会陷入严重的困惑。因为它分不清哪些是核心知识,哪些是废话,哪些是情绪发泄。你问它缓存击穿怎么解决,它可能从猫的照片里给你编出一套方案。

Zettelkasten方法的核心理念其实特别简单:一个文件只写一个原子概念。

比如你专门写一个文件讲“Redis缓存击穿的原因”,再写另一个文件讲“解决缓存击穿的三套方案”,再写一个文件讲“我们生产环境怎么选的方案”。每个文件都很短,但信息密度极高。这样做最大的好处是,AI以后检索的时候,能精准命中你需要的那个小块知识。它不需要从一个五千字的混沌文档里大海捞针,而是直接找到那个三五百字的干净文件。

这就跟你去超市买东西一样,货架上分好类的东西一拿就走,堆在过道上的垃圾你根本不想翻。

Zettelkasten这个方法最核心的思想特别简单:一个文件只表达一个独立的小概念,并且明确写出它和其他概念之间的关系。

这个方法对AI来说简直是天作之合。因为大模型最擅长的事情之一,就是从一堆看似无关的东西里发现隐藏的联系。比如你半年前写过一篇笔记,记录OAuth2.0登录流程中session失效的一个奇怪问题。两个月前你又写了一篇,讲Redis里面token同步失败导致用户被踢下线。今天你在开发移动端应用,又碰到用户频繁掉登录的情况。

AI如果能看到这三篇笔记,它就有可能自动发现这三次问题背后其实是一个共同的原因:你们的token刷新机制在某些网络条件下会出错。人类大脑很难记住这种跨越半年的小细节,但AI特别适合干这种织蜘蛛网的工作。它就像一个永远不会累、永远不会抱怨的档案管理员,每天帮你翻旧账,而且翻得又快又准。

知识之间的链接让AI变成蜘蛛侠

单个文件讲一件事只是第一步。真正让系统活起来的,是你把文件之间连起来。很多人写笔记从不在乎关联,写完就扔那。过三个月回来看,每个文件都像一个孤岛,你知道它们都在你的硬盘里,但完全不知道谁跟谁有关系。这种状态就像你有一堆乐高零件,但是全部散落在不同房间,永远拼不出任何东西。

Zettelkasten要求你每写一个文件,都要想想跟以前的哪些文件有关系,然后用链接或者字段明确写出来。

比如你写“JWT Refresh Token的安全问题”,就在related字段里加上半年前写的“OAuth2.0踩坑记录”和两个月前写的“移动端Token丢失排查”。这样做完之后,你的知识库就从一堆孤岛变成了知识网络。AI最擅长的事情就是在这种网络里游走。你问一个问题,它不光能找到直接相关的文件,还能顺着链接找到第二层、第三层相关的知识。

这个过程很像蜘蛛在网上一路爬过去,每到一个节点都可能有新发现。人类的记忆很难做到这种跨时间跨文件的联想,但AI做这件事就跟呼吸一样自然。

RAG技术正在把整个仓库变成AI的外挂大脑

很多人天天听RAG这个词,但不知道它到底干了什么。说白了,RAG就是先搜索再回答。以前你问AI一个问题,它只靠模型参数里记住的那些通用知识来回答。这些知识来自互联网公开数据,根本不知道你私人的代码库里有什么,也不知道你上周踩过什么坑。RAG出现之后,流程变了。你问一个问题,系统先去你的知识库里搜索最相关的几个文件,把这些文件的内容塞进AI的上下文,然后再让AI回答。

这个机制带来的变化是颠覆性的。

你问AI“为什么我们不用JWT Refresh Token”,RAG系统会自动去你的Projects目录找到相关的安全设计文档,去Resources目录找到你收藏的一篇分析文章,去Archives目录找到半年前废弃的Token方案。然后把这些内容一起交给模型。AI看完这些东西之后,回答就不再是网上那种泛泛的教程,而是结合你实际历史的具体分析。它会说:“根据你们去年十月的架构讨论,当时决定放弃Refresh Token主要是因为移动端网络不稳定导致刷新失败率过高。”这种回答让你感觉AI真的懂你的项目,而不是在背课文。


本地LLM把私人知识库变成离线的贴身助理

用云端AI的时候,很多人心里其实一直有个疙瘩。你把公司的代码片段、架构图、客户信息、商业计划发到一个远程服务器上,虽然服务商说会保护隐私,但那种不踏实的感觉一直在。就像你在公共广场跟人讨论公司机密,旁边人来人往,总感觉不放心。

本地LLM彻底解决了这个问题。你在一台电脑上把Ollama或者LM Studio跑起来,下载一个开源模型,然后把Obsidian里的所有Markdown文件作为知识库。从此以后,你问AI的所有问题,都在你自己的电脑里完成计算。数据不需要上传,不需要经过第三方服务器,不会留下聊天记录在别人家的日志里。

这种感觉就像把整个AI搬到自己书房,关上门,窗帘拉上,只有你和你的数据。对于任何对安全性敏感的工作来说,这种模式几乎是唯一选择。而且现在开源模型的水平提升特别快,在很多专业领域已经不输给那些云端大模型。


AGENTS.md正在成为AI时代的新说明书

以前每个开源项目都有一个README.md,作用是告诉人类这个项目是干什么的、怎么安装、怎么用。但README很少为AI优化。它可能写得很随意,夹杂大量人类才懂的梗和隐晦表达。AI读起来经常一头雾水,抓不住重点。

AGENTS.md的出现就是为了填补这个空白。它是一个专门写给AI看的项目说明文件。你可以在里面明确写清楚:这个目录的职责是什么,哪些文件是核心逻辑不能乱改,哪些是自动生成的可以忽略,遇到不确定的问题先去查哪个文件夹,测试文件的命名规则是什么。这些规则对人类来说可能有点啰嗦,但对AI来说就是黄金。有了AGENTS.md,AI进入一个新项目的时候,就不再是两眼一抹黑。它知道去哪里找入口,去哪里找配置,去哪里找历史决策。这个文件本质上就是给AI配了一副眼镜,以前它看你的项目是模糊的一团,戴上之后突然清晰无比。


第二大脑真正厉害的地方是对抗人类天生的遗忘

很多人讨论第二大脑这个概念的时候,总喜欢把它搞得特别玄乎,好像下一秒就要飞升成数字神仙了。其实这个东西最现实的意义只有一个,就是帮你对抗遗忘这件事。

人类的大脑天生就不适合长期保存复杂项目的上下文。你要同时做好几个项目,被各种消息轰炸,被没完没了的会议打断,被各种通知提醒骚扰,过个两周你就会彻底忘记:“当初我们为什么要这么设计?”很多软件里的Bug,根本原因不是技术有多难,而是整个团队都已经忘了之前踩过的那些坑。程序员职业生涯中最痛苦的时刻之一,就是半年之后重新看自己半年前写的代码,然后忍不住骂一句:“这傻逼是谁写的?”结果你用Git blame一查,发现那个傻逼就是你自己。

第二大脑这套系统真正解决的东西,就是这个认知断层的问题。你不再依赖自己那个脆弱又不靠谱的生物记忆,而是把长期上下文稳定地存储在硬盘里。AI帮你做的事情是检索、关联、总结和提醒。这套系统跑的时间越长,它的价值就越恐怖。因为你的知识开始真正地积累起来,而不是每天早上醒来就蒸发掉一部分。你写的每一次决策记录,每一次踩坑的经验,每一个架构讨论的结论,都会成为未来解决新问题的燃料。

等到几年之后,你会突然发现一个事情:你不是在维护一个笔记库,你是在训练一个越来越懂你、越来越了解你工作方式的私人AI系统。

极客一语道破

痴呆症患者靠记笔记只是解决了简单智能处理,别抱太大幻想。