Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

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.

CanalIndicateur de fonctionnalitéGuide dédié
Matrixmatrice-de-canauxMatrix
Telegramchannel-telegramTelegram
Discordchannel-discordDiscord
Slackchannel-slackSlack
Mattermostchannel-mattermostMattermost
LINEchannel-lineLINE
Nextcloud Talkchannel-nextcloudNextcloud Talk
Signalchannel-signalSignal
Twitchchannel-twitchTwitch
API Cloud WhatsAppchannel-whatsapp-cloudWhatsApp
WhatsApp Webwhatsapp-webWhatsApp
WeCom (Bot Webhook / AI Bot WS)channel-wecom, channel-wecom-wsAutres plateformes de chat
iMessage, WeChat personal iLink Bot, DingTalk, Lark, QQ, IRC, Mochat, Notionpar canalAutres plateformes de chat

Social et diffusion

Intégrations de type un-à-plusieurs ou de flux public.

CanalIndicateur de fonctionnalitéProtocole / service
Blueskychannel-blueskyProtocole AT
Nostrchannel-nostrRelais NIP-01
Twitter / Xchannel-twitterAPI v2
Redditchannel-redditAPI JSON

Voir les réseaux sociaux.

Plateformes pour les développeurs

CanalIndicateur de fonctionnalitéProtocole / service
Gitchannel-gitGit 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.

E-mail

CanalIndicateur de fonctionnalitéNotes
IMAP / SMTPchannel-emailBoîte de réception classique basée sur les sondages
Gmail Pushchannel-emailNotifications push Google Pub/Sub : en temps réel, sans interrogation (polling)

Voir Email.

Voix et téléphonie

CanalIndicateur de fonctionnalitéService
ClawdTalkchannel-clawdtalkVoix en temps réel Telnyx SIP
Appel vocalchannel-voice-callTwilio / Telnyx / Plivo
Réveil vocalvoice-wakeDétection locale de mots-réveils
Synthèse vocaletoujours compilé avec la prise en charge des canauxSynthèse vocale sortante (OpenAI, ElevenLabs, Google Cloud, Edge, Piper)

Voir Voix et téléphonie.

Webhooks et programmation

CanalIndicateur de fonctionnalitéForme
Webhookchannel-webhookHTTP entrant → agent
CLItoujours activéEntrée/sortie standard locale
Passerelle REST/WSgateway (activé par défaut)HTTP + WebSocket
ACP (Agent Client Protocol)channel-acp-serverJSON-RPC 2.0 via stdio : sessions éditeur/IDE

Voir Webhooks et ACP.

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.

CanalIndicateur de fonctionnalitéForme
MQTTchannel-mqttMessages du broker → agent ou SOP
AMQPchannel-amqpLivraisons par courtier → agent ou SOP
Filesystemchannel-filesystemChangements 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
enabledActiver/désactiver sans supprimer la section
mention_onlyIgnorer les messages qui ne mentionnent pas le bot avec @ (plateformes de chat)
proxy_urlProxy par canal (http/https/socks5/socks5h) ; remplace la configuration globale [proxy]
excluded_toolsOutils non mis à la disposition du modèle lors de la réponse sur ce canal
draft_update_interval_msCadence d’édition en streaming (par défaut 500 ms)
approval_timeout_secsSecondes 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.

Notifications de repli de modèle

channels.model_fallback_notice contrôle les notifications pour les replis ordinaires vers un autre modèle au sein de la même famille de fournisseurs. La valeur par défaut est off. Les notifications de repli entre familles et les notifications de garde-fou conservent leur comportement existant dans tous les modes.

ModeAvis livré
offAucun avis ordinaire de repli vers un modèle de la même famille
redactedUne notification générique indiquant qu’un modèle de secours a fourni la réponse, sans identifiants de fournisseur ni de modèle
detailedLes identifiants de fournisseur et de modèle demandés et servis

Le paramètre s’applique globalement à tous les canaux qui utilisent l’orchestrateur de canaux partagés. Choisissez le mode pour chaque audience susceptible de recevoir une réponse, y compris les salons partagés et les canaux publics. detailed expose les identifiants de routage à ces audiences ; redacted signale la récupération sans ces identifiants. Il n’existe aucune dérogation par canal.

Ce paramètre ne contrôle pas les notifications de repli dans le chat web de la passerelle, dans ZeroCode ou dans les sessions RPC ; celles-ci utilisent le chemin de tour d’agent et conservent leurs notifications détaillées existantes avec les identifiants du fournisseur et du modèle.

Définissez le mode via ZeroCode Config ou un autre éditeur de configuration pris en charge, ou utilisez :

zeroclaw config set channels.model_fallback_notice redacted

L’orchestrateur lit la configuration active en cours au moment de remettre la réponse, de sorte qu’un changement de mode publié peut affecter un tour déjà en cours. Le simple enregistrement d’un fichier ne met pas à jour la configuration active d’un daemon en cours d’exécution. Utilisez les chemins existants de publication et de rechargement de la configuration décrits dans Cycle de vie de la configuration ; les écritures CLI autonomes prennent effet au prochain chargement ou rechargement.

Ces notifications ne sont ajoutées qu’à la livraison sortante. L’historique stocké de l’assistant conserve la réponse du modèle sans la notification, de sorte que les tours suivants ne reçoivent pas ces métadonnées de livraison comme contenu de la conversation. L’attribution doit identifier un repli réussi vers un modèle différent avant qu’une notification ne soit ajoutée ; les changements de profil de même famille ou du même modèle restent indiscernables dans l’enregistrement d’attribution actuel.

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.