# Send Context-Aware Delegation (SmartBeat) to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "context-aware-delegation",
    "name": "Context-Aware Delegation (SmartBeat)",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/RGBA-Research/context-aware-delegation",
    "canonicalUrl": "https://clawhub.ai/RGBA-Research/context-aware-delegation",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/context-aware-delegation",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=context-aware-delegation",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "examples/morning-report-cron.json",
      "examples/sub-agent-with-context.sh"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/context-aware-delegation"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/context-aware-delegation",
    "downloadUrl": "https://openagent3.xyz/downloads/context-aware-delegation",
    "agentUrl": "https://openagent3.xyz/skills/context-aware-delegation/agent",
    "manifestUrl": "https://openagent3.xyz/skills/context-aware-delegation/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/context-aware-delegation/agent.md"
  }
}
```
## Documentation

### (aka "SmartBeat")

Problem: Isolated sessions (cron jobs, sub-agents) can't see your main session conversation history. They're cheap (use Haiku) but blind to context.

Solution: Use sessions_history to give isolated sessions full awareness of what happened in your main chat — at a fraction of the cost of running everything in main session.

### Morning Report Example

You want a daily report that includes "what we accomplished last night" — but running that in main session with Sonnet costs ~$0.30/report. Using an isolated session with Haiku costs ~$0.03, but can't see conversation history.

Solution: Isolated session queries main session history first.

// Inside your cron payload.message:
"1. Query main session history: sessions_history('agent:main:telegram:direct:{userId}', limit=50)
2. Read memory files: memory/YYYY-MM-DD.md
3. Fetch weather for Austin 78721
4. Generate report combining:
   - Recent conversation highlights
   - Memory file summaries
   - Current conditions
5. Send via Telegram + email"

Cost: ~$0.03 with Haiku (10x cheaper than Sonnet main session)
Context: Full awareness of overnight work

### 1. Identify Main Session Key

# List sessions to find main
sessions_list(limit=10)
# Typical main session key format:
# agent:main:telegram:direct:{userId}
# agent:main:main

### 2. Query History from Isolated Session

// In cron job, sub-agent, or event handler:
sessions_history({
  sessionKey: "agent:main:telegram:direct:8264585335",
  limit: 50  // Last 50 messages
})

Returns conversation history even though you're in an isolated session.

### 3. Use Context + Execute Task

Your isolated session now has:

✅ Conversation history (what was discussed)
✅ Memory files (persistent notes)
✅ Cheap model (Haiku)
✅ Full tool access

### Cron Jobs with Context

Morning reports:

Schedule: 8 AM daily
Model: Haiku (~$0.03/run)
Task: Read overnight work, check email, send summary
Context: Last 50 messages from main session

End-of-day summaries:

Schedule: 9 PM daily
Model: Haiku
Task: What got done today? What's pending?
Context: Today's full conversation

Periodic check-ins:

Schedule: Every 2 hours (9 AM - 9 PM)
Model: Haiku
Task: Anything urgent in email/calendar?
Context: Recent discussion about priorities

### Sub-Agent Delegation

Background builds:

sessions_spawn({
  task: "Build the AREF product page based on our discussion",
  model: "haiku",
  // In the task prompt:
  // "First, query main session history to see our conversation about AREF requirements..."
})

Research tasks:

sessions_spawn({
  task: "Research Unreal Engine integration patterns. Reference our earlier discussion about AREF goals.",
  model: "haiku"
})

### Event-Driven Handlers

Webhook arrives → isolated session handles it:

// Webhook payload triggers isolated session
// Session logic:
"1. Query main session to see: what did J and I agree about this client?
2. Process webhook based on that context
3. Take action or notify"

### Cost Comparison

ApproachModelContextCost/RunWhen to UseMain sessionSonnetFull~$0.30Complex interactive workIsolated (blind)HaikuNone~$0.03Simple scheduled tasksContext-aware delegationHaikuFull~$0.03Background tasks needing context

Savings: ~10x cheaper than main session, with same context awareness.

### Finding Your Main Session Key

sessions_list({ kinds: ["main"], limit: 5 })
// Or:
sessions_list({ limit: 10 })
// Look for: agent:main:telegram:direct:{yourUserId}

### How Much History?

10 messages: Just recent context (~2KB)
50 messages: Last few hours of work (~10KB)
100 messages: Full day or multi-session context (~20KB)

Start with 50, adjust based on needs.

### Combining History + Memory

Best results come from:

Sessions history: Recent interactive work
Memory files: Persistent decisions/notes

"1. sessions_history(limit=30) → what we discussed today
2. read memory/2026-02-13.md → decisions logged
3. Combine both sources for complete picture"

### Morning Report Recipe

Complete example for daily morning report:

Cron Job Setup:

{
  schedule: { kind: "cron", expr: "0 8 * * *", tz: "America/Chicago" },
  sessionTarget: "isolated",
  payload: {
    kind: "agentTurn",
    model: "haiku",
    message: \`Generate morning report:

1. Query main session: sessions_history('agent:main:telegram:direct:8264585335', limit=50)
2. Read yesterday's memory: memory/YYYY-MM-DD.md
3. Get weather: Austin 78721
4. Check email (gog or himalaya)
5. Check calendar events for today

Report format:
📍 WEATHER: [conditions]
🌙 OVERNIGHT: [from session history - what we worked on]
📝 PERSISTENT NOTES: [from memory file]
📧 EMAIL: [urgent only]
📅 CALENDAR: [today's events]
🔗 DASHBOARD: [mission control link]

Send to Telegram using message tool.

Note: Email delivery from isolated sessions requires SMTP credentials or is better handled via main session heartbeats for reliability.\`
  },
  delivery: { mode: "announce", to: "8264585335", channel: "telegram" }
}

Cost: $0.03/report ($1/month)
Context: Full overnight work awareness
Timing: Exact (8 AM every day)

### Limitations

History truncation:

sessions_history returns limited content (typically last N messages)
Very long messages may be truncated
For deep archives, rely on memory files

Main session must exist:

If main session is brand new (no messages), history is empty
Isolated sessions can't create main session history, only read it

Not real-time:

History reflects state when queried
If main session is actively running, very latest messages might not appear immediately

### Best Practices

1. Write good memory summaries
Even with session history access, persistent memory files are gold. Don't rely solely on conversation history.

2. Query only what you need
limit=10 for quick context, limit=50 for substantial work, limit=100 for deep dives.

3. Chain tools effectively

sessions_history → memory_get → web_search → message

Context first, then action.

4. Use Haiku for delegation, Sonnet for decisions

Isolated background work: Haiku
Interactive problem-solving: Sonnet
Morning reports/summaries: Haiku
Architecture discussions: Sonnet

### Troubleshooting

"Empty session history"

Check session key is correct: sessions_list()
Main session might be new (no messages yet)
Use limit parameter

"Content truncated"

Reduce limit (fewer messages = more complete content)
Rely on memory files for archival data

"Isolated session can't send messages"

Use message tool, not sessions_send
Ensure delivery.mode is set in cron config OR use message tool directly

### Related Patterns

Heartbeats: Main session periodic checks (full context, main model)
Sub-agents: Long-running background tasks
Cron jobs: Scheduled isolated work
Memory files: Persistent cross-session storage

### Credits

Discovered by RGBA Research during OpenClaw optimization work.
Published to ClawHub as open pattern for the community.

Contact: https://rgbaresearch.com
License: MIT (free to use, adapt, share)
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: RGBA-Research
- Version: 1.0.2
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-04-30T16:55:25.780Z
- Expires at: 2026-05-07T16:55:25.780Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/context-aware-delegation)
- [Send to Agent page](https://openagent3.xyz/skills/context-aware-delegation/agent)
- [JSON manifest](https://openagent3.xyz/skills/context-aware-delegation/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/context-aware-delegation/agent.md)
- [Download page](https://openagent3.xyz/downloads/context-aware-delegation)