Appearance
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 任务 |
可靠定时工作流模式
对于周期性工作流(如市场情报简报),将日程、编排和可靠性检查分层处理:
- 使用 定时任务 控制触发时间。
- 当工作流需要基于先前上下文构建时,使用持久 cron 会话。
- 使用 Lobster 处理确定性步骤、审批门和恢复令牌。
- 使用 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 凭据和配额。
- 所需端点的网络可达性。
- 智能体已启用所需工具,如
lobster、browser、llm-task。 - 为 cron 配置失败投递地址,以便预检失败能被看到。见 定时任务。
推荐每条采集数据的来源字段:
json
{
"sourceUrl": "https://example.com/report",
"retrievedAt": "2026-04-24T12:00:00Z",
"asOf": "2026-04-24",
"title": "Example report",
"content": "..."
}让工作流在摘要前拒绝或标记陈旧项。LLM 步骤应只接收结构化 JSON,并要求其输出中保留 sourceUrl、retrievedAt 和 asOf。当需要流程内经过 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 <id> | 按流程 id 或查找键检查单个流程 |
openclaw tasks flow cancel <id> | 取消运行中的流程及其活跃任务 |
流程与任务的关系
流程协调任务,而非替代任务。一个流程在其生命周期内可能驱动多个后台任务。用 openclaw tasks 检查单个任务记录,用 openclaw tasks flow 检查编排流程。
相关文档
常见问题
Task Flow 和直接链式调用多个后台任务有什么区别?
Task Flow 提供持久化状态和修订追踪——即使 Gateway 中途重启,流程从失败步骤继续,不会从头开始。直接链式调用没有这种跨重启的进度保证。
如何取消正在运行的 Task Flow?取消后能恢复吗?
执行 openclaw tasks flow cancel <id> 立即设置取消意图,取消活跃子任务,并阻止新步骤启动。取消意图是粘性的,重启后也不会自动恢复;如需重新运行,必须创建新流程。
托管模式和镜像模式怎么选?能混用一个 flow 吗?
托管模式适合你控制流程中每一步的创建和顺序;镜像模式适合观察外部任务(如 cron 触发的独立任务)的集体进度。一个 flow 在创建时确定同步模式,之后不能切换。如果需要同时跟踪外部和自管理任务,建议创建两个独立 flow。