Description
System events like WhatsApp connection notifications and Slack message edits appear to trigger rapid heartbeat runs, even when the configured heartbeat interval is 1h.
Environment
- Clawdbot version: 2026.1.24-3
- OS: Linux (GCP VM)
- Channels: Slack, WhatsApp, Telegram
Expected Behavior
Heartbeats should fire only on their configured timer interval (e.g., every 1 hour).
Actual Behavior
System events get bundled into the heartbeat prompt and appear to trigger additional agent turns. Looking at session logs, I see patterns like:
13:26:58 → 14:26:58 ✅ Exactly 1 hour (correct)
14:26:58 → 14:41:07 ❌ 14 minutes later
14:41:07 → 14:41:21 ❌ 14 seconds later
14:41:21 → 14:41:53 ❌ 32 seconds later
The bundled messages look like:
System: [2026-01-27 09:41:55 EST] Slack message edited in #D0AARLFF5LM.
Read HEARTBEAT.md if it exists (workspace context)...
Impact
- Burned through Gemini API quota (1M tokens/min rate limit hit)
- Unexpected token costs
- Session context grows rapidly
Questions
- Is this expected behavior? Should system events trigger agent turns with heartbeat prompts attached?
- Should there be config options to suppress specific system events (connection notifications, edit events)?
- Should system events queue separately from heartbeats?
Workaround
Switched heartbeat model from Gemini to Sonnet to avoid rate limits, but the underlying rapid triggering continues.
Config (relevant)
{
"agents": {
"defaults": {
"heartbeat": { "every": "1h", "model": "anthropic/claude-sonnet-4-5" }
}
}
}
Thanks for looking into this!
Description
System events like WhatsApp connection notifications and Slack message edits appear to trigger rapid heartbeat runs, even when the configured heartbeat interval is
1h.Environment
Expected Behavior
Heartbeats should fire only on their configured timer interval (e.g., every 1 hour).
Actual Behavior
System events get bundled into the heartbeat prompt and appear to trigger additional agent turns. Looking at session logs, I see patterns like:
The bundled messages look like:
Impact
Questions
Workaround
Switched heartbeat model from Gemini to Sonnet to avoid rate limits, but the underlying rapid triggering continues.
Config (relevant)
{ "agents": { "defaults": { "heartbeat": { "every": "1h", "model": "anthropic/claude-sonnet-4-5" } } } }Thanks for looking into this!