Discord 接入——社区服务器里的 AI 助手
Hermes 消息平台接入第3篇:Discord。把 Hermes 加进你的 Discord 服务器。
Discord 接入——社区服务器里的 AI 助手
把 Hermes Agent 接进你的 Discord 服务器,等于给社区请了一位 24 小时在线的 AI 助手。它不仅能陪你私聊,还能在频道里回答问题、处理文件、听语音消息,甚至支持斜杠命令。今天我们就一步步把它请进服务器。
它在你服务器里会怎么表现?
先搞清楚 Hermes 的“性格”,免得它乱说话:
- 私聊(DM):每条消息都回,不用 @它,而且每个私聊都有独立的会话记忆。
- 普通频道:默认只有你 @它 才回应,不 @ 就装看不见。
- 自由响应频道:如果你想让某个频道不用 @ 也能聊,把它加进
DISCORD_FREE_RESPONSE_CHANNELS环境变量就行(也可以用DISCORD_REQUIRE_MENTION=false全局关掉 @ 要求)。这种频道里 Hermes 默认直接内联回复,不建线程,保持频道轻快。想让每条顶层消息都自动开一个线程、同时又不要求 @,就把discord.free_response_auto_thread设成true。 - 线程:会在原线程里回复,会话历史跟主频道隔离。
- 多人共用的频道:默认每个用户有独立的会话历史,Alice 和 Bob 在同一个频道里跟 Hermes 聊天,彼此互不干扰。
小提示:想开一个“机器人帮助频道”,让大家不用 @ 就能问问题?把那个频道加进
DISCORD_FREE_RESPONSE_CHANNELS就搞定了。
还有一个贴心设定:如果一条消息 @ 了别人但没 @ Hermes,它默认会保持沉默(DISCORD_IGNORE_NO_MENTION=true),不会插嘴别人的对话。
背后的会话模型
Hermes 在 Discord 里不是简单的“收到消息就回复”,而是走完整的消息网关:授权检查 → 提及/自由响应判断 → 会话查找 → 加载历史 → 执行智能体逻辑(工具、记忆、斜杠命令)→ 回复。
默认情况下,每个私聊、每个线程、每个用户在共享频道里都有自己的独立会话。这个行为由 config.yaml 控制:
group_sessions_per_user: true
如果你想要整个房间共享一个对话(适合协作场景),改成:
group_sessions_per_user: false
但要注意:共享会话意味着大家共享上下文和 token 消耗,一个人跑个耗时任务可能会拖慢所有人。
并发与中断
默认模式下,Alice 中断自己的请求只影响她自己,Bob 可以继续在同一个频道聊天,互不干扰。但如果关闭了按用户隔离,整个频道共享一个运行槽位,不同人的消息就可能互相打断或排队。
连接健康监控
新版增加了 WebSocket 健康检查——REST 接口正常不代表网关连接正常。Hermes 会综合判断连接状态、心跳 ACK 年龄、延迟,以及距离上一条解析到的网关事件过了多久,连续异常后自动重连。你可以在 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
websocket_event_max_silence_seconds: 14400
最后那个 websocket_event_max_silence_seconds 专门盯着“事件派发”这一项:连接可能一直 ESTABLISHED、心跳也照常 ACK,却一条事件都不发,光看传输层是发现不了的。默认 4 小时,安静的服务器本来就可能几小时没事件,所以别调太小。另外,任何一项设成 0 都会关掉整个 WebSocket 探活,解析不出正数的值(比如 15s、nan、true、-1)也一样会关掉并打警告——探活没生效就去翻 gateway.log。
第一步:创建 Discord 应用
- 打开 Discord Developer Portal 并登录。
- 点右上角 New Application,给它起个名字(比如 “Hermes Agent”)。
- 同意条款,点 Create。
记下 Application ID,后面拼邀请链接要用。
第二步:创建机器人
- 左侧菜单点 Bot。
- Discord 会自动创建一个机器人用户,你可以改它的名字。
- 在 Authorization Flow 里,把 Public Bot 打开——这样才能用 Discord 提供的邀请链接。
接下来就是拿邀请链接把机器人拉进你的服务器,然后配置好环境变量,你的社区 AI 助手就正式上岗了!
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/discord