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 角色差异

OwnerUserGuest
配置通道
使用智能体已有的通道✓(如果访问级别允许)

17.6 How-to 配方

17.6.1 把 Telegram bot 接到你的智能体

前置

  1. 用 BotFather 建一个 bot;复制 bot token。

  2. 把 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 指引