#9984: feat: Add Discord embed support to message action schema
agents
stale
Cluster:
Discord Message Enhancements
## What
Adds `embeds` field to the message action schema for Discord sends.
## Why
The Discord plugin already **fully supports embeds** in the send action:
- `src/channels/plugins/actions/discord/handle-action.ts` extracts `params.embeds`
- `src/discord/send.shared.ts` passes embeds directly to Discord's REST API
This capability just wasn't exposed in the tool schema, so agents couldn't discover or use it.
## How
Simple schema addition using the same flexible pattern as Adaptive Cards:
- Array of objects with `additionalProperties: true`
- Allows full access to all Discord embed features without rigid validation
## Example Usage
```json
{
"action": "send",
"target": "#general",
"message": "Check this out!",
"embeds": [{
"title": "Hello World",
"description": "This is a rich embed",
"color": 5814783,
"fields": [
{ "name": "Field 1", "value": "Value 1", "inline": true }
],
"footer": { "text": "OpenClaw" }
}]
}
## Testing
Has been tested fully with Discord.
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
This PR updates the message tool’s TypeBox schema (`src/agents/tools/message-tool.ts`) to expose a new optional `embeds` field on the send action parameters. The new field is defined as an array of free-form objects (`additionalProperties: true`), mirroring the existing flexible pattern used for `card`, so agents can discover and supply Discord embed payloads that are already supported downstream by the Discord message action implementation.
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge with minimal risk.
- Only a single schema file changes, adding an optional field using an existing permissive schema pattern (similar to `card`). No control flow or runtime logic is modified, and the change is backward-compatible because the new parameter is optional.
- No files require special attention
<!-- greptile_other_comments_section -->
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#10712: feat(discord): add compact mode for message reads
by skoteskote · 2026-02-06
76.7%
#12074: feat(discord): enhanced forum post creation with multi-tag support
by xiaoyaner0201 · 2026-02-08
74.5%
#20913: fix: intercept Discord embed images to enforce mediaMaxMb
by MumuTW · 2026-02-19
73.6%
#18940: Agents: expose message tool buttons schema in scoped contexts
by saurabhchopade · 2026-02-17
72.8%
#19917: feat(discord): allow disabling intermediate status reactions
by Gitjay11 · 2026-02-18
72.1%
#15407: feat: Add `message_id` to inbound metadata
by frosso · 2026-02-13
70.3%
#12950: feat: add Telegram pin/unpin message support
by alex-muradov · 2026-02-09
70.1%
#12199: fix(message): add threadId parameter to fetch schema for Slack thre...
by dbg-vanie · 2026-02-09
70.1%
#15864: feat: add deliverOnlyToolMessages config for clean messaging channe...
by gandalf-the-engineer · 2026-02-14
69.8%
#15626: Slack: add channel create for message tool
by imWildCat · 2026-02-13
69.5%