Skip to content

Multi-agent heartbeat: per-agent interval config ignored, all agents fire on main agent's schedule #14986

@rocky-balboa-ai

Description

@rocky-balboa-ai

Description

When configuring multiple agents with different heartbeat intervals, the per-agent heartbeat.every configuration is ignored. All agents appear to heartbeat together when the main agent's heartbeat cycle completes, rather than on their own independent schedules.

Steps to Reproduce

  1. Configure a secondary agent with a long heartbeat interval:
{
  "agents": {
    "list": [
      {
        "id": "secondary",
        "heartbeat": { "every": "4h" }
      }
    ]
  }
}
  1. Keep main agent on default 30m heartbeat
  2. Observe diagnostic lane logs over time

Expected Behavior

  • Main agent heartbeats every 30 minutes
  • Secondary agent heartbeats every 4 hours (independently)

Actual Behavior

Secondary agent heartbeats are triggered immediately after main agent heartbeat completes (~50-500ms later), regardless of the configured "every": "4h" interval.

Log pattern observed:

19:01:40.363 - lane task done: session:agent:main:main
19:01:40.911 - lane enqueue: session:agent:secondary:main  (548ms later)

19:10:44.903 - lane task done: session:agent:main:main
19:10:45.426 - lane enqueue: session:agent:secondary:main  (523ms later)

19:16:21.233 - lane task done: session:agent:main:main
19:16:21.584 - lane enqueue: session:agent:secondary:main  (351ms later)

Additionally, when the main agent's task takes a long time (10+ minutes), multiple heartbeats can queue up and fire back-to-back when main completes:

19:47:25.044 - main done (after 600sec task)
19:47:25.529 - secondary heartbeat #1 starts
19:47:31.315 - secondary heartbeat #1 done
19:47:35.068 - secondary heartbeat #2 starts (only 3.7s later!)

Impact

  • Secondary agents consume tokens on main's schedule instead of their own
  • Can result in duplicate heartbeats firing seconds apart
  • The heartbeat.every config for non-main agents has no effect

Environment

  • OpenClaw version: 2026.2.9
  • OS: macOS (Darwin 25.2.0 arm64)
  • Node: v25.4.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions