喻承龙CHENGLONG YU全部文章 ↗
人工智能 · 实践

我给自己做了一个「第二大脑」

收藏了很多,却很少回看。我按 Karpathy 的 LLM-Wiki 思路做了一个开源的第二大脑:在手机上照旧把链接和想法发进飞书群,电脑上说一句「处理收件箱」,Claude Code 把它们编译进 Obsidian 里的个人 wiki,每条要点都标明出处,我的观点只记我的原话。

我有一个用了很久的习惯:看到好文章、冒出一个想法、开完一个会,就顺手发进一个只有我自己的飞书群。

这个习惯几乎零成本,所以一直坚持了下来。但时间一长,问题也很明显:

说白了,群里存的是一堆链接,不是知识。

于是我做了一个工具,叫「第二大脑」(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. 整理:一句话

电脑开着时,打开终端说一句「处理收件箱」。它会:

  1. 拉取飞书群里上次处理之后的新消息;
  2. 抓取链接正文;
  3. 把原文存进 raw/,再把要点编进主题页、项目页、生活页,每条要点都标明出处;
  4. 给处理过的飞书消息加一个表情,手机上一眼就能看出哪些已经入库;
  5. 输出处理报告。

抓取分三级:先直接请求页面;失败了,或者是公众号这类网站,就用 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,让它照这个思路做。它先写了分镜给我确认,然后:

代码里不读当前时间,随机数都有固定种子,所以同一份代码每次渲染的结果都一样。想改一句字幕,改一行代码重新渲染就行。上面那个 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。