Exit Block
立即终止当前文档的执行流程,用于在满足特定条件时提前退出。
功能说明
Exit Block 是一个原子节点,执行到它时会立即停止当前文档的所有后续 Block 执行。它通过设置 stopReason = 'exit' 并返回 STOP: true 来中断执行流程。
当你需要在条件判断后提前退出工作流、在错误处理分支中终止执行、或在循环中满足退出条件时跳出时,使用 Exit Block。
使用场景
- 条件退出:在 If-Else Block 的某个分支中放置 Exit,当条件不满足时提前终止工作流
- 错误处理:检测到异常数据或失败状态后,通过 Exit 阻止后续步骤继续执行
- 守卫逻辑:在工作流开头进行前置校验,校验不通过直接退出
配置参数
| 属性名 | 类型 | 说明 | 默认值 |
|---|---|---|---|
id | string | Block 唯一标识(自动生成) | '' |
name | string | Block 名称(自动生成) | '' |
Exit Block 是原子节点,无额外配置参数。插入后即生效,无需进一步设置。
输出变量
Exit Block 不产生输出变量。它的作用是终止执行,后续 Block 不会被执行,因此也不存在对其变量的引用场景。
| 变量名 | 类型 | 说明 |
|---|---|---|
| (无) | — | Exit Block 无输出变量 |
使用示例
示例 1:条件守卫
在工作流开头校验输入,不合法时退出:
[Input Block: user_input] — 用户输入
|
[Condition Block] — 条件: {{user_input}} 为空
├─ true:
│ └─ [Exit Block] — 输入为空,终止执行
└─ false:
└─ [Generation Block] — 继续处理 {{user_input}}示例 2:数据校验后退出
查询数据库,如果没有数据则退出:
[Database Block: query] — 操作: Query, 表: tasks
|
[Condition Block] — 条件: {{query.total}} == 0
├─ true:
│ └─ [Exit Block] — 无待处理任务,终止
└─ false:
└─ [Loop Block] — 遍历 {{query.rows}} 逐条处理运行时约束
- 适用文档类型:workflow(Slash 菜单中排除了 skill 类型文档)
- 可插入上下文:顶层文档内容区域、Condition Block 分支内、Loop Block 内
- 不可嵌套场景:
- 不可在 Promise Block 内使用(Slash 菜单已过滤
promise和branch上下文)
- 不可在 Promise Block 内使用(Slash 菜单已过滤
注意事项
- 立即生效:执行到 Exit Block 时,当前文档后续所有 Block 都不会被执行
- 仅影响当前文档:在 Flow Block 调用的子文档中使用 Exit,只会终止子文档的执行,不会影响父文档
- 不可撤销:Exit 没有条件配置,一旦执行流到达就会无条件终止。如需条件退出,请将 Exit 放在 Condition Block 的分支内
- 无输出:Exit Block 不产生任何输出变量,不能被后续 Block 引用