excalidraw-diagram-generator :把 Excalidraw 变成了自然语言画板

你有没有这种情况:脑子里有了一个清晰的架构图,打开 Excalidraw 之后对着白板发了十分钟呆,最后画出来的还是跟脑子里想的不一样。

不是说 Excalidraw 不好用,是”把想法翻译成图形”这件事本身就挺消耗心力的。你一边要想结构,一边要调位置,还得琢磨配色,思路很容易被打断。

excalidraw-diagram-generator 这个 Smithery Skill 做的事很简单:你说一句话,它给你生成一个 .excalidraw 文件。支持的图表类型有 9 种,从流程图到 ER 图,从思维导图到泳道图,覆盖面比大多数专门画图工具还广。

看了一眼它的实现方式之后,我发现这东西的设计思路比功能本身更有意思。它不是简单地把文字贴到方框里就完事了,而是对每种图表类型都有独立的提取逻辑和布局算法。

环境准备

这个 Skill 的接入方式非常简单,因为它跑在 Smithery 平台上,不需要本地安装任何依赖。

你只需要两样东西:一个 Smithery 账号(直接去 smithery.ai 注册就行),和一个能打开 .excalidraw 文件的工具。Excalidraw 本身是免费的,可以直接在浏览器打开 excalidraw.com,把文件拖进去就行。如果你用 VS Code,装一个 Excalidraw 扩展会更方便。

excalidraw-diagram-generator :把 Excalidraw 变成了自然语言画板

如果你想要用它的图标库功能,需要额外从 libraries.excalidraw.com 下载 .excalidrawlib 文件,然后用 Skill 自带的 Python 脚本拆分:

python scripts/split-excalidraw-library.py <library-path>

拆分后会生成 reference.md(图标索引)和 icons/ 目录(独立图标文件)。之后可以这样往图里加图标:

python scripts/add-icon-to-diagram.py <diagram> <icon-name> <x> <y> --label "文本"
python scripts/add-arrow.py <diagram> <from-x> <from-y> <to-x> <to-y> --style solid

不过这不是必须的,基础版开箱即用。

有一个小坑:.excalidraw 文件本质是 JSON,如果直接双击打开可能会被识别为文本文件。记住先打开 excalidraw.com,再把文件拖进去。这个操作逻辑跟 Figma 导入文件很像,习惯了就好。

操作流程

这个 Skill 的流程分六步,但真正需要你参与的只有第一步,后面五步全自动。

你把一句话发过去,比如”画一个用户登录的流程图,包含验证码校验和三次重试限制”。Skill 的第一步是理解你的请求,从这句话里提取三个关键信息:

  • 要画什么类型的图(流程图)
  • 有哪些元素(登录、验证码、重试)
  • 元素之间是什么关系(顺序流 + 条件分支)

第二步是匹配图表类型。它在内部维护了一套触发词到图表类型的映射。你说”流程图”它就画流程图,你说”系统架构”它就画架构图。如果你没明确说类型,它会根据描述自动推断。

到了第三步,事情开始有点技术含量了。不同类型图表的提取策略完全不同。流程图的提取逻辑是找顺序步骤和决策点,思维导图是找中心主题和分支层级,ER 图要识别实体、属性和关系基数。这个差异化的提取逻辑是整个 Skill 最核心的部分。

excalidraw-diagram-generator :把 Excalidraw 变成了自然语言画板

第四步是生成 Excalidraw JSON,把提取出来的结构化信息转成实际的图形元素。这一步负责坐标计算、颜色分配、箭头方向和字体设置。所有文本元素强制使用 Excalifont(fontFamily: 5),保证打开后显示正常。

最后两步是格式化和保存。输出的 JSON 结构非常标准化,包含元素数组、版本号和画布配置:

{
  "type""excalidraw",
  "version": 2,
  "elements": [
    { "type""rectangle""x": 100, "y": 100, ... },
    { "type""text""text""用户登录""fontFamily": 5, ... },
    { "type""arrow", ... }
  ],
  "appState": { "viewBackgroundColor""#ffffff""gridSize": 20 }
}

所有文本元素强制使用 Excalifont(fontFamily: 5),保证打开后显示正常。Skill 还会在你第一次使用时,提醒你怎么打开这个文件。

整个过程从输入到拿到文件,通常不超过十秒。这个速度比你手动从空白画布开始画要快太多了。

关键设计

翻了这个 Skill 的文档和设计逻辑之后,有三个设计决策让我觉得挺有意思。

第一个是它的”类型感知提取”。大多数自然语言转图的工具,无论你输入什么,都用同一套解析逻辑去理解。但 excalidraw-diagram-generator 给每种图表类型写了独立的提取规则。流程图的提取关注步骤顺序,时序图关注对象和消息方向,ER 图关注实体和关系基数。这种设计增加了复杂度,但准确性确实更高。

excalidraw-diagram-generator :把 Excalidraw 变成了自然语言画板

第二个是布局算法。它没有依赖任何第三方布局引擎,自己写了两套算法:关系图用网格布局计算列数(Math.ceil(Math.sqrt(entityCount))),思维导图用三角函数做放射布局。这个选择很务实,避免了依赖外部库带来的兼容性问题,代价是复杂场景下的布局不够智能。

第三个是关于图标库的集成方式。它支持从 Excalidraw 官方图标库下载 .excalidrawlib 文件,然后通过 Python 脚本拆分、注入。关键是它用脚本而非 AI 上下文来处理图标的 JSON 数据,这种做法避免了把大量图标数据塞进 LLM 的上下文窗口。

但有几个地方我持保留态度。元素数量硬限制在 20 个以内,对于复杂架构图来说这个上限偏保守了。它的建议是拆分多张图,但有时候一张大图的信息密度才是核心价值。另外,碰撞检测完全没有,全靠间距指南来规避重叠。对于自动布局来说,这是一个明显的短板。

使用场景

这个 Skill 最让我觉得有实际价值的,是它能大幅降低”画图的心理门槛”。

很多开发者在开会或讨论方案的时候,其实是需要快速画一个草图的。但传统的 Excalidraw 画图流程是这样的:

  • 打开 Excalidraw
  • 新建画布
  • 拖方框
  • 连线
  • 调位置

这套动作做完可能要三五分钟。用这个 Skill 的话,直接在聊天框里打一句话,十秒后拿到文件。这个时间差在实际工作中是有意义的。

另一个场景是脑暴和知识整理。比如你在研究一个新领域,想把这个领域的知识点用思维导图串起来。不需要一边想内容一边手动排版,把想法说出来就行。Skill 帮你把结构化的东西自动排好,你只需要在生成的基础上做微调。

它生成的 .excalidraw 文件还有一个好处:可编辑。跟那些直接输出 PNG 或 SVG 的工具不同,你拿到的是一个完整的 Excalidraw 项目文件。不满意的地方可以手动改,颜色不喜欢可以换,元素位置可以拖。它不是一次性产物,是”可继续加工的起点”。

对于经常需要画技术文档配图的团队来说,这个 Skill 能省掉不少重复劳动。一个团队的架构师画好基础图,其他人拿到 .excalidraw 文件后各自按需补充细节,比各自从零画起效率高得多。

洞察与反思

看完这个 Skill 的完整设计,我有一个比较强烈的感受:自然语言转图这件事,”自动布局”比”自动绘图”难得多。

把文字塞进方框里不难,LLM 生成结构化 JSON 也不难。但让生成的图”看起来还行”,涉及到坐标计算、间距控制、颜色搭配和层次关系,这些才是真正的工程问题。excalidraw-diagram-generator 在这方面的处理是务实的,它没有追求完美的自动布局,而是用简单的网格算法保证”可用”,把美感的部分留给用户在 Excalidraw 里手动调整。

对比一下其他同类工具。Mermaid 和 PlantUML 是用 DSL 描述图,表达能力强但学习成本高。D2 也是一样的问题。Draw.io 功能强大但操作路径长。Excalidraw 本身虽然简洁,但没有内置的 AI 生成能力。这个 Skill 恰好填补了”Excalidraw 生态里缺 AI 能力”这个空白。

excalidraw-diagram-generator :把 Excalidraw 变成了自然语言画板

不过话说回来,这个 Skill 本质上是 Smithery 平台上的一个 AI 编排层,它不拥有 Excalidraw 的任何底层能力。如果 Excalidraw 官方推出了自己的 AI 生成功能,这个 Skill 的价值就会被大幅稀释。

还有一个容易被忽视的点:它的价值上限其实取决于用户对图表类型的理解。如果你不知道什么时候该用泳道图、什么时候该用 ER 图,那即使 Skill 支持 9 种类型,你也未必能选对。换句话说,这个工具是”画图能力”的放大器,不是”画图知识”的替代品。

资源地址

资源 地址
Smithery 页面 https://smithery.ai/skills/github/excalidraw-diagram-generator
Excalidraw 官网 https://excalidraw.com
Excalidraw 图标库 https://libraries.excalidraw.com

总结

回看整个 Skill 的设计,它做对了一件事:在一个好的平台上,用一个好的格式,解决了一个真实存在的问题。

Excalidraw 本身已经是手绘风格图表的首选工具了,.excalidraw 的 JSON 格式天然适合 AI 生成。Smithery 平台提供了 Skill 的分发和运行环境。这个 Skill 只是把这三者串了起来,但串得挺漂亮。

如果你经常需要画技术图、做架构设计或者整理思路,这个 Skill 值得试一下。不用它替代你的画图工具,把它当成”快速打草稿的东西”就好。十秒钟拿一个能看的底稿,剩下的时间花在打磨上,这个分工挺合理的。

skills资源

analyzing-financial-statements:不用 Excel 也能跑财务分析

2026-6-29 15:04:38

skills资源

skill-writer :Claude Code 生态最被低估的 Skill 基础设施

2026-6-30 13:01:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧