很多人一上来就问:Obsidian 知识库搭好了、Claude 也装好了、Skills 这个词天天刷到,但这些东西到底怎么串在一起,怎么才能变成一个真正“越用越聪明”的 AI 知识库?我过去几个月反复折腾这套组合,踩了不少坑,也摸出了一条相对完整的路线。这篇就把我的整套方案拆开讲清楚,从为什么这么搭、到 Skills 怎么写、再到云同步怎么选,全部给实际操作级别的细节。
这套方案最终能解决什么问题?简单说:让 Claude 不再是个只会聊天的对话框,而是能直接读写你 Obsidian 库里的笔记,按照你定义好的流程帮你整理文献、生成卡片、梳理结构,而且这些能力可以固化下来反复调用。所有笔记通过云同步在多设备间保持一致,你在公司电脑上让 AI 整理好的内容,回家用手机打开就能看到。适合谁参考?正在用或准备用 Obsidian 做知识管理的人、对 Claude Code 和 Agent Skills 好奇但还没搞明白怎么落地的开发者、以及所有想把“AI 写提示词”升级成“AI 按规范干活”的人。
1. 为什么是 Obsidian + Claude + Skills 这个组合
1.1 这套组合到底解决了什么问题
很多人对“AI 知识库”有个误区,觉得只要把笔记丢给 ChatGPT 或者 Claude 网页版,让它总结一下就是 AI 知识库了。实际用过就知道,这种用法非常割裂:网页版 AI 看不到你的本地笔记,每次都要手动复制粘贴,而且 AI 的回答没有沉淀回知识库里,问完就没了。时间一长,知识库还是那个普通文件夹,AI 只是偶尔被拉来当临时工。
Obsidian 加 Claude 的组合,本质上是在解决“AI 和你的笔记数据之间的双向通路”。Obsidian 的所有内容都是本地 Markdown 文件,天然适合被程序读取和写入。Claude Code 这类工具能在命令行里直接操作文件系统,二者一结合,AI 就能直接翻阅、修改、新建你笔记库里的文件。这一步打通之后,知识库才真正从“存储工具”变成“工作台”。
Skills 在中间承担的角色更特殊。没有 Skills 的时候,你让 Claude 帮你整理笔记,每次都要把要求重新讲一遍,它是临场发挥的。有了 Skills,你可以把一套整理流程固化成文件,Claude 遇到对应场景时会自动读取这套流程并按步骤执行。这个区别本质上从“让 AI 帮你做一件事”变成了“教会 AI 一套做事的标准方法”。
1.2 我为什么放弃 Notion AI 和纯网页版方案
在定这套方案之前,我认真对比过几条路线。Notion AI 的优势是开箱即用,数据库、页面、AI 全在一个生态里,但它的数据是云端的,我想用 Claude 等外部模型处理笔记内容时,只能导出再导入,非常别扭。而且 Notion 对 Markdown 的兼容性、本地化的速度,用久了都让人不太舒服。
纯网页版方案的问题更明显:对话历史一长就找不到上下文,让 AI 写的东西要手动复制回笔记,格式经常乱掉。我试过把整个笔记库导出成一个大文档喂给网页版 Claude,效果很差,超过上下文窗口之后前面的内容全被截断,等于白折腾。
最后选择 Obsidian 的理由其实很朴素:所有数据都在本地,文件就是纯文本 Markdown,我可以用任何工具去处理这些文件,没有任何平台锁定。配合 Claude Code 做本地文件操作、Skills 做流程固化、云同步做多设备覆盖,这四层各管一段,逻辑清晰,出了问题也好排查。这种“数据完全自主 + AI 能力按需接入”的模式,是 All-in-One 平台给不了的。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Skills 到底是什么,以及怎么把它写明白
2.1 Agent Skills 的底层逻辑
如果你最近在关注 Claude Code、Codex 或者 OpenCode 这类工具,会发现它们都在大力推 Skills 功能。这个概念的官方叫法是 Agent Skills,简单理解就是给 AI 写一份“操作手册”。这份手册不是给人看的,是给 AI Agent 看的,里面写清楚:在什么情况下你应该启动这个技能、启动后需要按什么步骤操作、操作时要注意什么边界。
我用一个生活化类比解释:你雇了一个实习生帮你整理档案,如果你每次都说“帮我把这些文件整理一下”,这个实习生的整理方式每次可能都不一样,时好时坏。但如果你给他一本《档案整理操作手册》,里面写明分类规则、文件命名规范、目录结构、检查清单,他照着手册做,出来的结果就稳定多了。Skills 就是给 AI 的这本操作手册。
具体到 Claude Code 的实现,Skills 是以文件夹形式存在的。你需要在某个特定目录下创建一个文件夹,里面至少有一个 SKILL.md 文件。这个文件用 Markdown 写成,开头有一段 YAML 格式的 frontmatter,声明技能名称和触发描述,后面正文就是具体的操作步骤。当对话内容命中描述里的场景时,Claude 会主动加载这个技能文件并执行里面的流程。
2.2 一个标准 Skill 的文件结构
我现在维护的 Skills 目录一般是这样的:
text复制skills/
├── 读书笔记整理/
│ ├── SKILL.md
│ └── reference/
│ └── 笔记模板.md
├── 文献速读/
│ ├── SKILL.md
│ └── reference/
│ └── 摘要写法示例.md
└── 结构图生成/
└── SKILL.md
SKILL.md 是核心文件,AI 每次都会先读它。reference 目录放参考材料,当主文件里需要引用更长的示例或模板时,可以把内容拆到单独的参考文件里,避免 SKILL.md 本身变得冗长。这样做的好处是 Claude 在决定是否加载技能时只需要快速扫一遍主文件,并不需要把整本手册读完。
SKILL.md 的开头部分长这样:
markdown复制---
name: reading-notes-organizer
description: 当用户提供一篇阅读笔记、文章摘录或读书心得,并要求按照知识库规范进行整理时使用。适用于创建结构化的读书笔记、提炼核心观点、生成行动清单等场景。
---
注意 description 写得越具体,AI 判断是否触发这个技能就越准确。我一开始写得很泛,比如“整理笔记”,结果 Claude 动不动就触发,反而干扰了其他任务。后来把触发条件写成了“用户提供一篇文章或一段摘录并要求整理成结构化的知识卡片”,命中率才明显改善。
2.3 Skills 和普通 Prompt 的核心差异
很多人觉得 Skills 不就是把 Prompt 写进一个文件里吗?这个理解只对了一半。普通 Prompt 是你每次对话时临时输入的,AI 只能基于上下文理解一次,下一次它还是不知道你要什么。Skills 是持久化在文件系统里的,相当于给 AI 增加了长期记忆和标准作业程序。
更关键的是,Skills 可以包含逻辑分支和执行判断。比如我在“文献速读”Skill 里就写了这样的判断流程:如果文章少于 5000 字,直接全文阅读;如果超过 5000 字,先读取摘要和结论,再按需精读核心章节。这种流程化的逻辑放在普通 Prompt 里会非常臃肿,但放在 Skill 文件里就很自然,因为 AI 是按步骤执行的。
还有一个被很多人忽略的点:Skills 文件本身就是普通 Markdown,这意味着你可以用 Obsidian 打开它、编辑它、甚至用 Git 做版本管理。我见过一些团队把内部工作流写成 Skills 放到共享知识库里,新成员加入时直接让 AI 加载对应技能,上手成本大幅降低。这个“用笔记管理 AI 行为”的思路,正好和 Obsidian 知识库天然契合。
3. 手把手做一个“文章速读笔记整理”Skill
3.1 先定规范,再写流程
前面讲了不少理论,这里带大家完整走一遍实操。我选择做一个“文章速读笔记整理”Skill,因为这是知识管理里最常用到的场景:你看到一篇好文章,想快速提炼要点并沉淀到 Obsidian 库里,同时能和已有笔记建立关联。
动手写之前,我建议先梳理一下自己希望输出的结果长什么样。就这个场景而言,我希望 AI 最终产出的是一篇包含以下结构的笔记:原文信息(标题、作者、来源、链接)、核心观点(不超过 5 条)、关键论据或数据、我的思考与评价、相关笔记链接、行动提示。这个步骤很多人会跳过,但恰恰是最重要的——你连想要什么样的输出都没想清楚,AI 不可能帮你做对。
接着,我把这套要求写成一个判断流程。Claude 需要先问我几个问题来定位需求:这是完整文章还是摘录?需要详细笔记还是速读卡片?是否已经有关联的笔记?这些问题不是用来烦用户的,而是让 AI 在执行前获取足够信息,避免输出文不对题。
3.2 编写 SKILL.md 并正确放置到目录
把流程想清楚之后,就落实到文件。下面是我这个 Skill 的 SKILL.md 完整内容,你可以直接拿来改:
markdown复制---
name: article-speed-reading
description: 当用户提供文章内容、链接或文本文件,要求提炼要点、制作速读笔记、整理文章结构或生成知识卡片时使用。适用于网页文章、公众号长文、技术博客等场景。
---
# 文章速读笔记整理
## 执行前确认
1. 明确输入来源:用户是粘贴了全文、提供了链接,还是给了本地文件路径。
2. 确认输出深度:默认生成速读卡,如果用户说“详细整理”则生成完整读书笔记。
3. 检查是否有关联笔记:读 vault 内已有同类笔记,准备建立链接。
## 执行步骤
### 第一步:信息登记
创建笔记开头,包含 YAML frontmatter:
- title: 文章标题
- author: 作者(未知则留空)
- source: 来源网站或出版物
- url: 原始链接(如有)
- date: 处理日期
- tags: [速读笔记, 待深化]
### 第二步:提炼核心观点
- 通读全文,找出中心论点
- 提炼 3 到 5 条核心观点,每条控制在 50 字以内
- 提炼时保留原文逻辑顺序,不要随意调整
### 第三步:提取关键论据
- 从原文中摘取支撑核心观点的论据、数据或案例
- 每条论据注明其在原文中的大致位置
### 第四步:生成个人思考
- 站在读者角度提出一个批判性问题
- 写出“我为什么关注这篇文章”或“这篇文章对我有什么用”
### 第五步:链接关联
- 检查 vault 内是否已有相关主题笔记
- 如果有,在笔记底部用双链语法 `[[相关笔记标题]]` 建立链接
- 如果没有,在“待深化”部分写一个建议创建的笔记主题
## 输出格式要求
- 全文使用中文,Markdown 格式
- 不要修改原文内容,只做提炼
- 如遇定义模糊的表述,用引用块保留原文,并标注“此处原文表述模糊”
写完这个文件之后,把它放到正确位置。我建议放在 Obsidian 知识库根目录下的 .claude/skills/article-speed-reading/ 文件夹中,这样它随着知识库同步到所有设备,而且 Claude Code 在处理这个 vault 时能自动发现这个技能。
3.3 在 Claude Code 中测试并迭代 Skill
写完只是第一步,关键在于测试和迭代。我通常把测试分成三轮:
第一轮做基础触发测试。在 Claude Code 里粘贴一段文章内容,然后说“帮我整理成速读笔记”,看它是否自动加载了这个 Skill。如果它没有用上,多半是 description 里的触发词和你的表达方式不匹配。比如我一开始写的是“处理文章”,实际对话里几乎没人这么说,很多人会直接说“帮我看看这篇文章”,后来我把 description 改成包含“提炼要点”“整理文章结构”等表述后,触发率明显提升。
第二轮做流程完整度测试。仔细检查 AI 输出的是否严格按照 SKILL.md 里定义的步骤执行,特别是 YAML frontmatter 是否生成完整、底部有没有正确创建双链。这时候你会发现 AI 经常偷懒,比如漏掉“行为记录”,或者省略了“相关笔记”区块。针对偷懒情况,我通常会在步骤描述里把话说得更死,加上“不要跳过此步骤”之类的强调。
第三轮做边界情况测试。给它一篇超长文章、一篇没有清晰结构的碎片化笔记、一篇外语文献,看看它在这些场景下会不会乱套。我测试时发现一个重要问题:当文章需要阅读理解且信息量很大时,Claude 会过度发挥,加入原文没有的内容。后来我在 Skill 里加了一条铁律:“所有提炼必须基于原文,禁止添加知识库之外的背景知识,不确定的地方标注为待核实”,这个问题就基本解决了。
3.4 把常用 Skill 拆成“主流程 + 模板库”
用了几个月之后,我还摸索出一个提升效率的进阶做法:把 Skill 文件拆成主流程文件加模板库。比如“文章速读笔记整理”这个 Skill,它的主文件只负责执行流程,Markdown 模板则单独放到同目录下,其他 Skill 也能复用。
模板库的结构类似这样:
text复制skills/
├── 文章速读笔记/
│ ├── SKILL.md
│ └── templates/
│ ├── 文章速读卡片模板.md
│ └── 深度读书笔记模板.md
SKILL.md 的流程部分只需要写“根据用户选择的模板,从 templates 目录加载对应模板文件,按模板结构输出内容”即可。用这种方式,我新增一篇文章类型时不需要改动主流程,只要新增一个模板文件就行。这和我前面提到的“参考文件”思路是一脉相承的:尽量让主文件精简,复杂内容靠外部文件加载,AI 的执行效率和准确性都会提高。
4. 让 Skill 和 Obsidian 笔记库深层次融合
4.1 让 AI 能读懂你库里的结构
很多人的 Obsidian 库用了一段时间后会变得很乱:有的笔记放在根目录、有的放在某个主题文件夹、还有的只存在于未整理的临时区。这种情况下直接让 Claude 去处理笔记,它很容易迷路,不知道新笔记该建在哪里、该以什么格式和已有笔记关联。
所以我在 vault 根目录放了一个 AI_CONTEXT.md 文件,专门给 AI 介绍库的结构规范。这个文件的内容是给 AI 看的,不是给人看的,相当于知识库的一张“地图”。我会在里面写清楚:笔记按领域分为哪些顶层文件夹、哪些文件夹只放永久笔记、哪些区域可以随意建临时文件、命名规则是什么、标签体系怎么设计。每个需要 AI 参与的 Skill 在开头都会要求 Claude 先读这个文件,再开始干活。
举个例子,我的库里规定“收件箱”文件夹只存放未经整理的素材,被 Claude 处理过的内容必须转移到对应主题目录下,并加上“已整理”标签。这个规则放到 AI_CONTEXT.md 之后,我只需要把乱七八糟的素材丢进收件箱,然后跟 Claude 说“处理一下收件箱里的内容”,它就会自动完成提炼、格式化、移动、打标签的完整流程,颇有一种“给 AI 配了一张办公桌布局图”的感觉。
4.2 用 Dataview 让 AI 整理结果动态呈现
Skills 负责生成结构化的笔记,而 Obsidian 强大的 Dataview 插件可以让整理好的内容变成活的视图。Dataview 能从笔记的 frontmatter 里读取元数据,按照你的要求生成列表、表格或日历视图。
比如我要求文章速读笔记的 frontmatter 里必须包含 tags 和 status 字段,其中 status 可以是 待深化、已完成、待行动 三种状态。那么我可以创建一个数据看板笔记,用 Dataview 自动列出所有“待深化”状态的笔记,并按来源网站分组。这样我每次打开知识库就能看到哪些文章需要进一步处理,而且是实时更新的。
用 AI 生成笔记时一定要注意字段命名的一致性,否则 Dataview 查询会失效。我一开始踩过坑,有时候让 Claude 生成 frontmatter 时 tags 是数组写法,有时候又是逗号分隔的字符串,Dataview 查询结果时好时坏。解决办法是在 AI_CONTEXT.md 里写清楚所有字段的标准写法,并给 Skill 文件加上一个“输出检查清单”步骤,让 AI 生成完笔记后自查一遍 frontmatter 是否符合规范。
4.3 全局 Skills 和项目级 Skills 怎么分配
在使用 Skills 的过程中,我逐渐意识到一个取舍问题:哪些 Skill 应该对所有项目生效,哪些只对当前知识库生效。Claude Code 默认有两类存放位置:用户级目录放全局 Skill,对所有项目生效;项目级目录只对当前文件夹生效。
我的建议是:通用的、和知识库内容无关的技能放全局,比如“代码审查”“commit 信息生成”“正则表达式生成”。凡是需要读取你 Obsidian 特定目录结构、特定标签体系、特定笔记模板的技能,必须放项目级目录,因为这个技能的运行前提是内部有一份属于这个库的地图。
这里有一个容易出问题的细节:如果你的 Skills 文件放在 Obsidian 库内部的项目级目录,那云同步时它会同步到所有设备,这没问题。但要注意,如果你在某个设备上没有用 Claude Code 打开这个 vault,就不要让 AI 去调用这个 Skill,否则它读不到内部参考文件会直接报错。这个我在后面云同步的部分还会具体讲。
5. 云同步方案对比,以及我最终保留的方案
5.1 为什么 Obsidian 官方同步不是首选
既然要用 Obsidian 本地存储为核心搭知识库,云同步就是绕不开的一环。这部分我试过至少四种方案,包括官方同步、坚果云 WebDAV、Syncthing、Git 同步,各有各的优缺点,最终保留的是一套“本地局域网主力同步 + 第三方云端备份”的组合。
先说 Obsidian 官方同步。体验确实流畅,端到端加密、冲突处理粒度细、配置零成本。但它的付费模式对重度用户来说不便宜,而且同步数据是在官方服务器上的,对于坚持“数据完全掌握在自己手里”的人来说心里总有点疙瘩。还有一点,它的同步能力仅限于 Obsidian 应用内的文档,Claude Code 的配置和 Skills 目录想要跨设备同步,官方同步本身也管不到 vault 目录外的文件。
我现在的策略更像“分层备份”:一组核心笔记和配置走自建的路径同步,同时定期把压缩包推到网盘做冷备。这套方案既兼顾了日常使用的稳定性,又保证极端情况下数据不会丢。下面我把几个方案的实测体验和适合人群整理成一个表。
| 方案 | 同步协议 | 实时性 | 冲突处理 | 适用场景 | 我的实测感受 |
|---|---|---|---|---|---|
| Obsidian 官方同步 | 官方私有协议 | 即时 | 按块级精细处理 | 愿意付费、跨平台全场景 | 省心但贵,数据在别人服务器 |
| 坚果云 WebDAV | WebDAV | 即时 | 依赖客户端处理 | 国内用户、单个设备为主 | 配置方便,免费额度够用 |
| Syncthing | P2P | 秒级 | 版本保留+冲突文件 | 多设备局域网、强调数据私有 | 无缝但需自建中继,配置有门槛 |
| Git + 远程仓库 | Git 协议 | 手动/定时 | 需手动解决冲突 | 开发者、需要历史版本 | 可控性强,但每次都要 commit |
5.2 Syncthing 多设备同步的实施记录
我用 Syncthing 已经大半年,它走的是 P2P 同步协议,设备之间直接传输文件,不经过第三方服务器。这意味着你的笔记内容在传输过程中不会被一个中心服务器保存,数据隐私和 Obsidian 本地存储的定位非常契合。同步速度在有局域网的情况下基本是秒级,在外网环境下也能通过中继服务器穿洞连通。
配置 Syncthing 的核心步骤不复杂,但有几个地方比较容易出错。首先是文件夹 ID 要一致,我在电脑 A 上创建的同步文件夹会生成一个 ID,在电脑 B 添加远程文件夹时必须填完全相同的 ID,否则两台设备无法识别这是同一个文件夹。其次是只建议同步你们实际需要的子目录,不要盲目共享整个用户目录,否则文件数量过大会严重影响同步性能和索引效率。
我实际使用中遇到问题比较多的是 .obsidian 配置目录的同步。 .obsidian 下保存了插件、主题、快捷键等配置,如果两台设备的 Obsidian 版本或插件版本不一致,同步这个目录容易出现配置损坏的情况。我现在采取的做法是:正常同步 .obsidian 目录,但遇到设备差异导致的异常时,优先检查是不是插件版本不一致造成的。还有一个更稳妥的做法是把 .obsidian 的同步拆出来,用 Git 管理,本地工作区单独软链过去。
5.3 移动端的处理——手机上用 Obsidian 配合这套体系
很多人的 Obsidian 使用场景是碎片化记录为主,要能在手机上快速采集想法、稍后整理。移动端要跑起完整的 Claude Code + Skills 工作流不太现实,但做个“读库”和“快速收集”工具非常合适。
我的流程是:手机上用 Obsidian 配合 Syncthing 客户端,打开同步开关后就自动把手机端新增的笔记传回电脑,把电脑上 AI 整理好的结果同步到手机。你要设计的移动端工作流一定要简化,别指望在手机上做深度加工,那是电脑端的事。我在手机端只做两件事:用 Quick Capture 模板快速记录闪念,或者给已有笔记追加想法。深度整理统一攒到电脑上让 Claude 处理。
需要注意,如果你在手机 Obsidian 里直接修改了某篇笔记,而电脑端 Claude 正在处理同一篇笔记的另一份副本,同步时很可能产生冲突。Syncthing 检测到冲突后会把两份版本都保留下来并在文件名里标注“sync-conflict”。遇到这种情况不用慌,手动对比保留想要的那版后把冲突文件删掉即可。想减少这种碰撞,就养成一个习惯:在电脑端让 Claude 批量处理笔记前,先手动同步一次,确保当前库里是最新文件。
5.4 笔记本与桌面电脑的 Git 备份策略
我用 Syncthing 做实时同步,但它有一个弱点:没有版本历史。如果不小心删了某个文件,或者 AI 批量改写笔记时出现了大面积错误,Syncthing 的冲突文件机制并不能帮你恢复到几天前的完整版本。因此我在 Syncthing 之上又多叠了一层 Git 备份。
这里的 Git 备份不是指每篇笔记都频繁提交,而是定期做快照。我在桌面端设置了一个定时任务,每天凌晨把整个 vault 自动提交一次到本地 Git 仓库,并推送到一个私有远程仓库。这样即使发生严重误操作,也能回滚到任意一天的状态。很多 Obsidian 插件如 Obsidian Git 能自动做这件事,但实测下来它处理大 vault 时的性能开销偏高,我更倾向于在系统层面用脚本完成,完成后还可以顺手把 vault 打压缩包推一份到网盘做异地备份。
搭建这套系统我花了整个周末调试,但之后基本不用管。真正让我觉得这些折腾值得的场景是:有一次我给了一个错误的批量处理指令,Claude 一口气改坏了库里的几十篇笔记,换做以前我可能要手动恢复好几个小时;而有了 Git 备份后一分钟内就全部还原了。给所有数据操作套上版本管理这个习惯,可以说是搭智能知识库之后最值得的一笔投入。
6. 常见问题排查与避坑实录
6.1 Skills 没有被 Claude 自动加载
这是我被问得最多的问题,也是我自己刚开始时最容易踩的坑。明明把 SKILL.md 写好了,放到目录里了,但让 Claude 去执行时它完全没反应,就跟普通的聊天对话一样。
排查路径按顺序来:
- 确认目录结构是否规范:Claude Code 官方读取的是项目下
.claude/skills/目录,你的技能文件夹名称应该是英文或符合规范的命名,不能有空格和特殊字符。 - 确认 SKILL.md 头部 frontmatter 格式:frontmatter 必须用
---包裹,且name和description两个字段是必须的,其中 description 要写清楚触发条件,不能太泛。 - 在对话里明确请求一次:直接说“请调用 article-speed-reading 技能处理这段文章”。如果这样能生效而自然触发不生效,说明 description 写的触发词还不够准确,优化 description 的表述。
技能触发听起来是个很智能的过程,但实际机制并没有那么“神”。它基本是通过把 description 和你的对话内容做匹配来触发,所以 description 必须明确提到你通常会说出的词和句式。
6.2 SKILL.md 里的流程 AI 总是执行不全
SKILL.md 里明明写清楚了五个步骤,但 AI 输出经常只有三步,缺了最后一步“关联已有笔记”或“输出检查清单”。这种情况非常普遍,原因在于 AI 上下文窗口内的指令距离越长,后面的步骤越容易被忽略。
我总结可行的应对办法有两个。第一个是拆分执行:把长 Skill 拆成多个 Skill,比如“文献速读”和“笔记归档”分开。Claude 完成速读后,我把生成结果放入一个待归档文件夹,再让另一个 Skill 去处理归档。步骤短了之后执行完整性明显提升。第二个办法是在 SKILL.md 末尾加一个“完成标准”的自检清单,强制 AI 在输出前照着清单逐项确认。
我测试过把“完成标准”写在文件开头,发现没有放在结尾效果好。因为 AI 是顺序执行文件的,读完前面步骤后开始生成结果时,恰好落在后面的自检内容能直接作为输出前最后的约束信号。
6.3 云同步出现冲突文件该怎么处理
Syncthing 在检测到两台设备各自主导修改了同一份文件时,会生成一个带 sync-conflict 后缀的冲突副本。处理冲突文件的常规思路就是手动合并,但处理频率一高就很烦人。我后来调整使用习惯,这类冲突出现的次数被压低了很多。
具体做法是:电脑端在批量修改笔记前,先手动触发一次同步并等待它完成,确认两端内容一致后再开始让 AI 干活;手机端的 Obsidian 尽量只做“新增采集”,不长时间离线编辑一篇长文。另外给 Skills 定义一个输出目录,让 AI 大部分工作都集中在少数几个“整理中”目录,处理完经过人工确认再移入永久目录或做归档。因为新增文件几乎不会产生冲突,只有两端同时改同一个旧文件时才会冲突,所以把 AI 的“写操作”集中到新文件上,能最大可能避开冲突。
6.4 中英文混排和特殊字符导致的问题
知识库里内容通常包含大量中英文混排、代码片段、URL 等特殊内容。在让 Claude 批处理这些文件时遇到过两类典型问题。第一类是 Markdown 语法符号被 AI 误解或改写,比如代码块缩进被改掉、链接语法被转义,最严重的情况是文件里的 YAML frontmatter 被 AI 用错误的转义方式重写导致 Obsidian 无法正确读取属性。第二类是 Emoji 和特殊符号在跨设备同步时出现编码错乱,Windows 的记事本设备到 Mac 后偶尔出现乱码。
应对策略是硬性的:在 AI_CONTEXT.md 里明确写清“不要修改原文的 Markdown 格式和缩进”,在全部 Skill 里都加上“只新增区块,不重写已有内容,除非用户明确要求”的边界约束。同时配置 Syncthing 时注意文件名大小写和编码问题,如果发现某类文件总是出错,可以直接把这类文件排除在同步范围之外或者更名成规范的 ASCII 字符串。
6.5 解决性能问题:超大型 vault 的卡顿与检索
库大了之后,Obsidian 本身和 Claude Code 读文件都会遇到性能瓶颈。我当前 vault 里已经有两千多个 Markdown 文件,开着多个插件的情况下,Obsidian 启动和全文搜索的体感都会有明显的延迟。Claude Code 对这一类超大目录做递归扫描时也会等待很久。
解决思路有两个方向。一是给 Claude Code 设置明确的忽略规则,在 .gitignore 或 Claude Code 自己的配置文件里把不需要处理的目录(比如附件、归档、.obsidian)排除掉,减少扫描范围。二是在 Obsidian 里把大文件拆小,一篇长期积累的笔记超过数万字时,建议按年份或主题拆分成多个文件,然后用 MOC(内容地图)笔记把它们通过双链串起来。这样 Claude 在处理时不需要一次读入超大文件,Obsidian 的性能也会好很多。经过拆分,我启动 Obsidian 的时间从开插件常驻的几秒降到了接近秒开。
7. 我在这个方案上最终沉淀的几条心得
这套 Obsidian + Claude + Skills + 云同步的组合,前前后后折腾了小半年。回过头来看,真正跑通的不是某一个工具或某一个技巧,而是几个使用习惯和原则。
首先是“AI 工作流一定要文档化”。很多人让 AI 干活靠的是当场灵感,但灵感不持久,也不可复用。把一套整理流程写成 SKILL.md 放到知识库里之后,它就成了你工作方法的一部分。这个过程本身就是知识管理,你整理的不仅是外在的笔记,还有自己处理信息的方法论。
其次是“尽可能把流程拆短”。我早期写的 Skill 试图一次性完成太多事情,从文献速读到生成周报再到归档,结果每一步效果都不理想。后来我把这些动作拆成独立 Skills,让 AI 在明确的边界里执行。现在每次只做一件事,做完了我确认一遍,再进入下一环。过程看起来不那么“自动化”,但每一次产出质量都稳定得多,这比追求一步到位更重要。
最后是“给 AI 设定操作边界”。从数据安全角度看,AI 能读写你的笔记库既是福利也是风险。我在每台设备上给 Claude Code 指定的可操作目录都控制在 vault 文件夹范围内,绝不给整个用户目录的权限。同时重要操作前我会先同步和备份,因为再贵的模型也有判断失误的时候。给 AI 多大权限、允许改什么、不允许碰什么,这些规则应该在第一天就规划清楚。
如果你正准备入坑这套方案,我建议不要一次性铺开。先搭好 Obsidian 库和云同步,踏实用两周,确认这套基础结构真的跑顺了。然后再引入 Claude Code,让 AI 帮你做最简单的“读文件、写笔记”操作。最后再逐步添加 Skills,每加一个技能就实测迭代到稳定为止。路要一步一步走,知识库也是越用越有生命力的。
