跳转到内容

自动化

OpenClaw 通过任务、定时作业、推断承诺、事件钩子和常备指令在后台运行工作。本页面帮助您选择正确的机制,并了解它们如何协同工作。

flowchart TD
START([What do you need?]) --> Q1{Schedule work?}
START --> Q2{Track detached work?}
START --> Q3{Orchestrate multi-step flows?}
START --> Q4{React to lifecycle events?}
START --> Q5{Give the agent persistent instructions?}
START --> Q6{Remember a natural follow-up?}
Q1 -->|Yes| Q1a{Exact timing or flexible?}
Q1a -->|Exact| CRON["Scheduled Tasks (Cron)"]
Q1a -->|Flexible| HEARTBEAT[Heartbeat]
Q2 -->|Yes| TASKS[Background Tasks]
Q3 -->|Yes| FLOW[Task Flow]
Q4 -->|Yes| HOOKS[Hooks]
Q5 -->|Yes| SO[Standing Orders]
Q6 -->|Yes| COMMITMENTS[Inferred Commitments]
用例推荐原因
在上午 9 点整发送每日报告定时任务 (Cron)定时精确,独立执行
20 分钟后提醒我定时任务 (Cron)一次性精确计时 (--at)
运行每周深度分析定时任务 (Cron)独立任务,可以使用不同的模型
每 30 分钟检查收件箱心跳与其他检查分批处理,具有上下文感知能力
监控日历中的即将发生的事件心跳自然适合定期感知
在提到的面试后跟进推断承诺类似记忆的跟进,没有确切的提醒请求
用户上下文后的温和关怀跟进推断承诺限定于同一个智能体和渠道
检查子智能体或 ACP 运行的状态后台任务任务账本跟踪所有分离的工作
审计运行内容以及时间后台任务openclaw tasks listopenclaw tasks audit
多步骤研究然后总结任务流具有修订跟踪的持久化编排
在会话重置时运行脚本钩子事件驱动,在生命周期事件上触发
在每次工具调用时执行代码插件钩子进程内钩子可以拦截工具调用
回复前始终检查合规性常备指令自动注入到每个会话中
维度定时任务 (Cron)心跳
计时精确 (cron 表达式,一次性)近似 (默认每 30 分钟)
会话上下文全新 (独立) 或共享完整的主会话上下文
任务记录始终创建从不创建
交付渠道、webhook 或静默内联于主会话中
最适合报告、提醒、后台作业收件箱检查、日历、通知

当您需要精确计时或隔离执行时,请使用计划任务。当工作受益于完整会话上下文且近似计时即可时,请使用 Heartbeat。

Cron 是 Gateway(网关) 的内置调度器,用于精确计时。它会持久化作业,在正确的时间唤醒代理,并将输出发送到聊天渠道或 webhook 端点。支持一次性提醒、周期性表达式和传入 webhook 触发器。

参见 计划任务

后台任务账本会跟踪所有分离的工作:ACP 运行、子代理生成、隔离的 cron 执行和 CLI 操作。任务是记录,而不是调度器。使用 CLIopenclaw tasks listopenclaw tasks audit 来检查它们。

参见 后台任务

承诺是可选的、短期后续记忆。OpenClaw 从正常对话中推断它们,将其范围限定为同一代理和渠道,并通过 heartbeat 传递到期检查。确切的用户请求提醒仍然属于 cron。

参见 推断承诺

任务流是后台任务之上的流程编排基板。它管理具有托管和镜像同步模式、修订跟踪以及用于检查的 openclaw tasks flow list|show|cancel 的持久多步骤流程。

参见 任务流

常设指令授予代理对已定义程序的永久操作权限。它们位于工作区文件中(通常是 AGENTS.md)并被注入到每个会话中。与 cron 结合使用以实现基于时间的强制执行。

参见 常设指令

内部钩子是由代理生命周期事件(/new/reset/stop)、会话压缩、网关启动和消息流触发的事件驱动脚本。它们会自动从目录中发现,并可以使用 openclaw hooks 进行管理。对于进程内工具调用拦截,请使用 Plugin hooks

参见 Hooks

Heartbeat 是定期的主会话轮次(默认每 30 分钟一次)。它在一个具有完整会话上下文的代理轮次中批量处理多项检查(收件箱、日历、通知)。Heartbeat 轮次不会创建任务记录,也不会延长每日/空闲会话重置的新鲜度。对于小型检查清单,请使用 HEARTBEAT.md;当您希望在 heartbeat 内部进行仅到期的定期检查时,请使用 tasks: 代码块。空的 heartbeat 文件将作为 empty-heartbeat-file 跳过;仅到期任务模式将作为 no-tasks-due 跳过。当 cron 工作处于活动状态或排队中时,Heartbeat 会推迟;如果同一代理的以会话为键的子代理或嵌套通道正忙,heartbeat.skipWhenBusy 也可以推迟该代理。

参见 Heartbeat

  • Cron 处理精确的计划(每日报告、每周审查)和一次性提醒。所有 cron 执行都会创建任务记录。
  • Heartbeat 每 30 分钟在一个批量轮次中处理例行监控(收件箱、日历、通知)。
  • Hooks 使用自定义脚本响应特定事件(会话重置、压缩、消息流)。插件钩子覆盖工具调用。
  • Standing orders 为代理提供持久上下文和权限边界。
  • Task Flow 在各个任务之上协调多步骤流程。
  • Tasks 自动跟踪所有分离的工作,以便您进行检查和审计。