画流程图这件事,我以前一直是手动画的。拖拽、对齐、调线、改字,一张稍微复杂点的流程图少说半小时,改一版又要半小时。后来试了用AI工具快速绘制流程图/框图之后,整个人都轻松了——只要把流程逻辑说清楚,AI直接生成代码,再渲染成图,改需求也就是改一句话的事。这篇就把我这段时间总结出来的完整方法写出来,从工具选型、提示词技巧到代码修改、常见报错排查,一次讲透。
1. 为什么我改成用AI画流程图了
1.1 传统手画流程图的三个痛点
先说痛点。以前我画流程图主要在在线绘图工具里拖框框,遇到的情况基本就这几种:
第一,对齐和连线极其耗时间。两个框之间的箭头要绕开其他图形,调整的时候经常顾此失彼,改完一处另一处又乱了。遇到节点超过10个的流程,我光是调线的走向就要折腾半天,而且经常调完还是不太美观。
第二,版本迭代是噩梦。需求方说“流程中间加一步审核”,我就要手动插入一个框、重新连线、调整位置。这张图今天一个版本、明天一个版本,改到第三版的时候,原图基本已经没有最初的样子了,每改一次都是二次创作。
第三,想“复用”非常难。手画图上的内容无法文本化,我在这张项目图里画好的节点,到另一张业务图里要用,只能照着重新画。如果流程本身有微调,就得再拖一次框。
1.2 AI画流程图的本质:把画图变成写代码
后来我意识到,流程图本质上是“结构化逻辑的可视化表达”。只要逻辑能被文字描述清楚,它就能被转换成一个文本化的图表描述文件,再渲染成图形。AI工具快速绘制流程图/框图的底层思路就在这里:AI根据你的自然语言描述,生成一段结构化的绘图脚本,然后由渲染工具把它画出来。
这个思路最大的价值是:图和文字之间建立了双向映射。改需求,改文字即可;要复用,复制文字即可;要协作,大家讨论文字即可。整个操作流程变成:
- 用自然语言描述流程逻辑和判断分支。
- 让AI生成对应的图表脚本。
- 把脚本粘贴到渲染工具中,得到一张规整的流程图。
- 不满意就继续用自然语言提修改要求,重复第2步。
这里不得不提一个常见误区:很多人以为“用AI画流程图”是让AI直接生成一张图片。实际上图片只能看、不能改,AI生成的图分辨率一放大就糊,后续修改也极其痛苦。而文本化脚本方案既能保证清晰度、又可以反复改,权且算是一种“所见即所得”。
2. 工具选型:主流方案的取舍思路
2.1 对话式AI工具怎么选
要把“AI生成绘图脚本”这条路走通,第一步是选一个对话式AI工具。市面上的选择很多,各有侧重,我的评价标准主要看三点:代码生成准不准、中文理解好不好、对长文本的包容度够不够。
目前我常用的是一个通用型对话AI,主要看中它写代码类内容比较稳,尤其擅长把口语化业务流程转化为结构清晰的Mermaid代码。另一个备选方案是专门面向图表生成的AI工具,这类工具主打“对话生成图表”,内置了渲染器,可以在对话界面直接预览效果,对不熟悉技术细节的朋友更友好。
坦白说,我个人的主力一直是“通用对话AI + 本地/在线渲染器”的组合。原因是通用AI的能力上限更高,不只是画流程图,我还可以让它帮我画时序图、类图、架构图,甚至把现有流程图反向转换成文字描述,相当于多了一个流程逻辑顾问。专用绘图AI往往只适合模板化场景,遇到稍微复杂一点的需求就会暴露短板。
2.2 渲染端怎么配:三套方案对比
生成代码之后需要有一个渲染端把它变成图形。我最常用的三种方案:
- 方案A:在VS Code里装一个支持Mermaid预览的插件,本地速度快、私密性好、可以导出SVG和PNG。适合有一定开发基础、或者愿意装个编辑器的朋友。
- 方案B:使用某些支持Mermaid语法的在线笔记/文档工具,写完代码直接渲染成图。适合和团队共享协作,无需本地配置。
- 方案C:使用在线Mermaid渲染的网页工具,粘贴代码即可生成图片并导出。适合一次性、无需保存的场景。
三种方案的取舍可以参考这张表:
| 方案 | 上手难度 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案A:VS Code+插件 | 中等 | 频繁画图、需要本地版本管理 | 速度快、可批量处理、导出清晰 | 要装编辑器、插件配置要花时间 |
| 方案B:在线文档工具 | 低 | 团队协作、频繁修改共享 | 天然支持多人查看、评论 | 部分工具导出格式有限 |
| 方案C:在线渲染工具 | 最低 | 一次性输出、快速预览 | 无需任何配置、打开即用 | 不适合长期管理、可能受网络访问限制 |
我个人最常用的还是方案A,因为VS Code装一次插件之后就能长期用,而且插件的预览和渲染速度都是实时的。
3. 核心实操:用自然语言生成流程图的完整方法
3.1 第一步:把流程图想清楚再开口
很多人在AI里输入“帮我画一个用户登录的流程图”之后,发现AI画出来的图不是自己想要的,原因就在于——你自己都没想清楚这张图要包含哪些东西。
AI不是读心术,它的输出上限取决于你的输入质量。所以在开口之前,建议先在脑子里确认三件事:这张图的起点是什么、终点是什么、中间有哪些判断分支。再进阶一点,确认有几个角色或系统参与,他们之间的交互关系是怎样的。
我有一个经验:凡是期望AI输出“能用”而不是“像样”的图,一定要在描述里写清楚动作主体和判断条件。比如“用户打开App,判断是否已登录,如果没有登录跳转登录页,登录成功后校验权限,返回对应首页”和“用户打开App然后登录然后进首页”,后者生成的图会丢掉关键的分支节点。
我之前做某个跨平台系统的架构梳理时,为了描述一版复杂的权限校验流程,先在文档里写了500字的业务说明,再丢给AI让它提炼生成Mermaid代码,出来的图基本符合预期。不要跳过这个“想清楚”的过程,它占用不了多少时间,但能给自己省大量的修改时间。
3.2 第二步:用结构化的提示词生成Mermaid代码
Mermaid是目前AI画流程图最常用的代码语法,它足够简单,学起来也快。一个最基础的流程图脚本只需要定义方向、节点和连线:
graph TD A[开始] --> B[处理] --> C[结束]上面这段代码的意思是:graph TD表示从上到下画一棵图,A[开始]定义了一个名为“开始”的矩形节点,-->表示箭头连接。
要让AI产出这样的代码,我总结了一个好用的提示词模板——把你的需求当成给新同事布置任务一样说清楚。举一个示例:
请用Mermaid语法生成一个用户登录的流程图,方向从上到下。流程是:用户打开App,进入登录页,输入账号密码,点击登录按钮,系统校验账号密码是否合法。如果合法,进入系统首页;如果不合法,提示“账号或密码错误”,回到登录页。请用中文标注节点,条件分支请用菱形表示,并注明是“是”和“否”。
把这段提示词复制进对话AI,通常几十秒内就能得到一段完整可用的Mermaid代码。输出大概是下面这个样子:
graph TD A[打开App] --> B[进入登录页] B --> C[输入账号密码] C --> D[点击登录] D --> E{校验账号密码} E -- 是 --> F[进入系统首页] E -- 否 --> G[提示账号或密码错误] G --> B看到没:这就是“AI工具快速绘制流程图/框图”的完整链路。它把口述的业务逻辑转成了图形语法,我再把它粘进渲染工具,一张可编辑、可导出的流程图就有了。
3.3 第三步:渲染、微调、迭代
渲染这一步不复杂。如果你选了VS Code加插件方案,只要新建一个后缀为.md或.mmd的文件,把Mermaid代码贴进去,用插件的预览面板打开就能看到图形。用在线工具的话,粘贴到指定位置也是即刻渲染。
看到图之后,大部分人会开始挑毛病:节点太多太挤、某些分支不该连在一起、某个节点名称不对。这个时候千万别自己去改代码——除非你已经精通Mermaid语法,否则最有效率的方式是要求AI继续改。
我通常的做法是直接追加需求,比如:
- “把节点B和节点C合并成一个节点,名称改为‘填写并提交信息’。”
- “把判断条件‘是否合法’改成‘是否存在有效登录凭证’,并把失败分支的文字改成‘重新登录’。”
- “把所有节点用圆角矩形,判断用菱形,整体更清晰。”
AI会根据新的描述重新生成完整代码,覆盖原来的脚本。这一步能反复做,直到满意为止。因为整个流程不需要手动拖拽,哪怕来回改五六版,时间成本也就是每次几十秒。
有一点要提:AI在生成代码时偶尔会出现“漏节点”或“多连线”的问题,尤其是描述逻辑比较复杂的情况。我的做法是,在描述完流程后,主动提醒AI:“请确保每个判断分支都有‘是’和‘否’两个出口,并且所有节点都被连线覆盖。”这样改完后,图的结构会完整不少。
4. 复杂框图的进阶技巧
4.1 分支逻辑怎么描述才不会被画乱
流程逻辑一旦复杂起来,最容易出现的问题是AI生成的图“线乱飞”:分支多、跨层、来回回环,渲染出来一团糟。根本原因通常是自然语言描述里缺少“嵌套”或“分组”的概念。
举个例子,同样是描述一个订单处理流程:
- 差描述:“用户下单,系统检查库存,有库存就扣库存然后算钱,没有库存就提示库存不足,然后判断用户是不是会员,是会员有折扣,不是就没有,最后生成订单。”
- 好描述:“用户下单后,系统先检查库存:分支一,库存充足,进入支付流程;分支二,库存不足,提示用户并结束流程。支付流程中再判断用户类型:会员走折扣价,非会员走标准价。两种价格都进入最后的订单生成步骤。”
第二种描述方式把流程分成了层级,第一层是库存判断,第二层是支付流程内的用户判断。AI生成代码的时候,会把这两层逻辑分开处理,结果图的层级就清晰很多。
如果发现自己描述两层以上的分支逻辑时AI还是容易乱,可以采用“分步生成”策略:先让AI生成主流程,再针对某个分支单独生成子图,最后手动把两个脚本拼接。这种方案看起来绕一圈,实际上是出图效率最高的方法。
4.2 子图与分层的表达
Mermaid支持一种叫subgraph的结构,可以给一组节点加一个外层容器,非常适合画包含多个模块的系统框图或跨部门协作流程图。
如果你需要画“业务端→服务端→数据端”这种多层级架构图,建议在提示词中明确要求使用subgraph:
请用Mermaid语法画一个订单系统结构图。顶层是用户端,包含浏览商品、下单、支付三个节点;中间层是服务端,包含库存校验、订单生成、对接支付三个节点;底层是数据库,包含商品表、订单表、用户表。请使用subgraph分层显示,分别标注“用户端”“服务端”“数据库”。
这样做出来的图,会天然呈现三个泳道式的区域,每个区域内有自己的节点和连线,跨区域的交互线也会自动连接,可读性提升非常明显。这也是我画技术架构图时最常用的一招。
4.3 样式定制:不满足于默认配色
很多AI生成的Mermaid图默认都是同一种颜色、同一种节点形状,看多了审美疲劳是小,关键是复杂图中信息辨识度不够。其实Mermaid支持有限的样式定制,虽然不如专业绘图工具强大,但胜在不用手动改。
有几种方式实现:一种是在Mermaid脚本里加style声明,直接指定节点的填充色和边框色;另一种是使用classDef定义通用样式类,再应用给多个节点;还有一种最省事的方式,是在提示词里直接告诉AI你的配色需求。
比如在提示词末尾加上一句“请将开始节点和结束节点使用绿色填充,判断节点使用黄色填充,业务处理节点使用蓝色填充,并给所有节点添加圆角边框”,AI生成的代码就会自带样式。实测下来,这种方式能生成比默认模式干净得多的图,尤其在分享给领导或客户时,观感会专业不少。
4.4 一些通用提示词模板
写了很多次之后,我把自己的提示词套路沉淀成了一个模板,到这里分享出来。流程类提示词模板:
请用Mermaid语法生成一个[XXX]流程的流程图。方向为[上下/左右]。参与者/模块有:[列出]。业务逻辑如下:[分步骤描述,每步是干什么的,判断处写明条件和出口]。请将判断节点使用菱形,普通节点使用矩形,中文标注,连线标注动作,并在判断分支上标注“是/否”。请确保所有节点和分支完整覆盖,不要遗漏。
架构类提示词模板:
请用Mermaid语法生成一个[XXX]系统的框图。包含三层:[展示每层的模块和包含组件]。请用subgraph分层,每层一个容器,命名清晰。模块间的连线代表[调用/依赖/数据流]。中文标注。布局合理,避免跨层线交叉。
把这两个模板存成文本片段,每次画图直接套用再加具体内容,基本能做到“一次成图,偶尔微调”。
5. 常见问题与排查技巧实录
5.1 AI生成的代码报错怎么办
用AI生成Mermaid代码,报错是常有的事。最常见的问题有下面这些,我都遇到过:
- 节点名称带特殊字符:比如节点文本里包含
(、)或【】,没加引号导致语法解析失败。 - 连线语法写错:比如多了一个空格、少了一个箭头符号,或者把
---写成了-->的变形。 - 节点ID重复:两个不同内容的节点用了同一个ID,渲染时后面会覆盖前面的。
- 中文标签偶尔解析异常:某些渲染器对中文标点敏感。
遇到报错,我有一套固定的排查流程:
- 先把生成的代码贴到带语法检查的在线Mermaid编辑器中,看错误提示指向第几行。
- 检查那一行附近的节点ID是否重复、符号是否完整。
- 如果错误提示不明确,直接把报错信息复制给对话AI,让它自己检查并修正。
这个“让AI修改自己代码”的循环非常有效。有一次AI生成的代码报错,我直接把报错信息原样贴回去,它秒速定位了问题,还顺手优化了连线方式。不要自己硬着头皮读代码——虽然Mermaid通俗易懂,但排查效率远不如让AI自己保留。
5.2 图太乱、线交叉太多怎么处理
这是使用AI画复杂框图时比较常见的问题。图一旦超过20个节点,自动布局的结果往往不尽如人意。我的处理策略有几种:
第一,用层级化描述强制AI生成分层结构。把所有节点按阶段分组,用subgraph包裹,即便最终渲染布局不完美,至少逻辑层级是清楚的。
第二,减少不必要的交叉连线。很多交叉是节点之间不必要的“回头线”造成的。遇到这种情况,我会让AI把跨两层以上的连线改成“通过一个中间汇总节点连接”的方式,图会清爽很多。
第三,刻意使用不同的连线方向。比如主流程用从上到下,分支细节用从右到左,AI在生成时会参考方向趋势调整布局,交叉率会下降。
实际上,把图拆成两到三张子图,分别渲染再拼在一起,也能起到规避交叉的作用。在AI工具里生成一张大图不如生成三张小图拼接,可读性和后期维护性都会更好。
5.3 中文显示、字体和导出问题
中文显示问题主要集中在渲染端。默认情况下VS Code插件的预览能正常显示中文,但导出PNG时可能会出现字体缺失、乱码等情况。在线工具一般没太多问题,但导出高清大图时部分工具会有水印或限制。
我踩过的一个坑是:在导出项目架构图时,图中包含大量英文缩写和中文混排,默认字体渲染歪歪扭扭。后来通过在Mermaid脚本中引入自定义字体主题解决。具体方法是使用config或主题选项设置字体,但不同渲染器支持的配置项不太一样,遇到问题优先查手头工具对应版本的支持范围,不要照搬网上早期的方案。
如果你画的图要放在正式文档甚至打印出来,建议从渲染工具里导出SVG格式而非PNG。SVG是矢量格式,任意缩放不模糊,后续在办公软件里也能继续编辑。我这个习惯就是在某次交付评审材料时被高清大图要求倒逼出来的,现在所有正式输出一律选SVG。
5.4 如何减少AI幻觉:关键信息验证
AI画流程图和写代码一样,偶尔会一本正经地“补充”一些你没提过的细节。比如你描述了5个节点,它自作主张加了第6个“发送通知”;或者把A节点和C节点之间加了一条你没说过的虚线连接。这种幻觉在复杂架构图中尤其容易出现。
我的应对方式有三步:第一步,渲染之后先用肉眼核对节点数量是否与描述一致;第二步,核对判断分支的出口数量,尤其注意“是/否”是否齐全;第三步,核对连线是否准确反映了业务规则,而不是只看了顺眼。
如果是关键流程,我会把生成的Mermaid代码反向转译成文字,再和原始需求文档对照一遍。这个操作也能让AI来做:“请把这段Mermaid代码转成中文流程说明,并标注所有分支条件。”一条指令就能完成二次校验,非常省力。
写在最后的一点个人经验
用AI工具快速绘制流程图/框图这事,我用了大半年,最大感受是:它真正解决的并不是“画得快”,而是让我把精力从画图这件体力活上解放了出来。以前画架构图,我花一半时间在调布局和配色上;现在画图,我把80%的时间花在“把逻辑想清楚”这件事上,产出反而更专业。最后再分享一个小技巧:每次让AI生成流程图之后,顺手保留一份流程的文字版描述。图会改、会迭代,但文字是源头。只要你把源头管好,随时可以让AI重新画一版,永远不怕图丢了重画。这也是我目前项目里维护流程文档的标准做法。