Discord
约 1960 字大约 7 分钟
2026-03-02
概述
Discord 是 OpenClaw 支持的主流 IM 渠道之一,特别适合开发者社区、游戏团队和技术讨论群组。通过接入 Discord,您可以在熟悉的社交环境中与 OpenClaw Agent 进行交互,实现智能化的社区管理和协作。
前置准备
在开始配置之前,请确保:
- 已完成 OpenClaw 的基础安装(
npm install -g openclaw@latest) - 已完成初始化配置(
openclaw onboard --install-daemon) - 拥有 Discord 账号并有权限创建应用
配置步骤
1. 创建 Discord 应用
访问 Discord 开发者平台:https://discord.com/developers/applications
- 点击「New Application」按钮
- 输入应用名称(建议命名为「OpenClaw」)
- 同意服务条款并创建应用
2. 配置 Bot 设置
在应用管理页面,进入「Bot」标签页:
2.1 创建 Bot
- 点击「Add Bot」按钮
- 确认创建 Bot
2.2 配置 Bot 权限
开启以下必要配置项:
- Presence Intent:允许 Bot 查看在线状态
- Server Members Intent:允许 Bot 访问服务器成员信息
- Message Content Intent:允许 Bot 读取消息内容(重要!)
2.3 获取 Bot Token
- 在「Bot」页面找到「TOKEN」部分
- 点击「Reset Token」生成新令牌
- 复制并妥善保存 Token(仅显示一次)
安全提示
Bot Token 是敏感信息,请勿泄露或提交到公开代码仓库。
3. 配置 OAuth2 权限
在应用管理页面,进入「OAuth2」-「URL Generator」标签页:
3.1 选择 Scopes
勾选以下权限范围:
bot:基础机器人权限applications.commands:支持斜杠命令(可选)
3.2 选择 Bot Permissions
勾选以下机器人权限:
Text Permissions:
- Send Messages(发送消息)
- Send Messages in Threads(在线程中发送消息)
- Embed Links(嵌入链接)
- Attach Files(附加文件)
- Read Message History(读取消息历史)
- Add Reactions(添加反应)
- Use External Emojis(使用外部表情)
General Permissions:
- View Channels(查看频道)
3.3 生成邀请链接
配置完成后,页面底部会自动生成邀请 URL,复制此链接备用。
4. 创建 Discord Server 并添加 Bot
4.1 创建 Server
如果还没有测试用的 Discord Server:
- 打开 Discord 客户端
- 点击左侧「+」按钮
- 选择「Create My Own」
- 根据引导完成 Server 创建
4.2 邀请 Bot 加入 Server
- 将步骤 3.3 中复制的 OAuth2 URL 粘贴到浏览器
- 在弹出页面中选择目标 Server
- 确认权限并授权
- 完成后,Bot 会出现在 Server 的成员列表中
5. 配置 OpenClaw Discord Channel
5.1 添加 Discord Channel
在终端执行以下命令:
openclaw channels add按照交互式引导完成配置:
- 在渠道列表中选择「Discord(Bot API)」
- 输入在步骤 2.3 中获取的 Bot Token
- 选择频道策略:
- Open:响应所有频道消息(适合测试环境)
- Allowlist:仅响应白名单频道(推荐用于生产环境)
- 选择「Finished」完成配置
5.2 验证配置
配置完成后:
- 打开 Web 端:
openclaw dashboard - 进入 Channels 页面
- 确认 Discord 状态为「Running」
6. 测试 Bot 功能
在 Discord Server 的任意文字频道中:
- @提及 OpenClaw Bot
- 发送测试消息,例如:「Hello, OpenClaw!」
- 如果 Bot 能正常回复,说明接入成功
高级配置
频道白名单管理
如果选择了 Allowlist 策略,可以通过配置文件精细化控制允许的频道:
{
"channels": {
"discord": {
"enabled": true,
"groupPolicy": "allowlist",
"accounts": {
"main": {
"token": "${DISCORD_BOT_TOKEN}",
"guilds": {
"${SERVER_ID}": {
"requireMention": true,
"channels": {
"${CHANNEL_ID}": {
"allow": true
}
}
}
}
}
}
}
}
}配置说明:
requireMention:设为true时,Bot 仅响应 @提及的消息guilds:Server(服务器)配置channels:频道级别的访问控制
多 Agent 配置
Discord 支持在同一 Server 中运行多个 Bot,每个 Bot 绑定不同的 Agent,实现专业化分工。
步骤 1:创建多个 Agent
openclaw agents add coder # 创建专门处理代码的 Agent
openclaw agents add support # 创建技术支持 Agent步骤 2:创建多个 Discord Bot
重复「创建 Discord 应用」步骤,为每个 Agent 创建独立的 Bot,并获取各自的 Token。
步骤 3:配置 Agent 绑定
编辑配置文件,将每个 Agent 绑定到对应的 Bot:
{
"bindings": [
{
"agentId": "main",
"match": {
"channel": "discord",
"accountId": "main"
}
},
{
"agentId": "coder",
"match": {
"channel": "discord",
"accountId": "coder"
}
},
{
"agentId": "support",
"match": {
"channel": "discord",
"accountId": "support"
}
}
],
"channels": {
"discord": {
"enabled": true,
"allowBots": true,
"groupPolicy": "allowlist",
"accounts": {
"main": {
"token": "${DISCORD_BOT_TOKEN_1}",
"groupPolicy": "allowlist",
"guilds": {
"${SERVER_ID}": {
"requireMention": true,
"channels": {
"${GENERAL_CHANNEL_ID}": {
"allow": true
}
}
}
}
},
"coder": {
"token": "${DISCORD_BOT_TOKEN_2}",
"groupPolicy": "allowlist",
"guilds": {
"${SERVER_ID}": {
"requireMention": true,
"channels": {
"${DEV_CHANNEL_ID}": {
"allow": true
}
}
}
}
},
"support": {
"token": "${DISCORD_BOT_TOKEN_3}",
"groupPolicy": "allowlist",
"guilds": {
"${SERVER_ID}": {
"requireMention": true,
"channels": {
"${SUPPORT_CHANNEL_ID}": {
"allow": true
}
}
}
}
}
}
}
}
}步骤 4:为 Agent 定制灵魂
为每个 Agent 编辑 SOUL.md 文件,定义其专属性格和职责:
# 编辑 coder Agent 的灵魂文件
openclaw agents edit coder --soul示例 SOUL.md 内容:
# Coder Agent
## 核心原则
- 专注于代码审查、编写和技术问题解答
- 遵循最佳实践和代码规范
- 提供清晰的技术解释
## 风格定位
- 技术专业、逻辑清晰
- 代码示例丰富
- 注重性能和安全性
## 边界
- 不处理非技术问题
- 不提供项目管理建议用户白名单
限制 Bot 仅响应特定用户:
{
"guilds": {
"${SERVER_ID}": {
"requireMention": true,
"users": [
"${USER_ID_1}",
"${USER_ID_2}"
]
}
}
}使用场景
场景 1:开发者社区助手
在技术社区 Server 中,OpenClaw 可以:
- 回答编程问题和技术咨询
- 提供代码示例和最佳实践
- 协助调试和问题排查
- 分享技术资源和文档
场景 2:GitHub PR 自动审查
结合 GitHub Skills,实现自动化代码审查:
@OpenClaw 帮我审查这个项目的 PR:https://github.com/user/repo/pull/123OpenClaw 会自动分析 PR 内容,提供审查意见和改进建议。
场景 3:定时内容推送
利用 Heartbeat 功能,实现定时推送:
- Reddit 热门帖子摘要
- 技术新闻简报
- 项目状态更新
- 待办事项提醒
示例:
@OpenClaw 每天早上9点推送 r/programming 的热门帖子摘要场景 4:游戏团队协作
在游戏团队 Server 中:
- 管理活动日程和报名
- 记录战术讨论和复盘
- 查询游戏数据和攻略
- 协调团队成员在线时间
常见问题
Q: Bot 无法读取消息内容?
确保在 Bot 设置中开启了「Message Content Intent」权限。这是 Discord 的新要求,未开启此权限 Bot 无法读取消息内容。
Q: 如何获取 Server ID 和 Channel ID?
- 在 Discord 中开启「开发者模式」:设置 → 高级 → 开发者模式
- 右键点击 Server 或频道,选择「复制 ID」
Q: Bot 在线但不响应消息?
检查以下几点:
- 确认 Bot 有权限查看和发送消息到该频道
- 检查是否设置了
requireMention: true,需要 @提及 Bot - 查看 OpenClaw 日志:
openclaw logs - 确认频道在白名单中(如果使用 Allowlist 策略)
Q: 如何防止 Bot 响应其他 Bot 的消息?
在配置中添加:
{
"allowBots": false
}Q: 多个 Bot 如何避免相互干扰?
为每个 Bot 分配不同的频道,或使用不同的触发条件(如特定前缀或 @提及)。
最佳实践
- 权限最小化:只授予 Bot 必要的权限,避免过度授权
- 使用白名单:生产环境建议使用 Allowlist 模式,精确控制可访问的频道
- 要求 @提及:设置
requireMention: true,避免 Bot 响应所有消息 - 分离环境:为测试和生产创建不同的 Bot 和 Server
- 定期轮换 Token:定期更新 Bot Token 以提高安全性
- 监控日志:通过
openclaw logs监控运行状态和异常 - 多 Agent 分工:根据频道用途配置专门的 Agent,提高响应质量
性能优化
减少不必要的触发
{
"requireMention": true,
"ignorePrefix": ["!", "/"]
}限流配置
{
"rateLimit": {
"maxRequests": 10,
"windowMs": 60000
}
}