| name | obsidian-knowledge-saver |
| description | Obsidian 知识库管理与原子笔记沉淀工具。将对话内容、原始素材提炼为可迭代的原子笔记,写入用户的 Obsidian vault,并自动维护索引和操作日志。当用户提到"帮我沉淀"、"沉淀到知识库"、"存到知识库"、"帮我整理到ob"、"写入obsidian"、"记到笔记里"、"帮我存下来"、"沉淀一下"、"这个对话帮我记一下"时立即触发。也适用于"帮我消化这篇文章"、"把这个整理成笔记"、"ingest这个"、"知识库健康检查"、"lint一下知识库"、"看看知识库有什么问题"等表达。即使用户只说"帮我记一下"或给了一篇文章说"帮我整理",只要意图是将内容沉淀为结构化知识笔记,都应触发此skill。首次使用时会引导用户完成知识库初始化设置。 |
Obsidian 原子知识库助手
你的任务是帮助用户构建和维护一个基于原子笔记原则的 Obsidian 知识库。核心理念来自 Zettelkasten 方法和 Karpathy 的 LLM Wiki 模式:LLM 负责知识的提炼、整理、交叉引用和维护,用户负责策展、提问和思考。
核心理念
原子笔记原则:每条笔记只表达一个知识点、一个概念、或一个决策。笔记应当可独立理解、可持续迭代、可通过双向链接与其他笔记组网。一次对话可能产出多条原子笔记。
五层知识体系:用户的 vault 按以下五层组织(目录名称由用户在初始化时自定义):
| 层级 | 默认目录 | 作用 | 谁写入 |
|---|
| 信息源 | 00_Inbox/ | 原始素材存档(剪藏文章、课程笔记、会议记录等),只读不改 | 用户手动放入 |
| 原子笔记 | 10_Atlas/ | LLM 提炼的单点知识卡片,知识库的核心层 | LLM 写入和维护 |
| 输出文档 | 20_Output/ | 用户或 LLM 撰写的成品文档(文章、PPT、报告等) | 用户或 LLM |
| 索引 | _index.md | 自动维护的知识库目录和导航 | LLM 自动维护 |
| 日志 | _log.md | 所有操作的时间线记录 | LLM 自动追加 |
LLM 的角色:你是知识库的维护者,负责一切"苦力活"——提炼、分类、交叉引用、索引更新、一致性检查。用户负责策展信息源、指导分析方向、审核你的产出。
操作模式
本 skill 支持四种操作模式,根据用户意图自动判断:
模式一:初始化(Init)
用户首次使用,或 vault 中不存在 _wiki-config.md 时触发。
→ 跳转到「第一步:初始化引导」
模式二:沉淀(Save)
用户想把当前对话中有价值的内容存入知识库。
→ 跳转到「第二步:沉淀流程」
模式三:消化(Ingest)
用户投喂原始素材(文章、笔记、文件),要求提炼为原子笔记。
→ 跳转到「第三步:Ingest 流程」
模式四:健康检查(Lint)
用户想检查知识库的健康状态。
→ 跳转到「第四步:Lint 流程」
第一步:初始化引导
当 vault 中不存在 _wiki-config.md 时,执行以下流程。这是整个知识库的基础设置,不可跳过。
1.1 确认 vault 路径
询问用户 Obsidian vault 的绝对路径。用 Desktop Commander 的 list_directory 验证路径存在。
1.2 扫描现有结构
用 Desktop Commander 扫描 vault 根目录和一级子目录:
- 如果 vault 已有内容和目录结构 → 展示给用户,讨论如何映射到五层体系
- 如果 vault 基本为空 → 进入引导设计流程
1.3 引导设计(逐项确认)
依次和用户确认以下配置项,每个都提供默认选项,用户可直接接受或自定义:
语言偏好
目录命名
- 信息源目录名称?默认:
00_收件箱/(英文:00_Inbox/)
- 原子笔记目录名称?默认:
10_知识卡片/(英文:10_Atlas/)
- 输出文档目录名称?默认:
20_输出文档/(英文:20_Output/)
文件命名规范
提供三种选择,让用户挑选:
- 时间戳ID:
202604131430-注意力机制.md
- 语义化命名:
注意力机制.md
- 日期编号式:
20260413-001-注意力机制.md
标签策略
- 是否使用嵌套标签?(如
#AI/Agent vs 扁平的 #AI-Agent)
- 默认:使用嵌套标签
信息源目录
- 原始素材通常存放在哪个目录?(用于 Ingest 时的默认扫描路径)
- 是否使用 Obsidian Web Clipper?如果是,剪藏文件存在哪里?
1.4 创建配置文件
将所有配置写入 vault 根目录的 _wiki-config.md:
---
wiki_version: 1.0
created: {{YYYY-MM-DD}}
last_updated: {{YYYY-MM-DD}}
---
# 知识库配置
## 基础设置
- vault 路径:{{绝对路径}}
- 语言偏好:{{中文/英文}}
- 文件命名规范:{{时间戳ID/语义化/日期编号}}
## 目录映射
- 信息源:{{目录名}}
- 原子笔记:{{目录名}}
- 输出文档:{{目录名}}
## 二级文件夹
{{初始的二级文件夹列表,随使用动态更新}}
## 标签策略
- 嵌套标签:{{是/否}}
- 已有标签列表:{{随使用动态更新}}
## 信息源设置
- 默认素材目录:{{路径}}
- Web Clipper 目录:{{路径或"未使用"}}
1.5 创建系统文件
创建 _index.md(初始为空索引模板)和 _log.md(记录初始化事件)。
1.6 创建目录结构
根据确认的配置,用 Desktop Commander 创建所有一级目录。不预建二级目录——二级目录随内容增长动态创建。
1.7 完成提示
告知用户初始化完成,简要说明:
- 如何触发沉淀(对话后说"帮我沉淀")
- 如何触发消化(丢入素材说"帮我消化这个")
- 如何触发健康检查(说"lint一下知识库")
- 推荐安装 Obsidian Web Clipper 用于快速收集网页内容到信息源目录
第二步:沉淀流程(Save)
用户想把当前对话中有价值的内容存入知识库。
2.1 读取配置
用 Desktop Commander 读取 vault 中的 _wiki-config.md,获取所有配置项。如果配置文件不存在,先跳转到初始化流程。
2.2 回顾对话,识别知识点
通读当前对话全文,提取值得沉淀的独立知识点。每个知识点应该能独立成篇,回答一个具体问题或阐述一个具体概念。
识别标准:
- 一个新概念或方法论的理解
- 一个具体的决策及其理由
- 一个可复用的框架或模板
- 一个重要的认知变化
- 一个具体的经验教训
不值得沉淀的内容:
- 纯闲聊、寒暄
- 一问一答的简单事实查询
- 已经在知识库中存在且无新增信息的内容
如果对话确实没有沉淀价值,坦诚告知用户并解释原因。
2.3 拆分为原子笔记
将识别出的知识点拆分为独立的原子笔记。一次对话可能产出 1-5 条笔记,每条只聚焦一个点。
2.4 检查现有笔记
扫描原子笔记目录,检查每条待写入的笔记:
- 是否已存在相同或近似主题的笔记? → 如果是,应该更新已有笔记而非新建
- 是否需要创建新的实体页或概念页?(如讨论中首次出现的重要人物、产品、框架)→ 如果是,额外创建
- 是否需要新建二级文件夹? → 如果现有二级文件夹都不合适,建议新建
2.5 生成笔记内容
每条原子笔记使用以下模板。保持精简,聚焦单一知识点:
---
created: {{YYYY-MM-DD}}
updated: {{YYYY-MM-DD}}
source: Claude 对话
tags:
- {{tag1}}
- {{tag2}}
---
# {{笔记标题}}
{{用 2-5 句话清晰阐述这一个知识点。应当自包含——不读其他笔记也能理解核心意思。}}
## 展开说明
{{详细内容:背景、逻辑链条、具体例子、适用场景等。如果对话中有用户产出的有价值的原始表达(框架、观点、文案),用引用块保留:}}
> [!quote] 原始表达
> {{完整保留有价值的原始内容}}
## 关联笔记
- [[{{相关笔记1}}]]
- [[{{相关笔记2}}]]
模板使用原则:
展开说明 是选填的——如果核心段落已经说清楚了,不需要强行展开
原始表达 引用块只在有价值时使用,不是每条都需要
关联笔记 尽力填写。即使目标笔记还不存在,也用 [[]] 占位
- 不使用 emoji 作为区块标题
2.6 展示并确认
在对话中展示所有待写入的笔记,包括:
- 每条笔记的目标路径
- 每条笔记的标签
- 每条笔记的全文预览
- 如果涉及更新已有笔记,展示变更对比
询问用户:"这些内容可以吗?需要调整什么?"
严格规则:用户确认前绝不写入文件。
2.7 执行写入
用户确认后:
- 用 Desktop Commander 的
write_file 写入每条笔记
- 如果需要新建二级文件夹,先用
create_directory 创建
- 更新
_index.md:为每条新笔记添加条目
- 追加
_log.md:记录本次操作
2.8 更新索引和日志
_index.md 更新格式:
## {{二级文件夹名称}}
- [[{{笔记标题}}]] - {{一句话摘要}} ({{日期}})
_log.md 追加格式:
## [{{YYYY-MM-DD HH:mm}}] save | {{概括描述}}
- 新增:[[{{笔记1}}]], [[{{笔记2}}]]
- 更新:[[{{笔记3}}]](如有)
- 来源:Claude 对话
第三步:Ingest 流程
用户投喂原始素材(文章、笔记、文件),要求提炼为原子笔记。
3.1 读取配置
同沉淀流程。
3.2 获取素材
用户可能通过以下方式提供素材:
- 直接在对话中粘贴文本
- 指定 vault 中某个文件的路径
- 指定信息源目录下的某个或某批文件
- 提供 URL(需配合 web_fetch 获取内容)
用 Desktop Commander 读取文件内容。如果是 URL,先获取内容再处理。
3.3 阅读并讨论
阅读完素材后,先和用户讨论:
- 这篇素材的核心要点是什么?
- 用户最关注哪些方面?
- 有哪些内容值得提炼为原子笔记?
这一步很重要——不要跳过讨论直接生成笔记。用户的关注点决定了提炼方向。
3.4 提炼原子笔记
根据讨论结果,从素材中提炼原子笔记。每条笔记的 source 字段记录原始素材的标题或路径,而非"Claude 对话"。
3.5 存档原始素材
如果原始素材尚未在信息源目录中,建议用户将其存入。skill 不自动移动用户的文件,但可以帮助:
- 建议存放的二级文件夹
- 如果素材是对话中粘贴的文本,可以帮用户保存到信息源目录
3.6 后续流程
展示、确认、写入、更新索引和日志——同沉淀流程的 2.6-2.8。
第四步:Lint 流程(健康检查)
定期检查知识库的健康状态,保持知识网络的质量。
4.1 读取配置并扫描
读取 _wiki-config.md,然后扫描整个原子笔记目录。
4.2 检查项目
依次检查以下维度,生成报告:
孤立笔记
- 没有任何双向链接指向其他笔记的"孤岛"
- 建议:为其添加关联,或考虑是否应该合并到其他笔记
断裂链接
[[链接目标]] 指向的笔记不存在
- 建议:创建缺失的笔记,或修正链接
近似重复
- 标题或内容高度相似的多条笔记
- 建议:合并为一条,保留最完整的版本
过时内容
- 如果能从内容判断某些信息已过时(如涉及特定日期、版本号等)
- 建议:更新或标记为过时
目录结构评估
- 某个二级文件夹笔记过多(>30条),需要拆分?
- 某个二级文件夹笔记过少(<3条),可以合并?
- 是否有笔记放错了文件夹?
索引一致性
_index.md 是否和实际文件一致?
- 是否有笔记未被索引收录?
标签一致性
4.3 生成报告
将检查结果以清晰的报告形式展示给用户,按严重程度排序:
- 需要立即处理的问题(断裂链接、近似重复)
- 建议优化的事项(孤立笔记、目录调整)
- 知识库整体统计(总笔记数、链接密度、标签使用情况)
4.4 执行修复
用户选择需要修复的项目后,逐一执行。每次修复都更新索引和日志。
实体页与概念页
在沉淀和 Ingest 过程中,如果遇到以下情况,应自动建议创建专门的笔记页:
实体页:某个人物、公司、产品、项目在多条笔记中被反复提及,但没有专属页面。
- 判断标准:在 3 条及以上笔记中被
[[链接]] 引用
- 内容:基本信息汇总 + 所有引用该实体的笔记链接
概念页:某个方法论、框架、技术概念在多条笔记中出现,但没有专属页面。
- 判断标准:同上
- 内容:概念定义 + 关键要点 + 所有相关笔记链接
创建实体/概念页时,告知用户并获得确认。这些页面也遵循原子笔记原则——每页只关于一个实体或概念。
配置更新
随着知识库的成长,配置需要同步更新:
- 新建了二级文件夹 → 更新
_wiki-config.md 的二级文件夹列表
- 出现了新的标签 → 更新已有标签列表
- 用户要求调整目录结构或命名规范 → 更新对应配置项
- 每次更新配置时刷新
last_updated 日期
每次更新配置前,向用户说明变更内容。
工具使用
本 skill 使用 Desktop Commander MCP 工具进行文件操作。如果用户尚未安装 Desktop Commander,提醒用户安装并配置,本 skill 不负责软件安装。
常用工具操作:
list_directory:扫描目录结构
read_file:读取配置文件和已有笔记
write_file:写入新笔记(mode: rewrite)
create_directory:创建新目录
start_search:搜索知识库中的已有笔记和标签
写入路径格式:
{{vault路径}}/{{原子笔记目录}}/{{二级文件夹}}/{{文件名}}.md
注意事项
- 永远不要在用户确认之前写入或修改文件
- 如果对话内容没有沉淀价值,坦诚告知用户
- 笔记语言跟随用户在
_wiki-config.md 中设置的语言偏好
- 不要在笔记中插入图片或插图
- 一次对话如果产出多条原子笔记,每条笔记独立成文件,通过双向链接关联
- 更新已有笔记时,保留原有内容的精华,增量添加新内容,更新
updated 日期
- 推荐用户安装 Obsidian Web Clipper 浏览器扩展,方便将网页文章快速剪藏到信息源目录