Canaux : aperçu
Un channel est une surface de messagerie par laquelle l’agent communique. Une seule instance ZeroClaw peut lier plusieurs channels simultanément : le même agent peut répondre dans Discord, Telegram, par e-mail et via la passerelle REST sans que vous ayez à exécuter des processus séparés.
Un agent liste les canaux sur lesquels il répond ; consultez Agents pour savoir comment les canaux sont rattachés à un agent (et comment un groupe de pairs permet aux agents d’un canal partagé de s’adresser les uns aux autres).
Les canaux sont des implémentations du trait Channel dans zeroclaw-api. Chaque canal est conditionné par une fonctionnalité au moment de la compilation, de sorte qu’une compilation minimale n’inclut que les canaux que vous souhaitez.
La compilation ZeroClaw par défaut inclut un ensemble de canaux allégé : ACP, webhook, email, Telegram, Discord et filesystem. Ceux-ci couvrent les sessions locales ou dans l’éditeur, l’entrée via passerelle et la messagerie externe courante lors de la première utilisation, sans compiler chaque intégration de plateforme incluse. Les artefacts de distribution standard ajoutent Git, Matrix, Lark et WhatsApp Web ; l’artefact Android omet WhatsApp Web pour assurer la compatibilité avec la cible. Pour les installations depuis les sources qui nécessitent l’ensemble historique étendu de canaux, exécutez install.sh --source --preset full, compilez avec --features channels-full ou utilisez des fonctionnalités channel-* individuelles pour des compilations sélectives :
sh
./install.sh --source --preset full
cargo build --features channels-full
cargo build --no-default-features --features agent-runtime,gateway,channel-slack
Catégories
Plateformes de chat
Messagerie en temps réel où l’agent peut maintenir une conversation, recevoir des notifications de nouveaux messages via push ou long-poll, et répondre en tant qu’utilisateur bot.
| Canal | Indicateur de fonctionnalité | Guide dédié |
|---|---|---|
| Matrix | matrice-de-canaux | 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 |
| API Cloud WhatsApp | channel-whatsapp-cloud | |
| WhatsApp Web | whatsapp-web | |
| iMessage, WeChat personal iLink Bot, DingTalk, Lark, QQ, IRC, Mochat, Notion | par canal | Autres plateformes de chat |
Social et diffusion
Intégrations de type un-à-plusieurs ou de flux public.
| Canal | Indicateur de fonctionnalité | Protocole / service |
|---|---|---|
| Bluesky | channel-bluesky | Protocole AT |
| Nostr | channel-nostr | Relais NIP-01 |
| Twitter / X | channel-twitter | API v2 |
channel-reddit | API JSON |
Voir les réseaux sociaux.
Plateformes pour les développeurs
| Canal | Indicateur de fonctionnalité | Protocole / service |
|---|---|---|
| Git | channel-git | Git forge derrière une interface de fournisseur (GitHub, Gitea, Forgejo) ; polling REST des tickets, PRs, exécutions CI et releases avec routage par événement |
Voir Git.
| Canal | Indicateur de fonctionnalité | Notes |
|---|---|---|
| IMAP / SMTP | channel-email | Boîte de réception classique basée sur les sondages |
| Gmail Push | channel-email | Notifications push Google Pub/Sub : en temps réel, sans interrogation (polling) |
Voir Email.
Voix et téléphonie
| Canal | Indicateur de fonctionnalité | Service |
|---|---|---|
| ClawdTalk | channel-clawdtalk | Voix en temps réel Telnyx SIP |
| Appel vocal | channel-voice-call | Twilio / Telnyx / Plivo |
| Réveil vocal | voice-wake | Détection locale de mots-réveils |
| Synthèse vocale | toujours compilé avec la prise en charge des canaux | Synthèse vocale sortante (OpenAI, ElevenLabs, Google Cloud, Edge, Piper) |
Voir Voix et téléphonie.
Webhooks et programmation
| Canal | Indicateur de fonctionnalité | Forme |
|---|---|---|
| Webhook | channel-webhook | HTTP entrant → agent |
| CLI | toujours activé | Entrée/sortie standard locale |
| Passerelle REST/WS | gateway (activé par défaut) | HTTP + WebSocket |
| ACP (Agent Client Protocol) | channel-acp-server | JSON-RPC 2.0 via stdio : sessions éditeur/IDE |
Sources d’événements
Transports uniquement en entrée qui injectent des événements dans la boucle d’agent ou le moteur SOP. Ils ne génèrent aucune réponse sortante ; chacun est également un SOP fan-in.
| Canal | Indicateur de fonctionnalité | Forme |
|---|---|---|
| MQTT | channel-mqtt | Messages du broker → agent ou SOP |
| AMQP | channel-amqp | Livraisons par courtier → agent ou SOP |
| Filesystem | channel-filesystem | Changements de chemin → agent ou SOP |
Voir MQTT, AMQP, et Filesystem.
Configuration
Les instances de canal modernes sont configurées sous [channels.<type>.<alias>], avec default comme premier alias courant. Définissez-les via n’importe quelle surface de configuration :
Tableau de bord de la passerelle
Ouvrez /config/channels dans le tableau de bord web.
zerocode
Dans le volet Config, sous Channels.
Les secrets (jetons de bot, clés API, mots de passe) sont stockés chiffrés ; définissez-les via la gateway, zerocode ou zeroclaw config set (masqué), jamais en texte clair. L’entrée channels d’un agent lie un alias de canal à cet agent. Les noms de champs diffèrent selon le canal ; zeroclaw config schema constitue la liste de référence. Champs récurrents dans de nombreux canaux :
| Clé | Ce que cela fait |
|---|---|
enabled | Activer/désactiver sans supprimer la section |
mention_only | Ignorer les messages qui ne mentionnent pas le bot avec @ (plateformes de chat) |
proxy_url | Proxy par canal (http/https/socks5/socks5h) ; remplace la configuration globale [proxy] |
excluded_tools | Outils non mis à la disposition du modèle lors de la réponse sur ce canal |
draft_update_interval_ms | Cadence d’édition en streaming (par défaut 500 ms) |
approval_timeout_secs | Secondes d’attente pour l’approbation de l’opérateur sur les outils always_ask avant le refus automatique |
Les expéditeurs entrants sont contrôlés via les groupes de pairs, et non par un champ par canal.
Capacité de streaming
Les canaux déclarent le type de streaming qu’ils prennent en charge : consultez Providers → Streaming pour la matrice des capacités et la signification de supports_draft_updates / supports_multi_message_streaming.
Ajout d’un canal
Implémenter un nouveau canal consiste à ajouter un fichier dans crates/zeroclaw-channels/src/ qui implémente le trait Channel. La référence canonique est n’importe quel canal existant de forme similaire : discord.rs pour le mode push, email_channel.rs pour l’interrogation (polling), webhook.rs pour le mode piloté par HTTP.