🤖HermesBlog
Hermes 消息平台接入 · 第19篇2026/8/9· Easy Understand Hermes Agent

IRC 接入——经典聊天协议

Hermes 消息平台接入第19篇:IRC。最古老的聊天协议也能接。

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 channelIRC_HOME_CHANNEL 没设就用第一个 IRC_CHANNEL)。

启动网关

hermes gateway start

查看状态用 hermes gateway status,IRC 连接状态一目了然。

小贴士

  • 机器人回复太长会自动拆成多条 PRIVMSG,不会撑爆 IRC 单行限制(默认 450 字节)。
  • 每个服务器+昵称组合有独立的凭据锁,两个 Hermes 配置不会抢同一个 IRC 身份。

好了,去你的 IRC 频道里跟 Hermes 打个招呼吧!🎉

📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/irc