Skip to content

feat: add heartbeatProvider and heartbeatModel config options#50

Closed
simonsickle wants to merge 1 commit intoopenclaw:mainfrom
simonsickle:ssickle/heartbeat-model-override
Closed

feat: add heartbeatProvider and heartbeatModel config options#50
simonsickle wants to merge 1 commit intoopenclaw:mainfrom
simonsickle:ssickle/heartbeat-model-override

Conversation

@simonsickle
Copy link
Copy Markdown

Allow using a different (cheaper) model for periodic heartbeat runs. When configured, heartbeat runs will use heartbeatProvider/heartbeatModel instead of the main provider/model, enabling cost optimization (e.g., using Haiku for heartbeats while keeping Opus for conversations).

Example config:

  "agent": {
    "provider": "anthropic",
    "model": "claude-opus-4-5",
    "heartbeatProvider": "anthropic",
    "heartbeatModel": "claude-haiku-4-5-20251001",
    "heartbeatMinutes": 5
  }

Allow using a different (cheaper) model for periodic heartbeat runs.
When configured, heartbeat runs will use heartbeatProvider/heartbeatModel
instead of the main provider/model, enabling cost optimization
(e.g., using Haiku for heartbeats while keeping Opus for conversations).

Example config:
  "agent": {
    "provider": "anthropic",
    "model": "claude-opus-4-5",
    "heartbeatProvider": "anthropic",
    "heartbeatModel": "claude-3-5-haiku-20241022",
    "heartbeatMinutes": 30
  }
@steipete
Copy link
Copy Markdown
Contributor

Thanks, will take over.

I'll group this more so it's

"heartbeat": {
"model": "anthropic/opus..."
"time": "60m" / (or similar, still iterating)
}

@steipete
Copy link
Copy Markdown
Contributor

Merged via 9f7b1f0 (agent.heartbeat config + model override).

@steipete steipete closed this Dec 26, 2025
@simonsickle simonsickle deleted the ssickle/heartbeat-model-override branch December 31, 2025 02:26
dgarson referenced this pull request in dgarson/clawdbot Feb 2, 2026
alexprime1889-prog pushed a commit to alexprime1889-prog/moltbot that referenced this pull request Feb 8, 2026
slathrop referenced this pull request in slathrop/openclaw-js Feb 11, 2026
Tasks completed: 2/2
- Port commit #50 (lore revert) and #53 (bird skill removal)
- Port commit #62 (Docker .mjs entrypoint support)

SUMMARY: .planning/phases/12-memory-qmd-hardening/12-03-SUMMARY.md
songliu0403-rgb pushed a commit to songliu0403-rgb/openclaw that referenced this pull request Feb 26, 2026
heatherstew44-maker pushed a commit to heatherstew44-maker/openclaw that referenced this pull request Mar 8, 2026
fix(utils): use virtual key codes for cross-layout paste
CoffeeNoir pushed a commit to CoffeeNoir/openclaw that referenced this pull request Mar 8, 2026
LyleLiu666 added a commit to LyleLiu666/openclaw-upstream-fork that referenced this pull request Mar 10, 2026
ssfdre38 added a commit to ssfdre38/openclaw-community-edition that referenced this pull request Mar 11, 2026
…k weight

Conversation length shouldn't affect complexity scoring - message openclaw#50 isn't
inherently more complex than message openclaw#5. Users may have long conversations
with simple messages or short conversations with complex ones.

Also reduced code block weight from +10 to +5 points. Code blocks in
conversational context aren't always complex tasks - could be examples,
explanations, or simple code snippets.

This should prevent ongoing Discord conversations from artificially inflating
complexity scores and routing simple messages to expensive models.

Co-authored-by: Copilot <[email protected]>
0x666c6f pushed a commit to 0x666c6f/openclaw that referenced this pull request Mar 26, 2026
…enclaw#50)

Reaction and block-action interaction events were enqueued via
enqueueSystemEvent but never triggered a proactive session wake.
The in-memory queue is passive — events only surface when the
next inbound message arrives for the same session. For channels
that receive triage messages with no ongoing conversation, this
means reaction/interaction system events were silently lost.

Add requestHeartbeatNow() after each enqueueSystemEvent() call
in the reaction and interaction handlers, consistent with how
exec-event, notifications-event, and other system event producers
already wake their target sessions.

Also add vi.mock for the new import in both test files to prevent
import failures.

Co-authored-by: openclaw-sre[bot] <openclaw-sre[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants