openclaw - 💡(How to fix) Fix Feature: Add delivery.mode="session" for cron jobs (internal agent-to-agent delivery via sessions_send) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#52789Fetched 2026-04-08 01:19:23
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
0
Author
Participants

Cron jobs currently support three delivery modes: announce (posts to a chat channel), webhook (HTTP POST), and none (agent handles delivery itself via tools).

There is no built-in delivery mode that routes cron job output to another session internally via sessions_send. This creates a gap for workflows that need invisible, internal agent-to-agent communication from cron jobs.

Root Cause

Cron jobs currently support three delivery modes: announce (posts to a chat channel), webhook (HTTP POST), and none (agent handles delivery itself via tools).

There is no built-in delivery mode that routes cron job output to another session internally via sessions_send. This creates a gap for workflows that need invisible, internal agent-to-agent communication from cron jobs.

Code Example

{
  "delivery": {
    "mode": "session",
    "to": "agent:nigel:discord:channel:1467685536125685780"
  }
}
RAW_BUFFERClick to expand / collapse

Summary

Cron jobs currently support three delivery modes: announce (posts to a chat channel), webhook (HTTP POST), and none (agent handles delivery itself via tools).

There is no built-in delivery mode that routes cron job output to another session internally via sessions_send. This creates a gap for workflows that need invisible, internal agent-to-agent communication from cron jobs.

Problem

When a cron job needs to deliver results internally (e.g., a monitoring job that reports to a coordinator agent, or a data-gathering job that feeds into another agent's workflow), the only options are:

  1. announce — posts to a visible chat channel. Not appropriate for internal coordination that users shouldn't see.
  2. none + agent uses sessions_send tool — works when the model gets the tool call right, but cheaper models (Haiku, MiniMax) frequently drop required parameters, causing silent delivery failures. Unreliable.
  3. none + agent uses message tool — same fragility, and posts to a visible channel anyway.

Proposed Solution

Add a new delivery mode: delivery.mode: "session"

{
  "delivery": {
    "mode": "session",
    "to": "agent:nigel:discord:channel:1467685536125685780"
  }
}

The framework would take the cron job's output summary and deliver it to the target session key via sessions_send after the job completes — the same way announce posts to a channel, but internally.

Benefits

  • Reliable: Framework handles delivery, not the model. No dependence on cheap models nailing tool calls.
  • Invisible: No chat channel noise for internal coordination.
  • Consistent: Same pattern as announce and webhook — just a different destination.

Use Cases

  • Monitoring jobs that report status to a coordinator agent
  • Data-gathering cron jobs that feed results into another agent's context
  • Health checks that only need to alert an orchestrator, not a human channel
  • Any workflow where cron output is for agents, not users

Environment

  • OpenClaw 2026.3.13
  • Multi-agent deployment with 14+ agents
  • Mix of Haiku/MiniMax cron jobs that frequently fail sessions_send tool calls

extent analysis

Fix Plan

To implement the new session delivery mode, follow these steps:

  • Update the cron job configuration to include the new delivery mode:
{
  "delivery": {
    "mode": "session",
    "to": "agent:nigel:discord:channel:1467685536125685780"
  }
}
  • Modify the cron job framework to handle the new delivery mode:
if delivery_mode == "session":
    # Get the target session key
    target_session_key = delivery_config["to"]
    
    # Deliver the output summary to the target session key via sessions_send
    sessions_send(target_session_key, output_summary)
  • Ensure the sessions_send tool is properly configured and functional.

Verification

To verify the fix, create a test cron job with the new session delivery mode and check that the output is delivered correctly to the target session key.

Extra Tips

  • Make sure to handle any errors that may occur during the delivery process to prevent silent failures.
  • Consider adding logging to track the delivery of cron job output to the target session key.
  • Review the documentation for the sessions_send tool to ensure it is properly configured and used in the cron job framework.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Feature: Add delivery.mode="session" for cron jobs (internal agent-to-agent delivery via sessions_send) [1 participants]