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

IRC 接入——经典聊天协议

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

这篇教程将手把手教你如何把 Hermes Agent 接入 IRC(互联网中继聊天),让智能体在古老的聊天室里为你服务。


什么是 IRC?先打个比方

想象 IRC 是一个老式电话总机室:每个频道(#hermes)是一间会议室,机器人就是坐在里面的一位接线员。它不说话则已,一说话就是纯文本——没有表情包、图片或文件,就像发短信一样简单。

好消息是:Hermes 的 IRC 适配器不需要安装任何额外软件,它用 Python 自带的“翻译官”(asyncio)直接和 IRC 服务器对话。无论你是连公共网络(如 Libera.Chat)还是自己搭的私服,都能用。


准备工作(第1步)

你需要先准备好三样东西:

  1. 一个 IRC 服务器地址(比如 irc.libera.chat
  2. 一个想加入的频道(比如 #hermes,多个频道用逗号分隔)
  3. 给机器人起个名字(默认叫 hermes-bot

如果你的服务器要求身份验证,还需要提前注册机器人昵称,并准备好 NickServ 密码。


配置 Hermes(第2步)

有两种配置方式,推荐新手用配置文件,更直观。

方式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   # 单条消息长度上限

方式B:用环境变量(适合快速测试)

在终端里设置这些变量,效果等同:

export IRC_SERVER="irc.libera.chat"
export IRC_CHANNEL="#hermes"
export IRC_NICKNAME="hermes-bot"

设置访问权限(第3步)

默认情况下,只有你明确列出的昵称才能和机器人对话(通过 allowed_usersIRC_ALLOWED_USERS)。

  • 想开放给所有人?把名单留空,并设置 IRC_ALLOW_ALL_USERS=true
  • 但请注意:公共网络上 IRC 昵称并不安全(除非服务器强制 NickServ 验证),所以不建议在公网开放,只适合自己测试。

如果服务器要求身份验证,记得填上 nickserv_password,这样机器人一上线就能自动“验明正身”。


频道消息 vs 私聊(第4步)

  • 机器人在频道里收到的消息 → 当作群聊处理。
  • 直接私聊机器人 → 当作一对一对话

另外,定时任务(cron)的通知会发送到“家庭频道”——优先用 IRC_HOME_CHANNEL 指定的频道,否则就用第一个 IRC_CHANNEL


启动网关(第5步)

一切就绪后,运行:

hermes gateway start

查看连接状态:

hermes gateway status

你就能看到 IRC 是否成功连上了。


两个贴心小细节

  • 长消息自动分段:机器人回复太长时,会自动拆成多条 PRIVMSG,避免超过 IRC 单条消息长度限制(默认 450 字节)。
  • 身份锁:每个“服务器+昵称”组合只会有一个机器人实例,两个 Hermes 配置不会抢同一个 IRC 身份,省心。

小结

到这里,你的 Hermes 已经能通过 IRC 聊天了。虽然它只能发文字,但胜在零依赖、配置简单,特别适合跑在老旧服务器或极简环境里。

下篇预告:我们将接入一个更“现代”的平台——Telegram,让机器人支持图片、按钮和更丰富的交互。敬请期待!

📖 官方文档

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