登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
代码拉取完成,页面将自动刷新
开源项目
>
程序开发
>
流程引擎/工具
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
5
Star
118
Fork
29
opensolon
/
solon-flow
代码
Issues
9
Pull Requests
0
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
发行版
最新版
v3.9.0
909a5bd
2026-01-26 09:25
对比
Solon Flow v3.9.0
西东
* 添加 `solon-flow` GraphSpec.clearNodes 方法(清空所有节点) * 添加 `solon-flow` FlowContext.with(key,val,callable) 方法 * 添加 `solon-flow` FlowContext.vars 概念 替代 model (后者标为弃用) * 添加 `solon-flow` FlowContext.serVars 方法(获取可序列化的变理) * 添加 `solon-flow` NonSerializable 标识 * 添加 `solon-flow-workflow` StateRepository.varsGet 方法 * 添加 `solon-flow-workflow` Task.isEnd, lastRecord 方法 * 优化 `solon-flow` FlowOptions 的写安全控制 * 调整 `solon-flow` LiquorEvaluation 条件表达式,改用 Snel 表达式(编写更自由)
最后提交信息为:
3.9.0
v3.8.3
302753d
2026-01-14 12:53
对比
Solon Flow v3.8.3
西东
* 添加 `solon-flow` FlowContext:toJson,fromJson 序列化方法(方便持久化和恢复) * 添加 `solon-flow` NodeTrace 类 * 添加 `solon-flow` NodeSpec.then 方法 * 添加 `solon-flow` FlowEngine.then 方法 * 添加 `solon-flow` FlowContext.with 方法(强调方法域内的变量) * 添加 `solon-flow` FlowContext.containsKey 方法 * 添加 `solon-flow` FlowContext.isStopped 方法(用于外部检测) * 添加 `solon-flow` NamedTaskComponent 接口,方便智能体开发 * 添加 `solon-flow` 多图多引擎状态记录与序列化支持 * 添加 `solon-flow-workflow` findNextTasks 替代 getTasks(后者标为弃用) * 添加 `solon-flow-workflow` claimTask、findTask 替代 getTask(后者标为弃用,逻辑转为新的 claimTask) * 添加 `solon-flow-workflow` WorkflowIntent 替代之前的临时变量(扩展更方便) * 优化 `solon-flow` FlowContext 接口设计,并增加持久化辅助方法 * 优化 `solon-flow` FlowContext.eventBus 内部实现改为字段模式 * 优化 `solon-flow` start 类型节点改为自由流出像 activity 一样(只是没有任务) * 优化 `solon-flow` loop 类型节点改为自由流出像 activity 一样 * 优化 `solon-flow` 引擎的 onNodeEnd 执行时机(改为任务执行之后,连接流出之前) * 优化 `solon-flow` 引擎的 onNodeStart 执行时机(改为任务执行之前,连接流入之后) * 优化 `solon-flow` 引擎的 reverting 处理(支持跨引擎多图场景) * 优化 `solon-flow` Node,Link toString 处理(加 whenComponent) * 优化 `solon-flow` FlowExchanger.runGraph 如果子图没有结束,则当前分支中断 * 调整 `solon-flow` 移除 FlowContext:incrAdd,incrGet 弃用预览接口 * 调整 `solon-flow` FlowContext:executor 转移到 FlowDriver * 调整 `solon-flow` FlowInterceptor:doIntercept 更名为 interceptFlow,并标为 default(扩展时语义清晰,且不需要强制实现) * 调整 `solon-flow` NodeTrace 更名为 NodeRecord,并增加 FlowTrace 类。支持跨图多引擎场景 * 调整 `solon-flow` “执行深度”改为“执行步数”(更符合实际需求) * 调整 `solon-flow-workflow` Action Jump 规范,目标节点设为 WAITING(之前为 COMPLETED) * 调整 `solon-flow-workflow` getTask(由新名 claimTask 替代) 没有权限时返回 null(之前返回一个未知状态的任务,容易误解) * 调整 `solon-flow-workflow` WorkflowService 改为 WorkflowExecutor,缩小概念范围并调整接口 * 修复 `solon-flow` FlowContext 跨多引擎中转时 exchanger 的冲突问题 * 修复 `solon-flow` 跨图单步执行时,步数传导会失效的问题 * 修复 `solon-flow` ActorStateController 没有对应的元信息会失效的问题 * 修复 `solon-flow-workflow` 跨图单步执行时,步数传导会失效的问题 兼容变化对照表: | 旧名称 | 新名称 | 备注 | |-----------------------------|------------------------|-----------------------------------| | WorkflowService | WorkflowExecutor | 缩小概念范围(前者标为弃用) | | FlowInterceptor:doIntercept | interceptFlow | 扩展时语义清晰(方便与 ToolInterceptor 合到一起) | | FlowContext:executor | FlowDriver:getExecutor | 上下文不适合配置线程池 | | FlowContext:incrAdd,incrGet | / | 移除 | | NodeTrace | NodeRecord | 支持跨图多引擎场景 | | / | FlowTrace | 支持跨图多引擎场景 | WorkflowExecutor (更清晰的)接口对照表: | WorkflowService 旧接口 | WorkflowExecutor 新接口 | 备注 | |----------------------|----------------------|------------------------------------| | getTask | claimTask | 认领任务:权限匹配 + 状态激活(自动前进的会跳过) | | getTask | findTask | 查询任务:查找下一个待处理节点,或者完结的节点 | | getTask | / | 原来的功能混乱,新的拆解成 claimTask 和 findTask | | getTasks | findNextTasks | 查询下一步任务列表 | | getState | getState | 获取状态 | | postTask | submitTask | 提交任务 | 新特性预览:上下文序列化与持久化 ```java //恢复的上下文 FlowContext context = FlowContext.fromJson(json); //新上下文 FlowContext context = FlowContext.of(); //从恢复上下文开始持行 flowEngine.eval(graph, context); //转为 json(方便持久化) json = context.toJson(); ``` 新特性预览:WorkflowExecutor ```java // 1. 创建执行器 WorkflowExecutor workflow = WorkflowExecutor.of(engine, controller, repository); // 2. 认领任务(检查是否有可操作的待处理任务) Task current = workflow.claimTask(graph, context); if (current != null) { // 3. 提交任务处理 workflow.submitTask(current, TaskAction.FORWARD, context); } // 4. 查找后续可能任务(下一步) Collection<Task> nextTasks = workflow.findNextTasks(graph, context); ```
最后提交信息为:
3.8.3
v3.8.0
6cb381e
2025-12-24 00:22
对比
Solon Flow v3.8.0
西东
重要变化: * 第六次预览 * 取消“有状态”、“无状态”概念。 * solon-flow 回归通用流程引擎(分离“有状态”的概念)。 * 新增 solon-flow-workflow 为工作流性质的封装(未来可能会有 dataflow 等)。 具体更新: * 插件 `solon-flow` 第六次预览 * 新增 `solon-flow-workflow` 插件(替代 FlowStatefulService) * 添加 `solon-flow` FlowContext:lastNode() 方法(最后一个运行的节点) * 添加 `solon-flow` FlowContext:lastNodeId() 方法(最后一个运行的节点Id) * 添加 `solon-flow` Node.getMetaAs, Link.getMetaAs 方法 * 添加 `solon-flow` NodeSpec:linkRemove 方法(增强修改能力) * 添加 `solon-flow` Graph:create(id,title,consumer) 方法 * 添加 `solon-flow` Graph:copy(graph,consumer) 方法(方便复制后修改) * 添加 `solon-flow` GraphSpec:getNode(id) 方法 * 添加 `solon-flow` GraphSpec:addLoop(id) 方法替代 addLooping(后者标为弃用) * 添加 `solon-flow` FlowEngine:eval(Graph, ..) 系列方法 * 优化 `solon-flow` FlowEngine:eval(Node startNode) 处理,改为从 root 开始恢复到 start 再开始执行(恢复过程中,不会执行任务) * 调整 `solon-flow` 移除 Activity 节点预览属性 "$imode" 和 "$omode" * 调整 `solon-flow` Activity 节点流出改为自由模式(可以多线流出:无条件直接流出,有条件检测后流出) * 调整 `solon-flow` Node.getMeta 方法返回改为 Object 类型(并新增 getMetaAs) * 调整 `solon-flow` Evaluation:runTest 改为 runCondition * 调整 `solon-flow` FlowContext:incrAdd,incrGet 标为弃用(上下文数据为型只能由输入侧决定) * 调整 `solon-flow` Condition 更名为 ConditionDesc * 调整 `solon-flow` Task 更名为 ConditionDesc * 调整 `solon-flow` XxxDecl 命名风格改为 XxxSpec * 调整 `solon-flow` GraphDecl.parseByXxx 命名风格改为 GraphSpec.fromXxx * 调整 `solon-flow` Graph.parseByXxx 命名风格改为 Graph.fromXxx 兼容变化对照表: | 旧名称 | 新名称 | 说明 | |------------------------|-----------------------|-----------------------| | `GraphDecl` | `GraphSpec` | 图定义 | | `GraphDecl.parseByXxx` | `GraphSpec.fromXxx` | 图定义加载 | | `Graph.parseByXxx` | `Graph.fromXxx` | 图加载 | | `LinkDecl` | `LinkSpec` | 连接定义 | | `NodeDecl` | `NodeSpec` | 节点定义 | | `Condition` | `ConditionDesc` | 条件描述 | | `Task` | `TaskDesc` | 任务描述(避免与 workflow 的概念冲突) | | | | | | `FlowStatefulService` | `WorkflowService` | 工作流服务 | | `StatefulTask` | `Task` | 任务 | | `Operation` | `TaskAction` | 任动工作 | | `TaskType` | `TaskState` | 任务状态 | FlowStatefulService 到 WorkflowService 的接口变化对照表: | 旧名称 | 新名称 | 说明 | |------------------------------|-------------------------|--------| | `postOperation(..)` | `postTask(..)` | 提交任务 | | `postOperationIfWaiting(..)` | `postTaskIfWaiting(..)` | 提交任务 | | | | | | `evel(..)` | / | 执行 | | `stepForward(..)` | / | 单步前进 | | `stepBack(..)` | / | 单步后退 | | | | | | / | `getState(..)` | 获取状态 | 新特性预览:Graph 硬编码方式(及修改能力增强) ```java //硬编码 Graph graph = Graph.create("demo1", "示例", spec -> { spec.addStart("start").title("开始").linkAdd("01"); spec.addActivity("n1").task("@AaMetaProcessCom").linkAdd("end"); spec.addEnd("end").title("结束"); }); //修改 Graph graphNew = Graph.copy(graph, spec -> { spec.getNode("n1").linkRemove("end").linkAdd("n2"); //移掉 n1 连接;改为 n2 连接 spec.addActivity("n2").linkAdd("end"); }); ``` 新特性预览:FlowContext:lastNodeId (计算的中断与恢复)。参考:https://solon.noear.org/article/1246 ```java flowEngine.eval(graph, context.lastNodeId(), context); //...(从上一个节点开始执行) flowEngine.eval(graph, context.lastNodeId(), context); ``` 新特性预览:WorkflowService(替代 FlowStatefulService) ```java WorkflowService workflow = WorkflowService.of(engine, WorkflowDriver.builder() .stateController(new ActorStateController()) .stateRepository(new InMemoryStateRepository()) .build()); //1. 取出任务 Task task = workflow.getTask(graph, context); //2. 提交任务 workflow.postTask(task.getNode(), TaskAction.FORWARD, context); ```
最后提交信息为:
README
v3.7.4
30c5974
2025-12-24 00:21
对比
Solon Flow v3.7.4
西东
* 添加 `solon-flow` Graph:create(id,title,consumer) 方法 * 添加 `solon-flow` GraphDecl:addLoop 替代 addLooping(后者标为弃用) * 添加 `solon-flow` Evaluation:runCondition 替代 runTest(后者标为弃用)
最后提交信息为:
3.7.4
v3.7.3
63f305a
2025-12-06 07:05
对比
Solon Flow v3.7.3
西东
* 插件 `solon-flow` 第五次预览 * 添加 `solon-flow` Node:task 硬编码能力(直接设置 TaskComponent),方便全动态场景 * 添加 `solon-flow` Node:when 硬编码能力(直接设置 ConditionComponent),方便全动态场景 * 添加 `solon-flow` Link:when 硬编码能力(直接设置 ConditionComponent),方便全动态场景 * 添加 `solon-flow` StateResult ,在计算方面比 StatefulTask 更适合语义 * 添加 `solon-flow` FlowContext:stop(),interrupt() 方法 * 添加 `solon-flow` Graph 快捷创建方法 * 添加 `solon-flow` FlowStatefulService:eval 方法 * 调整 `solon-flow` “链”概念改为“图”(更符合实际结构) * 调整 `solon-flow` Chain 更名为 Graph,ChainDecl 更名为 GraphDecl * 调整 `solon-flow` ChainInterceptor,ChainInvocation 更名为 FlowInterceptor,FlowInvocation * 调整 `solon-flow` 包容网关逻辑,分支空条件为 true,且取消默认概念(之前为:空条件为 false ,且为默认) solon-flow 兼容说明: ``` 现有应用如果没有用 ChainDecl 动态构建,不会受影响。。。如果有?需要换个类名。 ``` solon-flow 硬编码更简便: ```java Graph graph = Graph.create("demo1", decl -> { decl.addActivity("n1").task(new Draft()).linkAdd("n2"); decl.addActivity("n2").task(new Review()).linkAdd("n3"); decl.addActivity("n3").task(new Confirm()); }); ```
最后提交信息为:
添加
solon-flow
示例
v3.7.2
c898eb0
2025-11-22 20:10
对比
Solon Flow v3.7.2
西东
* dami2 升为 2.0.4
最后提交信息为:
3.7.2
v3.6.5
7bf2c40
2025-11-22 17:15
对比
Solon Flow v3.6.5
西东
* dami2 升为 2.0.4
最后提交信息为:
3.6.5
v3.7.0
d452d11
2025-11-07 12:33
对比
Solon Flow v3.7.0
西东
.
最后提交信息为:
3.7.0
v3.6.1
f0dad09
2025-10-23 10:04
对比
Solon Flow v3.6.1
西东
* 添加 `solon-flow` FlowEngine:forStateful,statefulService 标为弃用 * 调整 `solon-flow` 增加 `loop` 类型替代 `iterator`(iterator 增加弃用提醒),并提供更多功能 * 调整 `solon-flow` 所有网关节点增加 `task` 支持,不再需要 `$imode` 和 `$omode`。更适合前端连线控制 * 调整 `solon-flow` 节点属性 `$imode` 和 `$omode` 标为弃用 ```yaml {type: 'loop',meta: {'$for': 'item','$in': [1,3,4]}} {type: 'loop',meta: {'$for': 'item','$in': "1...9"}} {type: 'loop',meta: {'$for': 'item','$in': "1:9:1"}} ```
最后提交信息为:
Update UPDATE_LOG.md
v3.6.0
95a2e77
2025-10-07 17:08
对比
Solon Flow v3.6.0
西东
* dami 升为 2.0.0 * 添加 solon-flow Node:getMetaAsString, getMetaAsNumber, getMetaAsBool 方法
最后提交信息为:
3.6.0
v3.4.5
1623617
2025-09-23 15:07
对比
Solon Flow v3.4.5
西东
.
最后提交信息为:
3.5.2
v3.5.3
ee8ff96
2025-09-23 11:07
对比
Solon Flow v3.5.3
西东
.
最后提交信息为:
3.5.3
v3.5.2
1623617
2025-09-15 10:25
对比
Solon Flow v3.5.2
西东
.
最后提交信息为:
3.5.2
v3.5.1
4a0168f
2025-08-29 21:03
对比
Solon Flow v3.5.1
西东
.
最后提交信息为:
3.5.1
v3.5.0
91678c9
2025-08-19 08:58
对比
Solon Flow v3.5.0
西东
* 添加 solon-flow FlowDriver:postHandleTask 方法 * 添加 solon-flow FlowContext:exchanger 方法(可获取 FlowExchanger 实例) * 调整 solon-flow FlowContext 拆分为:FlowContext(对外) 和 FlowExchanger(对内) * 调整 solon-flow FlowContext 移除 result 字段(所有数据基于 model 交换) * 调整 solon-flow FlowContext get 改为返回 Object(之前为 T),新增 getAs 返回 T(解决 get 不能直接打印的问题) * 调整 solon-flow 移除 StatefulSimpleFlowDriver 功能合并到 SimpleFlowDriver(简化) * 调整 solon-flow 新增 stateless 包,明确有状态与无状态这两个概念(StatelessFlowContext 更名为 StatefulFlowContext) * 调整 solon-flow FlowStatefulService 接口,每个方法的 context 参数移到最后位(保持一致性) * 调整 solon-flow 新增 StatefulSupporter 接口,方便 FlowContext 完整的状态控制 * 调整 solon-flow StateRepository 接口的方法命名,与 StatefulSupporter 保持一致性 * 调整 solon-flow Chain 拆分为:Chain 和 ChainDecl 新定位: * FlowContext 侧重对外,可复用(用于传参、策略,状态) * FlowExchanger 侧重对内,不可复用(用于控制、中间临时状态或变量) * Chain 为运行态(不可修改) * ChainDecl 为声明或配置态(可以随时修改) FlowContext 改成接口之后,实例化方式建议: ```java FlowContext context = FlowContext.of(); //有四个生栽方法,包括:无状态 和 有状态 ```
最后提交信息为:
UPDATE
v3.4.3
9e9937f
2025-08-11 08:49
对比
Solon Flow v3.4.3
西东
* 新增 solon-flow iterator 循环网关(`$for`,`$in`) * 新增 solon-flow activity 节点流入流出模式(`$imode`,`$omode`),且于二次定制开发 * 添加 solon-flow ChainInterceptor:onNodeStart, onNodeEnd 方法(扩展拦截的能力) * 添加 solon-flow 操作:Operation.BACK_JUMP, FORWARD_JUMP
最后提交信息为:
3.4.3
v3.4.2
d36fb84
2025-07-29 08:50
对比
Solon Flow v3.4.2
西东
.
最后提交信息为:
3.4.2
v3.4.1
e85f3d2
2025-07-26 07:59
对比
Solon Flow v3.4.1
西东
* 添加 solon-flow FlowContext:incrGet, incrAdd * 添加 solon-flow aot 配置 * 优化 solon-flow Chain:parseByDom 节点解析后的添加顺序 * 优化 solon-flow Chain 解析统改为 Yaml 处理,并添加 toYaml 方法 * 优化 solon-flow Chain:toJson 输出(压缩大小,去掉空输出)
最后提交信息为:
3.4.1
v3.4.0
f813806
2025-07-08 08:55
对比
Solon Flow v3.4.0
西东
### 兼容说明 * solon-flow stateful 接口二次预览,相关接口有变动 方法名称调整: | 旧方法 | 新方法 | | |------------------------------|--------------------------|---| | `getActivityNodes` | `getTasks` | | | `getActivityNode` | `getTask` | | | | | | | `postActivityStateIfWaiting` | `postOperationIfWaiting` | | | `postActivityState` | `postOperation` | | 状态类型拆解后的对应关系(之前状态与操作混一起,不合理) | StateType(旧) | StateType(新) | Operation(新) | |----------------------|-----------------------|------------------| | `UNKNOWN(0)` | `UNKNOWN(0)` | `UNKNOWN(0)` | | `WAITING(1001)` | `WAITING(1001)` | `BACK(1001)` | | `COMPLETED(1002)` | `COMPLETED(1002)` | `FORWARD(1002)` | | `TERMINATED(1003)` | `TERMINATED(1003)` | `TERMINATED(1003)` | | `RETURNED(1004)` | | `BACK(1001)` | | `RESTART(1005)` | | `RESTART(1004)` | ### 具体更新 * 调整 solon-flow stateful 相关概念(提交活动状态,改为提交操作) * 调整 solon-flow StateType 拆分为:StateType 和 Operation * 调整 solon-flow StatefulFlowEngine:postActivityState 更名为 postOperation * 调整 solon-flow StatefulFlowEngine:postActivityStateIfWaiting 更名为 postOperationIfWaiting * 调整 solon-flow StatefulFlowEngine:getActivity 更名为 getTask * 调整 solon-flow StatefulFlowEngine:getActivitys 更名为 getTasks * 调整 solon-flow StatefulFlowEngine 更名为 FlowStatefulService(确保引擎的单一性) * 添加 solon-flow FlowStatefulService 接口,替换 StatefulFlowEngine(确保引擎的单一性) * 添加 solon-flow `FlowEngine:statefulService()` 方法 * 添加 solon-flow `FlowEngine:getDriverAs()` 方法
最后提交信息为:
UPDATE
v3.3.3
df7a9a7
2025-06-20 09:20
对比
Solon Flow v3.3.3 (浙江中考版)
西东
* 优化 solon-flow FlowContext 变量的线程可见 * 添加 solon-flow parallel 网关多线程并行支持(通过 context.executor 决定) * 添加 solon-flow LinkDecl:when 方法用于替代 :condition(后者标为弃用) * 添加 solon-flow parallel 网关多线程并行支持(通过 context.executor 决定) * 调整 solon-flow FlowDriver:handleTest 更名为 handleCondition (跟 handleTask 容易混)
最后提交信息为:
3.3.3
下载
请输入验证码,防止盗链导致资源被占用
取消
下载
1
https://gitee.com/opensolon/solon-flow.git
git@gitee.com:opensolon/solon-flow.git
opensolon
solon-flow
solon-flow
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册