Múltiples Gateways
Ejecutar múltiples Gateways OpenClaw en un host (aislamiento, puertos y perfiles)
La mayoría de configuraciones deberían usar un Gateway porque un solo Gateway puede manejar múltiples conexiones de mensajería y agentes. Si necesitas aislamiento más fuerte o redundancia (ej., un bot de rescate), ejecuta Gateways separados con perfiles/puertos aislados.
Lista de verificación de aislamiento (requerido)
- ''OPENCLAW_CONFIG_PATH'' — archivo de configuración por instancia
- ''OPENCLAW_STATE_DIR'' — sesiones, credenciales, caches por instancia
- ''agents.defaults.workspace'' — raíz de workspace por instancia
- ''gateway.port'' (o ''--port'') — único por instancia
- Los puertos derivados (browser/canvas) no deben superponerse
Si estos se comparten, tendrás carreras de configuración y conflictos de puertos.
Recomendado: perfiles (`--profile`)
Los perfiles auto-alcancen ''OPENCLAW_STATE_DIR'' + ''OPENCLAW_CONFIG_PATH'' y sufijan nombres de servicio.
openclaw --profile main setup openclaw --profile main gateway --port 18789 openclaw --profile rescue setup openclaw --profile rescue gateway --port 19001
Servicios por perfil:
openclaw --profile main gateway install openclaw --profile rescue gateway install
Guía de bot de rescate
Ejecuta un segundo Gateway en el mismo host con su propio:
- perfil/config
- directorio de estado
- workspace
- puerto base (más puertos derivados)
Esto mantiene el bot de rescate aislado del bot principal para que pueda depurar o aplicar cambios de configuración si el bot primario está caído.
Espaciado de puertos: deja al menos 20 puertos entre puertos base para que los puertos derivados de browser/canvas/CDP nunca colisionen.
#
Cómo instalar (bot de rescate)
openclaw onboard openclaw gateway install openclaw --profile rescue onboard openclaw --profile rescue gateway install
Mapeo de puertos (derivados)
Puerto base = ''gateway.port'' (o ''OPENCLAW_GATEWAY_PORT'' / ''--port'').
- puerto de servicio de control de navegador = base + 2 (solo loopback)
- ''canvasHost.port = base + 4''
- Los puertos CDP de perfil de navegador se auto-asignan desde ''browser.controlPort + 9 .. + 108''
Si sobrescribes alguno de estos en config o env, debes mantenerlos únicos por instancia.
Notas de Browser/CDP (error común)
- ''No'' fijes ''browser.cdpUrl'' a los mismos valores en múltiples instancias.
- Cada instancia necesita su propio puerto de control de navegador y rango CDP (derivados de su puerto de gateway).
- Si necesitas puertos CDP explícitos, establece ''browser.profiles.'' por instancia.
- Chrome remoto: usa ''browser.profiles.'' (por perfil, por instancia).
Ejemplo de env manual
OPENCLAW_CONFIG_PATH=~/.openclaw/main.json \ OPENCLAW_STATE_DIR=~/.openclaw-main \ openclaw gateway --port 18789 OPENCLAW_CONFIG_PATH=~/.openclaw/rescue.json \ OPENCLAW_STATE_DIR=~/.openclaw-rescue \ openclaw gateway --port 19001
Verificaciones rápidas
openclaw --profile main status openclaw --profile rescue status openclaw --profile rescue browser status