首页 教程 分类 Skills下载 关于
ZH EN JA KO
频道对接

OpenClaw连接Discord机器人完整教程

· 11 分钟

前言

Discord 是全球最流行的社区交流平台之一。通过将 OpenClaw 连接到 Discord,你可以在服务器中部署一个智能 AI 助手,为社区成员提供即时帮助。本文将从零开始,完整讲解从创建 Discord Bot 到连接 OpenClaw 的全过程。

前置条件

在开始之前,请确保:

  • OpenClaw 已安装并正常运行(openclaw up
  • 你拥有一个 Discord 账号
  • 你拥有目标 Discord 服务器的管理权限

第一步:创建 Discord 应用和 Bot

1.1 进入开发者门户

访问 Discord Developer Portal,使用你的 Discord 账号登录。

1.2 创建新应用

  1. 点击右上角的 New Application 按钮
  2. 输入应用名称,例如 "OpenClaw Assistant"
  3. 勾选同意开发者服务条款
  4. 点击 Create

1.3 创建 Bot

  1. 在左侧菜单中点击 Bot
  2. 点击 Add Bot,确认创建
  3. 在 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 生成邀请链接

在左侧菜单点击 OAuth2URL Generator

  1. Scopes 中勾选:botapplications.commands
  2. Bot Permissions 中勾选以下权限:
所需权限列表:
├── Send Messages        - 发送消息
├── Send Messages in Threads - 在帖子中发送消息
├── Embed Links          - 嵌入链接
├── Attach Files         - 附加文件
├── Read Message History - 读取消息历史
├── Use Slash Commands   - 使用斜杠命令
├── Add Reactions        - 添加反应
└── Manage Messages      - 管理消息(可选,用于撤回自己的消息)
  1. 复制生成的 URL

2.2 邀请到服务器

  1. 在浏览器中打开上一步复制的 URL
  2. 选择要添加 Bot 的服务器
  3. 确认权限并点击 Authorize
  4. 完成人机验证

邀请成功后,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 最常用的频道之一。核心步骤回顾:

  1. 在 Discord 开发者门户创建应用和 Bot
  2. 开启 Message Content Intent
  3. 生成邀请链接并邀请到服务器
  4. 在 OpenClaw 配置文件中填入 Token
  5. 重启服务并验证连接

部署完成后,你的 Discord 社区就拥有了一个强大的 AI 助手。

OpenClaw 是开源免费的个人AI助手,支持 WhatsApp、Telegram、Discord 等多平台接入