公司动态

让 Agent 替你写出 Obsidian 的 Bases 和 Canvas:obsidian-skills 实战指南

📅 2026/8/31 8:22:58
让 Agent 替你写出 Obsidian 的 Bases 和 Canvas:obsidian-skills 实战指南
让 Agent 替你写出 Obsidian 的 Bases 和 Canvasobsidian-skills 实战指南【免费下载链接】obsidian-skillsAgent skills for Obsidian. Teach your agent to use Obsidian CLI and open formats including Markdown, Bases, JSON Canvas.项目地址: https://gitcode.com/GitHub_Trending/ob/obsidian-skills第一次让 Claude Code「把读书笔记做成追踪表」时它只能在 Markdown 里画了张表格。装上 obsidian-skills 之后同样的提问直接生成了一份 .base 文件筛选条件、公式、表格视图齐全Obsidian 里打开即渲染。这篇文章用三个真实任务拆开它到底做了什么。看懂项目结构obsidian-skills 是一套遵循 Agent Skills 规范的技能包教 agent 正确读写 Obsidian 常用的三类文件格式——Flavored Markdown.md、Bases.base、JSON Canvas.canvas以及通过 Obsidian CLI 与正在运行的实例交互。它不是插件不改 Obsidian 本体只是skills/目录下一组 SKILL.md 说明文件每个技能配一个 references/ 参考文件夹任何支持该规范的 agent 都能加载包括 Claude Code、Codex、OpenCode仓库本身没有代码逻辑全部价值在于把「这些文件该怎么写才合法」写成了 agent 能执行的流程比如 技能源码目录 里还挂着 CALLOUTS.md、PROPERTIES.md 这类逐条列出语法的参考文档。让 Agent 写 Bases 追踪表你要做什么库里有 40 多篇打了#book标签的笔记想汇总成一张表显示状态图标、还剩几天到期读完的单独看。项目怎么完成agent 读取 skills/obsidian-bases/SKILL.md 后按 filters → formulas → views 的顺序写文件。filters 决定哪些笔记进表例如file.hasTag(book)formulas 定义计算列「距到期天数」写成if(due_date, (date(due_date) - today()).days, )if() 这一层不能省因为有些笔记根本没填 due_dateviews 里声明一个 table 视图order 数组控制列序。涉及日期、时长、字符串的完整函数表在 skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md 里。结果是什么样一份 .base 文件。在 Obsidian 里打开表格自动聚合所有带标签的笔记「距到期天数」列每天自动变化没填到期日的笔记显示空白而不是报错。再写一个filters: status done的视图就得到「已完成」清单。在 Canvas 上画概念关系图你要做什么把一个项目的 4 个核心模块和它们的依赖关系画到一张画布上用于周会投屏。项目怎么完成agent 生成 .canvas 文件顶层就是nodes和edges两个数组。每个节点必须带id、type、x、y、width、heightid 是 16 位小写十六进制字符串连线用fromNode/toNode指向节点可选fromSide/toSide定锚点、label加说明文字。技能要求写出前自查所有 id 不重复、每条边的两端都存在于 nodes 数组里布局时节点间距留 50–100px、对齐 10 或 20 的整数倍网格。结果是什么样Obsidian 打开即是一张带文本卡片和箭头的画布卡片尺寸按内容类型给了推荐值中等文本 300–450 × 150–300。直接截图放进周报不需要再手动拖拽。用 CLI 做批量操作你要做什么把「Inbox」里所有已完成的笔记属性批量改成 done再往今天的日记里追加一条任务。项目怎么完成agent 通过obsidian命令操作正在运行的实例参数语法是keyvalueobsidian property:set namestatus valuedone fileMy Note改属性obsidian daily:append content- [ ] New task追加日记obsidian search querysearch term limit10全库检索。加silent标志可阻止 Obsidian 弹出对应文件--copy把输出送进剪贴板。顺带一提当 agent 需要读网页时defuddle 技能会先跑defuddle parse url --md剥掉导航和广告再让干净的 Markdown 进上下文省掉大量 token。结果是什么样命令直接作用于已打开的 Obsidian右侧属性面板立刻能看到 status 变化。obsidian help实时列出全部命令包括插件开发用的plugin:reload、dev:screenshot、dev:errors这类调试指令。走通最短路安装npx skills add https://gitcode.com/GitHub_Trending/ob/obsidian-skills手动方式也可以——Claude Code 用户把仓库内容放进 vault 根目录的.claude文件夹Codex 用户把skills/拷到~/.codex/skills。给一个小任务试水「给这篇笔记补上 frontmatter 的 tags 和 aliases内链保持 wikilink、外链改成 Markdown 链接」。agent 会按 skills/obsidian-markdown/SKILL.md 里的流程执行。验证Obsidian 阅读视图打开该笔记标签可点击、aliases 参与链接补全、callout 正常渲染说明技能生效装完新技能后重启 agent 再试。排查三个高频坑OpenCode 不加载技能。只复制内层skills/子文件夹是最常见的错误正确做法是克隆整个仓库到~/.opencode/skills/obsidian-skills最终路径形如obsidian-skills/skills/skill-name/SKILL.md。验证方法ls ~/.opencode/skills/obsidian-skills/skills能看到 5 个技能目录obsidian-markdown、obsidian-bases、json-canvas、obsidian-cli、defuddle即为正确。Canvas 文本里出现字面的反斜杠加 n。JSON 字符串里的换行必须写成转义序列\n若写成\\nObsidian 会把\和n当普通字符渲染出来。验证用文本编辑器打开 .canvas 检查 text 字段或者直接在画布卡片里看到「反斜杠 n」字样就是这个问题。Base 公式只在部分行报错。两个高频原因一是某笔记缺属性公式没加if()守卫那些行会出错——给计算包一层if(due_date, ..., )再试二是日期相减返回 Duration 类型不支持直接.round()要先取数值字段正确写法是(date(due) - today()).days.round(0)。如果整个视图打不开先查 YAML 引号含双引号的公式要用单引号包裹含冒号、等号的字符串要加引号。另外 obsidian CLI 依赖 Obsidian 处于运行状态默认作用于最近聚焦的 vault命令没反应时先确认这一点多 vault 环境加vault名字前缀指定。判断值不值得引入适合两类人一是在用支持 Agent Skills 规范的 agentClaude Code、Codex、OpenCode且经常让它直接改库里的文件二是已经在用 Bases 和 Canvas、但手写 YAML 和 JSON 写到烦的人。不适合两类场景AI 平台根本不支持技能文件放上去也不会被读取或者你期望 agent 去点 Obsidian 的界面——这个项目只覆盖文件格式与 CLI不碰 GUI 操作。如果只挑一个场景先跑通建议从「让 agent 写 .base」开始手搓 Bases 的 YAML 是这套技能里痛感最明显、收益最直接的部分。【免费下载链接】obsidian-skillsAgent skills for Obsidian. Teach your agent to use Obsidian CLI and open formats including Markdown, Bases, JSON Canvas.项目地址: https://gitcode.com/GitHub_Trending/ob/obsidian-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考