Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Signal

Le canal Signal de ZeroClaw communique avec un démon HTTP signal-cli en cours d’exécution. Signal ne fournit pas d’API de bot officielle, c’est pourquoi ZeroClaw se connecte à signal-cli via HTTP local et laisse signal-cli gérer le compte Signal, les clés d’appareil et le transport des messages.

Utilisez ce canal lorsque vous exploitez déjà un compte Signal avec signal-cli, ou lorsque vous pouvez exécuter le daemon à côté de ZeroClaw. Si vous avez uniquement installé l’application Signal pour ordinateur ou mobile, cela ne suffit pas en soi ; ZeroClaw a besoin du point de terminaison du daemon HTTP.

Qui peut parler à l’agent

Les expéditeurs entrants sont filtrés par rapport au peer set résolu pour l’agent lié, issu de la configuration peer_groups à laquelle l’agent appartient. La correspondance supprime le @ initial et est insensible à la casse par rapport à l’identifiant d’expéditeur natif du canal. Un ensemble vide refuse tout le monde ; un ensemble contenant "*" accepte n’importe qui ; sinon, seuls les pairs externes listés (et les agents pairs) sont acceptés. Ceci est distinct de l’appairage de la passerelle (gateway.require_pairing), qui authentifie les clients HTTP/WebSocket, et non les expéditeurs des canaux de discussion.

Un groupe de pairs pour signal définit channel à signal, liste les expéditeurs autorisés dans external_peers (pour signal, un numéro de téléphone E.164 ou un identifiant de source signal-cli ; ["*"] accepte tout le monde), nomme éventuellement des agents pairs pour la répartition inter-agents, une liste de blocage ignore, et un output_modality (mirror, voice ou text). Consultez Peer Groups pour la référence des champs.

Où définir ce paramètre :

Tableau de bord de la passerelle

Ouvrez /config/peer_groups dans le tableau de bord web.

zerocode

Dans le volet Config, sous Peer groups.

Vous pouvez également restreindre le trafic au niveau du canal : dm_only = true ignore les groupes ; group_ids = ["<signal-group-id>"] n’accepte que les groupes listés tout en continuant d’accepter les messages directs ; ignore_attachments et ignore_stories rejettent ces types de messages avant qu’ils n’atteignent l’agent.

Prérequis

  • Un compte Signal lié ou enregistré dans signal-cli.
  • Un démon HTTP signal-cli en cours d’exécution, par exemple signal-cli daemon --http 127.0.0.1:8686.
  • Une version de ZeroClaw avec la fonctionnalité channel-signal activée.

Gardez le démon lié à localhost à moins de l’avoir placé derrière votre propre limite réseau authentifiée. Le démon peut envoyer et recevoir en tant que compte Signal lié.

Configurer le canal

account* string · default

Numéro de téléphone au format E.164 du compte signal-cli (par ex. « +1234567890 »).

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/signal et définissez le champ channels.signal.<alias>.account.

zerocode

Dans le volet Config, définissez le champ channels.signal.<alias>.account.

zeroclaw config

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

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

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

Nombre de secondes d’attente pour l’approbation de l’opérateur sur les outils always_ask avant le refus automatique.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/signal et définissez le champ channels.signal.<alias>.approval_timeout_secs.

zerocode

Dans le volet Config, définissez le champ channels.signal.<alias>.approval_timeout_secs.

zeroclaw config

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

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

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

Lorsque cette option est définie sur true, seuls les messages directs sont acceptés et tout le trafic de groupe est ignoré. Mutuellement exclusive avec group_ids (qui est ignoré lorsque cette option est définie). Migré depuis l’ancienne valeur sentinelle group_id = "dm".

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/signal et définissez le champ channels.signal.<alias>.dm_only.

zerocode

Dans le volet Config, définissez le champ channels.signal.<alias>.dm_only.

zeroclaw config

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

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

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

Outils exclus de la spécification d’outils de ce canal. Lorsque ce paramètre est défini, ces outils ne sont pas exposés au modèle lors des réponses via ce canal.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/signal et définissez le champ channels.signal.<alias>.excluded_tools.

zerocode

Dans le volet Config, définissez le champ channels.signal.<alias>.excluded_tools.

zeroclaw config

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

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

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

ID de groupes pour filtrer les messages. Vide = accepter tous les messages (DM et groupes). Lorsque non vide, seuls les messages provenant des groupes listés sont acceptés (les DM sont toujours acceptés sauf si dm_only bascule la politique en mode DM uniquement). Migré depuis l’ancien champ singulier group_id.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/signal et définissez le champ channels.signal.<alias>.group_ids.

zerocode

Dans le panneau Config, définissez le champ channels.signal.<alias>.group_ids.

zeroclaw config

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

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

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

URL de base pour le démon HTTP signal-cli (par ex. "http://127.0.0.1:8686").

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/signal et définissez le champ channels.signal.<alias>.http_url.

zerocode

Dans le volet Config, définissez le champ channels.signal.<alias>.http_url.

zeroclaw config

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

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

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

Ignorer les messages contenant uniquement des pièces jointes (sans corps de texte).

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/signal et définissez le champ channels.signal.<alias>.ignore_attachments.

zerocode

Dans le volet Config, définissez le champ channels.signal.<alias>.ignore_attachments.

zeroclaw config

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

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

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

Ignorer les messages de story entrants.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/signal et définissez le champ channels.signal.<alias>.ignore_stories.

zerocode

Dans le volet Config, définissez le champ channels.signal.<alias>.ignore_stories.

zeroclaw config

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

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

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

URL de proxy par canal (http, https, socks5, socks5h). Remplace le paramètre global [proxy] pour ce canal uniquement.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/signal et définissez le champ channels.signal.<alias>.proxy_url.

zerocode

Dans le panneau Config, définissez le champ channels.signal.<alias>.proxy_url.

zeroclaw config

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

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

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

Plancher de cadencement sortant par (canal, destinataire) en secondes. Plage : 0..=REPLY_MIN_INTERVAL_MAX_SECS (0 désactive).

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/signal et définissez le champ channels.signal.<alias>.reply_min_interval_secs.

zerocode

Dans le volet Config, définissez le champ channels.signal.<alias>.reply_min_interval_secs.

zeroclaw config

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

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

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

Profondeur de la file d’attente de régulation sortante par (canal, destinataire). Plage : 0..=REPLY_QUEUE_DEPTH_CEILING. Lorsque reply_min_interval_secs > 0 et que cette valeur est 0, le wrapper de régulation substitue DEFAULT_REPLY_QUEUE_DEPTH (16). Lorsque la file d’attente est pleine, l’envoi le plus récent est abandonné et un WARN est journalisé.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/signal et définissez le champ channels.signal.<alias>.reply_queue_depth_max.

zerocode

Dans le volet Config, définissez le champ channels.signal.<alias>.reply_queue_depth_max.

zeroclaw config

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

Variable d’environnement

Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :

export ZEROCLAW_channels__signal__<alias>__reply_queue_depth_max=

Tableau de bord de la passerelle

Ouvrez /config/channels/signal dans le tableau de bord web.

zerocode

Dans le volet Config, sous Channels.

Liez le canal à un agent via la liste channels de cet agent.

Démarrer et vérifier

Démarrez d’abord le daemon, puis démarrez les canaux ZeroClaw :

sh

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

Utilisez zeroclaw channel doctor pour confirmer que ZeroClaw peut charger le canal configuré. Si le canal échoue à l’exécution, vérifiez que http_url pointe vers le démon, que le compte est enregistré dans signal-cli et que la build inclut channel-signal.

Confusion fréquente

Le projet signal-cli est principalement connu comme une CLI, mais ZeroClaw a besoin de son mode démon HTTP. Si vous avez installé uniquement le binaire en ligne de commande sans jamais démarrer le démon, ZeroClaw n’a rien à quoi se connecter.