For the complete documentation index, see llms.txt. This page is also available as Markdown.

消息渠道

OpenHuman 与你对话所使用的消息平台:传入消息进入智能体循环,发出回复和主动投递,以及每个渠道的凭据。

一个 频道 是 OpenHuman 用来……的消息平台 向你反馈 发送给你。这是一个……的镜像 集成:集成主要是代理……的数据源 从中读取 (你的收件箱、日历、CRM),而频道是一个双向对话界面。你在自己已经在用的平台上给代理发消息,代理也会在那里回复。

在底层,每个频道都实现一个小型 Rust 合约(一个 发送 用于外发消息的路径,以及一个 监听 用于入站消息的路径),因此同一个代理循环就能服务 Telegram、Discord、内置网页聊天以及十多个其他平台,而无需在核心中按平台分支。


频道的作用

每个频道做两件事:

  • 入站:当消息到达时,频道会将其标准化为一个 ChannelMessage (发送者、回复目标、内容、可选线程 ID),并将其交给分发循环。分发会启动或恢复一次代理运行,为其限定工具范围,代理处理该请求。某些平台支持一个 /models 以及 /model 命令,用于切换该发送者会话所使用的模型;Telegram 还额外支持远程控制命令。

  • 出站:代理的回复会通过同一频道发送回你的 reply_target,如果平台支持则会以线程形式发送。频道也可以传递 主动 (没有可回复的入站消息)当由一个 触发器、一个 cron 任务或 潜意识循环触发时。只有当频道声明了默认投递目标时,才会收到主动发送;没有默认目标的频道会被跳过,而不是投递给空收件人。

支持该功能的频道可以显示正在输入指示器,流式发送渐进式 草稿更新,发布 线程回复,并添加 表情反应。能力是按频道声明的,而不是默认假定的。


支持的频道

OpenHuman 提供 18 个频道提供器模块 (默认构建 16 个,另有 2 个隐藏在 Cargo 功能标志后面),其中 17 个是真实消息平台。剩下的那个 presentation,是网页聊天的内部响应渲染辅助工具,不是你要连接的平台。另一个独立的 cli 频道用于 openhuman-core 终端二进制程序。设置界面中显示了 7 个频道;其余的通过 config.toml.

频道
方向
入站传输
凭据模式
在设置界面中

Telegram

双向

Bot API 长轮询

通过 OpenHuman 连接(托管私信) 你自己的 BotFather 令牌

Discord

双向

网关

你自己的机器人令牌、OAuth 安装、 托管账号链接

Web

双向

应用内

内置,无需设置(本地)

iMessage

双向

macOS 信息(AppleScript)

仅本地,无需凭据(需要完全磁盘访问权限)

Lark / 飞书

双向

WebSocket 或 webhook

你自己的 app id + secret

钉钉

双向

流式模式 WebSocket

你自己的 client id + secret

元宝(Yuanbao)

双向

WebSocket

你自己的 AppID + AppSecret

Slack

双向

事件/socket

你自己的机器人令牌

config.toml

WhatsApp

双向

Meta Cloud webhook

你自己的访问令牌

config.toml

IRC

双向

持久 socket

你自己的服务器/昵称

config.toml

信号

双向

signal-cli REST 事件

你自己已链接的 signal-cli 账号

config.toml

Mattermost

双向

WebSocket

你自己的机器人令牌

config.toml

QQ

双向

WebSocket

你自己的机器人凭据

config.toml

Linq

双向(SMS)

Webhook

你自己的 API 令牌

config.toml

电子邮件

双向

IMAP IDLE + SMTP

你自己的邮箱凭据

config.toml

WhatsApp 还有一个实验性的点对点变体,位于 whatsapp-web 功能标志之后。标记为“webhook”的频道会保持长连接在线,但通过 HTTP 推送接收入站消息,因此需要在提供方一侧配置一个可访问的 HTTPS 端点。

Telegram 是功能最完整的频道。它支持正在输入指示器和实时草稿更新,目前也是唯一接入按频道审批界面的频道,因此 提示级别的工具调用可以直接内联回复,而不是暂挂。Discord 添加了原生线程回复;Lark 也支持线程。Web 支持富文本,并且完全本地运行。

电子邮件值得特别一提:它是一个完全 原生、自托管的连接器,不经过任何第三方中介。入站邮件通过 IMAP 到达,并使用 IMAP IDLE 推送(新邮件在几秒内到达代理,连接会按照 RFC 约每 29 分钟刷新一次),回复则通过 SMTP 发出,完整支持附件/多部分消息,使用你在所配置任意服务商上的自己的地址发送。 allowed_senders 允许名单是入站安全闸门。请明确设置为你信任的地址。(在 config.toml 空列表表示全部拒绝,但 Connections 界面会将空字段默认设为 ["*"],这会允许 任何 发送者。因此,如果不希望陌生人通过电子邮件向你的代理发起提示,就不要把它留空。)


凭据模式

频道通过以下几种方式之一进行认证:

  • 通过 OpenHuman 连接(托管):通过 OpenHuman 后端中介的一键式加密连接。目前这适用于 Telegram(直接向托管机器人发消息)和 Discord(链接你的账号或通过 OAuth 安装)。你的机器上不会保存任何令牌。

  • 你自己的凭据:你提供机器人令牌、API 密钥/密钥对,或应用凭据。Telegram(BotFather 令牌)、Discord(机器人令牌)、Slack、WhatsApp、Lark/飞书、钉钉、元宝、Matrix、Signal、Mattermost、QQ、Linq、IRC 和 Email 都支持这种方式。控制权最大;你拥有平台账号、速率限制以及任何 webhook 端点。

  • 本地,无需凭据Web 聊天和 iMessage 完全不需要任何令牌。Web 在桌面应用内运行;iMessage 通过 AppleScript 桥接驱动本地 macOS 信息应用(需授予完全磁盘访问权限)。两者都会将消息保留在你的机器上。

针对任何模式提供的密钥都会通过 OpenHuman 的凭据层存储,并在静态时由 加密层保护。它们绝不会以明文写入 config.toml 用于由 UI 管理的频道。


在哪里连接频道

频道在以下位置设置: 连接 → 渠道 在左侧边栏中 — 在“设置”下,而不是在任何“Automation & Channels”菜单下(并不存在这样的菜单)。打开该选项卡,选择一个平台卡片,并按照其设置说明操作:

  • Discord — 选择 通过 OpenHuman 连接 (链接你的账号或通过 OAuth 安装机器人),或粘贴你自己的 Discord 机器人令牌。

  • Telegram — 向托管的 OpenHuman 机器人发送消息进行链接,或粘贴 BotFather 机器人令牌。

Slack 是以一个 应用 下的 Connections → OAuth (Composio),这样代理就能在 Slack 中读取并执行操作;它并未在 Channels 选项卡中设置为双向对话频道。


选择默认频道

打开 连接 → 渠道 来选择哪个频道是 活动路由:即 OpenHuman 用于主动、无收件人投递(cron、触发器、subconscious)的那个。默认值是应用内 Web 聊天,直到你更改它。设置新的默认值会立即生效,无需重启频道运行时,面板会显示当前哪个频道处于活动状态。入站消息始终会在它们到达的频道上得到回复,而不受默认路由影响。


另请参阅

最后更新于