英文 Tasks
- 原始链接:https://docs.openclaw.ai/automation/tasks
- 来源章节:5. 官方文档:工具、技能、插件与自动化
- 来源小节:无
- 抓取方式:jina:https://r.jina.ai/http://docs.openclaw.ai/automation/tasks
- 抓取时间:2026-04-05 13:47:10
- 状态:ok
中文内容
后台任务 - OpenClaw
[OpenClaw主页!图片1:深色徽标!图片2:深色徽标](http://docs.openclaw.ai/)
英语
搜索...
⌘K
搜索...
导航
自动化和任务
后台任务
概述
插件
#####技能
自动化和任务
工具
- apply_patch工具
- 网页浏览器
- 网络工具
- 顺便说一句附带问题
- 代码执行
- 差异
- 提升模式
- 执行工具
- 执行批准
- [图像生成](http://docs.openclaw.ai/tools/image- Generation)
- LLM任务
- 龙虾
- 工具循环检测
- PDF工具
- 反应
- 思维水平
代理协调
在此页面上
自动化和任务
后台任务
后台任务
寻找调度? 请参阅自动化和任务 以选择正确的机制。本页涵盖跟踪后台工作,而不是安排它。
后台任务跟踪在主对话会话之外运行的工作:ACP 运行、子代理生成、独立的 cron 作业执行和 CLI 启动的操作。任务不会取代会话、cron 作业或心跳 - 它们是活动分类帐,记录分离工作发生的情况、时间以及是否成功。
并非每个代理运行都会创建任务。心跳转和正常的互动聊天不会。所有 cron 执行、ACP 生成、子代理生成和 CLI 代理命令都会执行。
长话短说
- 任务是记录,而不是调度程序 - cron 和心跳决定工作运行的时间,任务跟踪发生了什么。
- ACP、子代理、所有 cron 作业和 CLI 操作创建任务。心跳轮流不。
- 每个任务都会经历“排队→运行→终端”(成功、失败、超时、取消或丢失)。
- 当 cron 运行时仍然拥有作业时,Cron 任务保持活动状态;仅当其所属的运行上下文仍处于活动状态时,聊天支持的 CLI 任务才会保持活动状态。
- 完成是推送驱动的:分离的工作可以在完成时直接通知或唤醒请求者会话/心跳,因此状态轮询循环通常是错误的形状。
- 独立的 cron 运行和子代理完成在最终清理簿记之前尽力清理其子会话的跟踪浏览器选项卡/进程。
- 独立的 cron 传递会抑制过时的临时父级回复,而后代子代理的工作仍在耗尽,并且它更喜欢在传递之前到达的最终后代输出。
- 完成通知直接传送到通道或排队等待下一个心跳。
openclaw 任务列表显示所有任务; “openclaw 任务审核”暴露了问题。- 终端记录
保留7天,然后自动修剪。
快速启动
# 列出所有任务(最新的优先)
开爪任务列表
# 按运行时或状态过滤
openclaw 任务列表 --runtime acp
openclaw 任务列表 --status running
# 显示特定任务的详细信息(按 ID、运行 ID 或会话密钥)
openclaw 任务显示 <lookup>
# 取消正在运行的任务(杀死子会话)
openclaw 任务取消 <lookup>
# 更改任务的通知策略
openclaw 任务通知 <lookup> state_changes
# 运行健康审计
openclaw任务审核
# 预览或应用维护
开爪任务维护
openclaw任务维护--应用
# 检查任务流状态
openclaw任务流程列表
openclaw 任务流程显示 <lookup>
openclaw 任务流程取消 <lookup>
什么创建任务
| 来源 | 运行时类型 | 任务记录何时创建 | 默认通知策略 |
|---|---|---|---|
| ACP 后台运行 | acp | 生成子 ACP 会话 | 仅完成 |
| 子代理编排 | 子代理 | 通过 sessions_spawn 生成子代理 | 仅完成 |
| Cron 作业(所有类型) | cron | 每个 cron 执行(主会话和隔离) | 沉默 |
| CLI 操作 | cli | 通过网关运行的“openclaw agent”命令 | 沉默 |
主会话 cron 任务默认使用“静默”通知策略 - 它们创建用于跟踪的记录,但不生成通知。独立的 cron 任务也默认为“静默”,但更明显,因为它们在自己的会话中运行。什么不创建任务:
- 心跳轮流——主会场;参见心跳
- 正常互动聊天轮流
- 直接
/command响应
任务生命周期
| 状态 | 这意味着什么 |
|---|---|
排队 | 已创建,等待代理启动 |
运行 | 代理轮正在积极执行 |
成功了 | 顺利完成 |
失败 | 已完成但有错误 |
超时 | 超过配置的超时时间 |
已取消 | 由操作员通过“openclaw 任务取消”停止 |
| ‘迷失’ | 5 分钟宽限期后,运行时失去权威支持状态 |
转换自动发生 - 当关联的代理运行结束时,任务状态会更新以匹配。lost 是运行时感知的:
- ACP 任务:支持 ACP 子会话元数据消失。
- 子代理任务:支持子会话从目标代理存储中消失。
- Cron 任务:cron 运行时不再将作业跟踪为活动状态。
- CLI任务:隔离的子会话任务使用子会话;聊天支持的 CLI 任务使用实时运行上下文,因此延迟的通道/组/直接会话行不会使它们保持活动状态。
交付和通知
当任务达到最终状态时,OpenClaw 会通知您。有两种传递路径:直接传递 - 如果任务有通道目标(“requesterOrigin”),则完成消息会直接发送到该通道(Telegram、Discord、Slack 等)。对于子代理完成,OpenClaw 还会在可用时保留绑定的线程/主题路由,并且可以在放弃直接传递之前从请求者会话的存储路由 (lastChannel / lastTo / lastAccountId) 中填充缺失的 to / 帐户。会话排队传递 — 如果直接传递失败或未设置源,则更新将作为请求者会话中的系统事件排队,并在下一个心跳时出现。
任务完成会立即触发心跳唤醒,因此您可以快速看到结果 - 无需等待下一个计划的心跳滴答声。
这意味着通常的工作流程是基于推送的:启动一次分离工作,然后让运行时唤醒或在完成时通知您。仅当您需要调试、干预或显式审核时才轮询任务状态。
通知政策
控制您对每项任务的了解程度:
| 政策 | 交付了什么 |
|---|---|
done_only(默认) | 仅最终状态(成功、失败等)- 这是默认设置 |
状态更改 | 每次状态转换和进度更新 |
沉默 | 什么都没有 |
在任务运行时更改策略:
openclaw 任务通知 <lookup> state_changes
CLI 参考
任务列表
openclaw 任务列表 [--runtime <acp|subagent|cron|cli>] [--status <status>] [--json]输出列:任务 ID、种类、状态、交付、运行 ID、子会话、摘要。
任务显示
openclaw 任务显示 <lookup>查找令牌接受任务 ID、运行 ID 或会话密钥。显示完整记录,包括时间、交付状态、错误和终端摘要。
任务取消
openclaw 任务取消 <lookup>对于 ACP 和子代理任务,这会终止子会话。状态转换为“已取消”并发送送达通知。
任务通知
openclaw 任务通知 <lookup> <done_only|state_changes|silent>
任务审核
openclaw 任务审核 [--json]暴露操作问题。当检测到问题时,结果也会显示在“openclaw status”中。
| 寻找 | 严重性 | 触发 |
|---|---|---|
stale_queued | 警告 | 排队10多分钟 |
stale_running | 错误 | 跑步30分钟以上 |
| ‘迷失’ | 错误 | 运行时支持的任务所有权消失了 |
交付失败 | 警告 | 交付失败且通知策略不是“静默” |
missing_cleanup | 警告 | 没有清理时间戳的终端任务 |
不一致的时间戳 | 警告 | 违反时间线(例如在开始之前结束) |
任务维护
openclaw 任务维护 [--json]
openclaw 任务维护 --apply [--json]使用它来预览或应用任务和任务流状态的协调、清理标记和修剪。协调是运行时感知的:
- ACP/子代理任务检查其支持子会话。
- Cron 任务检查 cron 运行时是否仍然拥有该作业。
- 聊天支持的 CLI 任务检查所属的实时运行上下文,而不仅仅是聊天会话行。
完成清理也是运行时感知的:
- 在宣布清理继续之前,子代理完成会尽力关闭子会话的跟踪浏览器选项卡/进程。
- 隔离 cron 完成会在运行完全终止之前尽力关闭 cron 会话的跟踪浏览器选项卡/进程。
- 独立的 cron 交付会在需要时等待后代子代理后续操作,并抑制过时的父确认文本而不是宣布它。
- 子代理完成交付优先选择最新可见的辅助文本;如果它为空,它将回退到已清理的最新工具/工具结果文本,并且仅超时工具调用运行可以折叠为简短的部分进度摘要。
- 清理失败不会掩盖真正的任务结果。
任务流程列表|显示|取消
openclaw 任务流列表 [--status <status>] [--json]
openclaw 任务流程显示 <lookup> [--json]
openclaw 任务流程取消 <lookup>当您关心编排任务流而不是单个后台任务记录时,请使用这些。
聊天任务板(/tasks)
在任何聊天会话中使用“/tasks”来查看链接到该会话的后台任务。该板显示活动的和最近完成的任务,包括运行时间、状态、计时、进度或错误详细信息。当当前会话没有可见的链接任务时,“/tasks”会回退到代理本地任务计数,因此您仍然可以获得概述,而不会泄漏其他会话详细信息。对于完整的操作员分类帐,请使用 CLI:“openclaw 任务列表”。
状态整合(任务压力)
“openclaw status”包括一目了然的任务摘要:
任务: 3 个已排队 · 2 个正在运行 · 1 个问题总结报告:
- active — “已排队”+“正在运行”的计数
- 失败 —
failed+timed_out+lost的计数 - byRuntime — 按
acp、subagent、cron、cli细分
“/status”和“session_status”工具都使用清理感知任务快照:首选活动任务,隐藏陈旧的已完成行,并且仅在没有活动工作剩余时才显示最近的故障。这使得状态卡专注于当前重要的事情。
储存与维护
任务所在的位置
任务记录保留在 SQLite 中:
$OPENCLAW_STATE_DIR/tasks/runs.sqlite注册表在网关启动时加载到内存中,并将写入同步到 SQLite,以确保重新启动后的持久性。
自动维护
清扫器每 60 秒运行一次并处理三件事:
- 协调 — 检查活动任务是否仍然具有权威的运行时支持。 ACP/子代理任务使用子会话状态,cron 任务使用活动作业所有权,聊天支持的 CLI 任务使用所属运行上下文。如果该支持状态消失超过 5 分钟,该任务将被标记为“丢失”。
- 清理标记 — 在终端任务上设置“cleanupAfter”时间戳(endAt + 7 天)。
- 修剪 — 删除超过“cleanupAfter”日期的记录。
保留:终端任务记录保留7天,然后自动修剪。无需配置。
任务如何与其他系统相关
任务和任务流程
任务流是后台任务之上的流编排层。单个流可以使用托管或镜像同步模式在其生命周期内协调多个任务。使用“openclaw 任务”检查单个任务记录,使用“openclaw 任务流”检查编排流程。有关详细信息,请参阅任务流程。
任务和 cron
cron 作业 定义 位于 ~/.openclaw/cron/jobs.json 中。 每个 cron 执行都会创建一个任务记录 - 包括主会话和隔离任务记录。主会话 cron 任务默认采用“静默”通知策略,因此它们可以在不生成通知的情况下进行跟踪。请参阅 Cron 作业。
任务和心跳
心跳运行是主会话轮流 - 它们不会创建任务记录。当任务完成时,它可以触发心跳唤醒,以便您及时看到结果。请参阅 Heartbeat。
任务和会话
任务可以引用“childSessionKey”(工作运行的地方)和“requesterSessionKey”(启动它的人)。会话是对话上下文;任务是最重要的活动跟踪。
任务和代理运行
任务的“runId”链接到执行工作的代理运行。代理生命周期事件(开始、结束、错误)会自动更新任务状态 - 您无需手动管理生命周期。
相关
⌘我