我把AI塞进工作流编辑器:FlowMix工作流正式开源,3分钟让业务“活“起来
基于多年工作流引擎开发经验,正式开源 flowmix/flow 可视化工作流引擎。该项目采用 React18、TypeScript5、Umi4 等技术栈,集成 AntDesign、@xyflow/react 等组件库,提供开箱即用的流程可视化搭建方案。核心功能包括节点动画配置、参考线吸附、自动连线、图层管理等,支持产品架构图、思维导图等多种应用场景。引擎通过异步分片渲染和性能优化,可流畅处理上千节
23年的时候就开始研究工作流,记得还在技术社区写了首个 React-Flow 的中文文档:

后面结合很多粉丝和客户的反馈,慢慢迭代,发现它可以做很多事情。

当然这两年大厂也开源了很多工作流的方案,所以我也打算正式把flowmix/flow 可视化工作流,开源一版, 供大家研究参考。

开源地址:https://github.com/MrXujiang/flowmix-flow
下面和大家简单介绍一下这款工作流引擎。
flowmix/flow 致力于提供一套开箱即用的流程可视化搭建底座, 来支撑各种复杂工作流场景的设计.

同时汲取了市面上主流工作流引擎的设计经验, 并对性能做了极致的优化, 目前 flowmix/flow 的搭建性能和所见即所得的UI更新流畅度非常丝滑. 大家可以基于这套方案,结合AI技术轻松实现 AI Agent 工作流设计平台.

接下来我就和大家介绍一下 flowmix/flow 的核心功能和使用场景.
ps:大家可以基于我的开源方案,使用AI Coding,实现各种复杂的工作流产品~
技术架构

下面和大家分享一下这个项目使用的技术栈,供大家参考:
-
Umi 4.x - 企业级前端应用框架
-
基于 React 18
-
内置路由、构建、部署等完整解决方案
-
支持约定式路由和配置式路由
-
-
React 18 - 前端 UI 框架
-
使用函数式组件 + Hooks
-
Suspense 懒加载优化
-
-
TypeScript 5.x - 类型安全的 JavaScript 超集
-
提供完整的类型检查
-
提升代码可维护性和开发体验
-
UI 组件库
- Ant Design 5.x
- 企业级 UI 组件库
-
提供 Button、Drawer、Popover、Tooltip 等组件
-
内置主题定制能力
-
@ant-design/icons 图标库
-
流程图核心
-
@xyflow/react 12.x - React 流程图库
-
提供节点、边、画布等核心能力
-
支持拖拽、缩放、平移
-
高性能渲染引擎
-
-
@dagrejs/dagre 1.x - 有向图自动布局算法
-
支持流程图自动排版
-
优化节点位置计算
-
拖拽交互
-
react-dnd 16.x - React 拖拽库
-
HTML5 拖拽 API 封装
-
支持拖拽排序、拖拽创建
-
-
react-dnd-html5-backend 16.x - HTML5 拖拽后端
-
react-draggable 4.x - 元素拖拽组件
-
支持元素自由拖拽和位置调整
-
状态管理
- Zustand 4.x
- 轻量级状态管理库
-
简洁的 API 设计
-
支持时间旅行(撤销/重做)
-
无需 Provider 包裹
-
可视化与图表
- @visactor/vchart 1.x
- 可视化图表库
-
支持多种图表类型
-
高性能渲染
-
工具库
-
nanoid 5.x - 唯一 ID 生成器
-
小巧、安全、快速
-
用于节点和边的 ID 生成
-
-
axios 1.x - HTTP 客户端
-
用于 API 请求
-
支持请求/响应拦截
-
-
classnames 2.x - CSS 类名管理
-
条件类名组合
-
-
immutability-helper 3.x - 不可变数据操作
-
简化复杂数据结构更新
-
-
react-use 17.x - React Hooks 工具集
-
提供常用 Hooks
-
-
react-sticky-box 2.x - 粘性定位组件
-
refline.js 0.11.x - 参考线组件
-
提供辅助对齐功能
-
导出功能
-
dom-to-image 2.x - DOM 转图片
-
支持导出流程图为图片
-
-
file-saver 2.x - 文件下载
-
支持保存文件到本地
-
核心功能介绍
最近更新了几个非常有价值的功能, 这里和大家一一分享一下.
1. 支持节点动画配置

目前整套设计架构支持了多种类型的属性编辑, 比如样式, 数据, 动画等, 动画目前支持了海量的动画素材, 可以轻松给节点配置不同的动画效果, 并设置动画的时长, 次数等.
2. 支持参考线吸附

目前流程设计器的每个节点都支持参考线吸附, 大家可以更精准的设计工作流, 后续还会做更多设计辅助的优化, 让拖拽体验达到业内Top.
3. 节点自动创建和自动连线

目前我已经实现了单机节点, 可以在节点后面自动创建节点, 同时对整个工作流进行自动连线. 后期会实现点击“+”号, 支持选择不同的节点进行创建.
4. 边的自动创建和节点自动化布局

我们可以看到,在边上点击也会出现“+”号, 并且可以在两个节点之间创建新节点, 其他节点位置会自动计算, 并布局. 这块也是我写的一个布局算法实现的, 后续还会优化它, 支持更复杂的布局场景.
5. 可操作的图层管理面板

当画布中的元素很多时, 我们需要快速定位到具体的节点, 这个时候图层管理就非常重要了. 所以我也实现了图层管理面板, 并且支持节点反选图层. 图层面板可以多选组件, 选中的组件会在画布中出现选中状态. 后续会对图层面板实现更多的功能.
开源地址:https://github.com/MrXujiang/flowmix-flow
场景案例分享
我最初设计 flowmix/flow 目的是让它实现自动化 AI Agent 生成, 后面越研究越发现它可以做的事情还很多, 所以为了让大家更快的感受 flowmix 的能力, 我先做了一个流程编辑器, 也就是 flowmix/flow, 我基于它设计了几个典型编辑场景, 这里给大家分享一下.
1. 产品/技术架构图

2. 组织结构图

3. 思维导图

4. 多画布设计

5. 任务管理 + 流程看板

当然还有很多场景大家可以一起探索, 目前产品免费使用, 欢迎大家体验反馈~
高性能设计, 支撑上千复杂节点编辑, 异步分片渲染
flowmix/flow 的节点内容不是一次性渲染到画布上, 而是一次只渲染可见区域的内容, 保证了大量节点也能轻松加载, 同时对于搭建系统的状态管理, 为了支撑大数据量的渲染和状态更新, 我对 antd form 组件的更新性能做了进一步优化, 并且采用zustand 作为状态管理库.(号称react状态管理性能之王)

支持自定义节点连接线
流程图的连接线是一个很重要的环节, 这里我对连接线也提供了一定的搭建配置能力, 如下图所示:

后续还会按照我的规划持续优化和迭代它, 来实现真正的业务自动化方案.
我们最近上线的一款AI协同文档
也许关注我的朋友已经看过我之前做的另一款产品——JitWord
, 它是另一款搭建类产品, 类似于WPS Word和Notion, 可以使用它轻松构建企业下一代知识库产品.

如果大家感兴趣, 也可以在线体验一下. 开源sdk地址:
更多推荐



所有评论(0)