Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

LINE

ZeroClaw es compatible con LINE a través de la Messaging API, recibiendo mensajes mediante un servidor webhook integrado y respondiendo a través de la Reply API (con la Push API como alternativa cuando el token de respuesta ha expirado).

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 line establece channel a line, lista los remitentes permitidos en external_peers (para line, el ID de usuario de LINE; ["*"] 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.

LINE aplica dm_policy y group_policy como capas sobre el conjunto de pares, consulta Políticas de Acceso más abajo. Cuando una política está configurada como allowlist, el conjunto de pares es la lista de permitidos.

Requisitos previos

  1. Una cuenta de LINE Developers Console.
  2. Un punto de conexión HTTPS público accesible desde los servidores de LINE (o ngrok para el desarrollo local).
  3. ZeroClaw construido con soporte para canales LINE habilitado (la función channel-line en el crate zeroclaw-channels).

1. Crear un bot de LINE

  1. Inicia sesión en la Consola de LINE Developers.
  2. Crea un Proveedor (o utiliza uno existente).
  3. Crea un nuevo canal de API de Mensajería bajo ese Proveedor.
  4. Desde la configuración del canal, recopila dos valores:
    • Channel Access Token: pestaña Messaging API → Issue (emitir) un token de larga duración.
    • Channel Secret: pestaña de Configuración básica.

2. Configurar ZeroClaw

channel_access_token 🔑 secret · default ""

Token de acceso de canal de larga duración (desde LINE Developers Console). Se usa tanto para la Reply API como para el respaldo de la Push API. Si está vacío, recurre a la variable de entorno LINE_CHANNEL_ACCESS_TOKEN.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/line y configura el campo channels.line.<alias>.channel_access_token.

zerocode

En el panel Config, configure el campo channels.line.<alias>.channel_access_token.

zeroclaw config

zeroclaw config set channels.line.<alias>.channel_access_token    # entrada enmascarada, almacenada cifrada

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

Secreto del canal (desde LINE Developers Console). Se utiliza para verificar el encabezado X-Line-Signature en los webhooks entrantes. Si está vacío, recurre a la variable de entorno LINE_CHANNEL_SECRET.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/line y configura el campo channels.line.<alias>.channel_secret.

zerocode

En el panel Config, establece el campo channels.line.<alias>.channel_secret.

zeroclaw config

zeroclaw config set channels.line.<alias>.channel_secret    # entrada enmascarada, almacenada cifrada

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

Política de acceso a DM (chat 1:1). Predeterminado: pairing. - open: responder a todos - pairing: requiere un handshake único /bind <code> en el primer contacto - allowlist: responder solo a los IDs de usuario listados en allowed_users

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/line y configura el campo channels.line.<alias>.dm_policy.

zerocode

En el panel Config, establece el campo channels.line.<alias>.dm_policy.

zeroclaw config

zeroclaw config set channels.line.<alias>.dm_policy <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__line__<alias>__dm_policy=
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/line y configura el campo channels.line.<alias>.excluded_tools.

zerocode

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

zeroclaw config

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

Política de chats grupales / con varias personas. Predeterminado: mention. - open: responder a todos los mensajes - mention: responder solo cuando se @mencione - disabled: ignorar todos los mensajes grupales

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/line y configura el campo channels.line.<alias>.group_policy.

zerocode

En el panel Config, configure el campo channels.line.<alias>.group_policy.

zeroclaw config

zeroclaw config set channels.line.<alias>.group_policy <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__line__<alias>__group_policy=
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/line y configura el campo channels.line.<alias>.proxy_url.

zerocode

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

zeroclaw config

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

Nombre para mostrar que se muestra como remitente en los globos de chat de LINE. El valor predeterminado es "AI" cuando no está configurado o está vacío.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/channels/line y establezca el campo channels.line.<alias>.sender_name.

zerocode

En el panel Config, establezca el campo channels.line.<alias>.sender_name.

zeroclaw config

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

Puerto TCP en el que escucha el servidor de webhooks integrado. Predeterminado: 8443.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/channels/line y configura el campo channels.line.<alias>.webhook_port.

zerocode

En el panel Config, establece el campo channels.line.<alias>.webhook_port.

zeroclaw config

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

Configura el canal de LINE en [channels.line.<alias>] con al menos channel_access_token y channel_secret. La semántica de cara al usuario de dm_policy / group_policy se describe en la §6 a continuación.

Usando variables de entorno en lugar de un archivo de configuración

Si prefieres no almacenar las credenciales en el archivo de configuración, omite los campos del token y expórtalos como variables de entorno:

sh

export LINE_CHANNEL_ACCESS_TOKEN="tu-token-de-acceso-al-canal"
export LINE_CHANNEL_SECRET="tu-secreto-de-canal"

Las variables de entorno tienen prioridad sobre los campos vacíos de la configuración.


3. Exponer el extremo del webhook

LINE envía mensajes publicando en tu URL de webhook. El servidor integrado escucha en el webhook_port configurado.

Para el desarrollo local (ngrok):

sh

ngrok http 8443

Copia la URL https:// que proporciona ngrok (por ejemplo, https://abc123.ngrok.io).

Para producción: expone el puerto 8443 (o el puerto que hayas configurado) detrás de un proxy inverso HTTPS (nginx, Caddy, etc.) o despliega directamente en un servidor con un certificado TLS.


4. Registra el Webhook en la consola de LINE Developers

  1. Ve a tu canal → pestaña API de MensajeríaConfiguración de Webhook.
  2. Establece la URL del webhook en https://your-domain.com/line/webhook.
  3. Activa Usar webhook.
  4. Haz clic en Verify, LINE enviará una solicitud de prueba. ZeroClaw debe estar en ejecución para que la verificación tenga éxito.

5. Iniciar ZeroClaw

sh

zeroclaw daemon

Señal de registro de inicio:

LINE: el servidor webhook está escuchando en http://0.0.0.0:8443/line/webhook

6. Políticas de acceso

Mensaje directo (chat 1:1): dm_policy

ValorComportamiento
pairing (predeterminado)El bot ignora todos los DM hasta que el usuario envía /bind <code>. Se muestra un código de emparejamiento en el registro de ZeroClaw al inicio.
openEl bot responde a cada mensaje directo de inmediato.
allowlistEl bot responde únicamente a los IDs de usuario de LINE que estén en el conjunto de pares del agente (consulta Quién puede hablar con el agente).

Flujo de trabajo de emparejamiento:

  1. ZeroClaw imprime un código de emparejamiento en el registro al inicio.
  2. El usuario abre un DM de LINE con el bot y envía /bind <code>.
  3. ZeroClaw confirma el emparejamiento; los DMs posteriores son aceptados.

Chat grupal / de varias personas: group_policy

ValorComportamiento
mención (predeterminado)El bot responde únicamente cuando se le menciona explícitamente con @.
openEl bot responde a cada mensaje en el grupo.
disabledEl bot ignora por completo todos los mensajes del grupo.

7. Transcripción de mensajes de audio/voz (opcional)

Cuando la transcripción está habilitada (a través de la configuración global [transcription], consulte Config reference), los eventos de mensajes audio de LINE se descargan automáticamente desde la LINE Content API y se transcriben antes de pasarse al modelo.

El tamaño máximo aceptado para el audio es de 25 MB. Los archivos más grandes se omiten silenciosamente con una advertencia en el registro.


8. Solución de problemas

SíntomaCausa probableAcción
La verificación de LINE fallaZeroClaw no se está ejecutando o el puerto no es accesibleConfirma que el proceso está activo y que el puerto es accesible desde Internet.
El bot no responde a mensajes directosdm_policy = pairing y el usuario no ha ejecutado /bindEl usuario debe enviar /bind <code> primero, o cambiar a dm_policy = open
El bot no responde en los gruposgroup_policy = mention y el mensaje no tiene @mención@menciona al bot, o cambia a group_policy = open
La respuesta llega como un mensaje pushEl token de respuesta ha expirado (ventana de ~30 s)Comportamiento de respaldo esperado, no se requiere ninguna acción
Mensajes de audio ignorados[transcription] no configuradoAgrega un bloque [transcription] con enabled = true

Palabras clave de registro

CondiciónMensaje de registro
Inicio saludableLINE: servidor webhook escuchando en http://0.0.0.0:<port>/line/webhook
Firma rechazadaLINE: firma X-Line-Signature no válida
DM no autorizadoLINE: DM de <userId> rechazada por la política
Emparejamiento requeridoLINE: usuario sin emparejar <userId>; ignorando hasta /bind
Audio ignorado (sin transcripción)LINE: mensaje de audio ignorado (transcripción no configurada)
La transcripción de audio falló.LINE: la transcripción falló para <messageId>:

Ver también