前言
Discord 是全球最流行的社区交流平台之一。通过将 OpenClaw 连接到 Discord,你可以在服务器中部署一个智能 AI 助手,为社区成员提供即时帮助。本文将从零开始,完整讲解从创建 Discord Bot 到连接 OpenClaw 的全过程。
前置条件
在开始之前,请确保:
- OpenClaw 已安装并正常运行(
openclaw up) - 你拥有一个 Discord 账号
- 你拥有目标 Discord 服务器的管理权限
第一步:创建 Discord 应用和 Bot
1.1 进入开发者门户
访问 Discord Developer Portal,使用你的 Discord 账号登录。
1.2 创建新应用
- 点击右上角的 New Application 按钮
- 输入应用名称,例如 "OpenClaw Assistant"
- 勾选同意开发者服务条款
- 点击 Create
1.3 创建 Bot
- 在左侧菜单中点击 Bot
- 点击 Add Bot,确认创建
- 在 Bot 设置页面中:
- 设置 Bot 头像和用户名
- 点击 Reset Token 获取 Bot Token
- 将 Token 妥善保存,后面配置需要用到
注意:Bot Token 是敏感信息,切勿泄露或提交到公开仓库。
如果不慎泄露,请立即在开发者门户中重置 Token。
1.4 配置 Privileged Intents
在 Bot 设置页面下方,需要开启以下 Privileged Gateway Intents:
| Intent | 说明 | 是否必须 |
|---|---|---|
| Presence Intent | 检测成员在线状态 | 可选 |
| Server Members Intent | 获取成员列表 | 可选 |
| Message Content Intent | 读取消息内容 | 必须 |
Message Content Intent 必须开启,否则 Bot 无法读取用户发送的消息内容。
第二步:邀请 Bot 到服务器
2.1 生成邀请链接
在左侧菜单点击 OAuth2 → URL Generator:
- 在 Scopes 中勾选:
bot和applications.commands - 在 Bot Permissions 中勾选以下权限:
所需权限列表:
├── Send Messages - 发送消息
├── Send Messages in Threads - 在帖子中发送消息
├── Embed Links - 嵌入链接
├── Attach Files - 附加文件
├── Read Message History - 读取消息历史
├── Use Slash Commands - 使用斜杠命令
├── Add Reactions - 添加反应
└── Manage Messages - 管理消息(可选,用于撤回自己的消息)
- 复制生成的 URL
2.2 邀请到服务器
- 在浏览器中打开上一步复制的 URL
- 选择要添加 Bot 的服务器
- 确认权限并点击 Authorize
- 完成人机验证
邀请成功后,Bot 会出现在服务器的成员列表中(显示为离线状态,因为还没有连接 OpenClaw)。
第三步:配置 OpenClaw
3.1 通过配置文件
编辑 ~/.config/openclaw/openclaw.json5:
{
channels: {
discord: {
enabled: true,
// 从开发者门户获取的 Bot Token
botToken: "MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.XXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
// 从开发者门户的 OAuth2 页面获取
clientId: "123456789012345678",
// 触发方式配置
trigger: {
// 是否需要 @Bot 才回复(false 表示所有消息都回复)
mentionRequired: true,
// 自定义触发前缀(可选)
prefix: "!ask",
// 是否响应私信
dmEnabled: true
},
// 回复设置
reply: {
// 是否以 Embed 格式回复
useEmbed: true,
// Embed 颜色(十六进制)
embedColor: "#5865F2",
// 是否在帖子中自动跟随回复
threadReply: true,
// 长消息自动分割的字符数
maxLength: 2000
}
}
}
}
3.2 通过环境变量
export DISCORD_BOT_TOKEN="MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.XXXXXX.XXXX"
export DISCORD_CLIENT_ID="123456789012345678"
3.3 重启服务
配置完成后重启 OpenClaw:
openclaw restart
查看日志确认连接状态:
openclaw logs -f --component channel:discord
成功连接后,日志中会显示:
[INFO] [channel:discord] Bot 已登录为 OpenClaw Assistant#1234
[INFO] [channel:discord] 已连接到 3 个服务器
[INFO] [channel:discord] 斜杠命令已注册
第四步:配置斜杠命令
OpenClaw 支持注册 Discord 斜杠命令(Slash Commands),让用户可以通过 / 触发特定功能。
默认斜杠命令
连接成功后,OpenClaw 会自动注册以下斜杠命令:
| 命令 | 说明 |
|---|---|
/ask <问题> |
向 AI 提问 |
/model <模型名> |
切换当前使用的 AI 模型 |
/reset |
重置对话上下文 |
/help |
显示帮助信息 |
自定义斜杠命令
你可以在配置文件中添加自定义命令:
{
channels: {
discord: {
// ...其他配置
slashCommands: [
{
name: "translate",
description: "翻译文本",
options: [
{
name: "text",
description: "要翻译的文本",
type: "STRING",
required: true
},
{
name: "language",
description: "目标语言",
type: "STRING",
required: false,
choices: [
{ name: "中文", value: "zh" },
{ name: "English", value: "en" },
{ name: "日本語", value: "ja" }
]
}
],
// 关联的技能或系统提示词
skill: "translate"
}
]
}
}
}
多服务器配置
当 Bot 被邀请到多个 Discord 服务器时,你可以为不同服务器设置不同的行为:
{
channels: {
discord: {
enabled: true,
botToken: "your-bot-token",
clientId: "your-client-id",
// 服务器级别配置
guilds: {
// 服务器 ID: 配置
"111111111111111111": {
model: "claude",
systemPrompt: "你是技术支持助手",
allowedChannels: ["general", "bot-chat"],
trigger: { mentionRequired: false }
},
"222222222222222222": {
model: "gpt-4o",
systemPrompt: "你是一个友好的聊天伙伴",
allowedChannels: ["ai-chat"],
trigger: { mentionRequired: true }
}
},
// 未在 guilds 中配置的服务器使用默认设置
defaultGuild: {
model: "claude",
trigger: { mentionRequired: true }
}
}
}
}
获取服务器 ID:在 Discord 中开启开发者模式(设置 → 高级 → 开发者模式),然后右键点击服务器图标 → 复制服务器 ID。
Embed 格式化
OpenClaw 支持将回复格式化为 Discord Embed,让消息更加美观:
{
channels: {
discord: {
reply: {
useEmbed: true,
embedColor: "#5865F2",
embedFooter: "Powered by OpenClaw",
// 代码块自动语法高亮
codeHighlight: true,
// 长回复自动分割为多条 Embed
splitEmbed: true
}
}
}
}
Embed 效果包括:
- 彩色侧边栏指示 AI 回复
- 代码块支持语法高亮
- 页脚显示模型名称和 Token 消耗信息
- 超长内容自动分页显示
故障排查
Bot 显示离线
# 检查 Token 是否正确
openclaw config get channels.discord.botToken
# 检查日志中的错误信息
openclaw logs --level error --component channel:discord
常见原因:Token 不正确、Token 已失效、网络不通。
Bot 不响应消息
# 确认 Message Content Intent 已开启
# 在开发者门户 → Bot → Privileged Gateway Intents 检查
权限不足错误
确保 Bot 在目标频道有发送消息的权限。可以在 Discord 服务器设置中检查 Bot 角色的权限配置。
总结
Discord 集成是 OpenClaw 最常用的频道之一。核心步骤回顾:
- 在 Discord 开发者门户创建应用和 Bot
- 开启 Message Content Intent
- 生成邀请链接并邀请到服务器
- 在 OpenClaw 配置文件中填入 Token
- 重启服务并验证连接
部署完成后,你的 Discord 社区就拥有了一个强大的 AI 助手。