不只是命令行
Hermes Agent 默认的交互方式是 CLI——在终端里打字聊天。这对开发者来说完全没问题,但很多场景下你不方便打开终端。
比如你在地铁上想让 Agent 查一下服务器状态,或者你想在团队的 Discord 频道里让 Agent 帮忙处理一些自动化任务。
Hermes Agent 支持多个消息平台接入,目前包括:Telegram、Discord、Slack、WhatsApp、Signal。而且所有平台共享同一套记忆和技能系统——你在 Telegram 上积累的经验,在 CLI 里一样能用。
这篇文章讲实际操作:怎么把 Hermes Agent 接到各个平台上。
统一架构:消息网关
在讲具体平台之前,先理解一下架构。
Hermes Agent 的多平台支持不是给每个平台写一套适配代码,而是用了一层消息网关(Message Gateway):
1 | Telegram ─┐ |
消息网关负责把不同平台的消息格式统一翻译成 Agent 能理解的标准格式,再把 Agent 的回复翻译回各平台的格式。
这个设计的好处是:核心逻辑只有一套,新增平台只需要写一个网关适配器。而且因为所有平台最终都连到同一个 Agent 实例,记忆和技能自然就是共享的。
Telegram 接入
Telegram 是用得最多的平台,主要是因为它的 Bot API 做得好,而且移动端体验不错。
第一步:创建 Telegram Bot
- 在 Telegram 里找到 @BotFather{rel=”nofollow”}
- 发送
/newbot - 按提示输入 bot 名称和用户名
- 获得一个 bot token,类似
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
保存好这个 token,后面要用。
第二步:配置 Hermes Agent
编辑 ~/.hermes/config.yaml:
1 | platforms: |
几个配置项说明:
- allowed_users:白名单机制,只有列表里的用户 ID 才能和 bot 交互。这是安全防线,千万别留空——你不想让陌生人操控你的 Agent
- parse_mode:回复的格式,支持 markdown 和 html
- voice_transcription:开启后可以给 bot 发语音消息,它会自动转成文字再处理
第三步:获取你的 User ID
不知道自己的 Telegram user ID?给 @userinfobot{rel=”nofollow”} 发条消息就能看到。
第四步:启动
1 | hermes serve --platform telegram |
启动后,去 Telegram 里给你的 bot 发消息,应该就能收到回复了。
保持后台运行
你不希望关掉终端 bot 就挂了。用 systemd 来管理:
1 | sudo tee /etc/systemd/system/hermes-telegram.service << EOF |
这样 bot 就会在后台运行,开机自启,崩了自动重启。
Discord 接入
Discord 适合团队使用场景——在项目频道里直接 @bot 让它干活。
第一步:创建 Discord Application
- 访问 Discord Developer Portal{rel=”nofollow”}
- 点击 New Application,输入名称
- 进入 Bot 页面,点击 Reset Token 获取 bot token
- 开启以下 Intents:
- Message Content Intent
- Server Members Intent(如果需要识别@提及)
第二步:邀请 Bot 到服务器
在 OAuth2 → URL Generator 中:
- Scopes 选择
bot - Bot Permissions 选择:Send Messages、Read Message History、Embed Links
- 生成邀请链接,用浏览器打开,选择目标服务器
第三步:配置
1 | platforms: |
mention_only 设为 true 意味着 bot 只响应被 @提及的消息,不会对频道里的每条消息都反应。团队使用强烈建议开启这个。
第四步:启动
1 | hermes serve --platform discord |
在 Discord 频道里 @你的bot 查看服务器状态 就能触发。
频道权限控制
在团队场景下,你可能想精细控制哪些频道能用 Agent:
1 | platforms: |
这样不同频道的 Agent 有不同的权限级别。开发频道能用开发工具,运维频道能用系统管理工具,一般频道只能做基础操作。关于工具集和权限的更多细节,可以看六大执行后端解析。
Slack 接入
企业环境里 Slack 是主流。接入方式和 Discord 类似,但流程稍微复杂一些。
创建 Slack App
- 访问 Slack API{rel=”nofollow”} → Create New App
- 选择 From Scratch
- 配置 Bot Token Scopes:
chat:writechannels:historychannels:readapp_mentions:read
- Install to Workspace,获取 Bot User OAuth Token
配置
1 | platforms: |
Slack 推荐用 Socket Mode,不需要公网回调地址,配置更简单。
启动
1 | hermes serve --platform slack |
在 Slack 频道里 @HermesBot 查看今天的部署日志 即可。
WhatsApp 和 Signal
这两个平台的接入需要借助桥接服务,因为它们没有直接的 Bot API。
通过 WhatsApp Business API 或开源的 Baileys{rel=”nofollow”} 库桥接:
1 | platforms: |
配置好后,你的 WhatsApp 号码就变成了 Agent 的入口。私聊发消息就能和 Agent 交互。
Signal
通过 signal-cli{rel=”nofollow”} 桥接:
1 | platforms: |
WhatsApp 和 Signal 的优势是端到端加密,适合对隐私有要求的场景。但功能上不如 Telegram 和 Discord 丰富——比如不支持内联键盘、不支持复杂的消息格式。
多平台同时运行
你可以同时启用多个平台:
1 | hermes serve --platform telegram,discord,slack |
或者在配置文件中设置自动启动的平台:
1 | serve: |
所有平台连接同一个 Agent 实例,共享记忆和技能。你可以在 Telegram 上让 Agent 开始一个任务,晚上到电脑前在 CLI 里继续。
语音转录
这是一个实用的小功能。开启后,你可以给 Telegram(或其他支持语音的平台)的 bot 发语音消息,Agent 会自动把语音转成文字,然后按文字指令处理。
1 | voice: |
语音转录在移动端特别好用——你不需要在手机上打一大段字,直接说就行。
准确率取决于你选择的转录引擎和说话清晰度。中文场景下 Whisper 的表现挺好的。
跨平台对话连续性
前面提到过所有平台共享记忆,这里展开讲一下「连续性」是怎么实现的。
当你在 Telegram 上发了一条消息,Agent 处理完之后,这次对话会被记录到会话存档中(四层记忆体系的第二层)。之后不管你在哪个平台发起新对话,Agent 都能通过检索会话存档找到之前的上下文。
但这里有个细节:同一时间只有一个活跃会话。如果你在 Telegram 上正在和 Agent 进行一个多轮对话,同时在 Discord 上也发了一条消息,Agent 会优先响应 Discord 的新消息——但它也知道 Telegram 上还有一个没结束的对话。
处理方式是:Discord 的消息作为独立任务处理完后,Telegram 那边的对话可以继续。两者不会混淆。
安全提醒
多平台接入意味着攻击面增大了。几个安全要点:
白名单是底线。每个平台都必须配 allowed_users 或 allowed_channels,绝不能让不明身份的人操控你的 Agent。
bot token 当密码保管。泄露了 bot token 就等于把 Agent 控制权交给别人。不要把 token 提交到 Git 仓库,用环境变量或 secrets 管理。
最小权限原则。不同平台、不同频道给不同的工具权限。日常聊天频道不需要
shell_exec权限。定期审查。检查 allowed_users 列表是否需要更新(团队人员变动),检查 bot 的操作日志有没有异常。
cocoloop 社区里有人吃过亏——Telegram bot token 被泄露后,有人用他的 Agent 在服务器上挖矿。所以安全这事真的不能大意。更多安全相关的建议,看 Hermes Agent 安全指南。
实际部署建议
先跑 Telegram。它配置最简单,文档最全,出问题最好排查。稳定运行后再加其他平台。
用 systemd 管理进程。前面给了 Telegram 的 systemd 配置示例,其他平台类似。
日志很重要。配置日志输出,出问题时候翻日志比猜原因高效得多:
1 | logging: |
单台机器就够。Hermes Agent 本身很轻量,同时跑 3-4 个平台网关也不过占几十 MB 内存。$5 的 VPS 完全撑得住。
团队使用建议 Discord/Slack。比 Telegram 的频道管理和权限控制更适合团队场景。
延伸阅读:OpenClaw 社区资源
本文由 CocoLoop 中文社区出品。如果你在研究 AI Agent 与主流模型的工程化落地,姊妹站 OpenClaw 中文社区 也许会有帮助: