obsidian-knowledge
Obsidian Knowledge Management
你与用户共享 MyObsidian vault。用户通过 Obsidian UI 使用,你通过 obsidian CLI 使用。这份指南确保你的操作与用户的知识管理习惯保持一致。
First Principle
首次操作 vault 前,读取共享规范:
obsidian vault=MyObsidian read file="AGENTS"
AGENTS.md 包含目录结构、标签体系、frontmatter 标准、链接规范等。同一 session 内已读过则跳过。
重点关注:
- 目录语义:每个顶层目录有明确的内容边界(如
12_Trading是交易执行,15_Finance是宏观金融),理解它们的区分标准 _AgentSpace分布:哪些目录有_AgentSpace/,各自管理什么类型的知识- frontmatter 标准:tags 格式、必填字段等
CLI Usage
所有操作通过 obsidian CLI,vault=MyObsidian 始终作为第一个参数:
obsidian vault=MyObsidian read file="笔记名" # 按名称读取(无需扩展名)
obsidian vault=MyObsidian read path="folder/note.md" # 按相对路径读取
obsidian vault=MyObsidian create name="新笔记" content="# 标题" silent # 创建新笔记(同名则覆写)
obsidian vault=MyObsidian create path="<上一步路径>" content="<重组后全文>" overwrite silent # 覆写现有笔记
obsidian vault=MyObsidian search query="关键词"
obsidian vault=MyObsidian move file="笔记名" to="目标目录/笔记名.md" # 移动文件(自动更新所有 wikilinks)
Wikilink + Move 时序规则:
obsidian move 会自动更新 vault 中所有指向该文件的 wikilinks。因此正确顺序是:
- 先建立 wikilinks(指向文件当前位置)
- 再执行 move(Obsidian 自动更新所有引用)
反过来(先 move 再补 wikilinks)会导致引用断裂,需人工修复。
操作优先级(从高到低):
- CLI 优先:所有 vault 操作首选
obsidianCLI。命令细节参阅references/obsidian-cli.md - 错误恢复:CLI 报错时,先
open -a Obsidian确保应用已启动,再重试 - 降级到文件编辑:确认 CLI 无法完成目标后(如 section 级插入),使用 Edit 工具(见 Section Editing Protocol)
- 特殊字符降级:文件名含特殊字符(【】、()、& 等)致 CLI 报错时,降级为
mv命令移动,并手动更新相关 wikilinks(自动更新仅在obsidian move时生效)
Section Editing Protocol
前提:此协议要求 vault 文件位于本地文件系统,且 Agent 具有文件系统读写权限。
CLI 不支持"在指定标题下插入内容"或"替换某个 section 内容"。遇到此类需求时,使用以下三步协议:
触发条件
操作目标是"在某个 H2/H3/H4 标题下添加内容"或"修改/替换某个 section 中的内容"时触发。
Step 1 — 获取文件绝对路径
笔记的绝对路径 = vault 根路径 + "/" + 相对路径:
# 获取 vault 根路径
open -a Obsidian && sleep 2 && obsidian vault info=path
# daily note:获取当日笔记相对路径
obsidian vault=MyObsidian daily:path
# 普通笔记:从 search 结果获取相对路径
obsidian vault=MyObsidian search query="笔记名"
Step 2 — 读取当前内容并定位 section
# 快速查看文件标题结构(可选,长文件时有用)
obsidian vault=MyObsidian outline file="笔记名"
# 读取全文
obsidian vault=MyObsidian read file="笔记名"
记录目标 heading 文本及其下的现有内容(到下一个同级或更高级 heading 为止)。
Step 3 — 用 Edit 工具精准修改
- 插入到 heading 下:
old_string= heading 行 + 现有内容,new_string= heading 行 + 现有内容 + 新增内容 - 替换 section 内容:
old_string= heading 行 + 旧内容,new_string= heading 行 + 新内容 - 禁止整篇覆写,除非执行"日末整理"等明确的全文重组任务
安全约束
- 必须先 read 后 edit,不允许盲目 overwrite
old_string必须包含足够上下文确保唯一匹配- 涉及
#Private/#Key标签笔记时,拒绝操作并告知用户
Knowledge Protocol
_AgentSpace/ 是 Agent 自主管理的知识工作目录(详见 AGENTS.md)。目录内部结构由 Agent 自行决定和维护。
_AgentSpace/ 分布模型:vault 中存在多个 _AgentSpace/,分布在各领域目录下(详见 AGENTS.md 的 _AgentSpace Convention)。LEARN 时根据内容所属领域选择对应 _AgentSpace/;READ 搜索时在 query 中使用 path:_AgentSpace 可匹配所有领域下的 _AgentSpace/ 目录。
以下操作适用于所有 _AgentSpace/ 目录下的笔记。
- READ:对话涉及已知概念时,搜索
_AgentSpace/并融入回答(执行者:Knowledge Retriever) - LEARN:需要记录新知识到
_AgentSpace/时,执行完整流程:- Search —
obsidian vault=MyObsidian search query="关键词 path:_AgentSpace"搜索已有笔记 - Read — 对搜索结果逐条 read,理解现有内容覆盖范围
- Decide — 已有笔记覆盖该知识 → 转 UPDATE;无匹配 → CREATE
- Execute — 创建新笔记或更新已有笔记
- Link — 用
[[wikilinks]]与相关笔记建立关联
- Search —
- LINK:创建/更新知识笔记时,使用
[[wikilinks]]引用相关已有笔记(利用 Obsidian 原生反向链接) - UPDATE:更新已有知识笔记时,直接修改内容并更新 frontmatter
updated字段(执行者:Note Editor)
主动 LEARN 规则:对话中出现以下情况时,Agent 应主动建议记录到 _AgentSpace/(而非等待用户指令):
- 用户纠正了 Agent 对业务概念的理解(如:"12_Trading 是交易执行相关的,不是泛金融知识")
- 用户澄清了目录分类标准(如:某类笔记应放 A 目录而非 B 目录)
- 对话中出现了
_AgentSpace/尚未收录的领域术语或规则 - 用户做出了重要的技术/业务决策,且决策理由值得沉淀
- 用户反复解释同一个概念或约定(说明 Agent 缺少持久化记忆)
建议方式:简短提示"这个纠正/决策要记录到知识库吗?(建议存入 <具体领域>/_AgentSpace/)",由用户确认后执行 LEARN。不打断主要对话流程。
所有 _AgentSpace/ 笔记遵循 AGENTS.md 的 frontmatter 标准,额外添加 source: ai-generated 和 managed-by: agent。
_AgentSpace/ 笔记 frontmatter 模板:
---
tags:
- Domain/Subdomain
- Topic
source: ai-generated
managed-by: agent
created: YYYY-MM-DD
updated: YYYY-MM-DD
---
tags 统一使用多行 YAML list 格式(每行一个 - tag),不使用 inline array [tag1, tag2]。
Roles
识别用户意图语义,匹配最相关的角色。复杂任务可多角色协作(如 Knowledge Organizer 整理时自然触发 LEARN 流程)。常见意图映射:
- 涉及每日笔记内容 → Daily Notes Collaborator
- 涉及每日笔记任务 → Daily Task Manager
- 涉及保存/提炼网页内容 → Clipping Save
- 涉及整理 WebClips / 整理某领域知识 → Knowledge Organizer
- 涉及查找信息 → Knowledge Retriever
- 涉及修改已有笔记 → Note Editor
- 涉及创建新笔记 → Note Creator
Daily Notes Collaborator
负责向每日笔记追加内容,以及日末整理。追加任务由 Daily Task Manager 负责。
每日笔记结构约定:
Agent 生成的所有内容统一放在 ## 🤖 Assistant Generated section 下。
Section 存在性检查(通用规则):
追加任何子 section 内容前,必须先 obsidian vault=MyObsidian daily:read 检查目标 section 是否已存在:
## 🤖 Assistant Generated不存在 → 追加时带 H2 + H3 header + 内容- H2 存在但目标 H3 不存在 → 追加时带 H3 header + 内容
- H3 也存在 → 直接追加内容,不重复 header
追加内容:
根据内容性质选择对应的 section:
| 内容类型 | section 标题 | 适用场景 |
|---|---|---|
| 结构化要点 | ### 📝 Notes |
会议记录、学习笔记 |
| 想法/感受 | ### 💭 Thoughts |
自由文本 |
| 网页链接 | ### 🔗 Links |
H4 条目,见 Clipping Save |
# section 不存在时(带 header):
obsidian vault=MyObsidian daily:append content="### 📝 Notes\n<内容>"
# section 已存在时(直接追加):
obsidian vault=MyObsidian daily:append content="<内容>"
时间敏感内容加 HH:MM 前缀。
日末整理:
当用户提到"整理今天"、"今日总结"、"daily review" 时触发:
分析规划阶段(只读,不写文件):
obsidian vault=MyObsidian daily:read读取当日全文- 内容整理规划:
## 🤖 Assistant Generated内:归并散落的同类 H3 section,顺序固定为 Notes → Thoughts → Links## 🤖 Assistant Generated外的非任务内容:询问用户是否归入对应 section,不自动移动,由用户确认
- 任务整理规划:
obsidian vault=MyObsidian tasks daily展示当日任务清单obsidian vault=MyObsidian tasks todo path="01_Daily"汇总最近未完成任务,按笔记(日期)分组展示- 规划历史未完成任务迁移:追加到当日笔记顶部,原任务标记为
[-]并添加(已迁移至[[<今日笔记名>]])
确认并执行阶段:
- 展示重组后的完整内容给用户,等待确认
- 用户确认后一次性执行所有写操作:
# Step 5a: 获取当日笔记相对路径 obsidian vault=MyObsidian daily:path # Step 5b: 覆写(overwrite flag 防止创建新文件) obsidian vault=MyObsidian create path="<上一步路径>" content="<重组后全文>" overwrite silent
Daily Task Manager
专注于每日笔记中的任务管理。当用户涉及当日或历史每日笔记的任务查看/更新时触发。
# 新增任务到当日笔记顶部
obsidian vault=MyObsidian daily:prepend content="- [ ] 任务描述"
# 查看当日任务
obsidian vault=MyObsidian tasks daily
# 汇总近期每日笔记中的未完成任务
obsidian vault=MyObsidian tasks todo path="01_Daily"
# 标记当日任务完成
obsidian vault=MyObsidian task daily line=<行号> done
# 标记历史每日笔记任务完成
obsidian vault=MyObsidian task path="01_Daily/YYYY/MM月/YYYY-MM-DD.md" line=<行号> done
工作流:
| 场景 | 操作 |
|---|---|
| "今天还有什么没做" | tasks daily 展示当日任务 |
| "完成了 XXX" | tasks daily 找行号 → task daily line=N done |
| "最近有哪些没做完的" | tasks todo path="01_Daily" 汇总,按日期分组展示 |
| 迁移历史未完成任务 | 追加到当日笔记顶部,原任务标记为 [-] 并添加 (已迁移至[[<今日笔记名>]]) |
Clipping Save
将 search-and-fetch 已提取分析的网页内容保存到 Obsidian vault,并即时完成知识提炼。
触发条件:
| 情况 | 处理 |
|---|---|
| search-and-fetch 完成内容提取/分析后,用户说"保存"、"记录"、"归档"、"clip"、"save" | 直接执行 |
| search-and-fetch 完成后,用户未明确表示保存意图 | 询问:"要保存到 Obsidian 吗?" |
前置依赖:search-and-fetch 的集成模式输出(标题、摘要、要点、分析、完整正文、实体)。
触发后依次执行:
Step 1 — 摘要追加到每日笔记(始终执行)
按 Daily Notes Collaborator 的 section 存在性检查通用规则处理 ### 🔗 Links section:
# section 不存在时:
obsidian vault=MyObsidian daily:append content="### 🔗 Links\n<H4 条目>"
# section 已存在时:
obsidian vault=MyObsidian daily:append content="<H4 条目>"
每条链接格式:
#### [页面标题](url)
> 一句话摘要
- 要点一(来自剖析)
- 要点二
**🛠 Tools**: Cursor · Windsurf ← 工具/软件(如有)
**📈 Stocks**: $AAPL Apple ← 股票/市场(如有)
**👤 People**: 姓名(身份) ← 人物(如有)
**📚 Resources**: 书名 ← 书籍/论文(如有)
Step 2 — 内容分流
Agent 基于内容特征判断价值类型,向用户建议处置方式(一句话说明理由),用户确认或调整后执行:
| 内容特征 | 建议处置 | 操作 |
|---|---|---|
| 包含持久知识(概念、规则、最佳实践、架构模式等) | 提炼到知识库 | 执行 Step 3 |
| 需要保留原文做参考(教程、长文、数据报告等) | 存档到 WebClips | 全文保存到 31_WebClips/<标题>.md |
| 时效性内容(新闻、公告、价格信息等)或低价值 | 仅保留摘要 | 不额外保存,流程结束 |
例外:用户原始消息中已明确指定处置方式(如"保存全文"、"记到知识库"、"clip")时,跳过询问直接执行。
Step 3 — 知识提炼(仅「提炼到知识库」时执行)
- 从 search-and-fetch 输出中提取核心知识点(概念、术语、规则、模式)
- 对每个知识点执行 Knowledge Protocol 的 LEARN 流程(Search → Read → Decide → Execute → Link)
- 每日笔记的 H4 条目末尾标注
→ 已提炼至 [[知识笔记名]]
Knowledge Organizer
整理 31_WebClips/ 剪切内容,提炼知识到各领域 _AgentSpace/。
触发词:整理知识、整理剪切、整理 WebClips、整理收藏
WebClips 批量整理:
31_WebClips/ 为用户与 Agent 共享空间。未整理的剪切留在根目录,整理完成后原文归档到 31_WebClips/_Archive/。
- 列出待整理内容:
obsidian vault=MyObsidian search query="path:31_WebClips -path:_Archive" - 逐条读取,分析内容所属领域(参考 AGENTS.md 目录结构)
- 对每篇剪切执行:
- 提炼:从全文中提取核心概念、术语、规则等知识点
- 归属:判断应归入哪个领域的
_AgentSpace/,无法明确归类时放入19_Misc/_AgentSpace/ - LEARN:为每个知识点触发 Knowledge Protocol 的 LEARN 操作,创建独立知识笔记
- LINK:触发 LINK 操作,用
[[wikilinks]]与已有知识建立关联
- 汇总整理计划呈现给用户:每篇剪切 → 提炼了哪些知识点 → 归入哪个领域
- 用户确认整理计划后执行(遵循 AGENTS.md 的 _AgentSpace 自主管理权限):创建知识笔记(确保新笔记中已包含指向原文的
[[wikilinks]]),然后用obsidian vault=MyObsidian move file="剪切名" to="31_WebClips/_Archive/剪切名.md"归档原文(move 自动更新所有已有 wikilinks)
_AgentSpace/ 维护策略:
不设独立审计流程,维护分布在日常操作中:
- 写入时自治:每次 LEARN/UPDATE 时,检查同领域
_AgentSpace/内是否有重复或可合并的笔记,顺手处理 - 按领域触发:用户说"整理 XX 领域知识"时,审计该领域的
_AgentSpace/(去重、清理过时、优化分类) - WebClips 整理附带:整理 WebClips 写入目标
_AgentSpace/时,自然审视该领域现有内容质量
Knowledge Retriever
当用户提问或需要查找信息时:
- 优先搜索 vault(含
_AgentSpace/目录):obsidian vault=MyObsidian search query="关键词" - 针对知识库精确搜索(全局结果可能较多,精确搜索确保专业知识不被淹没):
obsidian vault=MyObsidian search query="关键词 path:_AgentSpace" - 回答时引用已有笔记(如"参见 [[笔记名]]")
- 若搜索返回空结果或内容不足:
- 告知用户"vault 中未找到相关笔记"
- 委托 search-and-fetch skill 进行外部搜索补充回答
- 可建议将搜索结果保存为新笔记(触发 Note Creator)或追加到每日笔记(触发 Daily Notes Collaborator)
Note Editor
当用户要求修改、补充、更新已有普通笔记(非每日笔记)时:
obsidian vault=MyObsidian read file="笔记名"读取当前内容- 确认操作类型并执行:
- section 级修改/插入 → 走 Section Editing Protocol
- 末尾追加 →
obsidian vault=MyObsidian append file="笔记名" content="..." - frontmatter 属性修改 →
obsidian vault=MyObsidian property:set name="字段" value="值" file="笔记名"
- 若编辑的是
_AgentSpace/笔记,遵循 Knowledge Protocol 的 UPDATE 操作(更新updated字段) - 操作完成后告知用户具体变更了哪些内容
Note Creator
当用户要求记录、总结、整理信息为新笔记时:
- 根据 AGENTS.md 的目录语义判断笔记应放在哪个目录
- 遵循 frontmatter 规范,额外添加
source: ai-generated字段 - 使用
[[wikilinks]]链接 vault 中已有的相关笔记 - 若目标为
_AgentSpace/目录,额外添加managed-by: agent到 frontmatter - 不确定目录时,放入
00_Inbox/并告知用户
Skill Delegation
委托时机
| 需求 | 处理方式 |
|---|---|
| 普通笔记增删改查 | 直接使用 obsidian CLI,无需委托 |
| 网页搜索与内容提取分析 | 委托 search-and-fetch skill |
| 创建格式复杂的结构化文档(含模板、特定规范) | 委托 obsidian-markdown skill |
| 创建 .base 数据库视图 | 委托 obsidian-bases skill |
| 创建 .canvas 可视化画布 | 委托 json-canvas skill |
| 写技术文档、方案等结构化内容 | 委托 doc-coauthoring skill |
| 写内部沟通(3P updates、状态报告等) | 委托 internal-comms skill |
上述 vault skills 的路径:$(obsidian vault=MyObsidian info=path)/.agents/skills/。
技能优先级说明
obsidian-knowledge(本文件)是主规范,定义所有角色、工作流和决策逻辑。CLI 命令细节查阅本 skill 的 references/obsidian-cli.md。
Privacy Boundaries
这些是硬性边界,不可违反:
- 不读取/修改带
#Private或#Key标签的笔记 - 不操作
30_Permanent/MyConfig/中的敏感配置 - 不操作
99_Plugconfig/中的插件配置 - 遇到上述内容时,告知用户你无法访问并说明原因
More from zhuxining/skills
股票分析
提供获取用户自选分组(LongPort)、股票市场数据(LongPort + AkShare)、技术指标计算(ta-lib)的技能。分析数并与用户研究交易策略,形成买卖点建议,并可做回测、寻优与报告输出。
16search-and-fetch
通用网页搜索与内容提取技能。多源并行搜索(WebSearch、MCP 搜索工具、ctx7、agent-browser)、网页正文提取(crwl)与结构化文章分析。当用户需要搜索信息、研究主题、查找资料、获取网页内容、阅读文章、分析网页时使用。触发场景包括:搜索、研究、调研、fetch、查一下、帮我找、读这个链接、分析这篇文章。即使用户没有明确说"搜索",只要涉及信息获取和网页内容处理都应触发此技能。
5web-artifacts-builder
Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
5pdf
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
4canvas-design
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
4pptx
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
3