游乐游手机版
首页/AI教程/文章详情

Tinyflow实现AI流程编排实战教程

时间:2026-07-08 15:21
基于若依plus、JDK17与SpringBoot3 4 1,采用Tinyflow实现AI流程编排。Tinyflow支持Java和前端,可自定义节点并执行智能体编排。实战涵盖引入依赖、设计表结构、生成代码、定义执行、保存与发布接口及测试验证,最终成功跑通完整工作流。

本次从入门到实战,我们选用了若依plus、JDK17以及SpringBoot 3.4.1这一组合技术栈,这几款最新版本搭配运行,效率表现非常出色。

接下来介绍本文的主角:Tinyflow。目前市面上工作流组件种类繁多,但Tinyflow的独特优势在于同时支持Java前端与后端——后端只需引入依赖,前端则可兼容Vue或React。其设计理念与Dify、Coze的工作流高度相似,核心功能包括智能体编排,并支持自定义节点。这一特性在实际开发中至关重要,因为业务场景往往无法被标准化流程完全覆盖。

此外,Spring AI Alibaba也在推进类似功能,基于Spring AI Alibaba Graph实现,但客观来说,目前仍处于完善阶段,生产环境建议优先考虑Tinyflow。

好,闲话少叙,下面直接进入实战环节。

demo版

项目成功启动后,通过浏览器访问“https://localhost:port”即可看到界面。在页面上新增节点,随后点击运行测试。测试通过后,再点击保存。检查数据库,即可看到数据已被成功插入——整个流程完整跑通。

接下来,我们查看运行过程中生成的JSON结构:

{"nodes":[{"id":"node_CVKeWeJL8jn5cGr4","position":{"x":-83,"y":67},"data":{"title":"开始节点","description":"开始定义输入参数","expand":true,"parameters":[{"name":"username","dataType":"String","refType":"input","id":"YtkNFKFFC5hh4zAh","required":true},{"name":"password","dataType":"String","refType":"input","id":"YW0JonLnPtsDVRlp","required":true}]},"type":"startNode","selected":false,"measured":{"width":305,"height":238},"dragging":false},{"id":"node_Lmg446ujJkBFTq7s","position":{"x":333,"y":68},"data":{"title":"结束节点","description":"结束定义输出参数","expand":true,"outputDefs":[{"name":"用户名","dataType":"String","refType":"ref","id":"0FqjBTXWXwmNHvOm","ref":"node_CVKeWeJL8jn5cGr4.username"},{"name":"密码","dataType":"String","refType":"ref","id":"jdXNtiAiLAqP1uto","ref":"node_CVKeWeJL8jn5cGr4.password"}]},"type":"endNode","selected":true,"measured":{"width":368,"height":238},"dragging":false}],"edges":[{"markerEnd":{"type":"arrowclosed","width":20,"height":20},"source":"node_CVKeWeJL8jn5cGr4","target":"node_Lmg446ujJkBFTq7s","id":"p1QfMcJuAkHG9XN7","selected":false}],"viewport":{"x":269.9146606773976,"y":109.93970251055521,"zoom":0.8705505632961242}}

该JSON结构清晰完整,开始节点定义了输入参数(username和password),结束节点引用了这些参数作为输出,中间通过一条边连接,构成了简明的工作流骨架。

在实际操作中,我们将其拆分为七个步骤。步骤虽多,但每个环节都不复杂,下面逐一讲解。

第一步:引入依赖

首先在pom.xml中定义版本号:

<tinyflow.version>1.0.8tinyflow.version>

接着引入核心依赖:

<dependency><groupId>dev.tinyflowgroupId><artifactId>tinyflow-ja va-coreartifactId><version>${tinyflow.version}version>dependency>

第二步:表设计

我们需要创建一张表来存储流程数据。这里定义了ai_workflow表,包含流程ID、名称、节点数据、状态、描述等基础字段,同时预留了租户ID、部门、创建者等通用字段,便于后续业务扩展:

CREATETABLE`ai_workflow` ( `flow_id`bigintNOTNULLCOMMENT'流程id', `flow_name`varchar(50)DEFAULTNULLCOMMENT'流程名称', `graph` jsonDEFAULTNULLCOMMENT'节点数据', `status`intDEFAULT'0'COMMENT'状态 0->草稿 1->发布', `description`varchar(255)DEFAULTNULLCOMMENT'描述内容', `tenant_id`varchar(20)DEFAULTNULLCOMMENT'租户id', `create_dept`bigintDEFAULTNULLCOMMENT'创建部门', `create_by`bigintDEFAULTNULLCOMMENT'创建者', `create_time` datetimeDEFAULTNULLCOMMENT'创建时间', `update_by`bigintDEFAULTNULLCOMMENT'更新者', `update_time` datetimeDEFAULTNULLCOMMENT'更新时间', `del_flag`char(1)DEFAULT'0'COMMENT'删除标志(0代表存在 2代表删除)',PRIMARYKEY (`flow_id`)) COMMENT='AI流程编排';

第三步:代码生成

这一步最为便捷。直接使用代码生成器,将对应的Controller、Service、Mapper一键生成,然后拷贝到项目对应目录即可,无需手动编写任何基础的CRUD代码。

第四步:执行流程接口

在控制器层定义了一个/excute接口,接收AiWorkflowExcuteBo参数,调用Service执行流程。实现层目前先保留一个壳子,具体执行逻辑可根据业务需求后续填充。

@PostMapping("/excute")publicR>excute(@RequestBodyAiWorkflowExcuteBo bo) {returnR.ok(aiWorkflowService.excute(bo));}

第五步:保存结果接口

流程执行完成后,需要将结果持久化。该接口与前面的执行接口设计思路一致,功能侧重点在于保存。

/*** 保存结果**@parambo*@return*/ @PostMapping("/sa veResult") publicR sa veResult(@RequestBodyAiWorkflowBo bo) {returntoAjax(aiWorkflowService.sa veResult(bo));}

第六步:发布流程接口

流程从草稿状态变为已发布状态,需要单独的接口触发。这里使用PUT方法,仅需传递流程ID即可。

/** * 发布流程 * *@paramflowId 流程id *@return */@PutMapping("/release/{flowId}")publicR release(@PathVariable("flowId")LongflowId){ returntoAjax(aiWorkflowService.release(flowId)); }

第七步:功能测试

至此,基本接口已经齐备。测试时,依次验证以下接口:查询接口、流程详情接口、新增接口、修改接口、删除接口、执行流程接口、保存结果接口、发布流程接口。最后检查数据库表,确认数据是否写入成功,各字段是否正常。

至此,Tinyflow结合若依plus的AI流程编排已完整跑通。从手动引入依赖、设计库表、生成代码,到定义核心的执行、保存、发布接口,再到最终测试验证——整个流程梳理下来,相信你对工作流在业务中的落地方式有了直观认识。接下来,可以根据实际业务场景添加自定义节点,让该框架真正服务于业务需求。

来源:https://juejin.cn/post/7528500530852511784
上一篇大模型API比价实用技巧开发者如何选到最划算 下一篇Codex与Claude互审,告别手动复制
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Claude Code官方教你Loop工程附6大省token技巧
AI教程 · 2026-07-08

Claude Code官方教你Loop工程附6大省token技巧

之前写过一篇《Loop Engineering 的保姆级教程》,从概念到多工具实战,比较全面地讲了循环工程的玩法。这两天 Claude Code 官方团队下场,发了一篇博客叫「Getting started with loops」,系统地整理了他们团队内部对「循环」的定义和分类。 这篇博客的含金量十

阿里云2核4G服务器价格与选型:实例规格、收费标准及活动价
AI教程 · 2026-07-08

阿里云2核4G服务器价格与选型:实例规格、收费标准及活动价

阿里云2核4G这个配置,可以说是个人站长和中小企业用户最常关注的“爆款”了。不过它的价格可不是一个固定的数字,而是跟实例规格、带宽、云盘类型、地域等等因素紧密相关。比如目前轻量应用服务器2核4G给到峰值200M带宽、50G ESSD云盘,抢购价能做到9 9元1个月或者199元1年。通用算力型u1实例

阿里巴巴研发效能实践日:敏捷精益项目管理报名
AI教程 · 2026-07-08

阿里巴巴研发效能实践日:敏捷精益项目管理报名

研发效能提升领域又有重磅消息了。阿里巴巴研发效能实践日——由阿里研发效能部主办的线下沙龙品牌,这次携手全球领先的项目管理协会PMI,共同聚焦“敏捷精益项目管理”这一核心主题。听起来就干货满满?别急,活动精心安排了4大主题演讲,旨在帮助参会者在思维层面实现突破,并且回去就能直接落地实践。更关键的是,参

RFID资产管理系统:企业资产数字化高效管控方案
AI教程 · 2026-07-08

RFID资产管理系统:企业资产数字化高效管控方案

数字化转型走到今天,传统人工管资产那套老办法——效率低、差错多、资产一挪窝就成“失踪人口”——已经越来越扛不住了。从仓库、车间到办公室,但凡资产流转量大、品类多的企业,都急需一套能实时盯、自动盘的方案。结合多行业的落地经验来看,RFID资产管理系统之所以能成为主流选择,核心在于它用射频技术把资产全生

智能体工作流知识沉淀:从一次修复到长期记忆
AI教程 · 2026-07-08

智能体工作流知识沉淀:从一次修复到长期记忆

好的,作为一位资深的技术专家和知识管理实践者,我将为你重新讲述这篇文章的核心内容,让这些观点和案例听起来更像是一次真诚的技术分享,而不是一份AI生成的报告。 在传统软件工程里,我们反复念叨“代码复用”,但到了AI Agent参与的工程时代,真正能产生复利的东西变了——从“代码复用”悄然转向了“知识复