消息网关
Hermes Agent 的消息网关是一个统一的单后台进程,管理 17+ 消息平台的消息收发、会话管理和后台任务。
17+
消息平台
1
统一进程
30+
消息命令
架构概述
消息网关采用单进程多线程架构:
- 单一后台进程:一个进程管理所有平台的消息收发
- 会话持久化:跨消息平台的会话状态保存
- 后台会话:支持非阻塞的后台代理实例
- 平台工具集:每个平台有专属工具集
支持的平台与功能对比
| 平台 | 语音 | 图片 | 文件 | 线程 | 表情 | 打字中 | 流式 |
|---|---|---|---|---|---|---|---|
| CLI | ✓ | ✓ | ✓ | — | — | — | ✓ |
| Telegram | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Discord | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Slack | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | |
| Signal | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ |
| Matrix | ✗ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ |
| Mattermost | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | |
| SMS | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| 钉钉 | ✗ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ |
| 飞书 | ✗ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ |
| 企业微信 | ✗ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ |
| 微信 | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
网关管理
bash
# 启动网关
hermes gateway start
# 查看网关状态
hermes gateway status
# 停止网关
hermes gateway stop
# 重启网关
hermes gateway restart
# 查看日志
hermes gateway logs
系统服务管理
消息网关支持作为系统服务运行,实现开机自启:
Linux (systemd)
bash
# 安装 systemd 服务
hermes gateway install
# 启用开机自启
sudo systemctl enable hermes-gateway
# 查看服务状态
sudo systemctl status hermes-gateway
macOS (launchd)
bash
# 安装 launchd 服务
hermes gateway install
# 服务将自动配置并启动
会话管理
消息网关的会话管理特性:
- 会话持久化:SQLite state.db 存储所有会话状态
- 会话重置策略:支持定时重置(默认每天凌晨 4 点)和空闲超时(默认 1440 分钟)
- 后台会话:隔离的代理实例在守护线程中运行
- 工具进度通知:长时间工具调用时发送进度更新
yaml
# config.yaml 会话管理配置
gateway:
sessions:
reset_policy:
time: "04:00" # 每日重置时间
idle_timeout: 1440 # 空闲超时(分钟)
persistence: true # 启用会话持久化
progress_notifications: true # 工具进度通知
消息命令
在消息平台中可以使用斜杠命令控制代理:
| 命令 | 说明 |
|---|---|
/help | 显示帮助信息 |
/clear | 清除当前会话 |
/compact | 压缩上下文 |
/model <name> | 切换模型 |
/tools | 查看可用工具 |
/skills | 管理技能 |
/memory | 管理记忆 |
/background | 后台执行 |
/image <prompt> | 生成图像 |
/voice | 语音消息开关 |
后台会话
网关支持后台会话功能:
- 隔离执行:后台任务在独立的守护线程中运行
- 相同配置:使用与主会话相同的配置和工具
- 非阻塞:不阻塞主对话,可同时处理多个请求
- 结果推送:任务完成后自动推送结果到当前对话
每个消息平台都有对应的配置选项和专属工具集(如 hermes-telegram、hermes-discord 等)。详见 配置参考 页面。