Summary
Currently, heartbeat.model only accepts a string (single model). It would be valuable to support the same fallback chain format used by agents — either an array of models or an object with primary/fallbacks.
Use Case
When running heartbeats on free-tier or rate-limited models (e.g., NVIDIA NIM, OpenRouter free models), the heartbeat can fail silently if the primary model is unavailable. There is no way to specify a fallback model for heartbeats like you can for agent sessions.
Proposed Behavior
Allow heartbeat.model to accept either:
- A string (current behavior):
"nvidia/kimi-k2.5"
- An array (fallback chain):
["nvidia/kimi-k2.5", "nvidia/minimaxai/minimax-m2.1"]
- An object (matching agent format):
{ "primary": "...", "fallbacks": ["..."] }
This should apply to both agents.defaults.heartbeat.model and per-agent heartbeat.model.
Context
Heartbeats are critical for proactive agent behavior. When the heartbeat model is rate-limited or down, the agent goes silent. Fallback support would make heartbeats resilient.
Filed via OpenClaw agent session
Summary
Currently,
heartbeat.modelonly accepts a string (single model). It would be valuable to support the same fallback chain format used by agents — either an array of models or an object withprimary/fallbacks.Use Case
When running heartbeats on free-tier or rate-limited models (e.g., NVIDIA NIM, OpenRouter free models), the heartbeat can fail silently if the primary model is unavailable. There is no way to specify a fallback model for heartbeats like you can for agent sessions.
Proposed Behavior
Allow
heartbeat.modelto accept either:"nvidia/kimi-k2.5"["nvidia/kimi-k2.5", "nvidia/minimaxai/minimax-m2.1"]{ "primary": "...", "fallbacks": ["..."] }This should apply to both
agents.defaults.heartbeat.modeland per-agentheartbeat.model.Context
Heartbeats are critical for proactive agent behavior. When the heartbeat model is rate-limited or down, the agent goes silent. Fallback support would make heartbeats resilient.
Filed via OpenClaw agent session