← 返回文章

obsidian-skills:Obsidian 作者的 Agent Skill 集

更新于

Obsidian 作者的 Agent Skill 集,教 Agent 正确使用 Obsidian 格式。

obsidian-skills 的官方界面或演示截图
封面:来源 · 以仓库为准

obsidian-skills 是 Obsidian 作者 kepano 维护的 Agent Skill 集,仓库为 kepano/obsidian-skills。它处理的是 Agent 改笔记时最常见的一类错误:Markdown 会写,但双链、嵌入、callout、properties、Bases 和 JSON Canvas 的语法不一定对。六个 Skill 按 Obsidian 的开放格式拆分,让 Agent 在动手前先知道格式约束。按官方 README 整理,未在本机完整实测。

六个 Skill 分别管什么

Skill 负责的内容
obsidian-markdown Obsidian Flavored Markdown,包括 wikilink、嵌入、callout、properties 等专有语法
obsidian-bases .base 文件的视图、筛选、公式和汇总
json-canvas .canvas 文件里的节点、连线、分组和连接
obsidian-cli 通过 Obsidian CLI 操作仓库,也覆盖插件和主题开发
defuddle 从网页提取干净 Markdown,去掉干扰内容以节省 token
knap 用 JSON 或 CSV 数据渲染 Markdown 模板,支持批量生成文件

这套拆分的好处是职责清楚:整理笔记时不需要加载 Canvas 规则,做图表时也不会把 Markdown 语法混进来。

为什么格式约束值得单独做

通用模型训练时见到的 Markdown 远多于 Obsidian 方言。双链不是标准 Markdown 链接,嵌入要在链接前加感叹号,callout 是引用块里的特殊标记,properties 必须放在笔记开头的 frontmatter 里;这些写法在普通编辑器里未必报错,到了 Obsidian 才暴露问题。Bases 和 JSON Canvas 更不是 Markdown 的变体,而是独立文件格式,靠模型自由发挥很容易写出“看起来像、实际打不开”的文件。

让 Agent 在写之前加载对应 Skill,比事后逐篇修复便宜。尤其是在批量操作里,格式错误会随着文件数量放大。

安装路径因 Agent 而异

Claude Code 有插件市场入口:

/plugin marketplace add kepano/obsidian-skills
/plugin install obsidian@obsidian-skills

其他支持 Agent Skills 的工具可以用:

npx skills add git@github.com:kepano/obsidian-skills.git

手动安装时,Claude Code 把仓库内容放进 Obsidian 仓库根目录的 /.claude;Codex 把 skills/ 复制到 ~/.codex/skills;OpenCode 则要把整个仓库克隆到 ~/.opencode/skills/obsidian-skills,只复制内层 skills/ 不行,目录结构必须是 ~/.opencode/skills/obsidian-skills/skills/<skill-name>/SKILL.md。OpenCode 会自动发现所有 SKILL.md,不需要改 opencode.json,重启后生效。

一个整理知识库的场景

一个用了两年的仓库,三百多篇笔记,属性命名不统一,有些链接还是纯文本。可以让 Agent 先按 obsidian-markdown 的规则统一 properties 和 wikilink,再用 json-canvas 生成一个主题索引画布,最后用 knap 从 CSV 批量生成项目笔记。

批量生成时,CSV 可以只放项目名、状态和复盘日期三列,模板里写标题、属性和固定小节,一次生成几十篇初稿,再由人补内容。这样比让模型自由发挥可控,但模板字段必须和仓库现有约定一致,否则会造出第二套命名。执行前先把仓库纳入 Git 或做完整备份,先拿十篇笔记试跑,看完 diff 再扩大范围。

这些 Skill 约束的是语法和文件格式,不替你决定分类体系。标签怎么分层、哪些笔记该合并,仍然要人来判断。

与通用 Markdown 编辑的差别

通用 Agent 容易把 [[双链]] 写成普通 Markdown 链接,或者把 properties 写成正文里的 YAML 代码块;在 Obsidian 里,这些写法可能能显示,却不会被识别为链接或属性。obsidian-skills 把这些格式规则提前写进 Skill,减少“看起来改了、其实没生效”的情况。

如果笔记只用于纯文本环境,或者团队根本不用双链、Bases 和 Canvas,这套规则带来的收益有限,反而增加约束。只需要让 Agent 写普通 .md 文件时,obsidian-markdown 通常已经够用;Bases 和 Canvas 只在确实要维护对应文件时再启用,少一个 Skill 就少一层格式假设。

CLI 与批量操作的边界

obsidian-cli 覆盖 Obsidian CLI 以及插件、主题开发,但 README 没有展开每个平台和版本的差异,本文也没有实测。批量改写是风险更高的部分:Agent 可能一次改动几百个文件,而 Obsidian 没有跨文件撤销。稳妥的做法是限制单次改动范围、保留 Git 历史、对附件和 front matter 单独检查。

defuddle 会抓取网页内容,抓回来的文本属于外部输入,不能当作可信指令;让 Agent 总结网页时,仍要防止提示注入。

项目入口