Discord 设置#
Hermes Agent 以机器人形式与 Discord 集成,让你可以通过私信或服务器频道与 AI 助手对话。机器人接收你的消息,通过 Hermes Agent 管道(包括工具调用、记忆和推理)进行处理,并实时响应。它支持文本、语音消息、文件附件和斜杠命令。在开始设置之前,先介绍大多数人最想了解的内容:Hermes 进入服务器后的行为方式。Hermes 的行为方式#
| 上下文 | 行为 |
|---|
| 私信(DM) | Hermes 响应每条消息,无需 @提及。每个私信有独立的会话。 |
| 服务器频道 | 默认情况下,Hermes 仅在被 @提及 时响应。如果你在频道中发帖但未提及它,Hermes 会忽略该消息。 |
| 自由响应频道 | 你可以通过 DISCORD_FREE_RESPONSE_CHANNELS 将特定频道设为无需提及,或通过 DISCORD_REQUIRE_MENTION=false 全局禁用提及要求。这些频道中的消息会直接回复——自动创建线程功能会被跳过,使频道保持轻量级聊天状态。 |
| 线程(Thread) | Hermes 在同一线程中回复。提及规则仍然适用,除非该线程或其父频道被配置为自由响应。线程的会话历史与父频道相互隔离。 |
| 多用户共享频道 | 默认情况下,Hermes 为安全和清晰起见,在频道内按用户隔离会话历史。在同一频道中交谈的两个人不会共享同一份对话记录,除非你明确禁用该功能。 |
| 提及其他用户的消息 | 当 DISCORD_IGNORE_NO_MENTION 为 true(默认值)时,如果消息 @提及了其他用户但未提及机器人,Hermes 保持沉默。这可防止机器人介入针对其他人的对话。如果你希望机器人响应所有消息而不管提及了谁,请设置为 false。此设置仅适用于服务器频道,不适用于私信。 |
如果你想要一个普通的机器人帮助频道,让用户无需每次都 @标记就能与 Hermes 对话,请将该频道添加到 DISCORD_FREE_RESPONSE_CHANNELS。
Discord Gateway(网关)模型#
Hermes 在 Discord 上不是无状态回复的 webhook(网络钩子)。它通过完整的消息网关运行,这意味着每条传入消息都会经过:1.
授权验证(DISCORD_ALLOWED_USERS)
5.
正常的 Hermes agent 执行,包括工具、记忆和斜杠命令
这一点很重要,因为在繁忙服务器中的行为取决于 Discord 路由和 Hermes 会话策略两者。Discord 中的会话模型#
因此,如果 Alice 和 Bob 都在 #research 中与 Hermes 对话,即使他们使用的是同一个可见的 Discord 频道,Hermes 默认也会将其视为独立的对话。仅当你明确希望整个房间共享一个对话时,才将其设置为 false:一个人正在进行的运行可能会中断同一房间中另一个人的后续操作
中断与并发#
Hermes 按会话键跟踪正在运行的 agent。使用默认的 group_sessions_per_user: true 时:Alice 中断自己正在进行的请求只影响她在该频道中的会话
Bob 可以继续在同一频道中交谈,不会继承 Alice 的历史记录或中断 Alice 的运行
使用 group_sessions_per_user: false 时:整个房间共享该频道/线程的一个正在运行的 agent 槽位
本指南将引导你完成完整的设置流程——从在 Discord 开发者门户创建机器人到发送第一条消息。第一步:创建 Discord 应用#
3.
输入应用名称(例如"Hermes Agent")并接受开发者服务条款。
你将进入 General Information 页面。记下 Application ID——稍后构建邀请 URL 时需要用到。第二步:创建机器人#
2.
Discord 会自动为你的应用创建一个机器人用户。你会看到机器人的用户名,可以自定义。
3.
将 Public Bot 设置为 ON——使用 Discord 提供的邀请链接时需要此设置(推荐)。这允许 Installation 标签页生成默认授权 URL。
将 Require OAuth2 Code Grant 保持为 OFF。
你可以在此页面为机器人设置自定义头像和横幅,这是用户在 Discord 中看到的样子。
如果你希望保持机器人私有(Public Bot = OFF),则必须在第五步中使用手动 URL 方法,而不是 Installation 标签页。Discord 提供的链接需要启用 Public Bot。
第三步:启用特权网关 Intent(意图)#
这是整个设置过程中最关键的步骤。如果没有启用正确的 intent,你的机器人将连接到 Discord,但无法读取消息内容。在 Bot 页面,向下滚动到 Privileged Gateway Intents。你会看到三个开关:| Intent | 用途 | 是否必需? |
|---|
| Presence Intent | 查看用户在线/离线状态 | 可选 |
| Server Members Intent | 访问成员列表、解析用户名 | 必需 |
| Message Content Intent | 读取消息的文本内容 | 必需 |
将 Server Members Intent 和 Message Content Intent 都切换为 ON。没有 Message Content Intent,你的机器人会收到消息事件,但消息文本为空——机器人实际上看不到你输入的内容。
没有 Server Members Intent,机器人无法解析允许用户列表中的用户名,可能无法识别是谁在发消息。
如果你的机器人在线但从不响应消息,Message Content Intent 几乎可以肯定是被禁用了。返回 开发者门户,选择你的应用 → Bot → Privileged Gateway Intents,确保 Message Content Intent 已切换为 ON。点击 Save Changes。 如果你的机器人在少于 100 个服务器中,可以自由切换 intent。
如果你的机器人在 100 个或更多服务器中,Discord 要求你提交验证申请才能使用特权 intent。对于个人使用,这不是问题。
第四步:获取机器人 Token#
机器人 token(令牌)是 Hermes Agent 用于以你的机器人身份登录的凭据。仍在 Bot 页面:1.
在 Token 部分,点击 Reset Token。
2.
如果你的 Discord 账号启用了双重身份验证,请输入你的 2FA 代码。
3.
Discord 将显示你的新 token。立即复制它。
Token 只显示一次。如果丢失,你需要重置并生成新的 token。切勿公开分享你的 token 或将其提交到 Git——任何拥有此 token 的人都可以完全控制你的机器人。
将 token 存储在安全的地方(例如密码管理器)。你将在第八步中用到它。第五步:生成邀请 URL#
你需要一个 OAuth2 URL 来将机器人邀请到你的服务器。有两种方式:方式 A:使用 Installation 标签页(推荐)#
此方法要求在第二步中将 Public Bot 设置为 ON。如果你将 Public Bot 设置为 OFF,请改用下面的手动 URL 方法。
2.
在 Installation Contexts 下,启用 Guild Install。
3.
对于 Install Link,选择 Discord Provided Link。
4.
在 Guild Install 的 Default Install Settings 下:Scopes:选择 bot 和 applications.commands
方式 B:手动 URL#
https://discord.com/oauth2/authorize?client_id=YOUR_APP_ID&scope=bot+applications.commands&permissions=274878286912
将 YOUR_APP_ID 替换为第一步中的 Application ID。所需权限#
View Channels — 查看其有权访问的频道
Attach Files — 发送图片、音频和文件输出
Read Message History — 维护对话上下文
推荐的附加权限#
Send Messages in Threads — 在线程对话中响应
Add Reactions — 对消息添加反应以示确认
权限整数#
| 级别 | 权限整数 | 包含内容 |
|---|
| 最低 | 117760 | View Channels、Send Messages、Read Message History、Attach Files |
| 推荐 | 274878286912 | 以上所有权限,加上 Embed Links、Send Messages in Threads、Add Reactions |
第六步:邀请到你的服务器#
1.
在浏览器中打开邀请 URL(来自 Installation 标签页或你构建的手动 URL)。
2.
在 Add to Server 下拉菜单中,选择你的服务器。
3.
点击 Continue,然后点击 Authorize。
你需要在 Discord 服务器上拥有 Manage Server 权限才能邀请机器人。如果你在下拉菜单中看不到你的服务器,请让服务器管理员使用邀请链接。
授权后,机器人将出现在你服务器的成员列表中(在你启动 Hermes 网关之前,它会显示为离线)。第七步:找到你的 Discord 用户 ID#
Hermes Agent 使用你的 Discord 用户 ID 来控制谁可以与机器人交互。查找方式:2.
前往 Settings → Advanced → 将 Developer Mode 切换为 ON。
4.
右键点击你自己的用户名(在消息中、成员列表中或你的个人资料中)→ Copy User ID。
你的用户 ID 是一个类似 284102345871466496 的长数字。开发者模式还允许你以相同方式复制频道 ID 和服务器 ID——右键点击频道或服务器名称并选择 Copy ID。如果你想手动设置主频道,将需要频道 ID。
第八步:配置 Hermes Agent#
方式 A:交互式设置(推荐)#
在提示时选择 Discord,然后在询问时粘贴你的机器人 token 和用户 ID。方式 B:手动配置