野火 IM × Hermes:用一座“桥”,把企业即时通讯接入 AI Agent 时代
当大模型从“网页聊天”走向“业务入口”,企业真正需要的不是又一个对话框,而是把 AI 能力无缝接入现有工作流。野火 IM 选择与 Hermes Agent 握手,正是基于这一判断。
1. 一、为什么野火 IM 需要一座通往 Hermes 的桥
Hermes 是 NousResearch 推出的开源 AI Agent 平台,强调“一个 gateway,多平台接入”。对企业而言,它意味着可以用同一套 LLM 编排能力,同时服务 Telegram、Slack、Discord、邮件,以及自有的即时通讯系统。
在国内,很多企业最初会把 AI 机器人对接到微信、飞书、钉钉等公有平台。这些平台生态成熟、接入门槛低,对轻量场景已经足够。但一旦进入政企、金融、医疗、制造等对数据主权、合规审计、网络隔离有严格要求的领域,公有 IM 平台的短板就会显现:数据需出域、定制能力受限、私有化方案价格高昂、群机器人和 API 能力处处受限。客户真正需要的,是一个既能对接现代 AI Agent 框架,又能完全掌控在自己机房或私有云里的通讯底座。
野火 IM 正是面向这一群体。作为国产即时通讯领域的专业级解决方案,它已经被大量政企、金融、医疗、物联网客户私有化部署。客户的核心诉求始终没变:通讯基础设施必须安全、可控、可定制;但与此同时,他们也希望这套基础设施能“长”出 AI 能力——不用推翻既有架构,而是以低成本、高质量的方式把大模型作为新的消息参与者引入。
这并非野火第一次把 IM 与 AI 连接起来。在此之前,野火已经对接了 OpenClaw(基于 ChatGPT 的 IM 机器人方案),让企业能够在野火群中通过 @机器人 或关键词触发大模型问答。OpenClaw 验证了“IM + AI”在企业场景中的真实价值,也让团队积累了丰富的机器人交互经验——群聊如何防刷屏、如何识别用户意图、如何保障连接稳定性等细节,都成为了后续插件的设计输入。
hermes-gateway.py(插件注册名 wildfire-platform)就是在这座桥上继续延伸。它的完整源码开源在 robot-gateway 项目的 hermes-gateway.py 目录下。
robot-gateway 是野火 IM 面向机器人与 Agent 生态的开源网关项目,除了本 Hermes 插件,还包含机器人网络接入层以及 OpenClaw 插件 等模块。它们共享同一套 WebSocket 协议基础:Hermes 插件对应更现代、更开放的 Agent 平台,OpenClaw 插件则对应早期基于 ChatGPT 的机器人对接。这种“一个 gateway、多种插件”的结构,让客户可以根据自己的 AI 路线灵活选择,而无需重复建设 IM 连接层。
2. 二、插件架构:轻量、解耦、可扩展
插件的整体设计遵循“最小侵入”原则:野火 IM 侧只需启动一个标准的 robot-gateway;Hermes 侧安装插件后即可发现名为 Wildfire IM 的新平台。由于插件与 gateway 的其他模块(如 OpenClaw 接入、机器人网络层)同仓库维护,协议升级和接口兼容性也更容易保持一致。
┌─────────────┐ WebSocket ┌──────────────┐ HTTP/RobotService ┌──────────┐
│ Hermes │ ◀──robot-gateway──▶ │ robot-gateway │ ◀──────────────────────▶ │ 野火 IM │
│ Agent │ 协议 │ (ws :8884) │ └──────────┘
└─────────────┘ └──────────────┘
代码层面,插件拆成四个职责清晰的模块:
| 模块 | 职责 | 关键实现 |
|---|---|---|
__init__.py |
注册平台、声明能力、拦截 /sethome 命令 |
register_platform(... emoji="🔥") |
adapter.py |
与 Hermes gateway 对接:连接、收发、媒体处理 | WildfireAdapter(BasePlatformAdapter) |
client.py |
WebSocket 连接管理:认证、心跳、重连、请求/响应关联 | RobotGatewayClient |
message.py |
野火消息 payload 与 Hermes 事件互相转换 | 内容类型映射、会话源构建 |
config.py |
统一解析环境变量与 PlatformConfig.extra |
WildfireConfig.from_platform_config |
这种分层让插件既符合 Hermes 的平台插件规范,又保留了野火 IM 协议的原生语义。
3. 三、核心功能:不只是“消息转发”
3.1. 1. 双向消息桥接
私聊中,每条消息都会进入 Hermes 的会话链路;群聊中,插件会先判断是否需要响应——被 @、消息以 ?/? 结尾,或命中配置的帮助关键词(如“帮、请、分析、总结、怎么、如何”)才会触发回复。这套过滤规则与 OpenClaw/Moltbot 的实践经验一脉相承,避免机器人在大群里“话痨”,也贴合国内企业群“按需唤醒”的使用习惯。
3.2. 2. 多媒体支持
插件不仅转发文本,还支持图片、语音、视频、文件。对于本地文件,会先调用 robot-gateway 的 uploadFile 上传到野火 IM 的媒体服务,再生成对应的 ImageMessageContent、VideoMessageContent、FileMessageContent。文件大小做了 50 MB 的安全上限,并自动推断 MIME 类型。
3.3. 3. 流式回复(Draft Streaming)
这是体验上最显性的提升。Hermes 生成回复时,插件会把中间草稿通过野火的 StreamingTextGeneratingMessageContent(content type 14)实时同步到同一个消息气泡;生成完成后,再用 StreamingTextGeneratedMessageContent(content type 15)把同一条气泡“定稿”。用户看到的不是一段一段跳出的文字,而是真正在“打字”的 AI。
3.4. 4. 输入提示与会话隔离
插件会向对方发送 TypingMessageContent(content type 91)提示“正在输入”;同时利用 thread_id 让私聊和每个群组都拥有独立的 Hermes 会话,保证上下文不串场。
3.5. 5. 健壮的连接生命周期
RobotGatewayClient 实现了完整的 WebSocket 状态机:连接、认证、请求-响应关联、心跳、超时检测、自动重连。当请求超时时,它会主动关闭旧连接并触发立即重连,而不是让调用方一直挂死在死链上。对政企私有化部署常见的网络抖动场景,这套机制尤为重要。
3.6. 6. 访问控制与机器人所有者保护
通过环境变量可配置允许私聊的用户白名单、允许加入的群组白名单,或开放所有用户(仅建议开发环境)。一个贴心的细节是:连接成功后,插件会自动调用 getProfile 获取机器人所有者,并将其加入白名单、设为 home channel 的 fallback。这意味着所有者永远不会被自己的机器人锁在外面。
3.7. 7. 天然支持内网穿透,开发调试零门槛
插件与 robot-gateway 之间采用 WebSocket 长连接。这意味着 Hermes Agent 端可以运行在内网、开发者笔记本,甚至是临时测试环境里——只要机器人 outbound 能连到 gateway,即可完成与野火 IM 的对接。
相比需要公网回调地址、固定域名、复杂防火墙放行的方案,这种“由插件主动连出”的模型大大降低了私有化验证和本地开发的门槛。企业可以在不暴露核心大模型服务的前提下,先把 AI 机器人跑通,再逐步迁移到生产网络。
4. 四、配置即代码:环境变量单一来源
插件的所有配置都通过环境变量读取,推荐写入 ~/.hermes/.env。必填项只有三项:
WILDFIRE_GATEWAY_URL=ws://localhost:8884/robot/gateway
WILDFIRE_ROBOT_ID=YourRobotId
WILDFIRE_ROBOT_SECRET=YourRobotSecret
其他如群聊触发策略、帮助关键词、白名单、重连间隔等均为可选项。这种设计让运维人员可以通过同一套配置管理脚本完成部署,无需改动 Hermes 的 config.yaml。
安装也极尽简单:既可以作为目录插件放入 ~/.hermes/plugins,也可以通过 pip install -e . 以 entry point 方式被 Hermes 自动发现。
5. 五、野火 IM:积极探索、拥抱变化,满足客户的每一种需求
hermes-gateway.py 不只是一个插件,它折射出野火 IM 产品哲学的两个关键词:开放与贴近客户。
5.1. 1. 把协议打开,让客户自己定义入口
野火 IM 从早期就坚持“协议开放、代码可控”。robot-gateway 提供标准的 WebSocket 协议,任何外部系统——无论 Hermes、Dify、FastGPT,还是客户自研的 Agent——都能以机器人身份接入。
这与把机器人挂在微信、飞书、钉钉等公有平台上的做法形成鲜明对比。公有平台虽然起步快,但数据流经第三方服务器,定制化空间小,私有化方案往往价格不菲;而野火 IM 提供的是可私有化部署、源码可控、按需定制的解决方案,以更低的总体拥有成本(TCO)和更高的服务质量,满足对安全、合规、性能有硬性要求的客户。
5.2. 2. 从 OpenClaw 到 Hermes:持续进化的 AI 接入实践
OpenClaw 是野火 IM 在生成式 AI 浪潮中的第一次主动出击。它让客户最早尝到了“在野火群里问 AI”的甜头,也让团队看到了企业用户对 AI 机器人的真实期待:不是要一个炫技的玩具,而是一个听得懂、回得快、不乱说话、能沉淀知识的工作助手。
Hermes 插件是这次探索的延续与升级。相比 OpenClaw 面向单一模型对话的场景,Hermes 代表的是一个更开放、更标准化的 Agent 生态:多平台统一接入、工具调用、会话隔离、draft streaming……野火把在 OpenClaw 中沉淀下来的交互经验,迁移到了更现代的 Agent 平台上。对客户而言,选择野火 IM 意味着未来无论主流 AI 框架如何更替,都能找到对应的对接路径。
5.3. 3. 客户需求在哪里,产品边界就延伸到哪里
Hermes 插件的诞生本身就被需求驱动。越来越多客户向我们反馈:微信、飞书、钉钉上的机器人要么功能受限,要么私有化成本太高,他们希望野火 IM 能直接对接最前沿的 Agent 平台。
团队没有简单回复“可以写 HTTP 回调”,而是直接实现了一个符合 Hermes 平台规范的官方插件,覆盖认证、重连、流式输出、媒体消息、群组策略等完整链路。对客户来说,这是“拿来即用”的方案;对生态来说,这是降低集成门槛的关键一步。更重要的是,它再一次证明:野火 IM 能够以高质量、低成本的方式,补上主流公有平台在私有化部署领域的空白。
5.4. 4. 对 AI 时代的前瞻布局
从 Chatbot 到 Agent,从单轮问答到多工具协作,AI 形态还在快速演化。野火 IM 选择做“连接器”而不是“封闭岛”:
- 既支持自主大模型,也兼容云端 API;
- 既保留私有化部署的安全优势,又积极与开源 Agent 生态握手;
- 既服务传统 IM 场景,也面向未来的“AI 员工”场景。
这种姿态,正是“拥抱变化”的最好注脚。
6. 六、结语
hermes-gateway.py 让野火 IM 与 Hermes Agent 之间的通路变得简单、可靠、可扩展。对企业客户而言,它意味着已有的野火 IM 基础设施可以立刻拥有大模型能力;对开发者而言,它提供了一份清晰的参考实现,展示如何把野火 IM 接入任何遵循类似协议的外部系统。
在 AI 重塑协作方式的今天,企业不必再为了智能化而被迫接受高昂的私有化账单,也不必把核心数据交给不可控的第三方平台。野火 IM 继续做自己最擅长的事——安全、稳定、可定制、低成本、高质量的即时通讯底座,同时以开放的接口和敏捷的响应,把每一次技术浪潮转化为客户触手可及的能力。
野火 IM 不会替客户选择未来,但会确保客户无论选择哪条未来之路,都能从野火出发。