Skip to content

Discord 接入

Hermes 支持通过 Discord Bot 接入,可在服务器频道或私信中使用,并支持加入语音频道进行语音交互。


前置条件

  • 已安装并运行 Hermes
  • 拥有 Discord 账号
  • 拥有一个 Discord 服务器(或有权限邀请 Bot 的服务器)

第一步:创建 Discord 应用和 Bot

  1. 打开 Discord Developer Portal

  2. 点击右上角 New Application,输入应用名称(如 Hermes Agent

  3. 进入左侧 Bot 页面,点击 Add Bot,确认创建

  4. 在 Bot 页面找到 Token 区域,点击 Reset Token 获取 Bot Token,立即复制保存(只显示一次)

  5. 在同一页面开启以下权限(Privileged Gateway Intents):

    • Server Members Intent
    • Message Content Intent

第二步:配置环境变量

编辑 ~/.hermes/.env

bash
# Discord Bot Token
DISCORD_BOT_TOKEN=MTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# 允许使用的用户 ID(Discord 用户的数字 ID,多个用逗号分隔)
DISCORD_ALLOWED_USERS=123456789012345678,987654321098765432

如何获取 Discord 用户 ID

  1. 在 Discord 设置中开启开发者模式(设置 -> 高级 -> 开发者模式)
  2. 右键点击自己的用户名,选择 复制用户 ID

第三步:邀请 Bot 到服务器

  1. 在 Developer Portal 进入 OAuth2 -> URL Generator

  2. Scopes 中勾选:

    • bot
    • applications.commands
  3. Bot Permissions 中勾选必要权限:

    权限说明
    Send Messages发送文字消息
    Read Message History读取历史消息
    Attach Files发送文件附件
    Embed Links发送嵌入式内容
    Connect连接语音频道
    Speak在语音频道发言
    Use Voice Activity使用语音活动检测
  4. 复制生成的链接,在浏览器中打开,选择要邀请 Bot 的服务器,点击 授权


第四步:运行配置向导并启动

bash
hermes gateway setup
# 选择 Discord

hermes gateway start

语音频道支持

Hermes 可以加入 Discord 语音频道,实现语音对话。

语音命令

在文字频道中发送以下命令控制语音:

命令说明
/voice join加入当前你所在的语音频道
/voice leave离开语音频道
/voice status查看当前语音连接状态

使用流程

  1. 先加入一个语音频道
  2. 在文字频道发送 /voice join
  3. Bot 会加入你所在的语音频道
  4. 对着麦克风说话,Bot 会自动检测并响应
  5. 发送 /voice leave 结束语音会话

语音权限要求

Bot 需要以下语音相关权限(邀请时需勾选):

  • Connect(连接语音频道)
  • Speak(在频道中发言/播放音频)
  • Use Voice Activity(使用语音活动检测,而非按键说话模式)

频道和私信使用

私信(DM)

直接向 Bot 发送私信即可开始对话,无需在服务器中使用。

服务器频道

在服务器频道中,有两种触发方式:

  1. 提及 Bot@HermesAgent 你好,帮我写一段代码
  2. 私信模式:直接在 Bot 专属频道中发送消息(取决于服务器配置)

斜杠命令

Hermes Discord Bot 支持以下斜杠命令(输入 / 后从菜单选择):

命令说明
/new开始新会话
/reset重置当前会话
/model切换 AI 模型
/voice join加入语音频道
/voice leave离开语音频道
/voice status语音状态
/help显示帮助

常见问题

Bot 在线但不响应消息?

  • 确认已开启 Message Content Intent(Developer Portal -> Bot 页面)
  • 确认你的用户 ID 在 DISCORD_ALLOWED_USERS
  • 在服务器频道中确认用了 @Bot名 提及方式

Bot 无法加入语音频道?

  • 确认 Bot 有 ConnectSpeak 权限
  • 确认 Bot 已被邀请到服务器(不只是私信可用)
  • 检查语音频道是否有用户数量限制

斜杠命令不显示?

  • 邀请链接中需包含 applications.commands scope
  • 等待几分钟让命令同步到 Discord 服务器

基于 MIT 许可发布 | 由 Nous Research 开发