成功结束 flow.complete
完成节点提交成功终态和最终返回值。控制到达这里以后,output_expression 从启动输入、步骤结果或子运行结果中构造可序列化 JSON。完成事件写入历史后,当前运行段关闭,不再接受新的步骤、信号或终态决定。每条正常业务路径都应清楚地汇入一个合适的终态节点。
最终输出
输出表达式应只读取已经持久化的数据。大型文档、图像和模型原始响应宜保存到对象存储,再返回稳定引用、摘要和必要元数据。这样可以控制历史体积,也便于权限管理与保留策略。公开 API 依赖固定返回结构时,应在发布前验证必填字段和版本,避免工作流内部调整意外破坏调用方。
数据可以通过 output 端口连接,也可以由表达式直接读取工作流状态。两种方式同时存在时,要确认连接值和字段路径的优先关系。完成节点没有出站端口,因为运行已经结束。需要开始新的历史段时使用 flow.continue-as-new,需要让父运行等待独立过程时使用子工作流节点。
结束条件检查
引擎会拒绝在仍有受管子工作流需要父项等待时提前完成。取消清理路径也不能以成功终态掩盖取消请求。测试应覆盖空输出、嵌套对象、大对象引用、子工作流未解析、重复提交和进程在终态提交前退出。监控中应把正常完成与失败、取消、超时分开统计,方便从运行结果判断真实业务结论。
用它提交成功终态和返回值。输出表达式可以组合输入与前序节点结果,值会完整写入运行历史。
运行方式
完成事件提交后,该运行段不再接受新事件。仍有需要父运行等待的子工作流时,引擎会拒绝提前结束。
节点契约
- 类型
flow.complete- 角色
- 持久运行命令
- 运行绑定
complete- 持久身份
- 由图结构决定
配置属性
| 属性 | 类型与控件 | 默认值 | 规则 |
|---|---|---|---|
output_expression最终输出 | dictA3SFlowExpressionInput | {"apiVersion":"a3s.dev/flow-expression/v1","expression":{"op":"field","path":"input"}} | 选择运行成功后需要返回和保存的数据。必填 |
端口
| 方向 | 端口 ID | 种类 | 数据类型 |
|---|---|---|---|
| 输入 | in进入 | control | FlowControl |
| 输入 | output最终结果 | data | JsonValue |
节点 JSON 示例
CLI 会用 manifest 默认值生成同样的节点结构。画布位置、标题和选中状态属于展示数据。
CLI 用法
先查看当前安装版本的 manifest,再创建节点并验证完整工作流。所有命令输出 JSON。
Skill 用法
安装包内附带 a3s-flow Skill。它会先查询 CLI 的节点清单,再创建、校验、编译并计算语义摘要。
使用注意
- 成功输出应保持可序列化。
- 取消清理路径不能以成功结束。
- 大型结果宜保存对象引用而非完整内容。
