Arquitectura
Un análisis profundo del diseño centrado en Gateway de OpenClaw, modelo de red y ciclo de ejecución del agente.
OpenClaw está construido alrededor de una arquitectura centrada en Gateway donde un único proceso de larga duración gestiona todas las conexiones de canales y proporciona un plano de control unificado. Este diseño asegura confiabilidad, seguridad y simplicidad.
Componentes Core
El Gateway
El Gateway (<code>openclaw gateway</code>) es el corazón de OpenClaw. Es un único proceso que:
- Gestiona todas las conexiones de canales (WhatsApp, Telegram, Discord, etc.).
- Proporciona un plano de control WebSocket en el puerto <strong>18789</strong> (por defecto).
- Maneja gestión de sesiones y enrutamiento.
- Sirve la UI de Control / Dashboard.
- Gestiona el <strong>host Canvas</strong> para interfaces visuales.
- Coordina comunicación inter-agente.
Consejo de Estabilidad
Modelo de Red
OpenClaw usa un enfoque <strong>loopback-first</strong> para máxima seguridad:
- <strong>Por defecto:</strong> El WebSocket del Gateway se ejecuta en <code>ws://127.0.0.1:18789</code> (solo localhost).
- <strong>Acceso Remoto:</strong> Usar túneles SSH, Tailscale, o configurar <code>--bind</code> con tokens de autenticación para acceso externo seguro.
- <strong>Host Canvas:</strong> Un servidor de archivos HTTP dedicado en el puerto <strong>18793</strong> sirviendo <code>/__openclaw__/canvas/</code> para WebViews de nodo de alto rendimiento.
Resumen de Arquitectura
│
▼
┌───────────────────────────────────────────────┐
│ Gateway │ ws://127.0.0.1:18789
│ (Single Source of Truth) │
│ │ http://<host>:18793
└───────────────────────┬───────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
OpenClaw Agent (RPC) CLI Tool Native Apps (iOS/macOS)
El Ciclo del Agente
El ciclo del agente es el ciclo de procesamiento core que define cómo se manejan los mensajes:
- <strong>Mensaje Recibido:</strong> Un canal conectado recibe un mensaje entrante.
- <strong>Enrutamiento de Sesión:</strong> El mensaje se enruta a la sesión apropiada (principal, grupo, o aislada).
- <strong>Carga de Contexto:</strong> El agente carga contexto histórico relevante, memorias y herramientas.
- <strong>Procesamiento LLM:</strong> La solicitud estructurada se envía al proveedor LLM (Claude, GPT, etc.).
- <strong>Ejecución de Herramientas:</strong> El agente ejecuta autónomamente herramientas (navegador, sistema de archivos, shell) según sea necesario.
- <strong>Streaming de Respuesta:</strong> La respuesta final se transmite de vuelta al canal en tiempo real.
- <strong>Actualización de Memoria:</strong> La conversación se indexa y guarda en el workspace.
Modelo de Sesión
Tipos de Sesión
- <strong>Sesión Principal:</strong> Colapsa todos los mensajes directos en un contexto compartido.
- <strong>Sesiones de Grupo:</strong> Cada chat de grupo obtiene un workspace aislado.
- <strong>Sesiones Aisladas:</strong> Creadas para necesidades específicas de seguridad o efímeras.
Características de Sesión
- <strong>Modos de Activación:</strong> Control de responsividad (solo mención, siempre, etc.).
- <strong>Gestión de Cola:</strong> Manejo eficiente de solicitudes concurrentes.
- <strong>Sandboxing:</strong> Aislamiento Docker opcional para entornos multi-tenant.
Estructura del Workspace
OpenClaw es <strong>file-system first</strong>. Todo se almacena en tus directorios de configuración y workspace:
~/.openclaw/openclaw.json # Configuration file ~/.openclaw/credentials/ # Secure channel tokens ~/.openclaw/workspace/ # Workspace Root ├── AGENTS.md # Agent persona definitions ├── SOUL.md # Core personality & logic ├── TOOLS.md # Custom tool definitions ├── skills/ # Plugin/Skill directory └── sessions/ # Active conversation states
Enrutamiento Multi-Agente
OpenClaw soporta enrutamiento avanzado de mensajes basado en:
- <strong>Canal:</strong> Diferentes agentes para WhatsApp vs Discord.
- <strong>Cuenta/Peer:</strong> Enrutar contactos específicos a personas dedicadas.
- <strong>Aislamiento de Workspace:</strong> Cada agente puede estar bloqueado en su propio directorio y conjunto de skills.
Streaming y Protocolo
Streaming y Fragmentación
OpenClaw usa <strong>Block Streaming</strong> para enviar respuestas en fragmentos para velocidad percibida. También soporta <strong>Telegram Draft Streaming</strong>, mostrando indicadores de escritura y borradores en tiempo real.
Protocolos de Comunicación
- <strong>WebSocket:</strong> Para entrega en tiempo real y actualizaciones de UI de Control.
- <strong>RPC (Remote Procedure Call):</strong> Usado por agentes para invocación de herramientas y consultas de contexto.