Skip to main content

Task Flow

Task Flow 是位于后台任务之上的流程编排基础层。它管理具有自身状态、修订跟踪和同步语义的持久化多步骤流程,而单个任务仍然是分离工作的基本单元。

何时使用 Task Flow

当工作跨越多个顺序或分支步骤,并且你需要在 Gateway 网关重启后仍能持续跟踪进度时,请使用 Task Flow。对于单个后台操作,普通的任务就已足够。
场景使用方式
单个后台作业普通任务
多步骤流水线(A 然后 B 然后 C)Task Flow(托管)
观察外部创建的任务Task Flow(镜像)
一次性提醒Cron 作业

同步模式

托管模式

Task Flow 端到端地拥有整个生命周期。它将任务创建为流程步骤,推动其完成,并自动推进流程状态。 示例:一个每周报告流程,(1) 收集数据,(2) 生成报告,以及 (3) 发送报告。Task Flow 会将每个步骤创建为后台任务,等待完成,然后移动到下一个步骤。
Flow: weekly-report
  Step 1: gather-data     → task created → succeeded
  Step 2: generate-report → task created → succeeded
  Step 3: deliver         → task created → running

镜像模式

Task Flow 会观察外部创建的任务,并在不接管任务创建的情况下保持流程状态同步。当任务来自 cron 作业、CLI 命令或其他来源,而你希望以流程形式统一查看其进度时,这种模式非常有用。 示例:三个彼此独立的 cron 作业共同组成了一个“早间运维”例程。镜像流程会跟踪它们的整体进度,但不会控制它们何时或如何运行。

持久化状态与修订跟踪

每个流程都会持久化自身状态并跟踪修订,因此即使 Gateway 网关重启,进度也能保留。修订跟踪可在多个来源同时尝试推进同一流程时进行冲突检测。

取消行为

openclaw tasks flow cancel 会在流程上设置粘性取消意图。流程中的活动任务会被取消,且不会启动任何新步骤。该取消意图会在重启后继续保留,因此即使 Gateway 网关在所有子任务终止之前重启,被取消的流程仍会保持取消状态。

CLI 命令

# List active and recent flows
openclaw tasks flow list

# Show details for a specific flow
openclaw tasks flow show <lookup>

# Cancel a running flow and its active tasks
openclaw tasks flow cancel <lookup>
命令说明
openclaw tasks flow list显示已跟踪流程的状态和同步模式
openclaw tasks flow show <id>按流程 id 或查找键检查单个流程
openclaw tasks flow cancel <id>取消正在运行的流程及其活动任务

流程与任务的关系

流程用于协调任务,而不是替代任务。单个流程在其生命周期内可能会驱动多个后台任务。使用 openclaw tasks 检查单个任务记录,使用 openclaw tasks flow 检查负责协调的流程。

相关内容