#Heartbeat Config Understanding
1 messages · Page 1 of 1 (latest)
target is where the heartbeat result gets delivered (it doesn’t change what the heartbeat run is, just where the message goes).
From the Heartbeat docs:
target: "last"(default) → deliver to the last used external channel (whatever surface you most recently talked to that agent on: Discord/Telegram/WhatsApp/etc).target: "none"→ run the heartbeat turn, but don’t deliver anything externally.target: "<channel>"→ force delivery to a specific channel (e.g.discord,telegram,whatsapp, or plugin channels likebluebubbles). You can combine withtoto force the recipient/chat ID for that channel.
Docs: https://docs.openclaw.ai/gateway/heartbeat
And yes: if you don’t set agents.defaults.heartbeat.prompt, it uses a built-in default prompt. The docs spell it out (sent verbatim as the user message):
Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.
So it deliver the prompt to the target? It will send that via Telegram if that was the last channel used? Or the heartbeat triggers and the target is where the Agent sends its message?
What time zone is "activeHours": { "start": "07:00", "end": "17:00" } in?
If you don’t specify a timezone, activeHours is evaluated in your “user” timezone:
- If
agents.defaults.userTimezoneis set → it uses that. - Otherwise → it falls back to the gateway host machine’s local timezone.
You can override explicitly via:
activeHours: { start: "07:00", end: "17:00", timezone: "America/New_York" }
Special values:
timezone: "local"→ always use the host machine timezone.