我有一个用了很久的习惯:看到好文章、冒出一个想法、开完一个会,就顺手发进一个只有我自己的飞书群。
这个习惯几乎零成本,所以一直坚持了下来。但时间一长,问题也很明显:
- 只有堆砌,没有结构。同一个主题散落在几个月的聊天记录里,串不起来。
- 只有输入,没有输出。收藏完很少回看,当时的想法也没留下来。
- 想用的时候找不到。只能在群里一页一页往上翻。
说白了,群里存的是一堆链接,不是知识。
于是我做了一个工具,叫「第二大脑」(second-brain-kit),已经开源:
先看一分钟的宣传片:
一、思路来自 Karpathy 的 LLM Wiki
大多数人用大模型读资料的方式是 RAG:把文件丢进去,提问时检索几个片段,再拼出答案。这样能用,但每问一次,模型都要从零重新找、重新拼,什么也没积累下来。
Karpathy 提过另一种思路,叫 LLM Wiki:让大模型持续维护一套互相链接的 Markdown wiki。来了新资料,不是存起来等以后检索,而是读完、提炼,再把要点编进已有的页面,更新总结,标出前后矛盾的地方。知识编译一次,之后持续更新。
他有一句比喻我很喜欢:
Obsidian 是 IDE,大模型是程序员,wiki 是代码库。
整套结构分三层:
raw/ 原始资料,只读,是唯一的事实来源
wiki 页面 由大模型写和维护:主题、项目、总结、交叉链接
CLAUDE.md 规则:wiki 怎么组织、入库和回答问题按什么流程走
这并不是说 RAG 没用:资料多、多人共用的场景,检索依然合适。但个人知识库的规模有限,完全可以先编译成 wiki,有问题时先读整理好的页面。
剩下的问题就是:资料怎么进来?谁来整理?我想要的是收集的习惯一点都不变。
二、它怎么工作:收集、整理、思考
整条链路是这样的:
手机:发进飞书群 / Web Clipper 剪藏
↓
inbox/ 待处理队列
↓ 电脑上说一句「处理收件箱」
Claude Code + kb 脚本
↓
raw/ 原文(只增不改) + 主题 · 项目 · 生活 · 思考
↓
Obsidian 里浏览,Claude Code 里提问
1. 收集:照旧发进飞书群
链接、想法、文件、图片、会议纪要,直接发,不打标签,也不挑格式。系统会自己识别:
| 我发的 | 怎么处理 |
|---|---|
| 带链接的文字 | 每个链接一条,抓取正文;链接以外的文字作为备注 |
| 不带链接的文字 | 当作我的想法,原话记进「思考」 |
| 文件、图片 | 下载归档,交给 Claude 阅读 |
| 会议纪要 | 把决策和待办追加到对应的项目页 |
需要登录才能看的网页,就用 Obsidian Web Clipper 剪藏进 inbox/,下次一起处理。
2. 整理:一句话
电脑开着时,打开终端说一句「处理收件箱」。它会:
- 拉取飞书群里上次处理之后的新消息;
- 抓取链接正文;
- 把原文存进
raw/,再把要点编进主题页、项目页、生活页,每条要点都标明出处; - 给处理过的飞书消息加一个表情,手机上一眼就能看出哪些已经入库;
- 输出处理报告。
抓取分三级:先直接请求页面;失败了,或者是公众号这类网站,就用 Playwright 启动一个真实的 Chromium 去抓;还不行,就在报告里列出来,让我手动剪藏。
3. 思考:只问我一个问题
这是我最在意的一步。每次处理完,它只问我一个问题,比如:
「把知识编译一次」这篇,你同意它哪一点?
我回答了,原话一字不改地记进 思考/2026-10.md,并链接到相关页面;不回答就什么也不记。
收藏是输入,这一句回答才是输出。
三、几个设计取舍
做的过程中,有几条原则我始终没让步。
AI 不代写我的观点。 每个主题页都分成「要点」和「我的看法」两块:要点由 AI 总结并注明出处,「我的看法」只放我自己的原话。AI 负责归类、链接、维护,但不润色、不替我下结论。否则过一年回头看,我分不清哪些是我想的,哪些是模型想的。
每个说法都要能追溯。 原文存在 raw/ 里,入库后不再修改,「体检」会检查有没有被改过。提问时,回答里的每个论断都附上页面链接;知识库里找不到依据,就直接说「知识库里没有」,不拿常识冒充。
系统和内容分开。 仓库里只有脚本、规则模板、测试和虚构的示例数据;我的笔记在另一个 Obsidian vault 里,放在 iCloud,手机上也能看,永远不会进入代码仓库。规则写在 vault 的 CLAUDE.md 里,而不是某个聊天窗口里,升级时只更新系统文件,末尾的「个人补充」会保留。
不需要一台 24 小时开着的服务器。 飞书消息按需拉取,不用配事件订阅,也不需要公网地址。电脑开着的时候集中处理一次就够了。
多台电脑能接力。 处理进度(飞书游标、待加的表情、上次的追问)存在 vault 里,随 iCloud 同步,所以公司和家里的电脑都能接着处理,不会重复拉取。飞书的 App Secret 只存在每台电脑本机。
四、每天怎么用
打开终端运行 kb-open,然后直接说话:
| 我说 | 会发生什么 |
|---|---|
| 处理收件箱 | 拉取、抓取、入库、加表情,最后给出报告和一个追问 |
| 读书会的打卡功能为什么延期? | 基于知识库回答,项目类问题按日期列出决策,每条附出处 |
| 把这个回答存下来 | 存成一个新的主题页 |
| 每周回顾 | 本周新增、我写下的话、观点变化、还没回应的事。只出报告,不改文件 |
| 体检 | 查失效链接、重复和矛盾的页面、iCloud 冲突副本,给出建议清单,我确认后才改 |
| 升级 | 拉取新代码、更新系统文件,内容和设置不受影响 |
五、宣传片和主页也是 Claude Code 写的
项目做完后,我想给它配一个宣传片。正好看到一篇讲「Opus 5.5 做视频」的文章,核心观点是:视频不是模型直接生成的,而是它写的程序一帧一帧画出来的。
于是我把这篇文章丢给 Claude Code,让它照这个思路做。它先写了分镜给我确认,然后:
- 用 JavaScript 在 Canvas 上画出每一帧:手绘线条、一颗叫「小脑」的粉色大脑吉祥物、转场和字幕;
- 用代码合成背景音乐和「啵」「叮」之类的音效,没用任何素材,也不需要 API Key;
- 用无头 Chromium 按时间点逐帧截图,再用 FFmpeg 拼成 MP4。
代码里不读当前时间,随机数都有固定种子,所以同一份代码每次渲染的结果都一样。想改一句字幕,改一行代码重新渲染就行。上面那个 65 秒的视频,以及项目主页上会跟着鼠标转眼睛的小脑,都是这样做出来的,源码在仓库的 video/ 和 site/ 目录里。
六、怎么装
需要一台 Mac,装好 Homebrew、Node.js、Claude Code 和 Obsidian。然后:
git clone https://github.com/zhanlutuzi/second-brain.git ~/second-brain-kit
cd ~/second-brain-kit && claude
在 Claude Code 里输入 /setup,一问一答走完。它会检查环境、新建知识库、配置飞书(可以先跳过),再用 20 条虚构的示例数据试跑一次,大约 15 分钟。
完整说明见仓库里的使用说明。
最后
这个项目要验证的其实只有一件事:每天处理一次收件箱,是不是比在飞书群里翻找更有用。
这个问题要用一段时间才能回答。但有两点在设计时就定下来了:收集的习惯一点都不用变,发出去的东西也不会再沉底;而每次处理完的那一个追问,是在逼自己把「看过」变成「想过」。
项目是 MIT 开源的。如果你也有「收藏很多、回看很少」的困扰,欢迎试试,也欢迎提 issue。