技能使用指南

json-canvas(JSONCanvas技能Skill)Skill 是什么?如何生成 Obsidian 画布?

json-canvas 技能让 AI 代理直接创建与编辑符合 JSON Canvas Spec 1.0 的 .canvas 文件,支持文本、文件、链接、组四类节点与带箭头连线的边,自动处理坐标、唯一 ID 与颜色预设。无论是 Obsidian 思维导图、项目看板还是流程图,一句话即可产出可用画布骨架。本文详解安装验证、使用步骤、竞品对比与常见问题,帮你快速上手,立即阅读并动手试一次。

JSONCanvas技能Skilljson-canvas
20 个章节 约 20 分钟阅读 AI 智能生成

JSONCanvas技能Skill:用 AI 一句话生成 Obsidian 无限画布 .canvas 文件

核心结论速览

  • 它是什么:json-canvas 是一个让 AI 代理能够直接创建和编辑 JSON Canvas 文件(.canvas)的技能,输出符合 JSON Canvas Spec 1.0 规范的有效 JSON。
  • 它解决什么:手写 .canvas 文件需要自己算坐标、编唯一 ID、维护节点与边的引用关系,极易出错;这个技能把这套规范"装进"了 AI 代理的脑子里。
  • 它能做什么:支持文本节点、文件节点、链接节点、组节点四类节点,以及带连接侧、端点形状、标签和颜色的边,还能设置组背景样式与颜色预设。
  • 它怎么用:用自然语言描述你要的画布(思维导图、流程图、项目看板),代理直接产出 nodes + edges 结构,你只需保存为 .canvas 文件即可在 Obsidian 中打开。
  • 适合谁用:Obsidian 用户、知识管理爱好者、需要快速梳理流程与结构的开发者、产品与研究人员。

该技能叫什么?如何下载安装 AI 技能提升开发效率?

基本信息

项目 内容
技能中文名 JSONCanvas技能Skill
技能英文名 json-canvas
技能 ID 12614
输出格式 .canvas 文件(JSON Canvas Spec 1.0)
典型宿主环境 Obsidian 及其他支持 JSON Canvas 的应用

它到底解决什么问题?

JSON Canvas 是一种用于无限画布数据的开放文件格式,文件以 .canvas 为扩展名,内容是一段遵循 JSON Canvas Spec 1.0 的合法 JSON。它的结构看似简单——顶层只有 nodes 和 edges 两个数组——但真正动手写的时候,麻烦就来了:

  1. 坐标要自己算:每个节点都必须提供 x、y、width、height 四个整数,位置指的是节点左上角,x 向右递增、y 向下递增,坐标可以是负数(画布无限延伸)。想让布局不重叠、不歪斜,全靠手工调。
  2. ID 要自己编且必须唯一:节点和边的 id 是必填的唯一字符串,Obsidian 采用的是 16 个小写十六进制字符的 64 位随机值格式。手写时随手编个 1、2、3,稍不留神就重复。
  3. 引用关系容易断链:边的 fromNode 和 toNode 必须引用真实存在的节点 ID,改一个节点 ID 就得回头同步所有相关边。
  4. 细节规则多:type 只能是 text、file、link、group 之一;fromSide、toSide 只能是 top、right、bottom、left;fromEnd、toEnd 只能是 none 或 arrow;颜色预设只能是 "1" 到 "6" 或合法的十六进制颜色。任何一处不合法,文件就可能打不开或渲染异常。

json-canvas 技能的作用,就是把这套规范、验证规则、布局建议和现成的结构范例交给 AI 代理。你描述需求,代理负责产出结构正确的 JSON。

"一键安装"的思路与步骤

安装的本质,是让 AI 代理在需要时自动加载这套 JSON Canvas 知识,而不是每次都靠你在提示词里手写一遍规范。

安装前提

  • 你需要一个支持"技能(Skill)"机制的 AI 代理环境,能够在处理 .canvas 相关任务时调用该技能;具体支持哪些客户端与版本,以官方说明为准。
  • 目标文件需为 .canvas 扩展名,或者你明确告知代理"我要生成 Obsidian Canvas 文件",以便触发技能。

安装步骤(通用流程)

  1. 打开你所用 AI 平台的技能库/技能市场/插件管理入口(不同平台名称不同,以官方说明为准)。
  2. 在搜索框中输入技能英文名 json-canvas,或检索技能 ID 12614。
  3. 找到对应条目后点击"安装"或"启用",将技能加入当前工作空间/会话。
  4. 若平台支持自动触发(技能描述中提到"当处理 .canvas 文件、创建视觉画布、思维导图、流程图,或用户在 Obsidian 中提到 Canvas 文件时使用"),安装后即可在相关对话中自动生效。

如何验证是否生效

发出一个最小验证请求,例如:

帮我生成一个最小的 Obsidian Canvas 文件,只包含一个文本节点,内容是"Hello Canvas"。

如果技能已生效,返回结果应当满足以下特征:

  • 顶层同时存在 nodes 和 edges 两个数组(edges 可以为空数组);
  • 节点包含 id、type、x、y、width、height 六个必填字段;
  • type 为四种合法类型之一(本例应为 text);
  • id 是唯一的字符串(通常形如 16 位十六进制)。

这些特征全部命中,说明技能已正常工作;若代理返回的是 Markdown 大纲或其它格式,则说明技能未被调用,需检查安装状态或显式点名"请使用 json-canvas 技能"。


该技能的主要功能和特点

  • 创建完整的 .canvas 文件:一次性产出符合 JSON Canvas Spec 1.0 的合法 JSON,包含 nodes 与 edges 两个顶级数组,可直接保存使用。
  • 四类节点全覆盖:
    • text 文本节点——内容为带 Markdown 语法的纯文本,支持标题、加粗、列表、删除线等;
    • file 文件节点——引用文件或附件(图像、视频、PDF、笔记等),支持可选的 subpath 精确指向标题或块(以 # 开头);
    • link 链接节点——展示外部 URL;
    • group 组节点——作为其他节点的视觉容器,支持 label 标签、background 背景图与 backgroundStyle 渲染样式。
  • 边(连线)能力完整:支持指定 fromSide / toSide 连接侧(上/右/下/左)、fromEnd / toEnd 端点形状(none 或 arrow)、线条 color 与连线 label,足以画出带"是/否"分支标注的流程图。
  • 颜色体系双轨制:既可用 #FF0000 这样的十六进制颜色,也可用 "1" 到 "6" 六个预设色(红、橙、黄、绿、青、紫)。预设色的具体色值未定义,允许各应用使用自己的品牌色,因此跨应用观感可能略有差异。
  • 理解 Z-Index 图层顺序:节点在数组中的位置即层级——第一个节点在最底层,最后一个节点在最上层。技能会在生成时考虑谁该压住谁。
  • 自带布局经验值:内置推荐尺寸(如小文本 200–300 × 80–150、文件预览 300–500 × 200–400)与间距建议(组内留 20–50px 填充、节点间隔 50–100px、坐标对齐到 10 或 20 的倍数)。
  • 输出前遵守验证规则:ID 唯一、fromNode/toNode 必须指向现存节点、各类型必填字段齐全、枚举值合法——这些规则被写进技能里,显著降低产出"打不开的文件"的概率。
  • 自带范例可参照:技能内含简单画布、项目看板(带组)、研究画布(文件+链接混合)、流程图等多个完整示例,代理可据此类比生成。

和普通工具比强在哪? 通用绘图工具要求你手动拖拽连线;纯文本画图 DSL 需要你学习另一套语法;而直接让通用大模型写 .canvas JSON,它常常漏字段、编造不存在的属性、把 fromNode 指向不存在的 ID。json-canvas 的差异在于:它把规范本身作为技能内容交付,输出的每一步都有据可依。


如何使用该技能?

步骤一:确认技能已启用

如前文所述,先在技能库中确认 json-canvas 已安装并启用。若代理未自动调用,可在提示词开头明确写出:“请使用 json-canvas 技能生成一个 .canvas 文件。”

步骤二:用自然语言描述画布需求

描述越具体,产出越贴合。建议包含三要素:画布用途、节点清单、连接关系。

输入示例 1(思维导图)

用 json-canvas 做一个思维导图:中心主题是"季度增长策略",向右展开三个分支——“内容营销”“渠道投放”“用户留存”,中心节点用绿色,三条连线从左向右连接,标签分别为"方向一"“方向二”“方向三”。

输出说明:代理会生成 1 个中心 text 节点(color: "4" 对应绿色)位于左侧、3 个分支 text 节点纵向排布在右侧,并通过 3 条 edges 连接,fromSide 为 right、toSide 为 left,各带 label。

输入示例 2(项目看板)

做一个三列看板画布:To Do、In Progress、Done 三个组,每组宽 300 高 500,从左到右排列,组内各放一个任务卡片文本节点。

输出说明:这是技能内置的典型场景,会产出 3 个 type: "group" 节点(x 分别为 0、350、700,y 为 0,宽 300、高 500)加 3 个 text 任务卡节点,卡片坐标落在各组内部并留出内边距。结构大致如下:

{
  "nodes": [
    { "id": "5e6f7a8b9c0d1e2f", "type": "group", "x": 0, "y": 0, "width": 300, "height": 500, "label": "To Do", "color": "1" },
    { "id": "8b9c0d1e2f3a4b5c", "type": "text", "x": 20, "y": 50, "width": 260, "height": 80, "text": "## 任务 1

实现功能 X" }
  ],
  "edges": []
}

输入示例 3(流程图)

画一个数据处理流程图:开始 → 采集数据 → 判断数据是否有效 →(是)处理数据 → 结束;判断节点左分支 否 → 重新采集 → 回到采集数据。

输出说明:代理会用 text 节点表示各步骤,判断节点用黄色(color: "3")区分,并通过 fromSide/toSide 精确控制连线从底部出、顶部入,"是"分支用绿色("4")、"否"分支用红色("1"),回退连线同样带箭头。

步骤三:检查输出的合法性

拿到 JSON 后,按技能内置的验证规则快速自查:

  1. 所有 id 在节点与边之间是否全局唯一;
  2. 每条边的 fromNode、toNode 是否都能在 nodes 中找到对应 ID;
  3. 每个节点是否都具备 id、type、x、y、width、height;
  4. type 是否为 text/file/link/group 之一;
  5. 侧边值是否为 top/right/bottom/left,端点值是否为 none/arrow;
  6. 颜色预设是否落在 "1"–"6" 区间或为合法十六进制色。

步骤四:保存为 .canvas 文件

将返回的 JSON 原样保存为 xxx.canvas 文件(纯 JSON,无需额外包裹),放入你的 Obsidian 库中即可。也可直接让代理在具备文件写入能力的环境中落盘。

步骤五:打开并微调

在 Obsidian 中打开该文件,检查节点是否重叠、连线是否绕远。如需调整,继续对话即可,例如:

把"渠道投放"这个分支整体下移 120 像素,并把它改成橙色。

代理会基于已有结构增量修改坐标与 color 字段,而不是推倒重来。


同类型竞品对比分析

方案名称 定位 核心功能 安装/使用门槛 适用场景 优势与不足
json-canvas 技能(本技能) 面向 AI 代理的 JSON Canvas 生成与编辑能力 生成/编辑 .canvas,覆盖四类节点、边、颜色、组背景,内置验证规则与布局建议 需在支持技能机制的 AI 环境中安装启用;使用门槛仅需自然语言描述 思维导图、流程图、项目看板、研究综述画布 优势:批量生成结构、自动算坐标与 ID、规范内置不易出错;不足:精美视觉呈现仍需在 Obsidian 中人工微调
Obsidian Canvas 图形界面手动拖拽 官方可视化编辑器 鼠标拖拽创建节点、手动连线、可视化调整 零安装门槛(Obsidian 内置) 少量节点、需要即时所见即所得 优势:直观、即改即见;不足:节点一多就费时,重复结构需要一个个摆,无法批量生成
手写 JSON / 自写脚本生成 完全手工控制 按规范手写或编程生成 JSON 门槛高,需熟读 JSON Canvas Spec 需要精确控制、程序化批量产出 优势:控制力最强、可接入自动化流水线;不足:学习成本高,ID 唯一性与引用一致性全靠自己保证
Mermaid 等文本图表 DSL 用文本语法描述图表 流程图、时序图、甘特图等 需学习语法,且需渲染环境支持 文档内嵌图表、代码仓库中的图 优势:语法紧凑、与 Markdown 生态融合好;不足:产出的是渲染图而非可自由拖拽的无限画布,不支持文件节点、链接节点这类画布专属能力

如何选择:如果你的工作流围绕 Obsidian 与无限画布展开,且需要"批量生成结构 + 后续自由编辑",json-canvas 技能最贴合;如果只是文档里插一张流程图,Mermaid 更省事;如果节点不超过十个,手动拖拽反而最快。


该技能的典型应用场景与实际体验情况

场景一:研究者的文献综述画布

角色与痛点:研究生或行业研究员需要把十几篇文献、笔记、图表和外链汇总到一张画布上,理清"谁支持谁、谁反驳谁"。手动建十几个文件节点再逐个连线,光是摆位置就要耗掉大半天。

使用方式:一次性描述"中心是研究问题,左侧放三篇 PDF 文献,下方放会议笔记(指向 #Key Insights 小节),右下角放一张示意图,连线标注 supports / informs"。

实际体验情况:这是技能内置范例覆盖最好的场景——file 节点支持 subpath 精确指向笔记里的标题,link 节点可挂外链,边上还能带 label。上手难度低,产出结构基本一次成型。注意事项:文件路径必须与你库内的真实路径一致,代理无法替你确认文件是否存在,保存后若显示空白,优先检查 file 字段路径拼写。

场景二:团队的项目看板画布

角色与痛点:小团队想在 Obsidian 里做一个轻量看板,不想引入额外 SaaS。手工建组、调宽高、把卡片塞进组里,很容易出现卡片压住组标题的尴尬。

使用方式:描述三列分组与任务卡,让代理生成骨架,之后每新增任务就让代理"在看板的 In Progress 组里追加一张卡片"。

实际体验情况:组节点的 x/y/width/height 与卡片坐标是两套数字,人工对齐很费神,技能按"组内留 20–50px 填充"的建议生成,通常不会越界。注意事项:组本质上是视觉容器,不会真正"锁住"内部节点,后续手动拖动卡片仍需自己注意不要移出边界。

场景三:开发者的流程与架构梳理

角色与痛点:开发者在做技术方案评审时,需要一张能讲清"数据怎么流、分支怎么走"的图。纯文本描述费口舌,直接画又来不及。

使用方式:口述流程步骤,让代理生成带判断分支的流程图,判断节点用预设黄色,正常路径用绿色,异常回退用红色并配箭头。

实际体验情况:fromSide/toSide 让连线走向可控,配合 fromEnd/toEnd 的形状设置,画出的流程图逻辑清晰。注意事项:预设色 "1"–"6" 的具体色值由应用自定,同一个 "1" 在不同软件里可能略有差别,若对品牌色有严格要求,请改用十六进制颜色。

场景四:教学与汇报的结构化表达

角色与痛点:讲师或汇报人需要把"总—分"结构可视化,且希望后续能自由增删。

使用方式:用思维导图样式生成骨架,再逐轮对话补充细节,比如"给第二个分支再展开三个子节点"。

实际体验情况:增量的坐标推导是这类场景的核心价值——新增子节点时,代理会参考同级节点的间距(建议 50–100px)安排位置,避免重叠。注意事项:画布很大时,建议分模块生成再合并,一次性要求生成几十个节点,位置精度会下降。


该技能能为用户带来的价值

1. 把机械劳动交给机器。 坐标计算、16 位十六进制 ID 生成、引用一致性维护,这些没有任何创造性但极耗耐心的工作,全部由技能承担。用户只需表达"我要什么",而不是"每个节点摆在哪"。

2. 显著降低格式门槛。 想用 JSON Canvas,就得读懂规范、记住枚举值、理解 Z-Index 顺序。技能把这些知识内置,让不懂 JSON 的知识工作者也能产出合法画布文件。这是一次典型的"专业能力平权"。

3. 减少返工与排错成本。 手写 JSON 最常见的失败是"文件打不开"或"连线飘了",排查起来要逐行比对。技能内置的验证规则在生成环节就规避了 ID 重复、引用悬空、枚举非法等高频错误。

4. 让"结构化思考"变得可批量。 以一张 20 个节点的画布为例,手工摆放需要反复试错调整位置;技能可以一次性输出完整骨架,用户只需在此基础上做 10%–20% 的审美微调。批量场景(如为多个项目各生成一张结构相同的看板)收益更明显。

5. 长期价值在于可维护。 .canvas 是纯文本 JSON,天然适合版本管理。配合技能做增量修改,你等于拥有了一份"用自然语言即可演进"的结构化知识资产。


常见问题 FAQ

Q1:这个技能怎么安装?需要付费吗?

A:在支持技能机制的 AI 平台技能库中搜索英文名 json-canvas 或技能 ID 12614,点击安装/启用即可。整个过程是"一键式"的,不需要手动配置 JSON Canvas 规范。是否收费、如何计费取决于你所在平台的策略,以官方说明为准。

Q2:我必须用 Obsidian 才能用这个技能吗?

A:不是。JSON Canvas 是一种开放文件格式,Obsidian 是主要使用场景之一,但其他支持该格式的应用同样可以打开。技能本身只负责生成和编辑合法的 .canvas JSON,不绑定具体宿主软件。需要注意的是,预设颜色 "1"–"6" 的具体色值未在规范中定义,不同应用的呈现可能略有差异。

Q3:能让技能修改我已有的 .canvas 文件吗?

A:可以。技能的定位是"创建和编辑"。你把现有 JSON 贴给代理,再说明修改意图(如"把某组整体右移 200 像素"“给这条边加上标签 leads to”),它会在原有结构上做增量修改。建议修改前先备份原文件,避免坐标调整引发连锁位移。

Q4:生成的 ID 会不会重复导致文件损坏?

A:规范要求节点和边的 id 必须全局唯一,Obsidian 采用 16 个字符的小写十六进制(64 位随机值)格式。技能在生成时会按此约定产出 ID 并做唯一性检查。但如果你手工在生成结果中插入了自己的 ID,仍需自行确认没有与已有 ID 冲突。

Q5:它和 Obsidian 自带的 Canvas 编辑器、Mermaid 该怎么选?

A:三者定位不同。节点少、要即时所见即所得,用 Obsidian 自带 Canvas 拖拽最快;只想在 Markdown 文档里插一张流程图,Mermaid 更轻。而当你需要批量生成结构、自动排版、且成品仍要能自由拖动编辑时,json-canvas 技能才是最优解——它产出的不是一张静态图,而是一份可继续演进的无限画布文件。