Files
openclaw/docs/automation/index.md
Peter Steinberger edecdbd05e refactor(config): config-surface reduction tranche 3 — product consolidations (review request) (#111527)
* refactor(config): consolidate media model lists

* refactor(config): unify memory configuration

* refactor(config): consolidate TTS ownership

* refactor(config): move typing policy to agents

* refactor(config): retire product-level config surfaces

* refactor(config): share scoped tool policy type

* chore(config): refresh generated baselines

* fix(config): honor agent typing overrides

* fix(config): migrate sibling config consumers

* refactor(infra): keep base64url decoder private

* fix(config): strip invalid legacy TTS values

* chore(config): refresh rebased baseline hash

* fix(doctor): route legacy messages.tts.realtime voice to talk during tts move

* refactor(config): polish final layout names

* refactor(config): freeze retired tuning defaults

* feat(config): add fast mode default symmetry

* refactor(config): key agent entries by id

* docs(config): update final layout reference

* test(config): cover final layout migrations

* chore(config): refresh final layout baselines

* fix(config): align final layout runtime readers

* fix(config): align remaining readers

* fix(config): stabilize final layout migrations

* fix(config): finalize config projection proof

* fix(config): address final layout review

* docs(release): preserve historical config names

* fix(config): complete keyed agent migration

* fix(config): close final migration gaps

* fix(config): finish full-branch review

* fix(config): complete runtime secret detection

* fix(config): close final review findings

* fix(config): finish canonical docs and heartbeat migration

* fix(config): integrate latest main after rebase

* refactor(env): isolate test-only controls

* refactor(env): isolate build and development controls

* refactor(env): collapse process identity indirection

* refactor(env): remove duplicate config and temp aliases

* docs(env): define the operator-facing allowlist

* ci(env): ratchet production variable count

* fix(env): remove stale provider helper import

* fix(env): make ratchet sorting explicit

* test(env): keep test seam in dead-code audit

* test(env): cover ratchet growth and boundary; document surface budgets

* docs(config): document tier-eval consolidations

* docs(config): clarify speech preference ownership

* test(memory): align retired tuning fixtures

* refactor(memory): freeze engine heuristics

* refactor(config): apply tier-eval tranche

* refactor(tts): move persona shaping to providers

* refactor(compaction): move prompt policy to providers

* test(config): align hookified prompt fixtures

* chore(deadcode): classify test-only exports

* chore(github): remove unused spawn helper

* chore(deadcode): classify queue diagnostics

* chore(deadcode): remove unused lane snapshot export

* chore(plugin-sdk): ratchet consolidated surface

* fix(config): integrate latest main after rebase
2026-07-21 20:28:43 -07:00

6.9 KiB

doc-schema-version, summary, read_when, title
doc-schema-version summary read_when title
1 Overview of automation mechanisms: tasks, cron, hooks, standing orders, and Task Flow
Deciding how to automate work with OpenClaw
Choosing between heartbeat, cron, hooks, and standing orders
Looking for the right automation entry point
Automation

OpenClaw runs work in the background through tasks, scheduled jobs, event hooks, and standing instructions. Use this page to pick the right mechanism.

Quick decision guide

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?}

    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]
Use case Recommended Why
Send daily report at 9 AM sharp Scheduled Tasks (Cron) Exact timing, isolated execution
Remind me in 20 minutes Scheduled Tasks (Cron) One-shot with precise timing (--at)
Run weekly deep analysis Scheduled Tasks (Cron) Standalone task, can use different model
Check inbox every 30 min Heartbeat Batches with other checks, context-aware
Monitor calendar for upcoming events Heartbeat Natural fit for periodic awareness
Inspect status of a subagent or ACP run Background Tasks Tasks ledger tracks all detached work
Audit what ran and when Background Tasks openclaw tasks list and openclaw tasks audit
Multi-step research then summarize Task Flow Durable orchestration with revision tracking
Run a script on session reset Hooks Event-driven, fires on lifecycle events
Execute code on every tool call Plugin hooks In-process hooks can intercept tool calls
Always check compliance before replying Standing Orders Injected into every session automatically

Scheduled Tasks (Cron) vs Heartbeat

Dimension Scheduled Tasks (Cron) Heartbeat
Timing Exact (cron expressions, one-shot) Approximate (default every 30 min)
Session context Fresh (isolated) or shared Full main-session context
Task records Always created Never created
Delivery Channel, webhook, or silent Inline in main session
Best for Reports, reminders, background jobs Inbox checks, calendar, notifications

Use Scheduled Tasks (Cron) when you need precise timing or isolated execution. Use Heartbeat when the work benefits from full session context and approximate timing is fine.

Core concepts

Scheduled tasks (cron)

Cron is the Gateway's built-in scheduler for precise timing. It persists jobs, wakes the agent at the right time, and can deliver output to a chat channel or webhook endpoint. Supports one-shot reminders, recurring expressions, and inbound webhook triggers.

See Scheduled Tasks.

Tasks

The background task ledger tracks all detached work: ACP runs, subagent spawns, isolated cron executions, and CLI operations. Tasks are records, not schedulers. Use openclaw tasks list and openclaw tasks audit to inspect them.

See Background Tasks.

Task Flow

Task Flow is the flow orchestration substrate above background tasks. It manages durable multi-step flows with managed and mirrored sync modes, revision tracking, and openclaw tasks flow list|show|cancel for inspection.

See Task Flow.

Standing orders

Standing orders grant the agent permanent operating authority for defined programs. They live in workspace files (typically AGENTS.md) and are injected into every session. Combine with cron for time-based enforcement.

See Standing Orders.

Hooks

Internal hooks are event-driven scripts triggered by agent lifecycle events (/new, /reset, /stop), session compaction, gateway startup, and message flow. They are discovered from hook directories and managed with openclaw hooks. For in-process tool-call interception, use Plugin hooks.

See Hooks.

Heartbeat

Heartbeat is a periodic main-session turn (default every 30 minutes). It batches multiple checks (inbox, calendar, notifications) in one agent turn with full session context. Heartbeat turns do not create task records and do not extend daily/idle session reset freshness. Use HEARTBEAT.md for a small checklist, or a tasks: block when you want due-only periodic checks inside heartbeat itself. Empty heartbeat files skip as empty-heartbeat-file; due-only task mode skips as no-tasks-due. Heartbeats defer while cron work is active or queued, and heartbeat.skipWhenBusy can also defer an agent while that same agent's session-keyed subagent or nested lanes are busy.

See Heartbeat.

How they work together

  • Cron handles precise schedules (daily reports, weekly reviews) and one-shot reminders. All cron executions create task records.
  • Heartbeat handles routine monitoring (inbox, calendar, notifications) in one batched turn every 30 minutes.
  • Hooks react to specific events (session resets, compaction, message flow) with custom scripts. Plugin hooks cover tool calls.
  • Standing orders give the agent persistent context and authority boundaries.
  • Task Flow coordinates multi-step flows above individual tasks.
  • Tasks automatically track all detached work so you can inspect and audit it.