根据官方 Discord 文档,OpenClaw 已支持通过 Discord Bot API + Gateway 与私信和服务器文字频道通信。它很适合服务器、频道和小团队协作。
先理解 Discord 在 OpenClaw 里的默认行为
官方说明里有几个很关键的默认值:
- 私信默认采用
pairing - 服务器频道通常默认要求提及,避免机器人过于吵闹
- 群组私信默认忽略
- 服务器频道会保持独立会话,不会和主私聊会话混在一起
这意味着 Discord 一上来就是“偏保守”的设计,而不是默认全开放。
新手快速设置
按照官方文档,最短路径是:
- 创建 Discord 机器人并复制 Bot Token
- 启用
Message Content Intent - 如果你准备做允许列表或成员名称查找,再启用
Server Members Intent - 配置
DISCORD_BOT_TOKEN或channels.discord.token - 把机器人邀请到测试服务器
- 启动 Gateway
最小配置
官方给出的最小配置是:
{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_BOT_TOKEN"
}
}
}
说明:
- 如果你同时设置了配置和环境变量,配置优先
- 环境变量回退更适合默认账户
需要开启哪些 Intent
官方文档明确提到:
Message Content Intent:建议开启,否则机器人通常看不到消息内容Server Members Intent:推荐在你需要 allowlist 或按名称解析成员时开启
通常不需要:
Presence Intent
邀请机器人时推荐权限
官方文档在 OAuth2 URL Generator 中建议勾选:
botapplications.commands
最小基础权限建议包括:
- View Channels
- Send Messages
- Read Message History
- Embed Links
- Attach Files
可选但推荐:
- Add Reactions
官方也特别提醒:
- 除非你在调试且完全信任机器人,否则不要直接给
Administrator
推荐的接入策略
第一次接 Discord 时,我建议这样做:
- 只加到一个测试服务器
- 只开放一个测试频道
- 先确认私信可用
- 再慢慢开放频道和更细规则
为什么 Discord 经常“看起来在线但不回”
最常见的原因通常不是 Gateway 坏了,而是:
- 没开
Message Content Intent - 频道权限不够
- 机器人没被提及
- 当前频道不在允许规则里
- 私信仍处在
pairing阶段
一个稳妥的第一阶段目标
第一阶段不要同时追求私信、多个服务器、多个频道全都可用。只要先跑通这条链路就够:
- 机器人进测试服务器
- 一个测试频道能看到消息
- 机器人能在被提及时回复
只要这三步成功,再扩展配置就容易很多。