通道:概述
通道是 agent 进行通信的消息载体。一个 ZeroClaw 实例可以同时绑定多个通道:同一个 agent 无需运行独立的进程,即可在 Discord、Telegram、email 以及通过 REST 网关进行响应。
代理会列出它所响应的通道;有关通道如何附加到代理(以及对等组如何让共享通道上的代理相互寻址),请参阅代理。
通道是 zeroclaw-api 中 Channel trait 的实现。每个通道都在编译时通过特性进行门控,因此最小化构建仅包含你所需的通道。
ZeroClaw 的默认构建包含一个精简的频道包:ACP、webhook、电子邮件、Telegram、Discord 和文件系统。这些涵盖了本地/编辑器会话、网关入口,以及首次运行时常用的外部消息传递,同时无需编译所有捆绑的平台集成。标准分发产物会额外包含 Git、Matrix、Lark 和 WhatsApp Web;Android 产物因目标兼容性要求不包含 WhatsApp Web。对于需要历史上完整频道集合的源码安装,请运行 install.sh --source --preset full,使用 --features channels-full 进行构建,或使用单独的 channel-* 功能进行选择性构建:
sh
./install.sh --source --preset full
cargo build --features channels-full
cargo build --no-default-features --features agent-runtime,gateway,channel-slack
分类
聊天平台
实时消息传递,代理可以保持对话,通过推送或长轮询接收新消息的通知,并以机器人用户的身份进行回复。
| 通道 | 功能标志 | 专用指南 |
|---|---|---|
| Matrix | channel-matrix | Matrix |
| Telegram | channel-telegram | Telegram |
| Discord | channel-discord | Discord |
| Slack | channel-slack | Slack |
| Mattermost | channel-mattermost | Mattermost |
| LINE | channel-line | LINE |
| Nextcloud Talk | channel-nextcloud | Nextcloud Talk |
| Signal | channel-signal | Signal |
| Twitch | channel-twitch | Twitch |
| WhatsApp 云 API | channel-whatsapp-cloud | |
| WhatsApp Web | whatsapp-web | |
| iMessage、WeChat 个人 iLink 机器人、DingTalk、Lark、QQ、IRC、Mochat、Notion | 按通道 | 其他聊天平台 |
社交与广播
一对多或公共提要集成。
| 通道 | 功能标志 | 协议 / 服务 |
|---|---|---|
| Bluesky | channel-bluesky | AT 协议 |
| Nostr | channel-nostr | NIP-01 中继 |
| Twitter / X | channel-twitter | API v2 |
channel-reddit | JSON API |
请参阅 社交渠道。
开发者平台
| 通道 | 功能标志 | 协议 / 服务 |
|---|---|---|
| Git | channel-git | 位于提供商抽象层后的 Git forge(GitHub、Gitea、Forgejo);对 issues、PR、CI 运行和 releases 的 REST 轮询,并按事件路由 |
请参阅 Git。
电子邮件
| 通道 | 功能标志 | 备注 |
|---|---|---|
| IMAP / SMTP | channel-email | 经典的基于轮询的收件箱 |
| Gmail Push | channel-email | Google Pub/Sub 推送通知:实时,无需轮询 |
请参阅 电子邮件。
语音与电话
| 通道 | 功能标志 | 服务 |
|---|---|---|
| ClawdTalk | channel-clawdtalk | Telnyx SIP 实时语音 |
| 语音通话 | channel-voice-call | Twilio / Telnyx / Plivo |
| 语音唤醒 | voice-wake | 本地唤醒词检测 |
| TTS | 始终编译时启用通道支持 | 出站语音合成(OpenAI、ElevenLabs、Google Cloud、Edge、Piper) |
请参阅 语音与电话。
Webhooks 与编程
| 通道 | 功能标志 | 形状 |
|---|---|---|
| Webhook | channel-webhook | 入站 HTTP → 代理 |
| 命令行界面 | 始终开启 | 本地标准输入/标准输出 |
| 网关 REST/WS | gateway(默认启用) | HTTP + WebSocket |
| ACP(代理客户端协议) | channel-acp-server | 基于 stdio 的 JSON-RPC 2.0:编辑器/IDE 会话 |
事件源
将事件输入代理循环或 SOP 引擎的仅输入传输。它们没有外向回复;每一个也是一个 SOP fan-in。
| 通道 | 功能标志 | 形状 |
|---|---|---|
| MQTT | channel-mqtt | Broker 消息 → agent 或 SOP |
| AMQP | channel-amqp | 经纪人交付 → 代理或 SOP |
| Filesystem | channel-filesystem | 路径变更 → agent 或 SOP |
参见 MQTT、AMQP 和 Filesystem。
配置
现代通道实例在 [channels.<type>.<alias>] 下配置,default 是常用的首个别名。可通过任意配置方式进行设置:
密钥(bot 令牌、API 密钥、密码)以加密形式存储;请通过网关、zerocode 或 zeroclaw config set(已掩码)进行设置,切勿使用明文。agent 上的 channels 条目将某个频道别名绑定到该 agent。各频道的字段名称各不相同;zeroclaw config schema 是权威的字段列表。在多个频道中反复出现的字段:
| 键 | 它的作用 |
|---|---|
enabled | 在不删除部分的情况下切换开/关 |
mention_only | 忽略未通过 @ 提及该机器人的消息(聊天平台) |
proxy_url | 单通道代理(http/https/socks5/socks5h);覆盖全局 [proxy] |
excluded_tools | 在此频道回答时对模型隐藏的工具 |
draft_update_interval_ms | 流式编辑频率(默认 500 毫秒) |
approval_timeout_secs | 对 always_ask 工具等待操作员批准的秒数,超时后自动拒绝 |
入站发送方通过对等组进行管控,而非通过每个通道的字段。
流媒体功能
通道声明它们支持的流式传输类型:有关能力矩阵以及 supports_draft_updates / supports_multi_message_streaming 的含义,请参阅 Providers → Streaming。
添加频道
实现新通道意味着在 crates/zeroclaw-channels/src/ 中添加一个实现 Channel trait 的文件。规范的参考是任何形态相似的现有通道:基于推送的 discord.rs、基于轮询的 email_channel.rs、基于 HTTP 驱动的 webhook.rs。