
做 AI 编程这几年,我见过太多人重复同一个坑:在 Claude Code 里啃下一个棘手 bug,方案漂亮、思路顺,结果三个月后撞上同类问题,脑子直接空白——当初到底怎么搞定的?
这不怪记性。问题在于那段知识从没真正沉淀下来。它散落在聊天记录里、某行注释里、当时随手开的几十个标签页里,然后就这么没了。我自己也踩过无数次,直到看见社区里一个叫 exobrain-harness 的项目,才意识到这件事可以认真用工程的方式去做。
这个项目把 Claude Code 接上 50+ Skills、launchd 守护进程和 MCP Server,把语音转录、手写笔记、日历、任务和健康数据融成一套持续运转的系统。AI 第二大脑不再是概念,而是真有人在落地的 AI Coding 工作流。
下面这套方法,是我自己跑了一段时间后整理出来的实战路径,从安装配置到 Skills 体系,一步步带你搭起来。
为什么用 Obsidian 配 Claude Code
先说选型。Obsidian 的设计原则就三条:本地优先、纯 Markdown、双向链接。这三点和 Claude Code 的工作方式几乎是天生一对。
Claude Code 本来就直接在文件系统上干活,读写 .md 文件零摩擦。Obsidian 那张知识图谱,可以原封不动喂给 Claude Code 当上下文。更关键的是,两边都坚持数据归你自己所有,不锁在某个云端黑盒里。
我习惯这样理解它们的分工:Obsidian 是持久化的记忆层,Claude Code 是实时的推理层。把这两层打通,你手里就有了一套能自我进化的知识管理系统,而不是又一个聊天窗口。
核心架构:三层怎么联动
整套结构其实不复杂,拆成三层就清楚了:
┌─────────────────────────────────────┐
│ 输入层:语音 / 笔记 / 代码 / 日历 │
└──────────────┬──────────────────────┘
│ MCP Server 采集
┌──────────────▼──────────────────────┐
│ 存储层:Obsidian Vault (.md 文件) │
│ - daily-notes/ ← 每日工作日志 │
│ - projects/ ← 项目上下文 │
│ - snippets/ ← 代码片段知识库 │
│ - retrospect/ ← 复盘与方法论 │
└──────────────┬──────────────────────┘
│ Claude Code 读取/写入
┌──────────────▼──────────────────────┐
│ 推理层:Claude Code + Skills │
│ - 自动摘要 / 关联分析 / 代码生成 │
└─────────────────────────────────────┘
输入进来,落到 Vault,Claude Code 再读写。逻辑就这么直。
第一步:用 MCP 把 Claude Code 接到 Obsidian
MCP 是这套方案的接口层。在 claude_desktop_config.json(或者项目级的 .mcp.json)里,把文件系统 MCP 加进去:
{
"mcpServers": {
"obsidian-vault": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/ObsidianVault"
]
},
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
把路径换成你自己的 Vault 目录。配完之后,Claude Code 就能直接翻你的笔记库,你的项目背景、历史决策、代码规范它全看得到。这是整个 Claude Code 配置里我认为收益最高的一步,后面所有玩法都建立在这个连接之上。
第二步:搭一套自己的 Skills 体系
接通之后,下一步是把高频操作封装成自定义 slash 命令。这块我直接借鉴了 exobrain-harness 的思路。
在项目根目录建个 .claude/commands/ 文件夹:
mkdir -p .claude/commands
第一个我必装的命令,是把会话沉淀成知识(灵感来自 vibebook-plugin):
<!-- .claude/commands/digest.md -->
# Digest Session to Obsidian
读取本次会话的完整上下文,提取:
1. 解决的核心问题(一句话概括)
2. 关键技术决策及原因
3. 可复用的代码片段
4. 遗留问题或 TODO
将结果写入 $VAULT_PATH/retrospect/{{date}}-session.md,
格式遵循 [[session-template]]。
第二个是反向的,把历史上下文预加载回来:
<!-- .claude/commands/load-context.md -->
# Load Project Context
从 Obsidian Vault 中读取以下内容注入当前会话:
- projects/{{project-name}}/overview.md
- projects/{{project-name}}/decisions.md
- snippets/ 目录下与当前任务相关的片段
完成后输出:「已加载 X 个上下文文件,准备就绪。」
一存一取,会话和知识库之间的循环就闭合了。
第三步:让 AI 自己维护知识库
这步是整套方案真正拉开差距的地方。前两步只是让 Claude Code 能读能写,让它主动生产和更新知识才是关键——不是等你手动喂。
在 CLAUDE.md 里写下这条规则:
## 知识库维护规则
每次完成一个功能模块或修复一个重要 bug 后,
自动执行 /digest 命令,将本次工作摘要写入 Obsidian。
如果发现现有文档与实际代码不符,主动更新对应的 .md 文件,
并在 git commit message 中注明「docs: sync with vault」。
配上这条规则后,知识沉淀就从一件需要你记着做的事,变成了系统自动跑的事。这也是我用 Claude Code 以来最实用的一条经验:别指望靠自律,把习惯写进 CLAUDE.md。
进阶:50 个 MCP Skills,方向怎么挑
50 个听着唬人,真正值得投入的就几类。结合 exobrain-harness 和社区里的实际用法,我把高价值的工作流归了归:
| 类别 | 典型 Skills | 实际价值 |
|---|---|---|
| 输入采集 | 语音转文字 → Vault、截图 OCR → 笔记 | 降低记录摩擦 |
| 代码质量 | slop-cop(prose linter)、codex 二次审查 | 把关 AI 输出质量 |
| 上下文管理 | 项目历史加载、相关代码片段召回 | 减少重复解释 |
| 任务追踪 | TODO 自动同步到 Vault 任务列表 | 形成闭环 |
| 复盘生成 | 周报/日报自动摘要 | 让知识沉下来 |
想找现成的,cc-skills 是个不错的轻量起点,可以当成 Skills 市场来翻。这里我特别推荐两个:slop-cop 帮你盯 AI 生成文本的质量,codex 给你一份来自 OpenAI 的二次意见。这俩搭一起,是我现在用得最顺手的代码生成质量把关方式,省去了来回切换工具的麻烦。
顺带一提,经常有人问 Claude Code vs Cursor 该怎么选。Cursor 胜在编辑器内的交互体验,Claude Code 这种基于文件系统加 MCP 的开放架构,在搭建上面这种自定义知识系统时更灵活,扩展空间大得多。两者面向的场景本来就不一样。
跑起来是什么感觉:一个典型工作日
光看配置没意思,说说真实体感。
早上九点,打开一个新项目,先敲 /load-context。Claude Code 自动读昨天的工作日志和项目决策记录,十秒不到就进入状态,不用我再复述一遍背景。
下午三点,啃掉一个异步竞态问题。随手 /digest,它自动生成结构化复盘写进 Vault,顺手打上 #concurrency #async 标签。整个过程我几乎没分心。
三个月后,又撞上类似的坑。在 Obsidian 里搜 #concurrency,翻出当时的解决方案,再让 Claude Code 基于这段历史上下文生成新方案。这一次它清楚我踩过哪些坑,我不用从零解释起。这种感觉,才像是有个记得住事的搭档。
写在最后
Claude Code 的价值,远不止写代码快一点。MCP 接通、Skills 配好、再让 AI 自动维护知识库,你拿到的就不是一个聊天框,而是一个记得你工作历史、摸清你技术偏好的协作工具。这也是我做 AI 编程内容这么久,最想分享给同行的一套玩法。
核心思路三句话:输入降摩擦,存储结构化,推理持续化。三层真正打通,这套第二大脑才算搭成。
如果你想跟着这篇教程把工作流跑起来,环境配置那一关往往最劝退人。我们 ECC 做的就是这件事——通过中转直接接入 Claude Code,免梯子、连接稳,你跳过折腾环境的步骤,把精力全留给真正重要的部分。
关于 Easy Claude Code
如果你想用上 Claude Code,可以试试我们 ECC(Easy Claude Code)的中转服务:免🪜、低成本、快速稳定,直连官方 Claude Code。企业定制化服务可详询。