Canales: Descripción general
Un channel es una superficie de mensajería a través de la cual se comunica el agente. Una instancia de ZeroClaw puede vincular múltiples canales simultáneamente: el mismo agente puede responder en Discord, Telegram, correo electrónico y a través del gateway REST sin que tengas que ejecutar procesos separados.
Un agente lista los canales en los que responde; consulta Agentes para saber cómo los canales se adjuntan a un agente (y cómo un grupo de pares permite que los agentes en un canal compartido se dirijan entre sí).
Los canales son implementaciones del rasgo Channel en zeroclaw-api. Cada uno está protegido por una característica en tiempo de compilación, por lo que una compilación mínima solo incluye los canales que deseas.
La compilación predeterminada de ZeroClaw incluye un conjunto reducido de canales: ACP, webhook, correo electrónico, Telegram, Discord y sistema de archivos. Estos cubren las sesiones locales/de editor, la entrada del gateway y la mensajería externa habitual durante el primer uso, sin compilar todas las integraciones de plataforma incluidas. Los artefactos de distribución estándar añaden Git, Matrix, Lark y WhatsApp Web; el artefacto de Android omite WhatsApp Web por compatibilidad con el destino. Para las instalaciones desde el código fuente que necesiten el conjunto histórico de canales amplio, ejecuta install.sh --source --preset full, compila con --features channels-full o usa funciones channel-* individuales para compilaciones selectivas:
sh
./install.sh --source --preset full
cargo build --features channels-full
cargo build --no-default-features --features agent-runtime,gateway,channel-slack
Categorías
Plataformas de chat
Mensajería en tiempo real donde el agente puede mantener una conversación, recibir notificaciones de nuevos mensajes mediante push o long-poll, y responder como un usuario bot.
| Canal | Bandera de función | Guía dedicada |
|---|---|---|
| Matrix | matriz-de-canales | Matrix |
| Telegram | channel-telegram | Telegram |
| Discord | channel-discord | Discord |
| Slack | channel-slack | Slack |
| Mattermost | channel-mattermost | Mattermost |
| LINE | línea-de-canal | LINE |
| Nextcloud Talk | channel-nextcloud | Nextcloud Talk |
| Signal | channel-signal | Signal |
| Twitch | channel-twitch | Twitch |
| WhatsApp Cloud API | channel-whatsapp-cloud | |
| WhatsApp Web | whatsapp-web | |
| iMessage, WeChat personal iLink Bot, DingTalk, Lark, QQ, IRC, Mochat, Notion | por canal | Otras plataformas de chat |
Social y difusión
Integraciones de uno a muchos o de feed público.
| Canal | Bandera de función | Protocolo / servicio |
|---|---|---|
| Bluesky | channel-bluesky | Protocolo AT |
| Nostr | channel-nostr | Relays NIP-01 |
| Twitter / X | channel-twitter | API v2 |
channel-reddit | API JSON |
Consulta Canales sociales.
Plataformas para desarrolladores
| Canal | Bandera de función | Protocolo / servicio |
|---|---|---|
| Git | channel-git | Git forge detrás de una capa de proveedor (GitHub, Gitea, Forgejo); sondeo REST de issues, PRs, ejecuciones de CI y lanzamientos con enrutamiento por evento |
Ver Git.
Correo electrónico
| Canal | Bandera de función | Notas |
|---|---|---|
| IMAP / SMTP | channel-email | Bandeja de entrada clásica basada en encuestas |
| Gmail Push | channel-email | Notificaciones push de Google Pub/Sub: en tiempo real, sin sondeo |
Ver Correo electrónico.
Voz y telefonía
| Canal | Bandera de función | Servicio |
|---|---|---|
| ClawdTalk | channel-clawdtalk | Voz en tiempo real de Telnyx SIP |
| Llamada de voz | channel-voice-call | Twilio / Telnyx / Plivo |
| Despertar por voz | voice-wake | Detección de palabra clave local |
| TTS | siempre compilado con soporte de canales | Síntesis de voz saliente (OpenAI, ElevenLabs, Google Cloud, Edge, Piper) |
Consulta Voz y telefonía.
Webhooks y programación
| Canal | Bandera de función | Forma |
|---|---|---|
| Webhook | channel-webhook | HTTP entrante → agente |
| CLI | siempre activo | Entrada/salida estándar local |
| Puerta de enlace REST/WS | gateway (habilitado por defecto) | HTTP + WebSocket |
| ACP (Protocolo de Cliente de Agente) | channel-acp-server | JSON-RPC 2.0 sobre stdio: sesiones de editor/IDE |
Fuentes de eventos
Transportes de solo entrada que alimentan eventos en el bucle del agente o en el motor SOP. No tienen respuesta de salida; cada uno también es un SOP fan-in.
| Canal | Bandera de función | Forma |
|---|---|---|
| MQTT | channel-mqtt | Mensajes del corredor → agente o SOP |
| AMQP | channel-amqp | Entregas del broker → agente o SOP |
| Filesystem | channel-filesystem | Cambios de ruta → agente o SOP |
See MQTT, AMQP, and Filesystem.
Configuración
Las instancias modernas de canales se configuran bajo [channels.<type>.<alias>], con default como el primer alias más común. Configúralas a través de cualquier superficie de configuración:
Panel de control del gateway
Abre /config/channels en el panel web.
zerocode
En el panel Config, en Channels.
Los secrets (tokens de bot, claves de API, contraseñas) se almacenan cifrados; configúralos a través del gateway, zerocode o zeroclaw config set (enmascarado), nunca en texto plano. La entrada channels en un agente vincula un alias de canal a ese agente. Los nombres de campo difieren según el canal; zeroclaw config schema es la lista autoritativa. Campos que se repiten en muchos canales:
| Clave | Qué hace |
|---|---|
enabled | Activar/desactivar sin eliminar la sección |
mention_only | Ignorar los mensajes que no mencionen al bot con @ (plataformas de chat) |
proxy_url | Proxy por canal (http/https/socks5/socks5h); anula la configuración global de [proxy] |
excluded_tools | Herramientas retenidas del modelo al responder en este canal |
draft_update_interval_ms | Frecuencia de edición en streaming (predeterminado 500 ms) |
approval_timeout_secs | Segundos a esperar por la aprobación del operador en herramientas always_ask antes de denegar automáticamente |
Los remitentes entrantes se controlan mediante grupos de pares, no mediante un campo por canal.
Capacidad de transmisión
Los canales declaran qué tipo de streaming admiten: consulta Proveedores → Streaming para ver la matriz de capacidades y qué significan supports_draft_updates / supports_multi_message_streaming.
Añadiendo un canal
Implementar un nuevo canal significa agregar un archivo a crates/zeroclaw-channels/src/ que implemente el trait Channel. La referencia canónica es cualquier canal existente de forma similar: discord.rs para basados en push, email_channel.rs para sondeo, webhook.rs para los dirigidos por HTTP.