今年我保存了大约 200 篇文章,但最终只剩 40 条笔记和一个永远不会打开的“稍后整理”文件夹。
笔记越积越多却毫无用处,这不是你的错。每种笔记方法都假设你能永远亲自“收集、整理、关联、回顾”。日常生活中几乎没人能坚持下来。这不是意志力的问题,而是成本太高。
如果有一个系统,能在你睡觉时替你完成那些繁琐的整理工作呢?白天你只管把想法扔进笔记里;晚上,那些潦草的记录会被整齐整理,相关笔记自动建立链接,甚至还会给出提示——比如“这条笔记与你三周前的那条矛盾”——第二天早上全部摆在你的桌面上。
更重要的是,你现在就可以亲手搭建这样的系统,不需要任何特殊环境。你只需要 Claude Code 和 Obsidian,这两样都是可以在自己电脑上运行的标准工具。在这篇文章中,我将一步一步讲解如何从今天开始构建这个系统。
我是 tatsuki(@nobel_824)。我支持中小企业利用 AI,帮助实施 Claude/Codex,同时自己整天都在运行 Claude Code。
这个设计的灵感来自一份名为《How To Build a Second Brain That Runs Itself With Kimi & Obsidian (Full Course)》的构建指南,该指南在海外获得了 148 万次观看。它的概念很棒,但工具不一定是 Kimi Work。关键在于“把整理工作外包给夜间批处理流程”的设计理念,这与具体工具无关。因此,我用自己日常使用的工具——Claude Code 和 Obsidian——重新构建了它。

https://note.com/nobel/n/n7d7a422f828f
第一章:打造第二大脑的“夜班团队”
首先,让我们分享一个视角,帮助你轻松把握全局。
把你的第二大脑看作一个“专门上夜班的小部门”,而不是一个“应用”。白班只有你一个人。白天你去做人类仍然比机器擅长的事:想点子、留意事物、做出反应,然后把它们扔进去。你只需把原材料丢过墙。
到了晚上,另一个部门开始工作。他们处理你白天扔进来的东西,将其变成组织好的知识,并在你喝第一杯咖啡之前准备一份简报(总结报告)。这在以前是行不通的,因为“夜班”根本不存在。最多你有一个助手,但只有你坐在旁边下达指令时它才会工作。这反而增加了你的工作量。真正的第二大脑需要一个能按日程、并行、无需监督自主工作的劳动力。
夜班团队不是 300 个做同样任务的副本。他们的力量来自于分工,就像真正的科研部门一样。流程很简单,包含四个阶段。
第一,收集。这个角色把你想要阅读的文章或页面的文本取回来,带进大楼。
第二,分解与链接。这个角色把收集到的材料分解成“一个想法,一条笔记”。一篇文章可能会变成八条笔记。每当一条新笔记诞生时,它就会与现有的相关笔记建立链接。这样就把一堆文件变成了一张思想网络。
第三,检查矛盾。这是最有价值的角色。它把新笔记与所有现有笔记进行比较,找出摩擦点——那些与你过去笔记相矛盾的言论、没有来源的断言、或者悄悄削弱你上个月写下的某个信念的观点。如果发现,就会标记出来。它不会直接覆盖或压制它们。
第四,总结与汇报。这个角色把相关笔记编织成一份长文档,并撰写早晨简报。它将原始知识转化为你可以实际用于思考的形式。

为什么并行处理有效?在平静的夜晚,只需要处理几份材料,运行几个 Agent。但在忙碌一周之后,如果堆积了 50 篇文章,你可以为每个来源分配一个 Agent,同时全部部署。一个 Agent 需要逐个文件处理数小时的任务,可以被拆分、同时运行,并在几分钟内整合。这就是“把它变成一个团队”的含义。

第二章:把知识放在“炼油厂”里,而不是抽屉里
现在,我们开始动手。首先要设计 vault 的结构。
最常见的错误是按主题来组织 vault——创建“营销”、“健康”或“AI”这样的抽屉。这样做行不通,因为真正的知识不会只属于一个类别。让 Agent 把东西按主题分类到文件夹里,只是把组织问题放大到了更大范围。
相反,我们根据精炼阶段来创建文件夹。原材料从一端进入,经过处理后,另一端输出关联好的知识。文件夹结构本身就成了流水线。
步骤 A:创建文件夹(5 分钟)
在终端中运行下面这行命令来创建炼油厂。
1mkdir -p brain/{0-raw,1-desk,2-atoms,3-threads,sources,briefings,.claude/skills}2touch brain/CLAUDE.md
以下是每个文件夹的职责:
brain/
├── 0-raw/ # 你扔东西的地方。不要碰。输入区。
├── 1-desk/ # 夜班的工作台。临时区域。下班时清理干净。
├── 2-atoms/ # 永久笔记:一个想法一个文件。核心区。
├── 3-threads/ # 整合区。由多个 atom 编织而成的动态文档。
├── sources/ # 原始文章或 PDF。只读存储区。
├── briefings/ # 夜班向你提交的报告。
├── .claude/skills/ # 每个班次的“岗位描述”。
└── CLAUDE.md # 运营章程。所有 Agent 在执行前都会读取它。

这个布局有三个关键设计决策。
第一,0-raw 和 sources 是只读的,永远不会被修改。原始笔记和原始文件是事实的基础。Agent 从它们生成衍生内容,但绝不触碰原始文件。这防止了悄悄毁掉 AI 知识库的那种失败:“衍生笔记引用其他衍生笔记,每次重新生成都稍微偏离原始含义,直到 AI 自信地重复它自己编造的东西。”因为原始来源不动,事实就不会漂移。
第二,2-atoms 包含 atom(单个想法),而不是文章。一个文件,一个想法。这是 Zettelkasten 的原则,也是让链接网络变得有用而非装饰的关键。通过分解成单个想法,你可以将它们与很多东西链接、重新组合,并准确地识别矛盾。在一个整篇长文章直接扔进去的 vault 里,你做不到这一点。
第三,3-threads 是理解生长的地方。Atom 是材料,threads 是整合。当关于某个主题(比如“电池成本曲线”)的相关 atom 积累起来时,thread 就会成长。这是平面 wiki 中缺失的一层,也是“知识库”与“理解”之间的区别。
步骤 B:在 Obsidian 中打开这个文件夹
这是 Obsidian 集成的基础。你只需要做一件事。
打开 Obsidian,选择“打开文件夹作为 vault”,然后指向你刚刚创建的 brain/ 文件夹。就完成了。你不需要额外的插件或同步服务,因为 Obsidian vault 就是一堆 Markdown 文件的集合。文件夹本身就成了 vault。
当你在笔记中写入 [[Note Name]] 时,它会变成标准的 Obsidian 内部链接。这意味着如果夜班的“分解与链接”角色用 [[Related Note]] 连接了笔记,这些连接会自动出现在 Obsidian 的图谱视图中。你什么也不用做。Obsidian 会可视化 Agent 写下的 Markdown 内容。
你可能会想:“为什么不用向量数据库或 RAG?”因为纯 Markdown 和链接已经足够。它是本地的、可移植的,而且你可以追踪每条笔记来自哪个来源。在可移植性和可靠性上,它都优于云端的向量数据库。Obsidian 之所以能作为查看器工作,正是因为这些文件是纯文本。
步骤 C:编写章程
CLAUDE.md 是管理整个劳动力的唯一文件。Claude Code 在执行前会读取这个文件,所以如果你在这里写下操作规则,所有班次都会遵守。要写得简洁、清晰、绝对。
1# 操作规则(执行前必须阅读)23## 流程4- 0-raw/ : 输入区。只读。切勿编辑原始笔记。5- 1-desk/ : 工作台。下班时清理干净。6- 2-atoms/ : 永久 atom。一个文件,一个想法。7- 3-threads/: 整合文档。更新现有 thread,不要创建重复内容。8- sources/ : 原始文件。只读。9- briefings/: 向人类提交报告的地方。1011## 首要指令12每个 atom 都必须能追踪到 sources/ 或 0-raw/ 中的现有来源。13如果没有来源,不要写笔记。不要写材料中没有的主张。14永远不要用听起来合理的信息来填补空白。1516## 工作规则171. 一个 atom,一个想法。如果一个来源有 8 个想法,就创建 8 个 atom。182. 在创建atom 之前搜索 2-atoms/,看看现有笔记是否可以扩展。193. 每个 atom 必须链接到至少两个相关的 atom。204. 如果与现有笔记矛盾,在新笔记中添加 [FRICTION] 块并指向旧笔记。不要静默覆盖已有观点。215. 不要删除。如果某条笔记过时了,添加 [RETIRED] 并将其移到 archive/。226. 在班次结束时更新相关 thread 并撰写简报。
“首要指令”是保护一切的底线。没有它,夜班就会开始在事实之间的空白处填入听起来合理的虚构内容。这些虚构会变得与你自己的真实想法难以区分,一个月后你将分不清哪些观点属于你自己,哪些是机器编造的。“如果没有来源,不要写笔记。”这条规则能让你的大脑保持属于你自己。
现在你有了存放知识的容器和保护它的章程。下一章,夜班团队会往里面添加笔记。
第三章:使用 Claude Code 运行夜班
蓝图已经就绪,现在来安装引擎。Claude Code 是真正运行夜班的工具。我们来组装它。
无头执行:先手动运行一次
Claude Code 可以在没有交互界面的情况下运行。这就是无头模式。
claude -p "按照 CLAUDE.md 中的规则,从 0-raw/ 读取一个未处理的文件,并在 2-atoms/ 中创建一个 atom"
-p(--print)标志是一种脚本模式,执行一条指令后退出(官方文档)。标准的 claude -p 会自动读取 CLAUDE.md 和技能,所以你在第二章中编写的首要指令会生效。如果你需要完美的可复现性,有 --bare 模式(跳过自动发现 CLAUDE.md 和技能),但那样你必须在提示中明确传递规则。因为我们希望首要指令生效,所以使用标准 -p。
不要立即安排定时任务;先手动运行一次,看看它的行为。确认一个 atom 能按预期创建后再进行自动化。
把操作手册写成技能
每个班次的“岗位描述”以技能(一个描述可重用工作流的 Markdown 文件)的形式编写。如果你把它放在 .claude/skills/<名称>/SKILL.md 中,就可以随时调用(官方文档)。
例如,处理主要夜间操作的“精炼”班次可以这样写。写好了之后,你可以通过技能名称来调用,比如 claude -p "/refinery"。你只需写一次,然后每晚调用它的名字即可。
name: refinery
description: 主要的夜班,将 0-raw 中所有未处理的项目精炼成 atom。
1# Refinery 运行23## 任务4处理 0-raw/ 中未处理的项目。为每个项目分配一个子 Agent,5并行运行它们,然后整合。每个 Agent 将:671. 读取原始笔记和 sources/ 中的相关来源。82. 拆分为一个想法一个文件,放入 2-atoms/。93. 为每个 atom 搜索 2-atoms/,看看现有笔记是否可以扩展,然后再创建新笔记。104. 将每个 atom 链接到至少两个相关的 atom。115. 如果与现有笔记矛盾,添加 [FRICTION] 块并指向它。126. 将处理过的原始笔记移到 0-raw/archive/。1314## 严格遵循15- 遵守 CLAUDE.md 中的首要指令。不要写没有来源的主张。16- 不要触碰 sources/ 和 0-raw/ 中的原始文件,只能读取。17- 需要判断的整合工作留给人类。标记它们,不要强行做出决定。
并行化:定义子 Agent
为了分解“分解”、“链接”和“检查矛盾”这些任务,我们使用子 Agent。通过在 .claude/agents/ 下用 Markdown 定义它们,每个子 Agent 在独立的上下文环境中并行运行,只将结果返回给父 Agent(官方文档)。定义文件以指定名称和可用工具的 frontmatter 开头。
name: cataloger
description: 将一个来源分解为 atom(一个想法一个文件)。
tools: ["Read", "Write"]
读取提供的来源,在 2-atoms/ 中创建 atom(一个想法一个文件)。先搜索现有的 atom,扩展那些可以扩展的 atom。始终在 frontmatter 中写入来源。
原文章号称“300 个 Agent”。这来源于 Kimi 的 K2.6 模型规范,该模型可以并行部署最多 300 个子 Agent 和 4000 个步骤(Kimi 官方博客)。不过,Claude Code 没有宣传像“限制 300 个”这样的固定数字;它使用一种编排方法,根据需要分配和整合多个 Agent。实际上,第二大脑的夜班不需要 300 个 Agent。几种角色类型和每个累积来源分配几个 Agent 就足够了。好处来自于分工和并行运行,而不是纯粹的数量。
定时调度:每晚固定时间调用
最后,通过时间触发班次。最可靠的方法是从外部的 cron 作业中使用标准的 claude -p 按名称调用技能。设计四个班次在夜间依次接替。
0 23 * 23:00 每日 Scout(收集材料;暂时手动运行)
0 3 * 3:00 每日 Refinery(并行精炼;主要事件)
0 6 * 6:00 每日 Editor(更新 thread 和简报)
0 22 0 22:00 周日 Audit(每周健康检查)

只自动化 Refinery 就足够开始。以下是 crontab 示例:
crontab -e 示例(3:00 Refinery 班次)
0 3 * cd ~/brain && claude -p "/refinery" >> briefings/cron.log 2>&1
Scout 角色——通过浏览器获取文章文本——是一个特殊情况。正如稍后提到的,Claude Code 的浏览器操作目前仅限于交互式会话,所以目前最好手动运行 Scout 把文本保存到 sources/,然后让夜间的 Refinery 处理收集到的文本。
等你习惯之后,迁移到 Claude Code 内置的 Routines 会更方便(官方文档)。在会话中运行 /schedule 可以注册每小时、每晚或每周的周期性执行(截至本文写作时,这是一个研究预览功能,需要特定的计划或基于 Web 的 Claude Code)。Routines 在 Anthropic 的云端运行,所以即使你合上笔记本电脑,任务也会运行。最小间隔是一小时。我建议先从 cron 启动一个班次,等熟悉之后再用 Routines。
第四章:让 Obsidian 成为“所有工具的共享记忆”
到目前为止,Claude Code 可以直接读写 brain/ 文件夹。由于 Obsidian 也打开了同一个文件夹,基础集成已经完成了。
本章是进阶内容。如果你只想让夜班跑起来,可以跳过本章,以后再读。在这里,我们让同一个 vault 可以被其他工具——比如其他编辑器中的 AI 功能或不同的 Agent——搜索和写入。

这就消除了散落在五个应用中的知识孤岛,让所有东西共享一个大脑。这是通过 MCP(Model Context Protocol,一种将外部工具连接到 AI 的通用标准)实现的。
有三种方法可以将 Obsidian 作为 MCP 连接,按难度排序:
1. Filesystem MCP(最简单,无需插件)
因为 vault 只是一个文件夹,你可以把 filesystem MCP 服务器指向这个 vault。你不需要在 Obsidian 中安装任何东西。
claude mcp add obsidian-fs -- npx @modelcontextprotocol/server-filesystem ~/brain
2. Local REST API + mcp-obsidian(完整功能:搜索和追加)
如果你希望 AI 执行全文搜索或追加到特定标题/块,请在 Obsidian 中使用社区插件“Local REST API”。只需安装并启用它,然后复制 API 密钥。默认主机是 127.0.0.1,端口 27124(使用自签名证书的 HTTPS)。然后,用环境变量注册 uvx mcp-obsidian(mcp-obsidian / Local REST API)。
OBSIDIAN_API_KEY=your_key OBSIDIAN_HOST=127.0.0.1 OBSIDIAN_PORT=27124 claude mcp add obsidian -- uvx mcp-obsidian
3. 更丰富的实现(cyanheads/obsidian-mcp-server)
还有一个更高级的 MCP 服务器实现,包装了 Local REST API 插件。cyanheads/obsidian-mcp-server 是一个外部的基于 Node 的服务器,支持路径限制和按标题精确编辑。与方法 2 一样,它需要 Local REST API 插件和 API 密钥。
在 Claude Code 中注册 MCP 始终遵循 claude mcp add <名称> -- <命令> 的格式,设置会写入 ~/.claude.json(针对个人)或 .mcp.json(用于仓库共享)(官方文档)。
一个警告:所有这些方法都局限于 localhost 或提供的文件夹。REST API 方法需要你自己的 API 密钥,通信限制在 localhost 之内。不过,由于你正在向 Agent 授予写入权限,最安全的做法是将其限制在受信任的 vault。
演示视频总是跳过三个陷阱
让自动化劳动力对你的知识拥有读写权限,并让它无人值守地整夜运行,这能带来巨大的杠杆效应,但有些注意事项需要遵守。这决定了你的系统是在一年内变得更聪明,还是在一个月内悄悄腐烂。
第一,诚实面对限制。 Routines 在云端运行,最小间隔是一小时。而且,“Scout”班次——通过浏览器获取文章文本——需要谨慎对待。Claude Code 的浏览器操作(Chrome 中的 Claude)目前处于测试阶段,且仅限于交互式会话。它还不能在云端的 Routines 中工作(官方文档)。实际上,更干净的做法是手动运行 Scout 把文本保存到 sources/,然后让夜间的 Refinery 处理收集到的文本。
第二,安全与成本。 Claude Code 有多个权限模式(官方文档)。标准的 default 模式在读取之外的操作需要批准;acceptEdits 自动允许编辑;plan 以只读模式调查并提出计划;bypassPermissions 允许所有操作。对于无人值守运行,最安全的做法是先用 plan 验证行为,然后切换到 dontAsk(一种用于 CI 的模式,只运行预授权的工具)同时使用 Deny 规则。另外,使用 git 管理 brain/ 并每晚提交。如果夜班做出了奇怪的决定,你可以用一条命令回退到前一个晚上的状态。这是一个安全带,最好在第 一天就系上,而不是出事后。另外,Claude Code 会产生 API 或订阅费用。你也可以像原指南那样自己托管开源权重模型来消除 API 费用,但这是另一个话题了。只需根据夜间处理量估算成本。
第三,始终遵循首要指令。 如果每周的 Audit 发现了“没有来源的笔记”,立即处理。当无法追踪来源的笔记开始堆积时,你的大脑就变得不可信了。一个不可信的第二大脑比没有更糟糕,因为你可能会基于机器的虚构内容而行动,却以为那是自己的结论。“如果没有来源,不要写笔记。”这条规则能让你的大脑保持属于你自己。
总结:别再当图书管理员,去做主编吧
长期以来,“建立第二大脑”只是“给自己多找一份无薪图书管理员工作”的委婉说法。这就是为什么到处都是失败的坟墓。劳动不值得,所以意志力总是输。
但现在这份劳动可以被委派了。白天你只需花几秒钟扔东西进去。晚上,队伍会精炼它们。你每周只花 20 分钟担任主编,决定“采纳哪些观点”。而且你越是不管它,系统就越聪明,因为你把过去会随时间递减的劳动完全交给了夜班。
你不是笔记做不好。你只是试图一个人运营一个研究部门。
从今天开始的第一步(3 个步骤):
- [ ] 用
mkdir -p brain/{0-raw,1-desk,2-atoms,3-threads,sources,briefings,.claude/skills}创建炼油厂,并在 Obsidian 中将其作为 vault 打开。在CLAUDE.md的第一行写下首要指令:“如果没有来源,不要写笔记”。 - [ ] 为
.claude/skills/refinery/编写一个SKILL.md,然后手动用claude -p处理一个来源试试。 - [ ] 如果可行,用 cron 或 Routines 每晚自动化一个班次。

我会在 LINE 的 OpenChat 中分享在 X 上无法发布的有用信息。
请通过以下链接加入我们。





