Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

通道:概述

通道是 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

分类

聊天平台

实时消息传递,代理可以保持对话,通过推送或长轮询接收新消息的通知,并以机器人用户的身份进行回复。

通道功能标志专用指南
Matrixchannel-matrixMatrix
Telegramchannel-telegramTelegram
Discordchannel-discordDiscord
Slackchannel-slackSlack
Mattermostchannel-mattermostMattermost
LINEchannel-lineLINE
Nextcloud Talkchannel-nextcloudNextcloud Talk
Signalchannel-signalSignal
Twitchchannel-twitchTwitch
WhatsApp 云 APIchannel-whatsapp-cloudWhatsApp
WhatsApp Webwhatsapp-webWhatsApp
WeCom (Bot Webhook / AI Bot WS)channel-wecom, channel-wecom-ws其他聊天平台
iMessage、WeChat 个人 iLink 机器人、DingTalk、Lark、QQ、IRC、Mochat、Notion按通道其他聊天平台

社交与广播

一对多或公共提要集成。

通道功能标志协议 / 服务
Blueskychannel-blueskyAT 协议
Nostrchannel-nostrNIP-01 中继
Twitter / Xchannel-twitterAPI v2
Redditchannel-redditJSON API

请参阅 社交渠道。

开发者平台

通道功能标志协议 / 服务
Gitchannel-git位于提供商抽象层后的 Git forge(GitHub、Gitea、Forgejo);对 issues、PR、CI 运行和 releases 的 REST 轮询,并按事件路由

请参阅 Git。

电子邮件

通道功能标志备注
IMAP / SMTPchannel-email经典的基于轮询的收件箱
Gmail Pushchannel-emailGoogle Pub/Sub 推送通知:实时,无需轮询

请参阅 电子邮件。

语音与电话

通道功能标志服务
ClawdTalkchannel-clawdtalkTelnyx SIP 实时语音
语音通话channel-voice-callTwilio / Telnyx / Plivo
语音唤醒voice-wake本地唤醒词检测
TTS始终编译时启用通道支持出站语音合成(OpenAI、ElevenLabs、Google Cloud、Edge、Piper)

请参阅 语音与电话。

Webhooks 与编程

通道功能标志形状
Webhookchannel-webhook入站 HTTP → 代理
命令行界面始终开启本地标准输入/标准输出
网关 REST/WSgateway(默认启用)HTTP + WebSocket
ACP(代理客户端协议)channel-acp-server基于 stdio 的 JSON-RPC 2.0:编辑器/IDE 会话

请参阅 Webhooks 和 ACP。

事件源

将事件输入代理循环或 SOP 引擎的仅输入传输。它们没有外向回复;每一个也是一个 SOP fan-in。

通道功能标志形状
MQTTchannel-mqttBroker 消息 → agent 或 SOP
AMQPchannel-amqp经纪人交付 → 代理或 SOP
Filesystemchannel-filesystem路径变更 → agent 或 SOP

参见 MQTT、AMQP 和 Filesystem。

配置

现代通道实例在 [channels.<type>.<alias>] 下配置,default 是常用的首个别名。可通过任意配置方式进行设置:

网关仪表板

在 Web 仪表板中打开 /config/channels。

zerocode

在 Config 窗格中,Channels 下。

密钥(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 工具等待操作员批准的秒数,超时后自动拒绝

入站发送方通过对等组进行管控,而非通过每个通道的字段。

模型回退通知

channels.model_fallback_notice 控制同一模型提供方系列内切换到其他模型时的普通回退通知。默认值为 off。跨系列回退通知和安全防护通知在所有模式下都保持原有行为。

模式已送达通知
off这不是普通的同系列模型回退通知
redacted用于提示回复由备用模型生成的通用通知,不包含提供商或模型标识符
detailed请求的和实际提供服务的提供商/模型标识符

该设置全局适用于所有使用共享通道编排器的通道。请为每个可以接收回复的受众选择模式,包括共享房间和公开通道。detailed 会将路由标识符暴露给这些受众;redacted 则在报告恢复情况时不包含这些标识符。不支持按通道单独覆盖。

该设置不控制网关 Web 聊天、ZeroCode 或 RPC 会话中的回退通知;这些会话使用代理回合路径,并保留其现有的详细通知,其中包含提供方和模型标识符。

通过 ZeroCode Config 或其他受支持的配置编辑器设置模式,或使用:

zeroclaw config set channels.model_fallback_notice redacted

编排器在投递回复时读取当前的实时配置,因此已发布的模式变更可能会影响正在进行中的轮次。仅保存文件不会更新正在运行的守护进程的实时配置。请使用配置生命周期中描述的现有配置发布和重新加载路径;独立 CLI 写入会在下一次加载或重新加载时生效。

这些提示仅会添加到出站投递内容中。已存储的助手历史记录保留的是不含提示的模型响应,因此后续轮次不会将这些投递元数据作为对话内容接收。在添加提示之前,归因必须能够识别出已成功回退到另一个不同模型的情况。同系列、同模型的配置档变更在当前归因记录中仍无法区分。

流媒体功能

通道声明它们支持的流式传输类型:有关能力矩阵以及 supports_draft_updates / supports_multi_message_streaming 的含义,请参阅 Providers → Streaming。

添加频道

实现新通道意味着在 crates/zeroclaw-channels/src/ 中添加一个实现 Channel trait 的文件。规范的参考是任何形态相似的现有通道:基于推送的 discord.rs、基于轮询的 email_channel.rs、基于 HTTP 驱动的 webhook.rs。