Repository navigation
Solon Flow v3.8.3
- 添加
solon-flowFlowContext:toJson,fromJson 序列化方法(方便持久化和恢复) - 添加
solon-flowNodeTrace 类 - 添加
solon-flowNodeSpec.then 方法 - 添加
solon-flowFlowEngine.then 方法 - 添加
solon-flowFlowContext.with 方法(强调方法域内的变量) - 添加
solon-flowFlowContext.containsKey 方法 - 添加
solon-flowFlowContext.isStopped 方法(用于外部检测) - 添加
solon-flowNamedTaskComponent 接口,方便智能体开发 - 添加
solon-flow多图多引擎状态记录与序列化支持 - 添加
solon-flow-workflowfindNextTasks 替代 getTasks(后者标为弃用) - 添加
solon-flow-workflowclaimTask、findTask 替代 getTask(后者标为弃用,逻辑转为新的 claimTask) - 添加
solon-flow-workflowWorkflowIntent 替代之前的临时变量(扩展更方便) - 优化
solon-flowFlowContext 接口设计,并增加持久化辅助方法 - 优化
solon-flowFlowContext.eventBus 内部实现改为字段模式 - 优化
solon-flowstart 类型节点改为自由流出像 activity 一样(只是没有任务) - 优化
solon-flowloop 类型节点改为自由流出像 activity 一样 - 优化
solon-flow引擎的 onNodeEnd 执行时机(改为任务执行之后,连接流出之前) - 优化
solon-flow引擎的 onNodeStart 执行时机(改为任务执行之前,连接流入之后) - 优化
solon-flow引擎的 reverting 处理(支持跨引擎多图场景) - 优化
solon-flowNode,Link toString 处理(加 whenComponent) - 优化
solon-flowFlowExchanger.runGraph 如果子图没有结束,则当前分支中断 - 调整
solon-flow移除 FlowContext:incrAdd,incrGet 弃用预览接口 - 调整
solon-flowFlowContext:executor 转移到 FlowDriver - 调整
solon-flowFlowInterceptor:doIntercept 更名为 interceptFlow,并标为 default(扩展时语义清晰,且不需要强制实现) - 调整
solon-flowNodeTrace 更名为 NodeRecord,并增加 FlowTrace 类。支持跨图多引擎场景 - 调整
solon-flow“执行深度”改为“执行步数”(更符合实际需求) - 调整
solon-flow-workflowAction Jump 规范,目标节点设为 WAITING(之前为 COMPLETED) - 调整
solon-flow-workflowgetTask(由新名 claimTask 替代) 没有权限时返回 null(之前返回一个未知状态的任务,容易误解) - 调整
solon-flow-workflowWorkflowService 改为 WorkflowExecutor,缩小概念范围并调整接口 - 修复
solon-flowFlowContext 跨多引擎中转时 exchanger 的冲突问题 - 修复
solon-flow跨图单步执行时,步数传导会失效的问题 - 修复
solon-flowActorStateController 没有对应的元信息会失效的问题 - 修复
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 | 提交任务 |
新特性预览:上下文序列化与持久化
//恢复的上下文
FlowContext context = FlowContext.fromJson(json);
//新上下文
FlowContext context = FlowContext.of();
//从恢复上下文开始持行
flowEngine.eval(graph, context);
//转为 json(方便持久化)
json = context.toJson();新特性预览:WorkflowExecutor
// 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);