一只阿木木

装工具的过程,就是理解系统的过程

Module 2|环境搭建

装工具的过程,就是理解系统的过程

大多数课程把"环境搭建"当成一个必须跨过去的烦人门槛。这一讲,我想说:它不是门槛,它是第一堂真正的课。


写在前面

我见过很多人学新工具的方式——

打开教程,跟着点,装完,截图,打卡,然后等下一步。

装的时候没有想过:为什么要装这个?

设置的时候没有问过:为什么是这个选项,不是那个?

结果就是:工具装好了,系统其实还没理解。

这一讲,我想带你换一种方式装工具。

每安装一个组件,我们先问:它在系统里解决什么问题?

每创建一个文件夹,我们先问:为什么是这个结构,不是另一种?

每完成一步,不只是验证它"跑起来了",而是验证你理解它为什么要跑。

这个过程会慢一点。

但装完之后,你对这套系统的理解,会比那些跟着点完的人,深出一个数量级。

2.0 动手之前,先读这两分钟

我需要先跟你说三件事,关于这次安装。

第一件事:顺序很重要。

book-to-skill 依赖 Claude Code。

Claudian 依赖 Obsidian + Claude Code。

claude-obsidian 依赖 Obsidian。

所以安装顺序是:Obsidian → Claude Code → claude-obsidian → Claudian → book-to-skill。

不要跳顺序,不要觉得你已经装过某个可以跳过——先确认版本,再继续。

第二件事:遇到问题,不要马上搜索。

先停下来想:是哪一层出了问题?

是Obsidian 没配置好?是 Claude Code 没登录?是路径没设对?

你定位到哪一层,才能有效解决。

这个诊断习惯,从现在开始养。

第三件事:这是一次可以回来翻的笔记。

边安装边记录:你做了什么决定,你为什么这么做,你遇到了什么问题,你怎么解决的。

这份记录,以后就是你这套系统的"安装说明书"。

以后你帮别人搭建,或者自己重装,这份记录会省掉你至少两个小时。

好,开始。

2.1 第一层:Obsidian——建立你的知识容器

为什么从这里开始?

Obsidian 是整个系统的物理载体。

所有的 Skill、Wiki、项目文档、CLAUDE.md——全都是 Obsidian Vault 里的 Markdown 文件。

不是云端的,不是某个平台的数据库——是你本地硬盘上的纯文本文件。

这个设计有一个根本的好处:你永远拥有你的数据。

平台倒了、订阅到期了、API 挂了——你的知识库还在那里,一个字也不会少。

安装 Obsidian

前往 obsidian.md 下载安装,选你的操作系统版本。

安装完之后,不要在默认目录创建 Vault。

先停下来,思考一个问题:

你的知识库,应该放在哪里?

这个问题比你想象的重要。

你的 Vault 会随着时间越来越大,越来越重要。它需要:

  • 被 Git 管理(可以回滚、记录历史)
  • 被备份同步(iCloud、Dropbox 或者你自己的方案)
  • 被 Claude Code 访问(需要是一个清晰的本地路径)

建议的目录结构:

Bash

~/knowledge/          ← 你的知识根目录
  └── vault/          ← Obsidian Vault

为什么叫 vault 而不是其他名字?

当你在终端里用 Claude Code 操作文件时,目录名越清晰,Claude 越不容易搞错路径。vault 是一个几乎不会和其他文件夹重名的词。

Bash

# 在终端里创建这个结构
mkdir -p ~/knowledge/vault

然后在 Obsidian 里:选择"Open folder as vault",指向 ~/knowledge/vault。

初始化目录结构

Vault 创建好之后,先建这几个文件夹:

text

vault/
├── raw/          ← 原始输入(不可修改)
├── wiki/         ← AI 维护的知识库
├── inbox/        ← 待处理的想法和碎片
├── projects/     ← 项目文档
└── .claude/      ← Claude 的配置和命令
    └── commands/ ← 自定义 Slash Commands

每建一个文件夹,在 Obsidian 里看到它出现——不是很有成就感,但你需要理解每个文件夹存在的原因。

我逐一解释:

raw/——原始输入层,永远不可修改

这里放你从外部世界带进来的东西:

Web 剪藏的文章、PDF 转成的文本、会议录音的转录稿、你随手截图下来的内容。

关键规则:放进 raw/ 的东西,永远不要手动编辑。

raw/ 是事实来源——你真实输入了什么,原原本本存在这里。

如果你改了它,以后你就不知道哪些是原始信息,哪些是你加工过的了。

wiki/——AI 维护的知识库

这里是系统的核心。

你不会直接在这里手写笔记。

这里的所有内容,都是 claude-obsidian 在处理 raw/ 里的内容之后,自动生成和维护的。

它包含:

  • 概念页面(每个重要概念一个独立页面)
  • 实体页面(书、作者、项目、人物)
  • 综合分析页面
  • 以及所有它们之间的关联链接

你读这里的内容,但几乎不会直接写这里的内容。

inbox/——想法的临时停靠点

一个灵感闪过,先扔这里。

一个待处理的任务,先扔这里。

一个还没想清楚的问题,先扔这里。

inbox/ 的内容不需要结构,不需要整洁,不需要分类。

这就是它的设计意图:零摩擦输入。

等到你有时间处理,运行 /process-inbox 命令,AI 会帮你把这些碎片分类整理到合适的地方。

projects/——项目文档

每个进行中或已完成的项目,在这里有自己的子文件夹。

这里的内容由你主导,AI 辅助——PRD、技术选型文档、会议记录、项目复盘。

和 wiki/ 的区别是:wiki/ 是通用知识,projects/ 是具体项目。

.claude/——系统的神经中枢

这里放:

  • CLAUDE.md(之后会移到 Vault 根目录,但先了解它的存在)
  • commands/(你自定义的 Slash Commands)

为什么文件夹名以点开头?

因为 . 开头的文件夹在 Mac/Linux 里默认隐藏。这不是给你看的,是给 Claude Code 看的。

安装推荐插件

打开 Obsidian → Settings → Community plugins → Browse,搜索并安装:

必装:

  • Templater——强大的模板系统,以后的 Wiki 页面会用到
  • Dataview——把你的 Vault 当数据库查询,后面会用

建议装:

  • Smart Connections——语义搜索,找相似内容
  • QuickAdd——快速添加内容到指定位置

浏览器扩展(单独安装):

  • Obsidian Web Clipper——在浏览器里一键把网页剪藏到 raw/ 文件夹

这个扩展是你"知识摄入流水线"的起点。找到一篇好文章,一键,它就在你的 raw/ 里了。不需要复制粘贴,不需要手动保存。

验证 Obsidian 安装

完成这个步骤:

  1. Vault 目录结构如上图所示,五个文件夹都存在
  2. 社区插件都已启用
  3. 在 inbox/ 里创建一个测试文件,写几个字,保存

然后打开终端:

Bash

ls ~/knowledge/vault

你应该能看到你创建的文件夹。

如果看到了——说明 Obsidian 正在操作的,就是你本地磁盘上真实的文件。

这个感觉很重要:你的知识库不在云端,不在某个平台,就在你的硬盘上。

2.2 第二层:Claude Code——安装你的 AI 引擎

先停下来想一个问题

你可能用过 Claude 的网页版,或者 Claude Desktop。

那为什么我们要专门安装 Claude Code?

两个原因:

第一:文件系统权限。

Claude 网页版是一个聊天界面。它不能读你的本地文件,不能写你的本地文件,不能在你的电脑上执行命令。

Claude Code 是一个运行在你本地的 CLI(命令行工具)。它可以读写你 Vault 里的每一个文件,可以执行 bash 命令,可以调用 Skills,可以跑多步骤的工作流。

第二:持久化上下文。

每次打开一个 Claude Code 会话,它会自动读取你 Vault 根目录的 CLAUDE.md。

你不需要每次重新解释你的系统是什么、文件放在哪里、规则是什么。

它打开就知道。

安装 Claude Code

你需要先安装 Node.js。如果没有,先装:nodejs.org,选 LTS 版本。

然后:

Bash

# 安装 Claude Code
npm install -g @anthropic-ai/claude-code

# 验证安装
claude --version

如果看到版本号,继续。

如果报错,常见原因:

  • npm 权限问题 → 用 sudo npm install -g 或者配置 npm 全局目录
  • Node.js 版本太老 → 升级到 18+

登录 Claude Code

Bash

claude

第一次运行,它会引导你登录 Anthropic 账号。

按照提示完成登录。

登录完成后,你应该看到一个交互式的命令行界面。

输入:/help,看到帮助信息——说明登录成功。

输入:exit 退出。

一个你现在就要做的认知实验

回到终端,cd 到你的 Vault 目录,然后打开 Claude Code:

Bash

cd ~/knowledge/vault
claude

然后输入:

text

你好,请告诉我当前目录里有哪些文件夹。

Claude Code 会列出你刚才创建的 raw/、wiki/、inbox/、projects/、.claude/。

停在这里想一秒钟:

你刚才发生了什么?

不是在网页上和 AI 聊天。而是一个 AI 进入了你本地的文件系统,可以读取、写入、操作你的每一个文件。

这是整个系统运转的基础。

这不是一个聊天机器人,这是一个有文件系统访问权限的 AI 助手。

从这个角度理解它,你对后面所有操作的理解深度都会不同。

2.3 第三层:claude-obsidian——安装知识引擎

它是什么,解决什么问题

前面我们说了,claude-obsidian 是整个系统的知识引擎。

具体来说,它是一套预设好的 Claude Code Skills 和工作流,专门为"把各种来源的内容整理成结构化 Obsidian Vault"这件事设计的。

它包含 15 个核心 Skills,包括:

  • wiki-ingest——把文章、PDF 摄入知识库
  • process-inbox——处理 inbox 里的碎片
  • lint-wiki——健康检查,修复断链和孤立页面
  • daily-review——每日知识回顾

你不需要全部背下来。只需要知道:它是一套专门服务于知识管理工作流的工具集。

安装 claude-obsidian

Bash

# 克隆到你的 Vault 的 .claude 目录
cd ~/knowledge/vault/.claude
git clone https://github.com/AgriciDaniel/claude-obsidian skills/claude-obsidian

或者,如果你不熟悉 git,也可以:

Bash

cd ~/knowledge/vault
git clone https://github.com/AgriciDaniel/claude-obsidian .claude/skills/claude-obsidian

运行初始化脚本

Bash

cd ~/knowledge/vault/.claude/skills/claude-obsidian
bash bin/setup-vault.sh

这个脚本会做几件事:

  • 在你的 Vault 里创建必要的子目录(如果还没有)
  • 生成一个基础的 CLAUDE.md 模板
  • 初始化 wiki/ 目录结构

运行完之后,检查你的 Vault:

Bash

ls ~/knowledge/vault/wiki/

你应该看到:

  • index.md——知识库的目录页
  • log.md——操作记录(AI 每次做了什么都会记在这里)
  • hot.md——热缓存(近期最相关的内容)

理解这三个文件的设计意图

wiki/index.md——知识库的导航图

这不是你手写的目录。

每次 AI 处理了新内容,都会更新这个文件——新增了哪些概念页面,更新了哪些内容,建立了哪些新连接。

你可以把它当成"今天知识库发生了什么"的快照。

wiki/log.md——AI 的操作日志

这是一个非常有价值但经常被忽视的文件。

每次 AI 摄入内容、创建页面、建立关联,都会在这里留下记录。

当你发现某个页面的内容看起来不对,你可以来这里查:AI 什么时候改了它,依据是哪个来源。

养成习惯:遇到奇怪的输出,先查 log.md。

wiki/hot.md——近期上下文缓存

这是系统维持"会话记忆"的方式。

每次对话结束,AI 会把这次会话里最相关的上下文写入 hot.md。

下次会话开始,AI 读取这个文件,知道你最近在关注什么。

这就是为什么你的知识库用得越久,AI 越"懂你"——不是因为它有神奇的记忆,而是因为它在每次会话后更新了这个缓存。

2.4 第四层:Claudian——安装你的 Obsidian 内操控界面

为什么需要这个

你已经有了 Claude Code 在终端运行。

那为什么还需要 Claudian?

一个字:摩擦。

当你在 Obsidian 里写笔记,突然想问 AI 一个问题,你需要:

切换到终端 → 找到正确的会话 → 输入问题 → 切换回 Obsidian → 手动把回答复制过来

整个过程十几秒,但这十几秒会打断你的思维流。

Claudian 的设计目标就是消除这个摩擦:

在你正在写的笔记旁边,直接唤出 AI,直接在当前文件里工作。

安装 Claudian

方法一:Obsidian 社区插件市场(推荐)

Obsidian → Settings → Community plugins → Browse → 搜索 "Claudian" → Install → Enable

方法二:手动安装

Bash

cd ~/knowledge/vault/.obsidian/plugins/
git clone https://github.com/YishenTu/claudian.git

然后在 Obsidian 里:Settings → Community plugins → 找到 Claudian → 开启。

配置 Claudian

安装启用后,打开 Claudian 的设置页面。

最关键的一个选项:Claude CLI path。

通常 Claudian 会自动检测到你安装的 Claude Code。

检验方法:在终端运行 which claude,把输出的路径(比如 /usr/local/bin/claude)粘贴到设置里。

验证 Claudian 安装

在 Obsidian 里打开任意一个笔记。

在侧边栏找到 Claudian 的图标,点开。

输入:

text

请告诉我这个 Vault 里有哪些文件夹。

如果它能列出你的目录结构——安装成功。

一个选择:什么时候用 Claudian,什么时候用终端

不是所有场景都适合 Claudian。

用 Claudian 的场景:

  • 你在 Obsidian 里写笔记,需要 AI 帮你扩展内容
  • 你想对当前打开的文件做处理(总结、提取、改写)
  • 你要运行常用的 Slash Commands

用终端 Claude Code 的场景:

  • 你需要跑复杂的多步骤工作流
  • 你要处理大批量文件
  • 你在调试或开发新的 Skills

两个入口,服务不同场景。都装上,按需使用。

2.5 第五层:book-to-skill——安装知识精炼机

它在系统里的位置

book-to-skill 是独立于 claude-obsidian 之外的一套 Skills。

它解决的是一个特殊场景:当你有一本值得反复使用的书,把它变成 Claude 随时可以调用的精炼知识。

不是所有内容都需要走 book-to-skill。

一篇文章?直接用 wiki-ingest 摄入 Vault 就够了。

一本你打算反复使用的核心专业书?值得用 book-to-skill 做精炼提取。

安装 book-to-skill

Bash

# 克隆到 Claude Code 的 skills 目录
cd ~/.claude/skills/
git clone https://github.com/virgiliojr94/book-to-skill.git book-to-skill

注意这里的路径:~/.claude/skills/,是你用户目录下的 .claude,不是 Vault 里的 .claude。

为什么?

因为 book-to-skill 生成的 Skill 文件,存放在 ~/.claude/skills/<slug>/ 里。

这个路径是 Claude Code 的全局 Skills 目录——不管你在哪个项目、哪个 Vault 里工作,这些 Skills 都可以被调用。

这个区分很重要:

  • ~/.claude/skills/——全局 Skills(任何项目都能用)
  • ~/knowledge/vault/.claude/——Vault 级配置(只在这个 Vault 里生效)

验证 book-to-skill 安装

Bash

cd ~/knowledge/vault
claude

在 Claude Code 里输入:

text

/book-to-skill help

如果看到 book-to-skill 的使用说明——安装成功。

如果没有响应,检查路径是否正确:

Bash

ls ~/.claude/skills/

应该能看到 book-to-skill 文件夹。

2.6 CLAUDE.md:在这一步先写一个最小可用版本

安装脚本应该已经生成了一个 CLAUDE.md 模板。

打开它:~/knowledge/vault/CLAUDE.md

你会看到一个大概的框架。

现在不要花太多时间精雕细琢它。

Module 3 整整一讲都在讲 CLAUDE.md 怎么写、怎么迭代。

现在只需要做三件事:

第一件:把你的基本信息填进去

Markdown

## 关于我
我是 [你的名字],主要工作领域是 [你的领域]。
这个知识库服务于 [你的目标,1-2句话]。

第二件:确认目录结构描述正确

Markdown

## Vault 结构
- raw/        原始输入,不可修改
- wiki/        AI 维护的知识库
- inbox/      待处理内容
- projects/   项目文档

第三件:加一条最基础的处理规则

Markdown

## 基本规则
- 新内容先进 raw/,通过 wiki-ingest 处理后再进 wiki/
- 不要直接编辑 wiki/ 里的文件,除非有明确原因
- 每次处理完内容,更新 wiki/log.md

保存。

这是你系统的第一版宪法。它会不够好。没关系。

好的 CLAUDE.md 是用出来的,不是一开始想出来的。

2.7 系统验证:跑通第一次完整数据流

现在所有层都装好了。

我们来做一次完整的数据流测试——从输入到输出,每一层都跑一遍。

测试任务

找一篇你最近读过的文章(任何格式都行),把它的文本复制,创建一个新文件:

Bash

# 在 Vault 的 raw/ 目录创建测试文件
touch ~/knowledge/vault/raw/test-article.md

把文章内容粘贴进去,保存。

第一步:验证 Claude Code 可以读取文件

Bash

cd ~/knowledge/vault
claude

输入:

text

请读取 raw/test-article.md,告诉我这篇文章的主要内容是什么。

如果 Claude Code 能正确读取并描述文章内容——第一步通过。

第二步:验证 claude-obsidian 的 wiki-ingest 可以运行

Bash

/wiki-ingest raw/test-article.md

等它运行完。

然后检查 wiki/ 目录:

Bash

ls ~/knowledge/vault/wiki/

你应该看到一些新创建的 .md 文件。

打开其中一个,看看 AI 提取了什么——概念、关联、索引。

第三步:验证 Claudian 可以在 Obsidian 内访问知识库

回到 Obsidian,打开 wiki/index.md。

打开 Claudian 侧边栏,输入:

text

根据 wiki/ 里的内容,这篇文章和已有的哪些知识有关联?

如果 Claudian 能基于你刚摄入的内容给出回答——系统联通了。

第四步:验证 book-to-skill 可以调用

如果你手边有一个 PDF(随便一本书都行),测试一下:

Bash

cd ~/knowledge/vault
claude
/book-to-skill ~/Desktop/your-book.pdf test-skill

这次只是验证命令能跑起来,生成了什么文件。

Module 4 会详细讲 book-to-skill 的深度用法。

测试完成后的自查清单

text

□  Obsidian Vault 目录结构正确
□  Claude Code 可以读写 Vault 文件
□  claude-obsidian 的 wiki-ingest 可以运行
□  wiki/ 目录有 AI 生成的内容
□  wiki/log.md 有操作记录
□  Claudian 在 Obsidian 内可以正常交互
□  CLAUDE.md 已经填写了基本内容
□  book-to-skill 命令可以执行

如果以上全部打勾,你的系统基础架构完成了。

如果有没打勾的——先停下来,用诊断思维定位:是哪一层出了问题,是路径、权限、还是配置?

2.8 为什么这样架构:从设计意图理解每个决定

装完了,我想带你回头看一遍。

不是复习操作步骤,而是理解这套架构背后的设计逻辑。

为什么是 Markdown + 本地文件,而不是数据库?

因为 Claude Code 是一个能读写文件的代理,不是一个能查询数据库的应用。

Markdown 文件意味着:

  • AI 可以直接读取,不需要任何解析层
  • Git 可以管理版本,你有完整历史
  • 任何编辑器都能打开,你不被锁定在任何工具里

数据存在文件里,逻辑存在 CLAUDE.md 和 Skills 里。

这个分离让整个系统极度灵活——AI 模型可以换,工具可以换,但你的数据永远是你的。

为什么 raw/ 不可修改?

因为你需要一个单一的事实来源。

当 AI 在 wiki/ 里生成的某个结论看起来奇怪,你需要能追溯回最原始的输入,看 AI 到底基于什么得出了这个结论。

如果 raw/ 被修改了,你的追溯链就断了。

这个规则看起来有点麻烦,但它是长期知识库质量的保障。

为什么 wiki/ 由 AI 写,而不是你写?

因为维护知识库里的关联,是人类最不擅长也最嫌麻烦的事。

你刚读了一篇关于系统设计的文章,里面提到了一个概念和你三个月前读的一本书有关联。

你会记得去更新那本书的笔记,添加交叉链接吗?

大概不会。

但 AI 会。每次摄入新内容,它都会自动检查和已有内容的关联,更新索引,建立链接。

你负责决定读什么,AI 负责维护知识之间的连接。

这个分工,是整个系统高效运转的核心。

为什么 CLAUDE.md 在 Vault 根目录?

因为这是 Claude Code 打开一个项目时第一个读取的文件。

它不需要你每次都告诉 AI "我的系统是什么结构"。

打开就知道。

这个自动加载的机制,让整个系统从"你在使用 AI"变成了"AI 在服务你的系统"。

这个差别,你用过一段时间之后,会越来越有感觉。

一次诚实的提醒

你刚刚建立的,是一个空的系统。

目录是空的,wiki 里只有一篇测试文章,CLAUDE.md 是第一版,Skill 还没有。

这很正常。

知识系统不是"建好了再用",而是"用的过程中建"。

接下来每一个 Module,你都会往这个系统里加新的东西。

到 Module 8 跑完真实项目的时候,你会回头看这一步,觉得那时候的空 Vault 就像一栋刚打好地基的房子——什么都没有,但结构是对的。

模块作业

作业一:完成安装并截图自查清单

按照 2.7 的自查清单,逐项完成,截图作为记录。

不是给我看,是给你自己留档。

以后你帮别人搭建,或者自己重装,这份截图是最好的参考。

作业二:写一份 "为什么这样设计" 的理解笔记

在 inbox/ 里新建一个文件:install-reflection.md

回答这三个问题:

  1. 为什么 raw/ 不可修改?用你自己的话解释,不要抄课程里的答案。
  2. wiki/ 和 raw/ 的本质区别是什么?
  3. 如果没有 CLAUDE.md,这个系统会有什么问题?

只要你能用自己的话回答这三个问题——说明你真的理解了,不是跟着点完了。

作业三(选做):用 Git 初始化你的 Vault

Bash

cd ~/knowledge/vault
git init
git add .
git commit -m "init: vault structure setup"

这不是必须的,但强烈建议。

以后你的 wiki/ 每一次变化,都会有记录。

本讲总结

text

这一讲你做了什么:

□  安装了五层基础设施
□  理解了每一层存在的原因
□  跑通了从输入到输出的完整数据流
□  写了第一版 CLAUDE.md

这一讲你应该建立的认知:

装工具不是跟着点——
是通过每一个配置决定,理解系统的设计逻辑。

raw/ 不可修改 → 保证事实来源的纯净
wiki/ 由AI写 → 让AI做人类最嫌麻烦的关联工作
CLAUDE.md 在根目录 → 让AI打开就知道你的系统
Markdown + 本地文件 → 你永远拥有你的数据

下一讲,我们专门讲 CLAUDE.md。

你刚写的那一版,有多少地方会被你推翻?

答案是:至少三处。而且每一次推翻,都是你对这个系统理解更深的证据。

**Module 2 认知破点:配置的每一个决定背后都有设计逻辑,理解逻辑比跟着操作更重要