OpenClaw Discord 配置指南
状态
通过官方 Discord 机器人网关为 DM 和公会文本频道就绪。
快速设置(初学者)
- 创建 Discord 机器人并复制机器人令牌
- 在 Discord 应用设置中,启用 Message Content Intent(如果计划使用允许列表或名称查找,还需 Server Members Intent)
- 为 OpenClaw 设置令牌:
- 环境变量:
DISCORD_BOT_TOKEN=... - 或配置:
channels.discord.token: "..."
- 环境变量:
- 如果两者都设置,配置优先(环境回退仅用于默认账号)
- 邀请机器人到您的服务器并授予消息权限(如果只需要 DM,创建私有服务器)
- 启动网关
- DM 访问默认是配对;首次联系时批准配对代码
最小配置:
{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_BOT_TOKEN"
}
}
}目标
- 通过 Discord DM 或公会频道与 OpenClaw 对话
- 直接聊天折叠到代理的主会话(默认
agent:main:main);公会频道保持隔离为agent::discord:channel:(显示名称使用 discord:#) - 默认忽略群组 DM;通过
channels.discord.dm.groupEnabled启用,并通过channels.discord.dm.groupChannels可选限制 - 保持路由确定性:回复始终返回到它们到达的频道
创建您自己的机器人
1) 创建 Discord 应用 + 机器人用户
- Discord Developer Portal → Applications → New Application
- 在您的应用中:
- Bot → Add Bot
- 复制 Bot Token(这是您放入
DISCORD_BOT_TOKEN的内容)
2) 启用 OpenClaw 需要的网关意图
Discord 阻止”特权意图”,除非您显式启用它们。
在 Bot → Privileged Gateway Intents 中,启用:
- Message Content Intent(必需以读取大多数公会中的消息文本;没有它您会看到 “Used disallowed intents” 或机器人将连接但不响应消息)
- Server Members Intent(推荐;某些成员/用户查找和公会中的允许列表匹配需要)
您通常不需要 Presence Intent。
3) 生成邀请 URL(OAuth2 URL Generator)
在您的应用中:OAuth2 → URL Generator
Scopes
- ✅ bot
- ✅ applications.commands(原生命令必需)
Bot 权限(最小基线)
- ✅ View Channels
- ✅ Send Messages
- ✅ Read Message History
- ✅ ✅ Embed Links
- ✅ Attach Files
- ✅ Add Reactions(可选但推荐)
- ✅ Use External Emojis / Stickers(可选;仅在需要时使用)
除非您正在调试并完全信任机器人,否则避免 Administrator。
复制生成的 URL,打开它,选择您的服务器,并安装机器人。
4) 获取 ID(公会/用户/频道)
Discord 到处使用数字 ID;OpenClaw 配置更喜欢 ID。
- Discord(桌面/网页)→ User Settings → Advanced → 启用 Developer Mode
- 右键点击:
- 服务器名称 → Copy Server ID(公会 id)
- 频道(例如 #help)→ Copy Channel ID
- 您的用户 → Copy User ID
5) 配置 OpenClaw
令牌
通过环境变量设置机器人令牌(服务器上推荐):
DISCORD_BOT_TOKEN=...或通过配置:
{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_BOT_TOKEN"
}
}
}允许列表 + 频道路由
示例”单服务器,仅允许我,仅允许 #help”:
{
"channels": {
"discord": {
"enabled": true,
"dm": { "enabled": false },
"guilds": {
"YOUR_GUILD_ID": {
"users": ["YOUR_USER_ID"],
"requireMention": true,
"channels": {
"help": { "allow": true, "requireMention": true }
}
}
}
}
}
}能力和限制
- DM 和公会文本频道(线程被视为单独频道;不支持语音)
- 尽最大努力发送打字指示器;消息分块使用
channels.discord.textChunkLimit(默认 2000)并按行数分割(channels.discord.maxLinesPerMessage,默认 17) - 可选换行分块:设置
channels.discord.chunkMode="newline"以在空白行(段落边界)处分割 - 文件上传支持到配置的
channels.discord.mediaMaxMb(默认 8 MB) - 默认提及门控公会回复以避免嘈杂的机器人
- 当消息引用另一条消息时注入回复上下文(引用内容 + ID)
- 原生回复线程默认关闭;使用
channels.discord.replyToMode和回复标签启用
配置参考
| 配置项 | 说明 |
|---|---|
channels.discord.enabled |
启用/禁用 |
channels.discord.token |
机器人令牌 |
channels.discord.dm.enabled |
启用/禁用所有 DM |
channels.discord.dm.policy |
pairing | allowlist | open | disabled |
channels.discord.dm.allowFrom |
DM 允许列表 |
channels.discord.guilds |
每个公会的规则 |
channels.discord.textChunkLimit |
出站文本分块大小(字符) |
channels.discord.mediaMaxMb |
入站媒体大小上限 |
作者:十一张 创建时间:2026-03-08 22:33
最后编辑:十一张 更新时间:2026-03-28 11:55
最后编辑:十一张 更新时间:2026-03-28 11:55