OpenClaw

Canal WebChat de OpenClaw

Mensajería
Fácil

WebChat es la interfaz de chat integrada de OpenClaw Gateway. Se conecta directamente a través de WebSocket — sin servicios externos, claves de API ni cuentas de terceros. Simplemente inicia el Gateway, configura la autenticación y abre la interfaz de WebChat para comenzar a chatear con tu asistente de IA. Todos los mensajes se enrutan de forma determinista, lo que significa que las respuestas siempre regresan a la sesión de WebChat que inició la conversación.

Info rápida
DificultadFácil
CategoríaMensajería
Funciones compatibles1 / 6

WebChat Funciones compatibles

Mensajes de texto

Compatible

Medios y archivos

No compatible

Reacciones

No compatible

Hilos

No compatible

Mensajes de voz

No compatible

Chat grupal

No compatible

WebChat Requisitos previos

  • OpenClaw Gateway instalado y en funcionamiento
  • Autenticación del Gateway configurada (modo token o contraseña)
  • Un navegador web moderno (Control UI) o el cliente nativo de macOS/iOS
  • Acceso de red al puerto WebSocket del Gateway (por defecto: 3000)

WebChat Configuración rápida

1

Iniciar el Gateway

Ejecuta tu OpenClaw Gateway. WebChat está integrado — no se necesita instalación ni plugin adicional. Ejecuta 'openclaw start' para iniciar el servicio del Gateway.

2

Configurar la autenticación

Configura gateway.auth.mode con autenticación 'token' o 'password' en tu openclaw.json. La autenticación es obligatoria para todas las conexiones, incluyendo localhost.

3

Abrir WebChat

Accede a la interfaz de WebChat a través de la pestaña de chat de Control UI en tu navegador, o ejecuta el cliente nativo de macOS/iOS. Conéctate al Gateway en ws://localhost:3000 (o tu host y puerto configurados).

4

Comenzar a chatear

Envía un mensaje de prueba para verificar la conexión. Tu asistente de IA responderá a través de la misma sesión de WebChat. El historial de conversación es gestionado por el Gateway y se mantiene entre reconexiones.

WebChat Ejemplo de configuración

config.json
{
  "gateway": {
    "port": 3000,
    "bind": "127.0.0.1",
    "auth": {
      "mode": "token",
      "token": "YOUR_SECRET_TOKEN"
    }
  }
}

WebChat Documentación Detallada

Descripción de la arquitectura

WebChat se comunica con OpenClaw Gateway a través de una conexión WebSocket usando tres operaciones principales: • chat.history — Recuperar el historial de conversación del Gateway • chat.send — Transmitir mensajes del usuario al asistente de IA • chat.inject — Agregar notas del asistente directamente a las transcripciones y transmitirlas a la interfaz sin activar una ejecución del agente A diferencia de otros canales que dependen de servicios externos y webhooks, WebChat es completamente nativo del Gateway. Los mensajes nunca salen de tu infraestructura — la conexión WebSocket es directa entre el cliente de la interfaz y el proceso del Gateway. El enrutamiento es determinista: las respuestas de la IA siempre regresan a la sesión de WebChat que inició la conversación.
WebChat es el canal más sencillo de configurar ya que no requiere cuentas externas ni claves de API — solo el Gateway en sí.
La operación chat.inject es útil para agregar notas del sistema o contexto a una conversación sin activar una respuesta de la IA.

Autenticación del Gateway

La autenticación es obligatoria para todas las conexiones de WebChat, incluso en loopback (localhost). Esto previene el acceso no autorizado a tu asistente de IA. OpenClaw soporta dos modos de autenticación: • token — Un token secreto compartido que se envía en el handshake de WebSocket. Ideal para acceso programático y configuraciones de un solo usuario. • password — Autenticación basada en contraseña. Adecuada para entornos multiusuario donde cada usuario tiene sus propias credenciales. Al menos uno de los modos, token o password, debe estar configurado para que WebChat acepte conexiones. Configúralos en los ajustes de gateway.auth de tu openclaw.json.
openclaw.json
{
  "gateway": {
    "auth": {
      "mode": "token",
      "token": "a-strong-random-token-here"
    }
  }
}
La autenticación es obligatoria incluso para conexiones localhost. Nunca ejecutes el Gateway sin autenticación configurada — cualquier proceso en la máquina podría acceder a tu asistente de IA.

Acceso remoto

WebChat soporta conectividad remota sin necesidad de ejecutar un servidor web separado. Se recomiendan dos enfoques: • Túnel SSH — Redirige el puerto del Gateway a través de SSH: ssh -L 3000:localhost:3000 user@remote-host. Esto te permite acceder a WebChat localmente mientras el Gateway se ejecuta en una máquina remota. • Tailscale — Conecta tus dispositivos a través de la VPN mesh de Tailscale. El Gateway será accesible en su dirección IP de Tailscale sin necesidad de redirección de puertos ni configuración de firewall. Para conexiones remotas, configura los ajustes de gateway.remote con la URL de WebSocket de destino y las credenciales de autenticación. El cliente nativo gestiona la reconexión automáticamente cuando cambian las condiciones de red.
openclaw.json
{
  "gateway": {
    "remote": {
      "url": "wss://your-remote-host:3000",
      "token": "YOUR_REMOTE_TOKEN"
    }
  }
}
El túnel SSH es la forma más rápida de obtener acceso remoto sin software adicional — solo asegúrate de tener acceso SSH al host del Gateway.
Tailscale proporciona una VPN de configuración cero que hace el Gateway accesible en todos tus dispositivos sin redirección de puertos.

Gestión de sesiones

WebChat utiliza sesiones gestionadas por el Gateway para mantener el contexto de la conversación. Cada conexión de WebChat está asociada a una sesión que almacena el historial de conversación y el contexto de la IA. Las sesiones persisten entre reconexiones — si el WebSocket se desconecta y reconecta, la conversación continúa donde se quedó. La operación chat.history recupera la conversación completa del Gateway al reconectar. La configuración de sesiones se gestiona a través de los ajustes session.* en openclaw.json, incluyendo el backend de almacenamiento y las claves de sesión por defecto.
El historial de conversación proviene del Gateway, no se almacena localmente. Esto significa que puedes cambiar de dispositivo y retomar la misma conversación.
Usa session.defaultKey para asignar un identificador de sesión consistente a tus conversaciones de WebChat.

Modo de solo lectura

Cuando el Gateway deja de estar accesible, WebChat entra automáticamente en modo de solo lectura. En este estado: • El historial de conversación previo permanece visible • No se pueden enviar nuevos mensajes • La interfaz indica el estado de desconexión • Se realizan intentos de reconexión automática en segundo plano Una vez que el Gateway vuelve a estar en línea, WebChat se reconecta automáticamente y restaura la funcionalidad completa. No se pierden mensajes del historial de conversación ya que todo el historial proviene del Gateway.
El modo de solo lectura es una degradación elegante — los usuarios aún pueden revisar conversaciones anteriores mientras el Gateway está temporalmente no disponible.

Características del cliente nativo

WebChat está implementado como una aplicación nativa de SwiftUI en plataformas Apple: • macOS — Experiencia de escritorio completa con atajos de teclado, notificaciones del sistema e integración con la barra de menú • iOS — Interfaz optimizada para móvil con notificaciones push y actualización en segundo plano La implementación nativa proporciona una experiencia responsiva y nativa de la plataforma sin la sobrecarga de un navegador embebido o un wrapper de Electron. El renderizado de texto, el desplazamiento y el manejo de entrada utilizan componentes nativos de la plataforma. Para otras plataformas (Windows, Linux, Android), accede a WebChat a través de la pestaña de chat de Control UI en cualquier navegador web moderno.
El cliente nativo de macOS/iOS ofrece la mejor experiencia con funciones específicas de la plataforma como notificaciones del sistema y atajos de teclado.
La pestaña de chat de Control UI basada en navegador funciona en todas las plataformas y proporciona la misma funcionalidad principal.

Entrega de mensajes

WebChat gestiona la entrega de mensajes a través de la conexión WebSocket con fragmentación configurable para respuestas largas de la IA: • textChunkLimit — Máximo de caracteres por fragmento de mensaje (por defecto: 2000). Las respuestas largas se dividen automáticamente. • blockStreaming — Cuando está habilitado, las respuestas se envían en fragmentos basados en bloques a medida que se generan, proporcionando retroalimentación en tiempo real. Los mensajes se entregan instantáneamente a través del WebSocket — no hay polling ni demora de webhooks. La conexión bidireccional de WebSocket significa que tanto el envío como la recepción ocurren en tiempo real.
openclaw.json
{
  "channels": {
    "webchat": {
      "textChunkLimit": 2000,
      "blockStreaming": true
    }
  }
}

Mejores prácticas de seguridad

La seguridad de WebChat se basa en la capa de autenticación del Gateway. Sigue estas mejores prácticas para despliegues seguros: • Siempre configura la autenticación — No se permite acceso anónimo • Usa cifrado TLS — Conéctate a través de wss:// (WebSocket Secure) para todas las conexiones remotas • Restringe la dirección de enlace — Usa gateway.bind: "127.0.0.1" para acceso solo local; evita vincular a 0.0.0.0 a menos que estés detrás de un proxy inverso • Usa credenciales seguras — Genera tokens aleatorios o contraseñas fuertes • Proxy inverso — Para despliegues en producción, coloca el Gateway detrás de un proxy inverso (nginx, Caddy) con terminación TLS Si usas un proxy inverso en la misma máquina, configura gateway.trustedProxies para asegurar la detección correcta de la IP del cliente.
Nunca expongas el puerto WebSocket del Gateway directamente a internet sin cifrado TLS y autenticación fuerte. Usa un proxy inverso con terminación TLS para despliegues en producción.

WebChat Referencia de Configuración

gateway.port
Type: numberDefault: 3000

Número de puerto WebSocket para el Gateway

gateway.bind
Type: stringDefault: "127.0.0.1"

Dirección de host a la que el Gateway se vincula para conexiones WebSocket

gateway.auth.mode
Type: stringDefault: "token"

Modo de autenticación: 'token' para secreto compartido o 'password' para autenticación basada en credenciales

gateway.auth.token
Type: stringDefault: ""

Token secreto compartido para la autenticación WebSocket

gateway.auth.password
Type: stringDefault: ""

Contraseña para la autenticación WebSocket

gateway.remote.url
Type: stringDefault: ""

URL de WebSocket del Gateway remoto (ej: wss://remote-host:3000)

gateway.remote.token
Type: stringDefault: ""

Token de autenticación para conectarse a un Gateway remoto

gateway.remote.password
Type: stringDefault: ""

Contraseña de autenticación para conectarse a un Gateway remoto

session.defaultKey
Type: stringDefault: ""

Clave de sesión por defecto para conversaciones de WebChat

session.storage
Type: stringDefault: "memory"

Backend de almacenamiento de sesiones (memory, file, redis, etc.)

textChunkLimit
Type: numberDefault: 2000

Máximo de caracteres por fragmento de mensaje saliente

blockStreaming
Type: booleanDefault: false

Enviar respuestas como fragmentos basados en bloques durante la generación para retroalimentación en tiempo real

WebChat Preguntas Frecuentes

WebChat Solución de Problemas

WebChat muestra 'Desconectado' y no se reconecta

El Gateway no está en funcionamiento, o el puerto WebSocket está bloqueado por un firewall.

Verifica que el Gateway esté en funcionamiento con 'openclaw status'. Comprueba que el gateway.port configurado no esté bloqueado por un firewall. Asegúrate de que gateway.bind permita conexiones desde la dirección de red de tu cliente.
La autenticación falla al conectarse

El token o la contraseña no coincide con la configuración del Gateway.

Verifica que gateway.auth.token o gateway.auth.password coincida exactamente con las credenciales de tu cliente. Comprueba si hay espacios al final o problemas de codificación. Reinicia el Gateway después de cambiar los ajustes de autenticación.
Los mensajes se envían pero no aparece respuesta de la IA

El agente de IA no está configurado, o la clave de API del proveedor de IA no es válida.

Revisa los logs del Gateway en busca de errores. Verifica la configuración de tu agente en openclaw.json. Asegúrate de que la clave de API del proveedor de IA (ej: OpenAI, Anthropic) sea válida y tenga cuota disponible.
La conexión remota a través del túnel SSH falla

El túnel SSH no está redirigiendo el puerto correcto, o el Gateway no está escuchando en la dirección esperada.

Asegúrate de que el comando SSH coincida con el puerto del Gateway: ssh -L 3000:localhost:3000 user@host. En la máquina remota, verifica que el Gateway esté escuchando en el puerto esperado. Comprueba que gateway.bind esté configurado como 127.0.0.1 para acceso por túnel SSH.
El historial de chat está vacío después de la reconexión

La sesión expiró o fue limpiada entre conexiones.

Revisa los ajustes de configuración de sesión en openclaw.json. Asegúrate de que el Gateway tenga suficiente almacenamiento para la persistencia de sesiones. Verifica que la clave de sesión coincida entre conexiones.