Hermes 消息平台接入 · 第19篇2026/8/9· Easy Understand Hermes Agent
IRC 接入——经典聊天协议
Hermes 消息平台接入第19篇:IRC。最古老的聊天协议也能接。
IRC 接入——经典聊天协议
兄弟们,今天咱们来聊点复古的——IRC。别一听“经典协议”就划走,这玩意儿可是互联网聊天室的活化石,至今还在大量开源社区里活跃着。Libera.Chat 上随便一个频道,都可能是你 AI 助手的完美新家。
Hermes 接入 IRC 有多简单?零依赖、零 SDK、零守护进程,纯 Python 标准库 asyncio 直接开聊。你不需要装任何额外的东西,配置好就能上线。
准备工作
先备齐这几样:
- 一个 IRC 服务器(比如
irc.libera.chat) - 一个要加入的频道(比如
#hermes,多个频道用逗号分隔) - 给机器人起个昵称(默认
hermes-bot) - 如果服务器要求认证,准备好注册昵称和 NickServ 密码
两种配置方式,任选其一
方式 A:配置文件(推荐)
编辑 ~/.hermes/gateway-config.yaml:
gateway:
platforms:
irc:
enabled: true
extra:
server: irc.libera.chat
port: 6697
nickname: hermes-bot
channel: "#hermes"
use_tls: true
server_password: "" # 服务器密码(可选)
nickserv_password: "" # NickServ 识别密码(可选)
allowed_users: [] # 留空 = 允许所有人,或填昵称列表
max_message_length: 450 # IRC 单行长度限制
方式 B:环境变量
| 变量 | 必填 | 说明 |
|---|---|---|
IRC_SERVER |
✅ | 服务器地址 |
IRC_CHANNEL |
✅ | 频道,多个用逗号分隔 |
IRC_NICKNAME |
✅ | 机器人昵称 |
IRC_PORT |
— | 端口,默认 TLS 6697 |
IRC_USE_TLS |
— | 是否启用 TLS |
IRC_NICKSERV_PASSWORD |
— | NickServ 密码 |
IRC_ALLOWED_USERS |
— | 允许对话的昵称列表 |
IRC_ALLOW_ALL_USERS |
— | 允许频道内所有人对话(仅测试用) |
权限控制,别裸奔
默认情况下,只有 allowed_users 里列出的昵称才能和机器人对话。如果你把列表留空,又设了 IRC_ALLOW_ALL_USERS=true,那频道里谁都能使唤你的 AI——这在公网上很危险,因为 IRC 昵称本身不认证,除非网络强制 NickServ。
所以,建议设置 NickServ 密码,让机器人上线时自动 IDENTIFY,保住自己的马甲。
频道 vs 私聊
- 在频道里 @ 机器人 → 群聊模式
- 直接私聊机器人 → 私聊模式
定时任务和通知默认发到 home channel(IRC_HOME_CHANNEL 没设就用第一个 IRC_CHANNEL)。
启动网关
hermes gateway start
查看状态用 hermes gateway status,IRC 连接状态一目了然。
小贴士
- 机器人回复太长会自动拆成多条
PRIVMSG,不会撑爆 IRC 单行限制(默认 450 字节)。 - 每个服务器+昵称组合有独立的凭据锁,两个 Hermes 配置不会抢同一个 IRC 身份。
好了,去你的 IRC 频道里跟 Hermes 打个招呼吧!🎉
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/irc