Discord (Via
message
)
Use the
message
tool. No provider-specific
discord
tool exposed to the agent.
Musts
Always:
channel: "discord"
.
Respect gating:
channels.discord.actions.*
(some default off:
roles
,
moderation
,
presence
,
channels
).
Prefer explicit ids:
guildId
,
channelId
,
messageId
,
userId
.
Multi-account: optional
accountId
.
Guidelines
Avoid Markdown tables in outbound Discord messages.
Mention users as
<@USER_ID>
.
Prefer Discord components v2 (
components
) for rich UI; use legacy
embeds
only when you must.
Targets
Send-like actions:
to: "channel:"
or
to: "user:"
.
Message-specific actions:
channelId: ""
(or
to
) +
messageId: ""
.
Common Actions (Examples)
Send message:
{
"action"
:
"send"
,
"channel"
:
"discord"
,
"to"
:
"channel:123"
,
"message"
:
"hello"
,
"silent"
:
true
}
Send with media:
{
"action"
:
"send"
,
"channel"
:
"discord"
,
"to"
:
"channel:123"
,
"message"
:
"see attachment"
,
"media"
:
"file:///tmp/example.png"
}
Optional
silent: true
to suppress Discord notifications.
Send with components v2 (recommended for rich UI):
{
"action"
:
"send"
,
"channel"
:
"discord"
,
"to"
:
"channel:123"
,
"message"
:
"Status update"
,
"components"
:
"[Carbon v2 components]"
}
components
expects Carbon component instances (Container, TextDisplay, etc.) from JS/TS integrations.
Do not combine
components
with
embeds
(Discord rejects v2 + embeds).
Legacy embeds (not recommended):
{
"action"
:
"send"
,
"channel"
:
"discord"
,
"to"
:
"channel:123"
,
"message"
:
"Status update"
,
"embeds"
:
[
{
"title"
:
"Legacy"
,
"description"
:
"Embeds are legacy."
}
]
}
embeds
are ignored when components v2 are present.
React:
{
"action"
:
"react"
,
"channel"
:
"discord"
,
"channelId"
:
"123"
,
"messageId"
:
"456"
,
"emoji"
:
"✅"
}
Read:
{
"action"
:
"read"
,
"channel"
:
"discord"
,
"to"
:
"channel:123"
,
"limit"
:
20
}
Edit / delete:
{
"action"
:
"edit"
,
"channel"
:
"discord"
,
"channelId"
:
"123"
,
"messageId"
:
"456"
,
"message"
:
"fixed typo"
}
{
"action"
:
"delete"
,
"channel"
:
"discord"
,
"channelId"
:
"123"
,
"messageId"
:
"456"
}
Poll:
{
"action"
:
"poll"
,
"channel"
:
"discord"
,
"to"
:
"channel:123"
,
"pollQuestion"
:
"Lunch?"
,
"pollOption"
:
[
"Pizza"
,
"Sushi"
,
"Salad"
]
,
"pollMulti"
:
false
,
"pollDurationHours"
:
24
}
Pins:
{
"action"
:
"pin"
,
"channel"
:
"discord"
,
"channelId"
:
"123"
,
"messageId"
:
"456"
}
Threads:
{
"action"
:
"thread-create"
,
"channel"
:
"discord"
,
"channelId"
:
"123"
,
"messageId"
:
"456"
,
"threadName"
:
"bug triage"
}
Search:
{
"action"
:
"search"
,
"channel"
:
"discord"
,
"guildId"
:
"999"
,
"query"
:
"release notes"
,
"channelIds"
:
[
"123"
,
"456"
]
,
"limit"
:
10
}
Presence (often gated):
{
"action"
:
"set-presence"
,
"channel"
:
"discord"
,
"activityType"
:
"playing"
,
"activityName"
:
"with fire"
,
"status"
:
"online"
}
Writing Style (Discord)
Short, conversational, low ceremony.
No markdown tables.
Mention users as
<@USER_ID>
.