#Heartbeat Config Understanding

1 messages · Page 1 of 1 (latest)

rare latch
#

{
agents: {
defaults: {
heartbeat: {
every: "30m",
target: "last",
// activeHours: { start: "08:00", end: "24:00" },
// includeReasoning: true, // optional: send separate Reasoning: message too
},
},
},
}

What is meant by target?
If no prompt is set in the config, does it use a default prompt?

forest haloBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

pliant canopyBOT
# rare latch { agents: { defaults: { heartbeat: { every: "30m", t...

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 like bluebubbles). You can combine with to to 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.

rare latch
#

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?

pliant canopyBOT
# rare latch 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.userTimezone is 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.

Docs: https://docs.openclaw.ai/gateway/heartbeat