出海助手-Discord社群
> 本技能改造自开源技能 discord(来源:openclaw/openclaw,openclaw 开源技能生态)。已完整保留原始运行文件(scripts/references/assets 与 LICENSE),并新增中文出海使用说明。原始英文说明见文末「English (Original)」与同目录 SKILL.original.md。
功能说明 / Functional Overview
通过统一的 message 工具对接 Discord(无需单独的 Discord 工具),可发送 / 读取 / 编辑 / 删除消息,发表反应、投票、置顶、创建话题串与搜索等。
适用场景 / Use Cases
- 海外社群运营、客服、公告推送
- 团队频道内的机器人消息与互动
- 多账号(multi-account)场景按
accountId区分
使用方法 / How to Use
- 发送:
{"action":"send","channel":"discord","to":"channel:123","message":"hello"} - 读取:
{"action":"read","channel":"discord","to":"channel:123","limit":20} - 反应:
{"action":"react","channel":"discord","channelId":"123","messageId":"456","emoji":"👍"} - 提及用户用
<@USER_ID>;发送目标为to:"channel:<id>"或to:"user:<id>" - 富 UI 优先用 Components v2,不要与旧版
embeds混用
示例 / Examples
- 发媒体:
{"action":"send","channel":"discord","to":"channel:123","message":"见附件","media":"file:///tmp/example.png"} - 建话题:
{"action":"thread-create","channel":"discord","channelId":"123","messageId":"456","threadName":"bug triage"}
限制说明 / Limitations
- 须遵守
channels.discord.actions.*的权限闸门配置。 - 出站消息避免使用 Markdown 表格。
- 涉及 presence 等敏感操作通常受权限限制。
English (Original) / 英文原文(完整保留)
> The section below is the original skill definition, preserved verbatim for traceability and full functionality.
Discord
Use the message tool with channel: "discord". No separate Discord tool.
Rules
- Respect
channels.discord.actions.*gates. - Prefer explicit
guildId,channelId,messageId,userId. - Multi-account: pass
accountIdwhen needed. - Send targets:
to: "channel:<id>"orto: "user:<id>". - Mention users as
<@USER_ID>. - Avoid Markdown tables in outbound Discord messages.
- Prefer components v2 for rich UI; do not mix v2
componentswith legacyembeds.
Common actions
Send:
{ "action": "send", "channel": "discord", "to": "channel:123", "message": "hello", "silent": true }
Send media:
{
"action": "send",
"channel": "discord",
"to": "channel:123",
"message": "see attachment",
"media": "file:///tmp/example.png"
}
Components v2:
{
"action": "send",
"channel": "discord",
"to": "channel:123",
"message": "Status",
"components": "[Carbon v2 components]"
}
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"],
"pollDurationHours": 24
}
Pin:
{ "action": "pin", "channel": "discord", "channelId": "123", "messageId": "456" }
Thread:
{
"action": "thread-create",
"channel": "discord",
"channelId": "123",
"messageId": "456",
"threadName": "bug triage"
}
Search:
{
"action": "search",
"channel": "discord",
"guildId": "999",
"query": "release notes",
"channelIds": ["123"],
"limit": 10
}
Presence, often gated:
{
"action": "set-presence",
"channel": "discord",
"activityType": "playing",
"activityName": "OpenClaw",
"status": "online"
}