Skip to content

Task Flow 是 OpenClaw 的多步骤流程编排层,当任务需要按顺序或分支执行并要求跨 Gateway 重启保持进度时使用。提供托管模式(自动创建并驱动任务)和镜像模式(跟踪外部创建的任务)两种同步方式。使用 openclaw tasks flow 命令管理流程生命周期,取消意图持久化,重启后仍保持取消状态。

OpenClaw Task Flow 配置与多步骤流程编排

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

什么时候用 Task Flow

当工作跨越多个顺序或分支步骤,且需要在 Gateway 重启后保持持久进度追踪时,使用 Task Flow。单个后台操作用普通 任务 就足够了。

场景推荐方案
单个后台任务普通任务
多步骤流水线(A 然后 B 然后 C)Task Flow(托管)
观察外部创建的任务Task Flow(镜像)
一次性提醒Cron 任务

可靠定时工作流模式

对于周期性工作流(如市场情报简报),将日程、编排和可靠性检查分层处理:

  1. 使用 定时任务 控制触发时间。
  2. 当工作流需要基于先前上下文构建时,使用持久 cron 会话。
  3. 使用 Lobster 处理确定性步骤、审批门和恢复令牌。
  4. 使用 Task Flow 追踪跨子任务、等待、重试和 Gateway 重启的多步骤运行。

示例 cron 配置:

bash
openclaw cron add \
  --name "Market intelligence brief" \
  --cron "0 7 * * 1-5" \
  --tz "America/New_York" \
  --session session:market-intel \
  --message "Run the market-intel Lobster workflow. Verify source freshness before summarizing." \
  --announce \
  --channel slack \
  --to "channel:C1234567890"

使用 session:<id> 而非 isolated 当周期性工作流需要保留历史、上一次运行摘要或持续上下文。使用 isolated 当每次运行应从头开始,所有必要状态在工作流中显式定义。

工作流内部,在 LLM 摘要步骤之前放置可靠性检查:

yaml
name: market-intel-brief
steps:
  - id: preflight
    command: market-intel check --json
  - id: collect
    command: market-intel collect --json
    stdin: $preflight.json
  - id: summarize
    command: market-intel summarize --json
    stdin: $collect.json
  - id: approve
    command: market-intel deliver --preview
    stdin: $summarize.json
    approval: required
  - id: deliver
    command: market-intel deliver --execute
    stdin: $summarize.json
    condition: $approve.approved

推荐预检项:

  • 浏览器可用性和配置文件选择,例如 openclaw 用于托管状态,user 当需要已登录的 Chrome 会话。见 浏览器
  • 每个来源的 API 凭据和配额。
  • 所需端点的网络可达性。
  • 智能体已启用所需工具,如 lobsterbrowserllm-task
  • 为 cron 配置失败投递地址,以便预检失败能被看到。见 定时任务

推荐每条采集数据的来源字段:

json
{
  "sourceUrl": "https://example.com/report",
  "retrievedAt": "2026-04-24T12:00:00Z",
  "asOf": "2026-04-24",
  "title": "Example report",
  "content": "..."
}

让工作流在摘要前拒绝或标记陈旧项。LLM 步骤应只接收结构化 JSON,并要求其输出中保留 sourceUrlretrievedAtasOf。当需要流程内经过 schema 验证的模型步骤时,使用 LLM Task

对于可复用的团队或社区工作流,将 CLI、.lobster 文件和设置说明打包为技能或插件,通过 ClawHub 发布。除非插件 API 缺少某个通用能力,否则将工作流专有的护栏放在插件包中。

同步模式

托管模式

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 重启后保持。修订追踪支持冲突检测,当多个来源尝试同时推进同一流程时使用。流程注册表使用 SQLite,并带有限制的预写日志维护(包括定期和关闭时的检查点),避免长时间运行的 Gateway 产生不受控制的 registry.sqlite-wal 侧文件。

取消行为

openclaw tasks flow cancel 在流程上设置粘性取消意图。流程内的活跃任务被取消,不再启动新步骤。取消意图在重启后持久化,因此已取消的流程即使在所有子任务终止前 Gateway 重启也会保持取消状态。

CLI 命令

bash
# 列出活跃和最近的流程
openclaw tasks flow list

# 显示特定流程的详情
openclaw tasks flow show <lookup>

# 取消运行中的流程及其活跃任务
openclaw tasks flow cancel <lookup>
命令说明
openclaw tasks flow list显示带状态和同步模式的已追踪流程
openclaw tasks flow show &lt;id&gt;按流程 id 或查找键检查单个流程
openclaw tasks flow cancel &lt;id&gt;取消运行中的流程及其活跃任务

流程与任务的关系

流程协调任务,而非替代任务。一个流程在其生命周期内可能驱动多个后台任务。用 openclaw tasks 检查单个任务记录,用 openclaw tasks flow 检查编排流程。

相关文档

常见问题

Task Flow 和直接链式调用多个后台任务有什么区别?

Task Flow 提供持久化状态和修订追踪——即使 Gateway 中途重启,流程从失败步骤继续,不会从头开始。直接链式调用没有这种跨重启的进度保证。

如何取消正在运行的 Task Flow?取消后能恢复吗?

执行 openclaw tasks flow cancel &lt;id&gt; 立即设置取消意图,取消活跃子任务,并阻止新步骤启动。取消意图是粘性的,重启后也不会自动恢复;如需重新运行,必须创建新流程。

托管模式和镜像模式怎么选?能混用一个 flow 吗?

托管模式适合你控制流程中每一步的创建和顺序;镜像模式适合观察外部任务(如 cron 触发的独立任务)的集体进度。一个 flow 在创建时确定同步模式,之后不能切换。如果需要同时跟踪外部和自管理任务,建议创建两个独立 flow。