Discord 接入——社区服务器里的 AI 助手
Hermes 消息平台接入第3篇:Discord。把 Hermes 加进你的 Discord 服务器。
这篇教程带你一步步把 Hermes Agent 接入 Discord,让它成为你服务器里随叫随到的 AI 成员。
先搞懂:Hermes 在你服务器里怎么表现?
| 场景 | 行为 |
|---|---|
| 私聊 | 每条消息都回,不用 @ 它,每个私聊独立记忆 |
| 普通频道 | 默认只有 @它 才回,不 @ 就装看不见 |
| 自由回复频道 | 在 DISCORD_FREE_RESPONSE_CHANNELS 里指定后,不用 @ 也回,且不自动开线程,保持轻快聊天 |
| 帖子 | 在帖子内回复,记忆跟父频道隔离 |
| 多人频道 | 默认按用户隔离记忆,Alice 和 Bob 在同一个频道聊天,Hermes 当成两段对话 |
生活化比喻:Hermes 像个有礼貌的客人——没人点名它就不插嘴,你单独找它(私聊)它才热情回应。
想让某个频道变成“随便聊”的客服区? 把它加进 DISCORD_FREE_RESPONSE_CHANNELS 就行。
第1步:创建 Discord 应用
- 打开 Discord 开发者平台,登录
- 点右上角 New Application,起个名字(比如 “Hermes Agent”)
- 点 Create,记下 Application ID(后面拼邀请链接用)
第2步:创建机器人
- 左侧菜单点 Bot
- 把 Public Bot 设为 ON(这样能用 Discord 自带的邀请链接)
- Require OAuth2 Code Grant 保持 OFF
想私有化?Public Bot 设 OFF 的话,第5步必须用手动 URL 方式,不能用安装页自动生成。
第3步:开启特权 Gateway Intents(最关键一步)
在 Bot 页面往下滚到 Privileged Gateway Intents,把这两个打开:
| Intent | 作用 | 必须? |
|---|---|---|
| Server Members Intent | 解析用户名,识别谁在说话 | ✅ 必须 |
| Message Content Intent | 读取消息文字内容 | ✅ 必须 |
警告:机器人显示在线但从不回复?99% 是 Message Content Intent 没开。回去检查这个开关。
点 Save Changes 保存。
第4步:获取 Bot Token
- 在 Bot 页面点 Reset Token
- 有二次验证就输入验证码
- 立刻复制新 token,存到密码管理器里
Token 只显示一次,丢了只能重置。千万别公开或提交到 Git——谁拿到 token 谁就能完全控制你的机器人。
第5步:生成邀请链接
用 OAuth2 URL 把机器人拉进服务器。选 bot 权限,再勾上 Send Messages、Read Message History 等基础权限,打开链接选服务器即可。
进阶:会话与并发
默认配置 group_sessions_per_user: true(在 config.yaml 里):
group_sessions_per_user: true
- 每个人在频道里各聊各的,互不干扰
- Alice 打断自己的任务,不影响 Bob 继续聊
改成 false 则全频道共享一个会话,适合协作房间,但一个人跑长任务会拖累所有人的上下文和 token 消耗。
健康检查(可选)
Hermes 会监控 WebSocket 连接状态,配置在 config.yaml:
discord:
websocket_liveness_interval_seconds: 15
websocket_liveness_failure_threshold: 2
websocket_heartbeat_ack_max_age_seconds: 60
websocket_max_latency_seconds: 30
小总结
接入 Discord 其实就五步:建应用 → 建机器人 → 开 Intents → 拿 Token → 邀请进服务器。最坑的就是忘记开 Message Content Intent,其他都顺风顺水。
下篇预告:机器人进服务器了,怎么让它真正“懂你”?下一篇讲 Hermes 的会话记忆与上下文管理——为什么它记得你昨天说过的话,以及如何让它“选择性失忆”。
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/discord