17. 通道
通道是消息的传输方式:CLI、Web UI、Telegram bot、Discord bot、Slack 应用。智能体在每个通道里都是同一个 —— 同一份记忆、同一组工具、同一份指令。通道只决定你在哪里打字、附件怎么进来。
17.1 你能拿到的通道
- CLI ——
hermit chat。装了 CLI 就总是可用。 - Web ——
https://<your-gateway>/chat/<agent>。网关可达就总是可用。 - Telegram —— 你通过 BotFather 建的 bot,注册到智能体。
- Discord —— 注册到智能体的 bot 应用。
- Slack —— 装到你工作区的 Slack 应用,注册到智能体。
除 CLI 外的每个通道都需要一份凭证(bot token 或 app secret)。凭证以密钥形式存储 —— 见 第 18 章。
可能有更新的 adapter(例如 Signal);Manage → Channels 选项卡是你的网关有哪些 adapter 的事实来源。
17.2 管理通道
当前 CLI 没有 hermit channels 命令。在 Manage → Channels 或通过 /api/agents/<agent-id>/channels API 配置通道。
API 提供:列出已配置通道、创建 owner 自建的外部通道、修补已有通道配置(enabled、密钥、adapter 选项)、删除通道。Telegram、Discord、Slack 这些内建通道,作为通道行被预先植入,通过修补它们的配置来启用。
17.3 各 adapter 的注意事项
Telegram
- 一个 bot 服务一个智能体。想让第二个智能体上 Telegram,注册第二个 bot。
- 私聊默认能用。群聊支持要看 bot 的 privacy 设置 —— 见 Manage → Channels 的开关。
- 附件(文件、图片)落到工作区的 uploads 路径下。
Discord
- Bot 应用按智能体划分。
- Slash 命令可选;邀进频道后,智能体能在普通频道聊天里工作。
Slack
- Slack 应用按工作区划分。按工作区安装,按智能体注册。
- 线程:默认每个会话起一个 thread。Quote-reply 来继续已有 thread。
- 支持文件附件。
Web / CLI
- 不需要注册。一直在线。
17.4 跨通道的身份
当某人第一次通过 Telegram 给智能体发消息时,网关记下 (telegram, <telegram-user-id>) → user X。Web 登录类似产生 (web, <web-uuid>) → user Y。如果 X 和 Y 其实是同一个人,你把他们链接起来 —— 见 第 14 章 · 管理成员。
17.5 角色差异
| Owner | User | Guest | |
|---|---|---|---|
| 配置通道 | ✓ | — | — |
| 使用智能体已有的通道 | ✓ | ✓ | ✓(如果访问级别允许) |
17.6 How-to 配方
17.6.1 把 Telegram bot 接到你的智能体
前置
-
用 BotFather 建一个 bot;复制 bot token。
-
把 token 存为智能体密钥:
hermit config --agent main secrets set TELEGRAM_BOT_TOKEN <token> --pass-through
步骤
打开 Manage → Channels,选 Telegram 通道,填上所需的 bot token 密钥 / 配置字段,启用。等价操作可通过 PATCH /api/agents/main/channels/<telegram-channel-id> 完成。
验证 —— 私聊你的 bot;它会回复。
常见问题 —— 没回复就到 Manage → Channels 看密钥缺失或状态未启用,再看网关日志。
17.6.2 在不丢记忆的前提下换通道
通道是同一个智能体之上可互换的表面。关掉 Telegram、启用 Slack —— 记忆、指令、MCP token 都在。新会话只是从另一种传输进来而已。
17.6.3 用一个 bot 同时服务两个智能体
同一通道句柄不支持。用两套不同的 bot token / 应用,一个智能体一个。
17.7 FAQ
用 Telegram 会泄露我的数据吗? 消息会经过 Telegram 的服务器。如果某段信息你不会通过 Telegram 发,那也别通过接了 Telegram 的智能体发。Slack、Discord 同理。
我能删掉智能体回复过的 Telegram 消息吗? 那是 Telegram 客户端的问题,与 OpenHermit 无关。网关里的会话历史不受客户端删除影响。
通道会出现在 Observe 里吗? 会 —— 每个会话都打了来源通道的标签。
17.8 指引
- Token 与凭证 → 第 18 章 · 密钥。
- 谁能在每个通道上对话 → 第 13 章 · 访问级别、第 15 章 · 策略与审批。
- 跨通道的身份关联 → 第 14 章 · 管理成员。