Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Signal

El canal de Signal de ZeroClaw se comunica con un daemon HTTP signal-cli en ejecución. Signal no proporciona una API oficial para bots, por lo que ZeroClaw se conecta a signal-cli a través de HTTP local y deja que signal-cli gestione la cuenta de Signal, las claves del dispositivo y el transporte de mensajes.

Usa este canal cuando ya operas una cuenta de Signal con signal-cli, o cuando puedes ejecutar el daemon junto a ZeroClaw. Si solo tienes instalada la aplicación de escritorio o móvil de Signal, eso no es suficiente por sí solo; ZeroClaw necesita el endpoint del daemon HTTP.

Quién puede hablar con el agente

Los remitentes entrantes se filtran contra el conjunto de pares resuelto para el agente vinculado, obtenido de la configuración peer_groups a la que pertenece el agente. La coincidencia elimina el @ inicial y no distingue mayúsculas de minúsculas frente al identificador nativo de remitente del canal. Un conjunto vacío deniega a todos; un conjunto que contiene "*" acepta a cualquiera; en caso contrario, solo se aceptan los pares externos listados (y los agentes pares). Esto es independiente del emparejamiento de la puerta de enlace (gateway.require_pairing), que autentica clientes HTTP/WebSocket, no remitentes de canales de chat.

Un grupo de pares para signal establece channel en signal, enumera los remitentes permitidos en external_peers (para signal, un número de teléfono E.164 o un identificador de origen de signal-cli; ["*"] acepta a cualquiera), opcionalmente nombra agents pares para el despacho entre agentes, una lista de bloqueo ignore y un output_modality (mirror, voice o text). Consulte Peer Groups para la referencia de campos.

Dónde configurar esto:

Panel de control del gateway

Abra /config/peer_groups en el panel de control web.

zerocode

En el panel Config, en Peer groups.

También puedes restringir el tráfico a nivel de canal: dm_only = true ignora los grupos; group_ids = ["<signal-group-id>"] acepta solo los grupos listados sin dejar de aceptar mensajes directos; ignore_attachments e ignore_stories descartan esos tipos de mensajes antes de que lleguen al agente.

Requisitos previos

  • Una cuenta de Signal vinculada o registrada en signal-cli.
  • Un daemon HTTP signal-cli en ejecución, por ejemplo signal-cli daemon --http 127.0.0.1:8686.
  • Una compilación de ZeroClaw con la característica channel-signal habilitada.

Mantén el daemon enlazado a localhost a menos que lo hayas colocado detrás de tu propio límite de red autenticado. El daemon puede enviar y recibir como la cuenta de Signal vinculada.

Configura el canal

account* string · default

Número de teléfono E.164 de la cuenta de signal-cli (p. ej., “+1234567890”).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/signal y establece el campo channels.signal.<alias>.account.

zerocode

En el panel Config, establece el campo channels.signal.<alias>.account.

zeroclaw config

zeroclaw config set channels.signal.<alias>.account <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__signal__<alias>__account=
approval_timeout_secs integer · default 300

Segundos de espera para la aprobación del operador en las herramientas always_ask antes de denegar automáticamente.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/signal y configura el campo channels.signal.<alias>.approval_timeout_secs.

zerocode

En el panel Config, establece el campo channels.signal.<alias>.approval_timeout_secs.

zeroclaw config

zeroclaw config set channels.signal.<alias>.approval_timeout_secs <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__signal__<alias>__approval_timeout_secs=
dm_only bool · default false

Cuando es true, solo acepta mensajes directos e ignora todo el tráfico de grupos. Mutuamente excluyente con group_ids (que se ignora cuando esta opción está establecida). Migrado del centinela heredado group_id = "dm".

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/signal y configura el campo channels.signal.<alias>.dm_only.

zerocode

En el panel Config, configure el campo channels.signal.<alias>.dm_only.

zeroclaw config

zeroclaw config set channels.signal.<alias>.dm_only <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__signal__<alias>__dm_only=
excluded_tools string[] · default []

Herramientas excluidas de la especificación de herramientas de este canal. Cuando se establece, estas herramientas no se exponen al modelo al responder a través de este canal.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/signal y configura el campo channels.signal.<alias>.excluded_tools.

zerocode

En el panel Config, establece el campo channels.signal.<alias>.excluded_tools.

zeroclaw config

zeroclaw config set channels.signal.<alias>.excluded_tools <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__signal__<alias>__excluded_tools=
group_ids string[] · default []

IDs de grupos para filtrar mensajes. Vacío = aceptar todos los mensajes (DMs y grupos). Cuando no está vacío, solo se aceptan mensajes de los grupos listados (los DMs se siguen aceptando a menos que dm_only cambie la política a solo DMs). Migrado desde el campo singular heredado group_id.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/signal y configura el campo channels.signal.<alias>.group_ids.

zerocode

En el panel Config, configure el campo channels.signal.<alias>.group_ids.

zeroclaw config

zeroclaw config set channels.signal.<alias>.group_ids <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__signal__<alias>__group_ids=
http_url* string · default

URL base para el daemon HTTP de signal-cli (p. ej., "http://127.0.0.1:8686").

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/signal y configura el campo channels.signal.<alias>.http_url.

zerocode

En el panel Config, configure el campo channels.signal.<alias>.http_url.

zeroclaw config

zeroclaw config set channels.signal.<alias>.http_url <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__signal__<alias>__http_url=
ignore_attachments bool · default false

Omitir mensajes que solo contienen adjuntos (sin cuerpo de texto).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/signal y configura el campo channels.signal.<alias>.ignore_attachments.

zerocode

En el panel Config, configure el campo channels.signal.<alias>.ignore_attachments.

zeroclaw config

zeroclaw config set channels.signal.<alias>.ignore_attachments <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__signal__<alias>__ignore_attachments=
ignore_stories bool · default false

Omitir los mensajes de historias entrantes.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/signal y configura el campo channels.signal.<alias>.ignore_stories.

zerocode

En el panel Config, configure el campo channels.signal.<alias>.ignore_stories.

zeroclaw config

zeroclaw config set channels.signal.<alias>.ignore_stories <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__signal__<alias>__ignore_stories=
proxy_url string? · default null

URL de proxy por canal (http, https, socks5, socks5h). Anula la configuración global [proxy] solo para este canal.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/signal y configura el campo channels.signal.<alias>.proxy_url.

zerocode

En el panel Config, establece el campo channels.signal.<alias>.proxy_url.

zeroclaw config

zeroclaw config set channels.signal.<alias>.proxy_url <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__signal__<alias>__proxy_url=
reply_min_interval_secs integer · default 0

Límite mínimo de ritmo de salida por (canal, destinatario) en segundos. Rango: 0..=REPLY_MIN_INTERVAL_MAX_SECS (0 lo desactiva).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/signal y configura el campo channels.signal.<alias>.reply_min_interval_secs.

zerocode

En el panel Config, configure el campo channels.signal.<alias>.reply_min_interval_secs.

zeroclaw config

zeroclaw config set channels.signal.<alias>.reply_min_interval_secs <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__signal__<alias>__reply_min_interval_secs=
reply_queue_depth_max integer · default 0

Profundidad de la cola de regulación de salida por (canal, destinatario). Rango: 0..=REPLY_QUEUE_DEPTH_CEILING. Cuando reply_min_interval_secs > 0 y este valor es 0, el envoltorio de regulación sustituye DEFAULT_REPLY_QUEUE_DEPTH (16). Cuando la cola está llena, se descarta el envío más reciente y se registra un WARN.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/signal y configura el campo channels.signal.<alias>.reply_queue_depth_max.

zerocode

En el panel Config, establece el campo channels.signal.<alias>.reply_queue_depth_max.

zeroclaw config

zeroclaw config set channels.signal.<alias>.reply_queue_depth_max <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_channels__signal__<alias>__reply_queue_depth_max=

Panel de control del gateway

Abre /config/channels/signal en el panel web.

zerocode

En el panel Config, en Channels.

Vincule el canal a un agente mediante la lista channels de ese agente.

Iniciar y comprobar

Primero inicia el daemon, luego inicia los canales de ZeroClaw:

sh

signal-cli daemon --http 127.0.0.1:8686
zeroclaw channel start

Usa zeroclaw channel doctor para confirmar que ZeroClaw puede cargar el canal configurado. Si el canal falla en tiempo de ejecución, comprueba que http_url apunte al daemon, que la cuenta esté registrada en signal-cli y que la compilación incluya channel-signal.

Confusión común

El proyecto signal-cli es conocido principalmente como una CLI, pero ZeroClaw necesita su modo demonio HTTP. Si solo instalaste el binario de línea de comandos y nunca iniciaste el demonio, ZeroClaw no tiene nada a lo que conectarse.