Files
Peter Steinberger 6652f7eac8 refactor: remove Tasks and TaskFlow runtime (#159179)
Remove Tasks and TaskFlow runtime, APIs, CLI, SDK surfaces and panels after the Cron, session, native execution and media completion ownership cutovers. Preserve stored rows and import provable legacy native assignments through Doctor; ambiguous ownership stays untouched with a warning.

Follows #158221, #158217, #158225, #158222, #158702 and #158776. Related: #156532. Task-specific public APIs retire immediately; retained responsibilities use their existing owners.

Maintainer-authorized administrative landing after full CI run 36312986498 attempt 2 passed on 274595e2, with subsequent actual conflicts reviewed and focused checks passing. Current PR CI preflight hits the 64 KiB changed-path metadata limit before tests (run 36335042695); its duplicate security-review status mirrors that planning failure. Review and scoped proof are recorded in the PR. Published 9.4 native import is proven; remaining native completion and 9.4 rollback witnesses are explicitly unproven.
2026-09-27 10:40:29 -07:00

7.5 KiB

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

OpenClaw runs work in the background through native runtimes, 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 --> Q3{Orchestrate multi-step flows?}
    START --> Q4{React to lifecycle events?}
    START --> Q5{Give the agent persistent instructions?}

    Q1 -->|Yes| Q1a{Specific job or ambient monitor?}
    Q1a -->|Specific job| CRON["Automations"]
    Q1a -->|Ambient monitor| HEARTBEAT["Heartbeat monitor automation"]

    Q3 -->|Yes| FLOW[Lobster]
    Q4 -->|Yes| HOOKS[Hooks]
    Q5 -->|Yes| SO[Standing Orders]
Use case Recommended Why
Send daily report at 9 AM sharp Automations Exact timing, isolated execution
Remind me in 20 minutes Automations One-shot with precise timing (--at)
Run weekly deep analysis Automations Standalone task, can use different model
Check inbox every 30 min Automations Independent recurring schedule and job history
Trigger safely on new IMAP email IMAP plugin Sender-gated isolated reader sessions
Monitor calendar for upcoming events Automations Explicit recurring schedule and delivery policy
Surface ambient main-session updates Heartbeat System-owned monitor automation and quiet alerts
Run a script on session reset Hooks Internal HOOK.md scripts react to lifecycle events
Trigger an agent from an external service Webhooks Authenticated HTTP ingress, not an internal event hook
Execute code on every tool call Plugin hooks Typed api.on(...) handlers can intercept tool calls
Always check compliance before replying Standing Orders Injected into every session automatically

Automations vs Heartbeat

Dimension User-authored automations Heartbeat monitor automation
Timing One-shot, interval, or cron expression Scheduler-owned interval, default 30min
Session context Isolated, current, named, or main session Main session, optionally isolated
Delivery Channel, webhook, or silent Owner-routed alerts or silent
Best for Explicit reports, reminders, recurring work Ambient monitoring and event follow-up

Both use the same Automations scheduler. Create an automation for work with its own instructions or schedule; use heartbeat as the system-owned ambient monitor when periodic main-session awareness is useful.

Core concepts

Automations

Automations are OpenClaw's built-in scheduler for all recurring and one-shot work, including heartbeat monitors. The scheduler persists jobs, wakes the agent at the right time, and can deliver output to a chat channel or webhook endpoint. It supports one-shot reminders, recurring intervals and cron expressions, and inbound webhook triggers.

See Automations.

Background execution and workflows

Use Sub-agents to launch and wait for delegated runs, ACP for coding harness sessions, and automation run history to inspect scheduled work. Each runtime owns execution and completion.

Lobster runs local pipelines with resumable approvals. The shared Tasks ledger, TaskFlow orchestration API, and TaskFlow Webhooks plugin have been removed. Generic Gateway HTTP hooks remain available for authenticated external triggers.

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 automations 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 system-owned monitor automation that runs a periodic main-session turn, every 30 minutes by default. It can use small monitor-scratch context to surface anything requiring attention without extending session freshness. Create separate automation jobs for work requiring its own schedule. Empty scratch skips as empty-heartbeat-file. Scheduled monitor turns defer while the main queue or automation work is busy, another run for the same agent is active, or the target session has active or queued work.

See Heartbeat.

How they work together

  • Automations own every recurring schedule, including reports, reminders, and heartbeat monitors.
  • Heartbeat is the system-owned ambient monitor automation. Independently scheduled checks belong in their own automation jobs.
  • 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.

Retired inferred commitments

The inferred commitments experiment was removed in v2026.8.1: OpenClaw no longer extracts follow-ups from conversations or delivers them through heartbeat. The openclaw commitments maintenance CLI is also gone. The database migration discards the old commitment rows and removes their table and indexes.

For reminders or scheduled work, create an explicit automation. Automations are an alternative with a schedule and instructions you choose; they do not restore inferred follow-ups.