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 两个数组——但真正动手写的时候,麻烦就来了:
- 坐标要自己算:每个节点都必须提供
x、y、width、height四个整数,位置指的是节点左上角,x向右递增、y向下递增,坐标可以是负数(画布无限延伸)。想让布局不重叠、不歪斜,全靠手工调。 - ID 要自己编且必须唯一:节点和边的
id是必填的唯一字符串,Obsidian 采用的是 16 个小写十六进制字符的 64 位随机值格式。手写时随手编个1、2、3,稍不留神就重复。 - 引用关系容易断链:边的
fromNode和toNode必须引用真实存在的节点 ID,改一个节点 ID 就得回头同步所有相关边。 - 细节规则多:
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 文件",以便触发技能。
安装步骤(通用流程)
- 打开你所用 AI 平台的技能库/技能市场/插件管理入口(不同平台名称不同,以官方说明为准)。
- 在搜索框中输入技能英文名
json-canvas,或检索技能 ID12614。 - 找到对应条目后点击"安装"或"启用",将技能加入当前工作空间/会话。
- 若平台支持自动触发(技能描述中提到"当处理 .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 后,按技能内置的验证规则快速自查:
- 所有
id在节点与边之间是否全局唯一; - 每条边的
fromNode、toNode是否都能在nodes中找到对应 ID; - 每个节点是否都具备
id、type、x、y、width、height; type是否为text/file/link/group之一;- 侧边值是否为
top/right/bottom/left,端点值是否为none/arrow; - 颜色预设是否落在
"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 技能才是最优解——它产出的不是一张静态图,而是一份可继续演进的无限画布文件。