☰
免费开源流程图工具全解析:从Mermaid到AI自动生成
2026/10/3 5:52:08 网站建设 项目流程

做技术方案评审的时候,最怕的不是被别人质疑架构,而是画了一个小时的流程图,结果发现关键链路上少了一个分支。白板上画得再清楚,会议一结束就找不到了;Word 里拖文本框,光对齐就能消耗半小时;在线工具功能齐全,但导出高清图、嵌入文档、二次编辑都要付费。这些问题积累多了,团队对“画图”这件事就会越来越敷衍,最后流程图变成走个过场的产物。

很多人以为流程图工具就是“拖拖框、拉拉线、导出图片”的软件。这个理解放在五年前没问题,放到今天就过时了。现在真正值得关注的免费开源流程图工具,至少具备四个能力:拖拽组件、AI自动生成、代码插入、动态线条。这四个能力背后其实是同一个趋势——流程图正在从“图形文件”变成“结构化数据”,从“手工绘制”走向“代码定义和模型驱动”。

这篇文章会讲清楚免费开源流程图工具的价值在哪里,核心能力是什么,主流方案怎么选,然后分别用 Mermaid、LogicFlow、AntV X6 给出可复制的实操案例,最后聊一聊 AI 自动生成流程图的技术思路。无论你是后端开发、前端开发、架构师还是技术型产品,都能在这篇文章里找到一条从选型到落地的路径。

1. 这篇文章真正要解决的问题

流程图工具看起来只是“效率工具”,但在实际工程中,它往往卡住的不止是绘图环节,而是整个团队的知识沉淀和协作效率。

我见过不少研发团队,架构图分布在每个成员的本地文件中,某个人离职后,他负责的系统流程图就再也找不到原版。还有团队在私有化项目里需要内嵌一个流程审批编辑器,业务方要求拖拽组件、自动校验连线关系、动态展示状态,这类需求并不是 ProcessOn 这类在线工具能解决的,而是要把绘图能力做成产品模块。

所以这篇文章真正想解决的问题是:

  • 工具层面:免费开源的流程图方案到底能不能替代商业软件?它们各自擅长什么场景?
  • 代码层面:如何用代码定义流程图,并把流程图放进 Git 仓库进行版本管理?
  • 能力层面:拖拽组件、动态线条具体是怎么实现的?想嵌入自己系统时,该用哪套引擎?
  • AI 层面:自然语言自动生成流程图到底怎么落地,技术流程是怎样的?

我的核心判断是:开源流程图工具的价值不在于“免费”,而在于它把流程图变成了一种可以编程、可以版本管理、可以被 AI 生成的结构化数据。看懂这一点,你才能真正用好这些工具,而不是停留在“换了个画图软件”的层面。

2. 免费开源流程图工具的核心能力拆解

为了说清楚开源流程图工具为什么值得关注,需要先理解一个概念:传统画图工具保存的是“图形坐标”,而新一代流程图工具保存的是“图数据模型”。

图数据模型可以简单理解为“节点 + 边的集合”。节点是流程中的每个步骤,边是步骤之间的流转关系。坐标、颜色、线条样式只是数据的一种视觉呈现,它们可以被布局引擎重新计算,也可以被代码动态生成。

下面这段 JSON 就是一个典型的图数据模型:

{ "nodes": [ { "id": "start", "label": "开始", "x": 100, "y": 100 }, { "id": "approve", "label": "审批", "x": 300, "y": 100 } ], "edges": [ { "source": "start", "target": "approve", "label": "提交" } ] }

在这个模型下,拖拽、连线、AI 生成、动态线条都围绕同一套数据结构进行。

理解这一点之后,再看四个核心能力就非常清晰了。

拖拽组件:不是简单地往画布上放一个矩形,而是把节点类型和业务场景绑定。比如审批流程里有“发起”“审批”“判断”等自定义节点,拖拽到画布后,节点自带校验规则和交互行为。

AI 自动生成:大模型输出一段结构化 JSON 或 Mermaid 源码,图形引擎读取后直接渲染出完整的流程图。整个过程人工只负责描述业务需求。

代码插入:包括两层含义。一层是用 Mermaid、PlantUML 这类文本语法在 Markdown 文档中定义流程图;另一层是在前端工程中通过 JavaScript 或 TypeScript 动态创建节点和边,适合做内嵌的流程编辑器。

动态线条:连线不是一条固定坐标的折线,而是根据节点位置实时计算路径。节点被拖动后,线条会重新规划走向,自动绕开其他节点,甚至支持动画效果。

这四个能力组合起来,已经超越了“画图”本身。它们让流程图变成了一种可以被程序理解和操作的数据资产。

3. 主流开源流程图工具选型对比

“免费开源的流程图神器”并不是单指某一款软件,而是一类工具群的现状。下面从应用场景、开发方式和学习成本几个维度做一个对比,方便你按需选择。

项目定位适合场景典型优势学习成本
diagrams.net(draw.io)全能绘图应用个人画图、团队文档、UML、架构图免费开源、桌面端和 Web 端都有、支持 Mermaid 导入导出很低
Mermaid文本生成图Markdown 文档、Git 仓库内嵌流程图代码即图表、diff 友好、易被 AI 生成很低
PlantUML文本生成 UML类图、时序图、用例图等专业 UML内置多种 UML 图形规范,适合建模较低
LogicFlow流程图编辑框架业务系统内嵌审批流、流程编排基于 Vue、定制能力灵活、拖拽交互完善中
AntV X6图可视化引擎复杂图编辑、拓扑图、大屏展示企业级、文档完善、支持 Vue/React中高
tldraw开源白板/绘图头脑风暴、原型草图、AI 白板实验交互流畅、支持无限画布、有 AI 实验能力低

选型建议可以按三类场景来记:

个人或团队文档场景:优先选 Mermaid 或 diagrams.net。Mermaid 的优势是纯文本,能在代码仓库里直接维护;diagrams.net 的优势是傻瓜式拖拽,适合不熟悉代码的同事。

业务系统内嵌流程编辑器:选 LogicFlow 或 AntV X6。它们不是“画图软件”,而是可以嵌入 Web 应用的图形编辑引擎,能自定义节点、边、校验规则和事件交互。

专业 UML 或建模场景:选 PlantUML。它虽然写起来没有拖拽直观,但 UML 规范和语法支持非常成熟。

需要说明的是,如果只是想画一张图,没有二次开发需求,不建议一上来就用 LogicFlow 或 X6 这类引擎,维护成本和概念复杂度会明显高于普通画图工具。

4. 快速上手:Mermaid 代码插入生成流程图

Mermaid 是目前最流行的文本化流程图工具之一。它把流程图定义成一段代码写在 Markdown 文档里,渲染时由编辑器或命令行工具转换成图形。

先看一段最简单的 Mermaid 源码,这段内容可以在支持 Mermaid 的 Markdown 编辑器、GitHub、GitLab 中直接渲染:

graph TD A[用户访问首页] --> B{是否已登录} B -- 是 --> C[进入控制台] B -- 否 --> D[跳转登录页] D --> E[登录成功] E --> C

这段语法的含义是:定义了一个自上而下的流程图,A 节点指向判断节点 B,判断节点根据“是/否”走向不同分支。

Mermaid 的另一个优势是可以用命令行在构建流程中生成图片。如果你想把流程图自动导出为 SVG 或 PNG,可以安装 Mermaid CLI:

npm install -g @mermaid-js/mermaid-cli

然后在任意目录执行:

mmdc -i input.mmd -o output.svg mmdc -i input.mmd -o output.png -b white

参数-i指定输入文件,-o指定输出文件,-b设置背景色。这样流程图就可以作为图片资产被 CI 自动生成和发布了。

如果你想在网页中动态嵌入 Mermaid 流程图,可以引入 CDN 文件并初始化:

<!DOCTYPE html> <html> <head> <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script> <script> mermaid.initialize({ startOnLoad: true }); </script> </head> <body> <div class="mermaid"> graph TD A[需求分析] --> B[技术设计] B --> C[编码开发] C --> D[测试验收] </div> </body> </html>

验证方式很简单:用浏览器打开这个 HTML 文件,如果页面上出现了流程图形状,说明 Mermaid 初始化成功。如果页面空白,优先打开浏览器控制台看 JavaScript 错误,再检查<div class="mermaid">里的语法是否有缩进错误。

这段实践的核心价值在于:流程图不再是一张不可追溯的图片,而是一段可以被评审、被 diff、被自动构建的文本代码。

5. 拖拽组件与动态线条:图形编辑引擎实战

如果你需要在业务系统中嵌入一个流程编辑器,比如让运营人员自己配置审批流、让产品同学可视化搭建页面流程,那么 Mermaid 就不够用了,你需要的是一个图形编辑引擎。

这里以 LogicFlow 和 AntV X6 为例,它们是目前国内开源社区和工业项目中使用较多的两套方案。下面代码只演示核心思路,具体 API 在不同版本中可能存在差异,实际开发请以官方文档为准。

LogicFlow 是基于 Vue 的流程图编辑框架,安装依赖后可以这样初始化一个画布:

import { LogicFlow } from '@logicflow/core'; import '@logicflow/core/dist/style.css'; const lf = new LogicFlow({ container: document.querySelector('#app'), grid: true, edgeType: 'bezier' }); lf.render({ nodes: [ { id: '1', type: 'rect', x: 100, y: 100, text: '发起申请' }, { id: '2', type: 'rect', x: 320, y: 180, text: '部门审批' }, { id: '3', type: 'rect', x: 540, y: 260, text: '结束' } ], edges: [ { sourceNodeId: '1', targetNodeId: '2', type: 'polyline' }, { sourceNodeId: '2', targetNodeId: '3', type: 'polyline' } ] });

在这个例子中,lf.render直接传入节点和边的数据模型,画布会完成布局、连线、拖拽等一系列交互。edgeType控制连线风格,polyline表示折线,bezier表示贝塞尔曲线。

AntV X6 的使用方式类似,但它更贴近企业级图编辑场景,对 React 和 TypeScript 的支持更自然:

import { Graph } from '@antv/x6'; const graph = new Graph({ container: document.getElementById('container'), grid: true, connecting: { snap: true, allowBlank: false } }); graph.addNode({ id: 'start', x: 40, y: 40, width: 100, height: 40, label: '开始' }); graph.addEdge({ source: 'start', target: 'approve', router: 'manhattan', connector: 'rounded' });

这里的关键是router和connector这两个配置,它们决定了动态线条的行为。router负责路径规划,manhattan路由会计算出类似城市街道路网的横平竖直路径,并自动绕开其他节点;connector决定连接处的拐弯样式,rounded表示圆角。

为什么要理解动态线条?因为静态绘图软件中的线条只是一条固定坐标的折线,节点一旦移动,线条就乱了。而图形编辑引擎中的线条是根据“源节点和目标节点”的关系实时计算的,无论你怎么拖动节点,连线都会自动重新规划。

如果你在用这类引擎时页面空白,第一步不是看业务代码,而是先检查容器是否设置了高度。LogicFlow 和 X6 都依赖一个可见尺寸的 HTML 容器,这个常见问题在社区中出现的频率非常高。

6. AI 自动生成流程图:从自然语言到图形

AI 自动生成流程图,是最近一两年最吸引人的能力。它把流程图的创作门槛从“会画图”降到了“会说流程”。

从技术实现上看,主流方案有两种:

  • 方案一:让大模型直接输出 Mermaid 源码,再由 Mermaid 渲染成图。
  • 方案二:让大模型输出结构化 JSON,再交给 LogicFlow 或 X6 渲染。

方案一实现成本最低,方案二控制力更强,适合需要嵌入业务系统并做节点校验的场景。

下面是一个调用大模型 API 生成 Mermaid 源码的 Python 示例。这里以 OpenAI 兼容接口为例,实际使用时需要替换为自己的 API Key 和模型名称,也可以替换为其他兼容接口或本地模型服务。

from openai import OpenAI client = OpenAI(api_key="你的API_KEY") prompt = """ 你是流程图生成助手。请根据业务描述生成 Mermaid 流程图源码,只输出源码,不要解释。 业务描述:用户访问首页,如果未登录则跳转登录页,登录成功后进入控制台;如果已登录直接进入控制台。 """ response = client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": "你只输出 Mermaid 源码,不输出其他内容。"}, {"role": "user", "content": prompt} ], temperature=0.2 ) print(response.choices[0].message.content)

这段代码的原理是:把业务描述放进 prompt,让模型理解流程分支,然后返回一段可渲染的 Mermaid 文本。temperature设置较低是为了让模型输出更稳定,减少随机生成错误分支的概率。

如果要把结果直接交给 LogicFlow 或 X6 渲染,可以把 prompt 改为要求输出 JSON,例如:

{ "nodes": [ { "id": "start", "label": "用户访问首页" }, { "id": "check", "label": "是否已登录", "type": "diamond" }, { "id": "login", "label": "跳转登录页" }, { "id": "console", "label": "进入控制台" } ], "edges": [ { "source": "start", "target": "check" }, { "source": "check", "target": "login", "label": "否" }, { "source": "login", "target": "console", "label": "登录成功" }, { "source": "check", "target": "console", "label": "是" } ] }

这里容易踩坑的是:模型返回的 JSON 未必严格合法,可能存在中文字段、遗漏逗号、多出反引号等问题。所以生产环境中要把模型输出先做一层解析和校验,失败时重新请求或让用户手工修正。

AI 生成流程图的真正价值不是替代人工绘图,而是把“从需求文本到流程图初稿”的重复劳动交给模型。人工要做的是业务校验和细节调整。尤其是支付、权限、生产环境变更这类高风险流程,AI 生成的结果必须经过人工二次确认,尽量不要直接作为发布依据。

7. 流程图工程化:代码仓库、CI 与团队协作

流程图一旦变成代码,工程化就很自然地发生了。把 Mermaid 源码或 draw.io XML 文件放进 Git 仓库,团队成员可以像 review 代码一样 review 流程图。

最简单的落地方案是:在项目的docs目录下维护一个 Markdown 文件,里面直接放 Mermaid 源码。这样每次修改流程图,PR 里会清楚显示改动的内容和分支变化,比一张图片更可控。

更进一步,可以在 CI 流程里自动导出图片并发布到文档站。下面是一个 GitHub Actions 的示例片段:

jobs: generate-diagrams: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: npm install -g @mermaid-js/mermaid-cli - run: mmdc -i docs/flow.mmd -o docs/flow.svg - uses: actions/upload-artifact@v4 with: name: diagrams path: docs/*.svg

这个流水线做的事情是:代码推送后自动读取docs/flow.mmd,用 Mermaid CLI 生成docs/flow.svg,然后作为构建产物上传。团队成员在 PR 中就能看到最新流程图,不需要每个人在本地手动执行命令。

工程化之后,还需要建立团队规范。我的建议是先在团队内部定义一套“节点词典”:

  • “开始”和“结束”节点统一用固定颜色。
  • “判断”节点统一使用菱形。
  • “外部系统调用”节点统一加图标。
  • 节点命名使用“动词 + 宾语”的格式,例如“创建订单”、“发送通知”,而不是“处理中”。

这套规范看起来琐碎,但它决定了流程图是否可读、是否可以被 AI 稳定生成。没有规范的流程图,AI 生成的结果也会五花八门。

8. 常见问题与排查思路

在实际使用开源流程图工具时,下面几个问题出现频率最高,我整理成了排查表,方便遇到问题时快速定位。

问题现象可能原因排查方式解决方案
Mermaid 代码块不渲染语法错误、编辑器不支持、初始化未执行查看浏览器控制台,用 Mermaid Live Editor 验证语法修正缩进和箭头语法,确认引入 mermaid.min.js 并调用 initialize
Mermaid 导出图片中文乱码运行环境缺少中文字体检查 CLI 日志和系统字体列表安装中文字体,或在 mmdc 参数中指定 font-family
LogicFlow 页面空白容器没有高度、render 数据格式错误打开控制台看报错,检查容器 CSS给容器设置明确高度,核对节点和边的字段名
X6 连线失败目标节点 id 不存在、连接规则拦截打印 graph 数据,查看 connect 事件修正数据源 id,调整 connecting 配置
AI 生成流程图结构不完整提示词约束不明确、模型上下文不够检查模型原始输出,拆分复杂业务描述增加 few-shot 示例,要求模型只输出指定格式
mmdc 命令执行失败CLI 缺少浏览器内核依赖查看命令完整报错日志安装 Chromium 相关依赖,或使用容器镜像执行

如果你遇到的是框架集成问题,最有效的方式其实是去官方文档或 GitHub Issues 搜索对应版本的关键词。图形编辑引擎的 API 在迭代中经常微调,网上教程里的代码未必适配当前版本。

9. 最佳实践与工程建议

结合实际项目的使用经验,这里有几条可以直接落地的建议。

第一条,先定义数据模型,再选工具。如果你的流程图只需要在文档里展示,直接选 Mermaid。如果你要做的是内嵌编辑器,先想清楚节点类型、边约束和交互规则,再选择 LogicFlow 还是 X6,而不是反过来先选框架再定模型。

第二条,流程图要跟着代码走。把核心架构图、关键流程放进仓库的docs目录,而不是散落在个人电脑里。这样每次需求变动,流程图和代码的变更会出现在同一个 PR 中,强制团队保持同步更新。

第三条,AI 生成必须加人工校验环节。大模型生成的流程图有时会在边界条件上出错,比如“是否”分支反了、遗漏异常处理分支。建议把 AI 生成的结果放在“草稿”状态,人工确认后再进入正式文档。

第四条,图形引擎选型要看团队技术栈。如果团队主要是 Vue 技术栈,LogicFlow 更自然;如果是 React 或组件库体系复杂,AntV X6 的文档和工具链更成熟。两个都值得学,但项目内不要同时引入多套,避免维护成本翻倍。

第五条,注意开源许可证。免费开源不等于无条件商用。确认项目使用的开源协议是否允许商业闭源集成,是否对修改代码有开源要求。这个问题在商业项目中非常重要,不要等到法务介入才发现。

第六条,不要追求功能堆砌。很多团队第一次接入图形引擎时,想把拖拽、缩放、自适应、小地图、AI 生成全部做上,结果一个月后核心的节点保存和连线校验还没稳定。建议第一个版本只做“展示现有流程图 + 基础拖拽编辑”,跑通后再逐步加能力。

10. 总结与后续学习方向

这篇文章已经把免费开源流程图工具的整体脉络梳理清楚了。核心变化不是“免费”两个字,而是流程图从静态图片变成了数据模型。Mermaid 解决了文本化定义的问题,LogicFlow 和 AntV X6 解决了交互式编辑的问题,AI 生成解决了从自然语言到图结构的自动化问题。

实践上,建议从最小路径开始:先在自己的技术方案文档里用 Mermaid 画出第一张流程图,体验代码化带来的版本管理优势;然后评估业务系统中是否真的需要内嵌流程编辑器;确认需要之后,再用 Vue 或 React 技术栈选定图形引擎,跑通“数据模型到渲染”的最小闭环。

后续可以深入学习的方向包括:图布局算法(多层节点自动排列)、自定义节点的渲染与事件机制、图形编辑器的序列化与持久化、以及大模型提示词在流程图场景下的结构化输出优化。这些方向都会让“画流程图”这件事从表面功夫变成真正的工程资产。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询