首页/新闻资讯/正文详情

FlowGram.AI 工作流开发框架:从快速上手到画布、表单、变量引擎全解析

发布时间:2026/9/25 11:22:42 来源:云帆数科 栏目:资讯中心
FlowGram.AI 工作流开发框架:从快速上手到画布、表单、变量引擎全解析
前端低代码工作流自动化流程编排【免费下载链接】flowgram.aiFlowGram is an extensible workflow development framework with built-in canvas, form, variable, and materials that helps developers build AI workflow platforms faster and simpler.项目地址https://gitcode.com/gh_mirrors/fl/flowgram.ai点击查看免费下载FlowGram 是一个可组合、可视化、易于集成且可扩展的工作流开发框架与工具集目标是帮助开发者以更快、更简单的方式搭建 AI 工作流平台。它并非一个现成的工作流平台而是一套包含流程画布、节点配置表单、变量作用域链与开箱即用物料LLM、条件、代码编辑器等的框架和工具集。读完本文你将掌握使用官方 CLI 创建 FlowGram 项目的完整流程、两大画布引擎与表单/变量引擎的能力边界并能结合 demo-free-layout 源码理解编辑器配置、节点注册与插件体系的实战用法。定位框架与工具集而非成品平台仓库 README.md 对 FlowGram 的官方定义是FlowGram is a composable, visual, easy-to-integrate, and extensible workflow development framework toolkit. Our goal is to help developers build AI workflow platformsfasterandsimpler.这句话划定了它的使用方式你引入 FlowGram 的包在 React 应用中装配画布、表单、变量与物料最终得到属于自己的工作流平台。仓库中同样提供了完整的中文、西班牙语、俄语、葡萄牙语、德语、日语版本 README见 README_ZH.md 等多语言文档其中中文版本对四大特性的描述更为完整例如表单引擎管理节点数据的增删改查操作并提供渲染、验证、副作用、联动和错误捕获等功能变量引擎支持作用域约束、变量结构检查和类型推断等功能。官方演示中描述了一条完整链路遍历一组城市通过 HTTP 获取实时天气用 Code 节点解析温度借助 LLM 生成穿搭建议经由 Condition 进行筛选在循环中汇总结果最后使用 Advisor LLM 选出最舒适的城市并将结果发送至 End 节点。这条链路涵盖了 FlowGram 几乎所有核心能力的组合。快速上手第一步使用官方 CLI 创建项目官方推荐通过flowgram.ai/create-app脚手架创建项目npx flowgram.ai/create-applatest不带参数执行时会进入交互式选择界面。从 CLI 实现源码 可以看到当前可选的模板共 7 个交互选项对应项目目录说明Fixed Layout Demodemo-fixed-layout固定布局完整示例Free Layout Demodemo-free-layout自由布局完整示例README 推荐 ⭐️Fixed Layout Demo Simpledemo-fixed-layout-simple固定布局精简示例Free Layout Demo Simpledemo-free-layout-simple自由布局精简示例Free Layout Nextjs Demodemo-nextjsNext.js 集成示例Free Layout Vite Demo Simpledemo-viteVite 构建示例Demo Playground for infinite canvasdemo-playground无限画布 Playground也支持直接传模板名会映射为demo-前缀目录例如npx flowgram.ai/create-applatest free-layout该用法在 demo-free-layout 的 README 中同样有说明。CLI 的内部工作流程可以从 create-app 源码 中确认通过npm view flowgram.ai/demo-fixed-layout version --taglatest查询最新版本号从 npm registry 下载对应模板的 tarball 并解压到当前目录读取生成项目的package.json把所有flowgram.ai前缀的依赖版本统一替换为flowgram.ai/core的最新版本updateFlowGramVersions保证框架包版本一致打印启动提示cd folderName→npm install→npm start。第二步启动项目按照 README 的官方步骤cd demo-free-layout npm install npm start然后打开http://localhost:3000即可看到编辑器。对照 demo-free-layout/package.json 可以确认npm start实际执行的是cross-env NODE_ENVdevelopment rsbuild dev --open即基于 RsbuildRspack 之上的现代构建工具启动开发服务器并自动打开浏览器。构建入口在 rsbuild.config.ts 中配置入口文件为./src/app.tsx启用 React 与 Less 插件并通过decorators: { version: legacy }支持 Inversify 的injectable()/inject装饰器依赖注入体系依赖此配置。环境要求该仓库本身使用 Rush monorepo 管理rush.json 中声明的 Node.js 支持范围为18.20.3 19.0.0 || 20.14.0 23.0.0包管理器为 pnpm 10.6.5。在本地运行生成的 demo 项目时建议同样采用 18 或 20 的 Node LTS 版本以与仓库工具链保持一致。核心特性总览README 用一张特性表总结了四大核心能力这里完整继承并结合仓库结构展开特性说明Free Layout Canvas自由布局画布节点可任意摆放节点间用自由走向的连线边连接Fixed Layout Canvas固定布局画布节点拖拽到指定位置支持分支、循环等复合节点Form表单引擎管理节点数据的 CRUD提供渲染、校验、副作用、联动与错误捕获Variable变量引擎支持作用域约束、变量结构检查与类型推断便于管理工作流数据流对应到仓库四大能力分别由以下目录实现见 packages 目录自由画布packages/client/free-layout-editor 与 packages/canvas-engine/free-layout-core固定画布packages/client/fixed-layout-editor 与 packages/canvas-engine/fixed-layout-core表单packages/node-engine/form-core 与 packages/node-engine/form变量packages/variable-engine 下的variable-core、variable-layout、json-schema三个子包。此外packages/materials目录提供了各能力域的物料form-materials、form-antd-materials、type-editor类型编辑器等即 README 所说的ready-to-use materials。深入 Free Layout Demo编辑器配置、节点与插件apps/demo-free-layout 是 README 推荐的完整示例也是理解整个框架的最佳入口。其 README 自述了技术栈React 18 TypeScript、Rsbuild 构建、Less Styled Components、Semi Designdouyinfe/semi-uiUI 库、FlowGram 自研编辑框架、Inversify 依赖注入。编辑器装配FreeLayoutEditorProvider渲染入口在 editor.tsx核心结构只有三层FreeLayoutEditorProvider {...editorProps} DockedPanelLayer EditorRenderer classNamedemo-editor / /DockedPanelLayer /FreeLayoutEditorProviderFreeLayoutEditorProvider来自flowgram.ai/free-layout-editor它接收FreeLayoutProps并创建整个编辑上下文DockedPanelLayer来自flowgram.ai/panel-manager-plugin用于承载停靠面板如属性面板、变量面板。FreeLayoutProps配置中心全部配置集中在 use-editor-props.tsx 的useEditorProps中返回。按类别梳理关键配置项画布与基础行为{ background: true, // 背景网格 readonly: false, // 只读模式只读时节点不可拖拽 twoWayConnection: true, // 线条支持双向连接默认 true enableReadonlyNodeDragging: false, playground: { preventGlobalGesture: true }, // 阻止 Mac 浏览器手势翻页 initialData, // 初始数据FlowDocumentJSON nodeRegistries, // 节点注册表 }业务规则钩子——这四个回调是控制工作流拓扑合法性的关键{ // 连线合法性示例中禁止同节点自环、跨容器连线并做环检测不允许连回上游节点 canAddLine(ctx, fromPort, toPort) { if (fromPort.node toPort.node) return false; if (fromPort.node.parent?.id ! toPort.node.parent?.id /* group 容器例外 */) return false; return !fromPort.node.lines.allInputNodes.includes(toPort.node); }, canDeleteLine(ctx, line, newLineInfo, silent) { return true; }, // Backspace/Delete 触发 canDeleteNode(ctx, node) { return true; }, canDropToNode: (ctx, params) canContainNode(params.dragNodeType!, params.dropNodeType!), }其中canDropToNode的实现 canContainNode 约束了哪些节点类型可以拖入循环等子画布。引擎开关{ nodeEngine: { enable: true }, // 节点/表单引擎 variableEngine: { enable: true }, // 变量引擎 history: { enable: true, enableChangeNode: true, // 监听表单数据变化以纳入撤销/重做 }, }渲染与交互{ // 节点渲染物料默认渲染器 按类型覆盖 materials: { renderDefaultNode: BaseNode, renderNodes: { [WorkflowNodeType.Comment]: CommentRender }, }, // 运行中线条动画由 RuntimeService 判断该线条是否处于流动状态 isFlowingLine: (ctx, line) ctx.get(WorkflowRuntimeService).isFlowingLine(line), // 线条配色hidden/default/drawing/hovered/selected/error/flowing 七态走 CSS 变量 lineColor: { default: var(--g-workflow-line-color-default,#4d53e8), /* ... */ }, }生命周期与持久化{ // 内容变化1s 防抖的自动保存示例同时序列化 document 与全局变量 onContentChange: debounce((ctx, event) { if (ctx.document.disposed) return; console.log(Auto Save: , event, { ...ctx.document.toJSON(), globalVariable: ctx.get(GetGlobalVariableSchema)(GetGlobalVariableSchema)(), }); }, 1000), onInit(ctx) {}, onAllLayersRendered(ctx) { ctx.tools.fitView(false); }, // 首屏适配视口 onDispose() {}, }此外还有getNodeDefaultRegistry提供默认注册表并与nodeRegistries合并、fromNodeJSON/toNodeJSON节点 JSON 序列化转换分别由ctx.document.fromJSON/toJSON调用、shortcuts快捷键系统与onBindInversify 服务绑定onBind: ({ bind }) { bind(CustomService).toSelf().inSingletonScope(); bind(ValidateService).toSelf().inSingletonScope(); },i18n 配置则通过i18n: { locale: navigator.language, languages: { zh-CN: {...}, en-US: {} } }注入多语言文案。节点注册WorkflowNodeType 与 FlowNodeRegistrydemo 支持的节点类型定义在 nodes 目录 中覆盖start、end、llm、http、code、variable、condition、loop、block-start、block-end、comment、continue、break等类型。每个节点目录包含注册文件index.ts与表单元数据form-meta.ts所有注册表汇总导出为nodeRegistries后传给编辑器。以 Start 节点为例注册表声明了它的元信息、展示信息与行为约束export const StartNodeRegistry: FlowNodeRegistry { type: WorkflowNodeType.Start, meta: { isStart: true, deleteDisable: true, // 不可删除 copyDisable: true, // 不可复制 nodePanelVisible: false, // 不出现在加节点面板 defaultPorts: [{ type: output }], size: { width: 360, height: 211 }, }, info: { icon: iconStart, description: ... }, formMeta, // 表单配置 canAdd() { return false; } // 禁止添加第二个开始节点 };这种注册表即声明的模式意味着新增一种节点只需实现一个FlowNodeRegistry并加入数组无需改动编辑器核心代码。插件体系能力模块化demo 通过plugins: () [...]装配了十余个插件每个能力都是独立包对应 packages/plugins 目录插件包职责createFreeLinesPluginfree-lines-plugin连线渲染与交互支持renderInsideLine在连线上挂载加号按钮createMinimapPluginminimap-plugin缩略图导航可配置画布/视口/节点颜色尺寸createFreeSnapPluginfree-snap-plugin自动对齐与辅助线edgeColor/alignColor/线宽等createFreeNodePanelPluginfree-node-panel-plugin拖拽加节点面板createContainerNodePluginfree-container-plugin循环等容器节点的子画布渲染createFreeGroupPluginfree-group-plugin节点分组createFreeStackPluginfree-stack-plugin自定义节点堆叠排序示例中让 comment 节点始终位于底层createDownloadPluginexport-plugin画布导出/下载createContextMenuPlugindemo 内 plugins 目录右键菜单createRuntimePlugintest-run-plugin工作流试跑运行时createVariablePanelPlugindemo 内 variable-panel-plugin全局变量管理面板createPanelManagerPluginpanel-manager-plugin停靠面板管理其中运行时插件值得单独说明use-editor-props.tsx 中保留了两种模式的注释示例createRuntimePlugin({ mode: browser, // browser mode is for demo only! // mode: server, // serverConfig: { // domain: localhost, // port: 4000, // protocol: http, // }, }),源码注释明确提示browser 模式仅用于 demo生产环境应部署服务端运行时。服务端运行时的实现位于 packages/runtime/nodejs含api、config、server子目录运行时核心与接口则分别位于 packages/runtime/js-core 与 packages/runtime/interface。快捷键与目录组织demo 的 shortcuts 目录 将快捷键模块化copy、paste、delete、select-all为基本操作zoom-in、zoom-out、collapse、expand为视图操作每个快捷键独立成目录实现统一通过FreeLayoutProps.shortcuts传入。完整的目录结构components / nodes / plugins / services / typings / utils 的分工在 demo README 的 Directory Structure 章节 有逐行注释建议作为二次开发时的参照。仓库结构、文档与支持仓库采用 Rush monoreporush.json顶层分为四块apps/CLI 工具apps/cli提供create-app、find-materials、update-version等命令、各 demo 应用free/fixed layout、Next.js、Vite、Playground 等与文档站点apps/docs基于 Rspress源码在 apps/docs/src/zh 与 apps/docs/src/en含 100 篇 MDX 文档packages/按引擎域组织的核心包——canvas-engine画布引擎、client编辑器 React 封装、node-engine表单、variable-engine变量、runtime运行时、materials物料、plugins插件、commoncommand/history/i18n/reactive/utils 等基础库e2e/Playwright 端到端测试覆盖 free/fixed 两种布局的布局、节点、连线、变量、试跑等场景见 e2e/free-layout 与 e2e/fixed-layoutcommon/与config/Rush 配置、git hooks 与共享的 ESLint/TS 配置config/eslint-config、config/ts-config。README 提到的官方文档站点将内容分为快速入门、画布自由/固定、表单、变量、物料、运行时、进阶指南、API 参考等章节这些文档的源文件即位于apps/docs/src下可以在仓库内直接检索阅读。生态与采用情况README 列出了三个采用 FlowGram 的开源项目可作为该框架在真实产品中的参考Coze Studio一体化 AI Agent 开发工具提供大模型与工具接入、多种开发模式覆盖从开发到部署的全流程NNDeploy基于工作流的多平台 AI 部署工具Certimate开源 SSL 证书管理工具通过可视化工作流自动申请与部署证书也是 Lets Encrypt 官方文档列出的 ACME 客户端选项之一。支持渠道方面README 指引通过仓库 Issues 反馈问题或加入 FlowGram 用户群交流。贡献流程可参考仓库根目录的 CONTRIBUTING.md。小结FlowGram 的价值主张可以概括为三层一是框架而非平台的定位让团队拥有画布、表单、变量、物料的完整装配权二是插件化与注册表化的架构节点、插件、快捷键、业务规则钩子均以声明式配置注入三是开箱即用的 demo 工程体系从npx flowgram.ai/create-applatest一行命令到可运行的工作流编辑器只需几分钟。对希望自建 AI 工作流平台的团队建议的路径是先用 free layout demo 跑通快速上手再沿 use-editor-props.tsx 逐项理解FreeLayoutProps的每个配置项最后按nodes/plugins目录的结构扩展自己的节点与运行时。赞分享前端低代码工作流自动化流程编排【免费下载链接】flowgram.aiFlowGram is an extensible workflow development framework with built-in canvas, form, variable, and materials that helps developers build AI workflow platforms faster and simpler.项目地址https://gitcode.com/gh_mirrors/fl/flowgram.ai点击查看免费下载相关推荐Spring Boot 1.x到2.x迁移实战基于thinking-in-spring-boot-samples的最佳实践Spring Boot 1.x到2.x迁移实战基于thinking in spring boot samples的最佳实践 Spring Boot框架的版本升Warm-Flow工作流引擎快速上手指南Warm Flow工作流引擎快速上手指南 Warm Flow是一款基于Java开发的国产轻量级工作流引擎采用Apache 2.0开源协议。这款引擎的核心设计理工作流自动化5分钟快速上手轻量级Java工作流引擎Snaker完全指南5分钟快速上手轻量级Java工作流引擎Snaker完全指南 Snaker是一个基于Java的轻量级工作流引擎适用于企业应用中常见的业务流程。作为一款简单、轻后端上一篇OpCore-Simplify终极指南从8小时到15分钟快速创建完美OpenCore EFI配置下一篇猫抓插件实战指南浏览器资源嗅探的完整解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

WeChatMsg 完整指南:微信聊天记录导出成存档、文档与年度报告的三条路径
WeChatMsg 完整指南:微信聊天记录导出成存档、文档与年度报告的三条路径

WeChatMsg 完整指南:微信聊天记录导出成存档、文档与年度报告的三条路径 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_… · 2026/9/25 11:22:42

AWS SDK for JavaScript (v3) 操作 Amazon CloudWatch 完整实战指南
AWS SDK for JavaScript (v3) 操作 Amazon CloudWatch 完整实战指南

示例工程教程后端 【免费下载链接】aws-doc-sdk-examples Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below. 项目地… · 2026/9/25 11:22:36

Atlas 300V 24G部署YOLO:ONNX转OM、ACL推理与避坑实战
Atlas 300V 24G部署YOLO:ONNX转OM、ACL推理与避坑实战

最近把YOLO检测模型从GPU环境迁移到Atlas 300V 24G这张推理卡上,后台也正好看到“atlas部署yolo”和“atlas 300v 24g 是运算加速卡吗”这些热搜词,索性把这套完整过程整理出来。这篇文章不聊从零开始的科普,就聊真正干活时遇到的事&#xff… · 2026/9/25 11:22:24

基于 OpenClaw 构建医疗健康系统:智能问诊与用药管理的全链路实战(TaoToken 配置篇)
基于 OpenClaw 构建医疗健康系统:智能问诊与用药管理的全链路实战(TaoToken 配置篇)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 12:06:26

AutoTS实战:泰迪杯B题时序预测模型选型与调优
AutoTS实战:泰迪杯B题时序预测模型选型与调优

简介:这份资源是2022年第十届泰迪杯数据挖掘竞赛B题的完整AutoTS建模代码包,面向参加数据挖掘与时间序列预测竞赛的学生、电力负荷预测方向的研究者,以及希望快速上手自动化时间序列框架的Python开发者。包内共25个文件,以13个csv… · 2026/9/25 12:06:26

minimaxH3+ComfyUI:手机拍视频秒出三维高斯场景
minimaxH3+ComfyUI:手机拍视频秒出三维高斯场景

1. 这不是玩具,是三维内容生产流水线的“新工装”你有没有试过,用手机绕着一个咖啡杯拍一圈360度视频,结果导出的却是一段能自由拖拽视角、任意缩放、甚至能抠出杯子本体做AR展示的三维资产?这不是后期特效,也不是建模… · 2026/9/25 12:06:26

自托管CRM系统DeskcommCRM部署实战:从选型到数据备份
自托管CRM系统DeskcommCRM部署实战:从选型到数据备份

做销售管理的这十来年,我最怕的事不是客户难搞,而是客户信息散得到处都是。微信聊天记录里翻上个月的报价、邮箱里找了两小时才拖出来的合同、Excel 表里记了一半的跟进,加上团队几个人各记各的账,月底一对齐全是漏洞。所以当我第… · 2026/9/25 12:06:26

私有化部署CRM实战:从零搭建DeskcommCRM客户管理系统
私有化部署CRM实战:从零搭建DeskcommCRM客户管理系统

1. 项目概述:DeskcommCRM到底是个什么东西先从一个最常见的场景说起:手里攒了三百多个客户,今天这个说要报价,明天那个要改合同,后天又有人来问售后。一开始用Excel记录还勉强撑得住,客户一多就开始乱套——… · 2026/9/25 12:06:26

多通道波分复用器(WDM)原理与工程实践指南
多通道波分复用器(WDM)原理与工程实践指南

1. 什么是多通道波分复用器?——它不是“光的高速公路收费站”,而是“光的智能调度中心”你可能在数据中心机房见过那种带 dozens 个光纤接口、表面印着密集波长标签(如1530.33nm、1531.90nm)的黑色金属盒;也可能在5G前… · 2026/9/25 12:06:20

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码