Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

LINE

ZeroClaw prend en charge LINE via la Messaging API, en recevant les messages par l’intermédiaire d’un serveur webhook intégré et en répondant via la Reply API (avec repli sur la Push API lorsque le jeton de réponse a expiré).

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 line définit channel à line, liste les expéditeurs autorisés dans external_peers (pour line, l’identifiant utilisateur LINE ; ["*"] 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.

LINE superpose dm_policy et group_policy à l’ensemble des pairs, voir Politiques d’accès ci-dessous. Lorsqu’une politique est définie sur allowlist, l’ensemble des pairs constitue la liste d’autorisation.

Prérequis

  1. Un compte LINE Developers Console.
  2. Un point de terminaison HTTPS public accessible depuis les serveurs de LINE (ou ngrok pour le développement local).
  3. ZeroClaw construit avec le support du canal LINE activé (la fonctionnalité channel-line du crate zeroclaw-channels).

Créer un bot LINE

  1. Connectez-vous à la console LINE Developers.
  2. Créez un Provider (ou utilisez-en un existant).
  3. Créez un nouveau canal Messaging API sous ce Provider.
  4. Depuis les paramètres du canal, récupérer deux valeurs :
    • Jeton d’accès au canal : onglet Messaging API → Issue pour émettre un jeton de longue durée.
    • Secret du canal : onglet Paramètres de base.

2. Configurer ZeroClaw

channel_access_token 🔑 secret · default ""

Jeton d’accès au canal de longue durée (depuis la LINE Developers Console). Utilisé à la fois pour la Reply API et le mécanisme de repli vers la Push API. Utilise par défaut la variable d’environnement LINE_CHANNEL_ACCESS_TOKEN si vide.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/line et définissez le champ channels.line.<alias>.channel_access_token.

zerocode

Dans le volet Config, définissez le champ channels.line.<alias>.channel_access_token.

zeroclaw config

zeroclaw config set channels.line.<alias>.channel_access_token    # entrée masquée, stockée chiffrée

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__line__<alias>__channel_access_token=
channel_secret 🔑 secret · default ""

Secret de canal (depuis la LINE Developers Console). Utilisé pour vérifier l’en-tête X-Line-Signature des webhooks entrants. Utilise par défaut la variable d’environnement LINE_CHANNEL_SECRET si vide.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/line et définissez le champ channels.line.<alias>.channel_secret.

zerocode

Dans le volet Config, définissez le champ channels.line.<alias>.channel_secret.

zeroclaw config

zeroclaw config set channels.line.<alias>.channel_secret    # entrée masquée, stockée chiffrée

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__line__<alias>__channel_secret=
dm_policy LineDmPolicy · default "pairing"

Politique d’accès aux DM (discussions en tête-à-tête). Valeur par défaut : pairing. - open : répondre à tout le monde - pairing : exiger une procédure d’appairage unique /bind <code> lors du premier contact - allowlist : répondre uniquement aux ID utilisateur listés dans allowed_users

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/line et définissez le champ channels.line.<alias>.dm_policy.

zerocode

Dans le volet Config, définissez le champ channels.line.<alias>.dm_policy.

zeroclaw config

zeroclaw config set channels.line.<alias>.dm_policy <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__line__<alias>__dm_policy=
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/line et définissez le champ channels.line.<alias>.excluded_tools.

zerocode

Dans le panneau Config, définissez le champ channels.line.<alias>.excluded_tools.

zeroclaw config

zeroclaw config set channels.line.<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__line__<alias>__excluded_tools=
group_policy LineGroupPolicy · default "mention"

Politique de discussion de groupe / à plusieurs personnes. Par défaut : mention. - open : répondre à chaque message - mention : répondre uniquement en cas de @mention - disabled : ignorer tous les messages de groupe

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/line et définissez le champ channels.line.<alias>.group_policy.

zerocode

Dans le panneau Config, définissez le champ channels.line.<alias>.group_policy.

zeroclaw config

zeroclaw config set channels.line.<alias>.group_policy <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__line__<alias>__group_policy=
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/line et définissez le champ channels.line.<alias>.proxy_url.

zerocode

Dans le volet Config, définissez le champ channels.line.<alias>.proxy_url.

zeroclaw config

zeroclaw config set channels.line.<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__line__<alias>__proxy_url=
sender_name string? · default null

Nom affiché comme expéditeur dans les bulles de chat LINE. Valeur par défaut : “AI” si non défini ou vide.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/line et définissez le champ channels.line.<alias>.sender_name.

zerocode

Dans le volet Config, définissez le champ channels.line.<alias>.sender_name.

zeroclaw config

zeroclaw config set channels.line.<alias>.sender_name <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__line__<alias>__sender_name=
webhook_port integer · default 8443

Port TCP sur lequel le serveur webhook intégré écoute. Par défaut : 8443.

Posez-le sur n’importe quelle surface :

Tableau de bord de la passerelle

Ouvrez /config/channels/line et définissez le champ channels.line.<alias>.webhook_port.

zerocode

Dans le volet Config, définissez le champ channels.line.<alias>.webhook_port.

zeroclaw config

zeroclaw config set channels.line.<alias>.webhook_port <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__line__<alias>__webhook_port=

Configurez le canal LINE sous [channels.line.<alias>] avec au minimum channel_access_token et channel_secret. La sémantique côté utilisateur de dm_policy / group_policy est traitée à la §6 ci-dessous.

Utiliser des variables d’environnement au lieu d’un fichier de configuration

Si vous préférez ne pas stocker les informations d’identification dans le fichier de configuration, omettez les champs de jeton et exportez-les en tant que variables d’environnement :

sh

export LINE_CHANNEL_ACCESS_TOKEN="votre-jeton-d'accès-à-la-chaîne"
export LINE_CHANNEL_SECRET="your-channel-secret"

Les variables d’environnement prennent le pas sur les champs de configuration vides.


3. Exposer le point de terminaison Webhook

LINE fournit des messages en POSTant à votre URL webhook. Le serveur intégré écoute sur le webhook_port configuré.

Pour le développement local (ngrok) :

sh

ngrok http 8443

Copiez l’URL https:// fournie par ngrok (par exemple https://abc123.ngrok.io).

Pour la production : exposez le port 8443 (ou le port que vous avez configuré) derrière un proxy inverse HTTPS (nginx, Caddy, etc.) ou déployez directement sur un serveur avec un certificat TLS.


4. Enregistrez le Webhook dans la console LINE Developers.

  1. Accédez à votre chaîne → onglet API de messagerieParamètres du webhook.
  2. Définissez Webhook URL sur https://your-domain.com/line/webhook.
  3. Basculez Utiliser un webhook sur on.
  4. Cliquez sur Verify, LINE enverra une requête de test. ZeroClaw doit être en cours d’exécution pour que la vérification réussisse.

5. Démarrer ZeroClaw

sh

zeroclaw daemon

Signal de démarrage du journal :LINE: l'écouteur du serveur webhook à l'adresse http://0.0.0.0:8443/line/webhook


6. Politiques d’accès

DM (discussion individuelle) : dm_policy

ValeurComportement
pairing (par défaut)Le bot ignore tous les messages privés tant que l’utilisateur n’a pas envoyé /bind <code>. Un code d’appariement est affiché dans les journaux de ZeroClaw au démarrage.
openLe bot répond immédiatement à chaque message direct (DM).
allowlistLe bot répond uniquement aux identifiants utilisateur LINE figurant dans l’ensemble de pairs de l’agent (voir Qui peut parler à l’agent).

- workflow d’appariement :

  1. ZeroClaw affiche un code d’appariement dans les logs au démarrage.
  2. L’utilisateur ouvre un DM LINE avec le bot et envoie /bind <code>.
  3. ZeroClaw confirme l’appariement ; les messages directs suivants sont acceptés.

Discussion de groupe / à plusieurs : group_policy

ValeurComportement
mention (par défaut)Le bot répond uniquement lorsqu’il est explicitement @mentionné.
openLe bot répond à chaque message du groupe.
disabledLe bot ignore complètement tous les messages de groupe.

7. Transcription audio / messages vocaux (optionnel)

Lorsque la transcription est activée (via la configuration globale [transcription], voir la Référence de configuration), les événements de message audio de LINE sont automatiquement téléchargés depuis l’API LINE Content et transcrits avant d’être transmis au modèle.

La taille maximale d’un fichier audio est de 25 Mo. Les fichiers plus volumineux sont silencieusement ignorés avec un avertissement de journal.


8. Dépannage

SymptômeCause probableAction
La vérification de la ligne LINE échoueZeroClaw ne s’exécute pas, ou le port n’est pas accessibleConfirmez que le processus est en cours et que le port est accessible depuis Internet
Le bot ne répond pas aux messages directsdm_policy = pairing et l’utilisateur n’a pas exécuté /bindL’utilisateur doit d’abord envoyer /bind <code>, ou passer à dm_policy = open
Le bot ne répond pas dans les groupesgroup_policy = mention et le message ne comporte pas de @mention@mentionner le bot, ou passer à group_policy = open
La réponse arrive sous forme de message pushLe jeton de réponse a expiré (fenêtre d’environ 30 s)Comportement de repli attendu, aucune action requise
Les messages audio sont ignorés[transcription] non configuréAjouter le bloc [transcription] avec enabled = true

Mots-clés de journal

ConditionLog message → message de journal
Démarrage sainLINE: serveur webhook en écoute sur http://0.0.0.0:<port>/line/webhook
Signature rejetéeLINE: signature X-Line-Signature invalide
-message direct non autoriséLINE: Message de <userId> rejetée par la politique
Appairage requisLINE: utilisateur non apparié <userId> ; ignore jusqu'à /bind
Audio ignoré (pas de transcription)LINE: audio message ignored (transcription not configured)
La transcription audio a échouéLINE: la transcription a échoué pour <messageId> :

Voir aussi