send_message
Send a text message to a single agent for 1:1 communication, dispatching work, or relaying status updates.
Instructions
Send a text message addressed to a single agent.
When to use: 1:1 communication, dispatching work, relaying a status update, asking a peer a question. Prefer broadcast for fan-out to many agents, post_to_channel for topical group coordination, and post_task (or post_task_auto) when the recipient should track state-machine progress (accept/complete/reject) rather than a free-text message.
Behavior: stores the message with status='pending' and notifies any matching webhook subscribers (message.sent event). The recipient sees it on its next get_messages call (which auto-marks read unless peek=true). Content is encrypted at rest if RELAY_ENCRYPTION_KEY is set. Caps at RELAY_MAX_PAYLOAD_BYTES (default 64 KB). Auth: sender must present a valid token whose row matches from.
Returns: { success: true, message_id, from, to, priority, note }. The new message is stored with status='pending' until the recipient drains it.
Errors: AUTH_FAILED (token missing/mismatched), SENDER_NOT_REGISTERED (caller's agent row absent), PAYLOAD_TOO_LARGE, RATE_LIMITED.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient agent name | |
| from | Yes | Sender agent name | |
| content | No | Message content (max 64KB by default; see RELAY_MAX_PAYLOAD_BYTES). Alias: `message`. | |
| message | No | Alias for `content` (parity with the REST /api/send-message endpoint + the agent-team SendMessage tool). | |
| deadline | No | ADR-0011: optional ISO8601 deadline for an 'obligation'. Overdue is reported strictly past this instant; omit to use the tunable default bound (RELAY_OVERDUE_SECONDS). Ignored for log/ask. | |
| priority | No | Message priority | normal |
| agent_token | No | Your agent token (from register_agent response). Optional here — also resolvable from RELAY_AGENT_TOKEN env or X-Agent-Token header. | |
| disposition | No | ADR-0011 disposition: 'log' (default, FYI, never overdue) | 'ask' (expects a reply/resolve) | 'obligation' (an action owed; pair with optional `deadline`). Overdue is report-only — query it via get_outstanding. | log |