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 | |
| WeCom (Bot Webhook / AI Bot WS) | channel-wecom, channel-wecom-ws | Otras plataformas de chat |
| 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.
Avisos de respaldo de modelo
channels.model_fallback_notice controla los avisos de la reversión ordinaria a un modelo distinto dentro de la misma familia de proveedores. El valor predeterminado es off. Los avisos de reversión entre familias y los avisos de salvaguarda mantienen su comportamiento actual en todos los modos.
| Modo | Aviso entregado |
|---|---|
off | Aviso de respaldo de modelo de la misma familia no habitual |
redacted | Esta respuesta fue generada por un modelo alternativo. |
detailed | Los identificadores de proveedor/modelo solicitados y servidos |
El ajuste se aplica globalmente a todos los canales que usan el orquestador de canales compartido. Elige el modo para cada audiencia que pueda recibir una respuesta, incluidas las salas compartidas y los canales públicos. detailed expone los identificadores de enrutamiento a esas audiencias; redacted informa de la recuperación sin esos identificadores. No hay anulaciones por canal.
Esta configuración no controla los avisos de respaldo en el chat web de la puerta de enlace, en ZeroCode ni en las sesiones RPC; esos usan la ruta de turnos del agente y conservan sus avisos detallados existentes con los identificadores de proveedor y modelo.
Establece el modo mediante ZeroCode Config u otro editor de configuración compatible, o usa:
zeroclaw config set channels.model_fallback_notice redacted
El orquestador lee la configuración activa vigente al entregar la respuesta, por lo que un cambio de modo publicado puede afectar a un turno que ya está en curso. Guardar un archivo por sí solo no actualiza la configuración activa de un daemon en ejecución. Utilice las rutas existentes de publicación y recarga de configuración descritas en Ciclo de vida de la configuración; las escrituras independientes de la CLI surten efecto en la siguiente carga o recarga.
Estos avisos se añaden únicamente a la entrega saliente. El historial del asistente almacenado conserva la respuesta del modelo sin el aviso, por lo que los turnos posteriores no reciben estos metadatos de entrega como contenido de la conversación. La atribución debe identificar un fallback exitoso a un modelo diferente antes de añadir un aviso; los cambios de perfil dentro de la misma familia o del mismo modelo siguen sin distinguirse en el registro de atribución actual.
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.