
画流程图这件事看起来门槛不高真正动手却很耗时间。节点越多箭头越乱分支一改整条线路要重新排如果还要统一颜色、子图、分组手工调整的成本会直接翻倍。这次我们来看一个思路完全不同的做法手搓一个 skill把“画流程图”这件事从手动排版变成自然语言描述AI 直接输出标准的 Mermaid 流程图源码。你不用再关心方框放哪、箭头怎么连只需要把流程讲清楚剩下的交给 skill。这个 skill 不是什么新模型也不是重型本地服务。它是一套带示例库和语法约束的提示词工程产物按 Agent Skills 的目录规范组织放进支持该机制的 AI 工具里就能生效。核心能力包括算法流程图、业务流程图、系统模块流程图、时序图和状态图输入是自然语言输出是可直接复制的 Mermaid 代码不依赖本地 GPU也不需要安装额外运行时。要预览结果可以粘贴到 Mermaid Live Editor、Draw.io、Typora、Obsidian 等支持 Mermaid 的环境。这篇文章会带大家完整过一遍skill 的文件结构长什么样、怎么安装、怎么用不同场景的提示词生成流程图、怎么把生成结果渲染到常用工具以及最容易踩的语法坑。如果你是经常要给方法写文档、给模块画流程、给算法补图示的开发者这篇可以直接收藏后面照着步骤做就行。1. 核心能力速览先给一个总体判断这是一个轻量的 AI Agent Skill不是完整软件。它把“画图经验”固化成规则和示例让 AI 工具在生成流程图时不再自由发挥而是按固定格式输出。因为不涉及模型训练和本地推理所以硬件门槛基本为零关键在 AI 工具本身是否支持自定义 Skill 目录。能力项说明项目类型AI Agent Skill提示词模板 语法约束 示例库输入方式自然语言描述流程节点、分支、循环、结束条件输出结果标准 Mermaid 流程图源码可复制到多款编辑器渲染支持图表流程图 graph、时序图 sequenceDiagram、状态图 stateDiagram 等适用场景算法流程图、业务流程图、系统模块流程图、文档配图运行平台支持 Agent Skills 机制的主流 AI 工具目录路径按平台规范放置硬件要求不依赖本地 GPU不需要安装 Python 或 Node 运行环境是否需要联网取决于 AI 工具的推理方式云端或本地均可是否支持批量可对多个流程描述连续调用适合批量生成初稿可扩展性可自定义节点命名、子图分组、方向、颜色和样式从表格可以看出来这个 skill 的定位不是替代 Draw.io 或 ProcessOn而是把“从 0 到 1 出初稿”的环节压缩掉。你负责描述它负责排版和语法。后面所有复杂逻辑包括循环回边、菱形判断、子图划分都可以靠一份描述文本直接生成。2. skill 解决了什么问题先说说为什么需要这样一个 skill。早期画流程图大家习惯用 ProcessOn、Draw.io、Visio 这类工具手动拖拽确实直观但有两个很现实的问题。第一是排版成本高节点一旦超过十个对齐、连线、避让就非常麻烦经常调整一个分支之后整张图都变得凌乱。第二是维护成本高流程图会随需求变化不断修改每次改动都要重新拖拽久而久之代码里的逻辑已经更新了文档里的流程图却还停留在旧版本。用自然语言驱动生成的方式正好把这两个问题绕过去。AI 输出的 Mermaid 源码本质是文本文本的修改成本远低于拖拽画布。改动一个分支条件只需要改一行代码再重新渲染。而且 Mermaid 语法本身是开源标准GitHub、飞书、Obsidian、Typora 都有支持不需要绑定某个商业画图软件。把这个逻辑固化到 skill 之后AI 输出的格式会保持稳定不会一会给你 Graphviz 语法一会给你 ASCII 字符画。这个 skill 解决的核心问题可以归纳为三点降低起点不熟悉流程工具的人也能用自然语言画出结构清晰的流程图。统一格式所有输出固定为 Mermaid团队协作时不会出现格式混战。快速迭代改文案等于改代码改完即渲染适合文档和代码同步维护。需要提醒的是skill 不解决“流程设计本身”的问题。如果你自己都没想清楚流程有几个分支、异常怎么处理AI 也没办法替你做业务决策。它擅长的是把已经明确的结构翻译成图而不是替你凭空定义业务规则。3. skill 的设计思路与文件结构这个 skill 的设计思路可以概括为“约束优先”。AI 生成流程图时最常见的问题不是不会写 Mermaid而是写得太随意节点命名不规范、判断条件不写分支标签、循环用错方向、子图层级混乱。所以 skill 的核心并不是给 AI 讲解 Mermaid 全部语法而是把一套“生成流程图的默认规则”写进指令里。一个典型目录结构如下mermaid-flow-builder/ ├── SKILL.md ├── examples/ │ ├── algorithm-flow.mmd │ ├── business-flow.mmd │ └── system-flow.mmd ├── references/ │ └── mermaid-syntax.md └── templates/ └── flowchart-template.mdSKILL.mdskill 的说明文件负责告诉 AI 何时启用、按什么规则输出。examples/放几个典型流程图的 Mermaid 示例让 AI 照葫芦画瓢。references/放常用语法速查防止 AI 在复杂场景下用错节点形状。templates/放一个空白的流程描述模板让用户按统一结构填写需求。SKILL.md的内容可以理解成一套“行为准则”核心要求是输出前先拆解流程再生成代码。一个极简版如下--- name: mermaid-flow-builder description: 根据用户的自然语言描述生成结构清晰、语法正确的 Mermaid 流程图。适合算法流程、业务流程、模块流程和文档配图。 --- # 工作流程 1. 将用户描述拆解为开始节点、处理节点、判断节点、结束节点。 2. 判断是否存在循环如果有使用连回上一节点的有向边表示。 3. 所有判断分支必须给出明确的标签例如“是 / 否”“成功 / 失败”。 4. 输出统一使用 Mermaid 语法不输出 Graphviz 或其他格式。 5. 代码块语言标注为 mermaid方便用户直接复制。这里不需要写太长。Skill 的机制和普通提示词的区别在于它把“经验”集中放在文件里每次对话自动加载。文件写得好不好直接决定输出质量。写完SKILL.md之后还要配一到两个示例文件让 AI 知道什么叫“合格输出”。4. 安装与配置安装方式取决于你使用的 AI 工具。以支持 Agent Skills 目录规范的常见工具为例一般有全局目录和项目目录两种放法。全局目录对所有项目生效项目目录只对当前工作区生效。下面是创建目录的示例命令# 以全局目录为例具体路径需要按工具文档调整 mkdir -p ~/.claude/skills/mermaid-flow-builder/examples mkdir -p ~/.claude/skills/mermaid-flow-builder/references mkdir -p ~/.claude/skills/mermaid-flow-builder/templates创建完目录之后把SKILL.md写入根目录。这里给一个可以直接复制的简易版本cat ~/.claude/skills/mermaid-flow-builder/SKILL.md EOF --- name: mermaid-flow-builder description: 把自然语言描述的流程结构转换为标准 Mermaid 流程图适合算法、业务、系统模块等场景。 --- # 输出规范 - 使用 graph TD 或 graph LR根据节点数量自动选择方向。 - 处理节点用 [ ]判断节点用 { }开始结束节点用 ( )。 - 每个判断节点必须有分支标签。 - 循环使用回边指向循环开始节点。 - 输出前先检查 mermaid 语法是否完整闭合。 EOF如果你想逐个文件创建也可以在编辑器里新建SKILL.md、examples/algorithm-flow.mmd等文件内容按自己习惯组织。skill 的名称可以自定义不一定叫mermaid-flow-builder但目录名和SKILL.md里的name字段最好保持一致。如果你的工具不支持目录式 Skill还有一种替代方案把“工作流程”这部分规则直接复制到系统提示词或者对话提示词里。虽然不如目录式 Skill 方便但功能上也能实现大部分效果。用之前先在对话里测试一句“请把下面的流程描述生成 Mermaid 流程图”能跑通再继续。安装完成后通常需要重启一次 AI 工具客户端让 skill 被识别。如果工具支持技能列表查看在列表里能看到mermaid-flow-builder就说明加载成功。如果看不到优先检查目录深浅是否正确很多工具要求 skill 必须是skills/目录下的直接子目录不能多套一层。5. 功能测试与效果验证安装完成之后不要急着做复杂图。先用几个经典场景验证 skill 是否正常工作。下面按“需求描述、预期输出、验证标准”三部分给出测试用例。5.1 算法流程图反向传播给 AI 的描述请把反向传播算法的训练过程画成 Mermaid 流程图。输入训练样本前向传播计算输出计算损失判断损失是否收敛。如果收敛就结束不收敛就计算输出层梯度再逐层反向传播梯度更新权重偏置然后回到前向传播继续迭代。预期输出graph TD A[输入训练样本] -- B[前向传播计算各层输出] B -- C[计算损失] C -- D{损失是否收敛} D --|是| E[训练结束] D --|否| F[计算输出层梯度] F -- G[从后往前逐层传播梯度] G -- H[更新权重与偏置] H -- B验证标准流程图是否包含循环回边判断节点是否标出“是 / 否”是否形成从“更新权重”回到“前向传播”的闭环。如果 AI 输出的是从上往下的直线结构没有回到B节点说明循环表达没生效需要补充提示词“循环要画成回边”。5.2 Python for 循环流程图给 AI 的描述画一个 Python for 循环结构的流程图。初始化变量 i 为 0判断 i 是否小于 n。如果小于 n执行循环体每次执行完让 i 加 1再回到判断如果不小于 n继续执行循环后的代码。预期输出graph TD A[初始化变量 i 0] -- B{i n} B --|否| C[继续执行循环后的代码] B --|是| D[执行循环体] D -- E[i 1] E -- B验证标准重点看循环回边是否指向判断节点B而不是指到A。这是新手画循环最容易错的地方。同时分支标签必须用“是 / 否”而不是“真 / 假”否则部分渲染器里显示会不直观。5.3 用户管理模块流程图给 AI 的描述画出用户管理模块的流程图。进入页面先判断是否登录没登录就跳转登录页。登录后加载用户列表用户可以选择新增、编辑、删除或查询。新增和编辑都要打开表单并校验输入校验失败提示错误校验通过调用保存接口。删除需要弹窗确认确认后调用删除接口。所有操作完成后刷新列表。预期输出graph TD A[进入用户管理页] -- B{是否已登录} B --|否| C[跳转登录页] B --|是| D[加载用户列表] D -- E[选择操作] E --|新增| F[打开新增表单] E --|编辑| G[打开编辑表单] E --|删除| H[弹窗确认] F -- I[校验表单] G -- I I --|不通过| J[提示错误信息] I --|通过| K[调用保存接口] H --|确认| L[调用删除接口] H --|取消| D K -- M[刷新列表] L -- M M -- D验证标准这张图涉及多个分支汇合重点看E节点是否有四个分支标签取消删除后是否能回到用户列表保存成功后是否统一刷新列表。如果线条过多建议后续用子图把“新增流程”和“编辑流程”分组但这属于优化阶段。5.4 订单业务流程图给 AI 的描述生成一个订单处理的业务流程图。用户提交订单后进入支付页面判断支付是否成功。失败则订单取消成功则通知商家备货商家发货后进入物流配送用户确认收货后订单完成。预期输出graph TD A[用户提交订单] -- B[支付页面] B -- C{支付是否成功} C --|否| D[订单取消] C --|是| E[通知商家备货] E -- F[商家发货] F -- G[物流配送] G -- H[用户确认收货] H -- I[订单完成]验证标准这个例子相对简单主要看判断节点的分支是否完整表达。如果业务里还有“超时未支付”“退款”“售后”等异常分支可以继续追加描述skill 会把这些异常节点补进图中。5.5 大语言模型训练流程图给 AI 的描述画一个大语言模型训练阶段流程图。从数据收集与清洗开始做分词和数据构建进入预训练再进行监督微调 SFT然后训练奖励模型最后做 RLHF 对齐。完成之后进入自动评估如果达标就发布上线不达标就回到训练阶段继续调优。预期输出graph TD A[数据收集与清洗] -- B[分词与数据构建] B -- C[预训练] C -- D[监督微调 SFT] D -- E[奖励模型训练] E -- F[RLHF 对齐] F -- G[自动评估] G -- H{是否达标} H --|否| I[继续调优] I -- C H --|是| J[发布上线]验证标准重点看“继续调优”的回边是否指向预训练阶段。实际训练流程中可能还有数据配比调整、评测集切换等细节但在初稿阶段这样的输出已经足够支撑文档配图。所有分支条件和阶段顺序可以继续用追加描述的方式让 AI 补充。6. 提示词技巧与流程描述规范把流程描述得越清晰skill 输出越稳定。这里不是让你写长篇大论而是把流程拆成固定几块起点、步骤、判断、分支、循环、终点。一段完整描述通常包含这些要素从 X 开始先做 A然后判断 C。 如果 C 满足执行 D 如果 C 不满足执行 E。 D 完成之后回到 A循环直到 C 满足。 最终进入 F 结束。具体有以下技巧可以参考先描述主干再补充分支。主干清晰之后再让 AI 加入异常分支避免一开始就把图搞乱。判断条件明确给答案。例如“判断支付是否成功”分支写“成功 / 失败”不要只说“根据状态判断”。循环要说清回边位置。描述里加一句“完成后回到判断节点”比让 AI 自己推断更可靠。节点数量多时主动要求子图。例如“把登录模块单独放一个 subgraph”skill 会按需生成子图结构。指定方向。默认graph TD适合大多数场景但如果流程图横向更长可以追加“用从左到右方向”。如果对输出不满意不要重新描述整个需求。直接指出“把第 3 个判断改成菱形”“给新增分支补充异常链路”AI 会在原图基础上修改比整图重画效率更高。7. 流程图渲染与发布拿到 Mermaid 源码之后下一步是预览和发布。这里列出几个常见环境工具使用方式Mermaid Live Editor打开 mermaid.live左侧粘贴代码右侧看渲染结果Draw.io / diagrams.net新版支持粘贴 Mermaid 代码导入菜单入口在不同版本中略有差异Typora直接使用 mermaid 代码块导出 PDF 或 HTML 时自动渲染Obsidian原生支持 Mermaid 代码块在预览模式下显示图表GitHub.md文件中写 mermaid 即可渲染VS Code安装 Markdown Preview Mermaid Support 插件预览 Markdown 时显示图表飞书文档默认不支持直接解析 mermaid通常需要借助第三方插件或截图插入如果你用的是飞书热搜里很多人问“装什么插件才能解析 markdown 里的 mermaid”实际结论要分版本看。飞书文档的插件市场更新较快最稳妥的做法是在本地编辑器渲染成图片后再粘贴或者将skill产物粘贴到支持 Mermaid 的在线编辑器导出图片再上传到飞书这样不依赖某个特定插件是否可用。在 Draw.io 里导入 Mermaid 时要注意版本兼容。老版本 Draw.io 对 Mermaid 的支持并不完整可能出现“导入后样式丢失”或者“方向不对”的情况。遇到这种问题建议先用 Mermaid Live Editor 确认源码没有语法错误再导入到 Draw.io。还有一点Mermaid 节点文本中的括号和引号容易导致渲染异常。如果节点文字里必须写函数名或数组可以把整个文本用双引号包起来或者改用()写法减少特殊字符干扰。8. 常见问题与排查方法skill 用多了总会遇到一些固定问题。下面把高频现象和排查思路整理成表格问题现象可能原因排查方式解决方案输出不是 Mermaid而是流程文字skill 未加载或描述不明确检查 skill 是否在目录列表确认提示词是否给了“输出 Mermaid 代码”约束重新加载 skill在提示词末尾追加“输出 mermaid 代码块”代码粘贴后渲染报错节点文字中包含括号或引号打开 Mermaid Live Editor 查看报错行号对特殊字符转义或给节点文字加双引号分支标签不显示判断节点缺少 是方向不对图太宽默认graph TD不适合当前结构调整布局方向使用graph LR或graph RL循环回边丢失描述中没有说明循环结束后的跳转检查是否形成了闭环追加“完成后回到判断节点”中文显示乱码字体或编码问题换用 Mermaid Live Editor 测试更新渲染环境或改用英文节点子图层级混乱subgraph 没有正确闭合检查 subgraph 与 end 是否配对在描述中明确子图划分同一份代码在不同工具渲染结果不一致Mermaid 版本不同对比各工具版本以 Mermaid Live Editor 为基准导出成图片后再发布skill 生成了 Graphviz 或 ASCII 图SKILL.md 约束不足查看 SKILL.md 规范是否明确写“只输出 Mermaid”在规则里增加“禁止输出其他格式”排查时先做最小化验证只画三个节点确认能跑通再逐步增加分支和回边。大多数渲染问题都能靠“减少节点、检查特殊字符、核对标签”解决。9. 最佳实践与使用建议这个 skill 真正能提升效率是在把它变成团队协作工具的之后。规则越明确输出越稳定。我自己使用时会把 skill 的约束写得比 SKILL.md 示例更细例如固定节点命名只允许“动词 宾语”固定判断节点必须加分支标签。这样生成的图风格统一多人协作时不需要反复调整格式。建议从这几个方面入手第一次使用先小规模验证。只画一个“登录判断”的流程跑通之后再画完整业务。保留一套最小可运行的 skill 配置。不要一上来就堆几十个示例文件先让最基本的功能稳定。把输入素材、生成代码、最终图片分目录管理。例如docs/input.md存放流程描述docs/output/存放生成结果方便后续迭代。批量生成时按描述文件 - 生成代码 - 渲染图片的流程逐步推进而不是把几十个需求一次性塞给 AI避免输出不稳定。对生成结果做人工复核尤其是涉及判断条件、异常分支、跳出循环等关键节点。AI 出的是初稿不是最终结论。如果有条件可以把 skill 的示例库做成团队内部公共资产。每个业务模块沉淀一份标准流程图后续新成员只需要改描述就能快速得到风格一致的图表。这比让每个人从空白画布开始拖拽高效得多。10. 总结与下一步这个 skill 最值得试的一点是把“画图”的交互方式从拖拽改成了打字。对于已经有明确流程结构的人来说生成初稿的效率会明显提升。建议第一次使用时先验证最基本的“判断 分支 循环回边”能力跑通之后再扩展到用户管理、订单处理、算法训练这些复杂场景。最容易踩的坑是提示词描述不完整尤其是循环回边和分支标签。AI 不知道你要循环到哪一步所以描述里必须说清楚“回到判断节点”还是“回到流程开始”。另外一个常见坑是飞书不支持直接渲染 Mermaid发布前提前想好是截图还是装插件不要等图做好了才到处找方案。后续可以继续扩展的方向包括把 skill 接入到文档生成流程里让流程图随文档版本一起更新把输出结果直接上传到对象存储生成图片链接方便在内部系统里引用也可以把流程描述写进代码仓库每次业务变更时同步更新流程图让文档和代码保持同步。画流程图这件事从“手搓”到“说清楚就行”中间只差一个定义良好的 skill。如果你也经常被流程图排版折磨建议先把这套方法跑起来再根据自己的业务习惯慢慢调整规则。