Automations & OpenClaw Heartbeat
ActonOS features a robust automation framework combining Standard Cron/Interval Triggers with an Autonomous Heartbeat Daemon built in strict alignment with the OpenClaw Heartbeat Contract.
1. OpenClaw-Aligned Heartbeat Contractβ
The ActonOS Heartbeat daemon runs periodic system checkups to maintain proactive agent vigilance without burning unnecessary token budgets:
Idle Heartbeat Token Optimizationβ
- When there are no active backlog tasks and no actionable directives in
HEARTBEAT.md, the heartbeat does not invoke the LLM at all. - It returns an immediate internal
HEARTBEAT_OKacknowledgement, ensuring zero token waste during quiescent periods.
Headless Autonomous Execution Modeβ
- When an actionable directive is present, the routine cycle injects an explicit rule block informing the model that execution is unattended and no human is present to greet.
- A built-in
looksLikeIdleChattersafety filter automatically discards accidental conversational greetings (e.g., "Hello, how can I help you today?") and only forwards genuine alerts.
Active Hours & Trigger Cooldownsβ
- Active Hours Window: Configure daily operating hours (e.g.,
08:00to22:00in timezoneAsia/Ho_Chi_Minh) so non-critical background routines sleep overnight. - Trigger Cooldown (15s): Coalesces rapid successive triggers (e.g., multiple file changes or task updates) into a single batch cycle.
- Manual Pulse: Operators can trigger an immediate checkup anytime via the Pulse Now button.
2. Setting Up Automated Routinesβ
- Navigate to Automations in the left sidebar.
- Click + New Automation.
- Choose the Trigger Type:
- Cron Expression: Standard 5-field cron (e.g.,
0 9 * * 1-5for 9:00 AM every weekday). - Interval: Run every $N$ minutes or hours.
- Event Trigger: Triggered when specific bus events occur (e.g.,
file.created,channel.message). - Webhook Trigger: Expose an authenticated HTTP webhook endpoint.
- Cron Expression: Standard 5-field cron (e.g.,
- Define the Action:
- Assign an agent and provide the standing instruction (e.g.,
Check open GitHub pull requests, summarize reviews, and post to Slack). - Select the target output channel for completed reports.
- Assign an agent and provide the standing instruction (e.g.,
- Click Save Automation.