Múltiples Gateways (mismo host)
La mayoría de las configuraciones deberían usar un solo Gateway, ya que un único Gateway puede manejar múltiples conexiones de mensajería y agentes. Si necesitas mayor aislamiento o redundancia (por ejemplo, un bot de rescate), ejecuta Gateways separados con perfiles y puertos aislados.
Lista de verificación de aislamiento (obligatoria)
OPENCLAW_CONFIG_PATH— archivo de configuración por instanciaOPENCLAW_STATE_DIR— sesiones, credenciales y cachés por instanciaagents.defaults.workspace— raíz del workspace por instanciagateway.port(o--port) — único por instancia- Los puertos derivados (browser/canvas) no deben solaparse
Si se comparten, tendrás condiciones de carrera en la configuración y conflictos de puertos.
Recomendado: perfiles (--profile)
Los perfiles asignan automáticamente OPENCLAW_STATE_DIR + OPENCLAW_CONFIG_PATH y agregan un sufijo a los nombres de servicio.
# principal
openclaw --profile main setup
openclaw --profile main gateway --port 18789
# rescate
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 del bot de rescate
Ejecuta un segundo Gateway en el mismo host con los siguientes elementos propios:
- perfil/configuración
- directorio de estado
- workspace
- puerto base (más los puertos derivados)
Esto mantiene al 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 los puertos base para que los puertos derivados de browser/canvas/CDP nunca colisionen.
Cómo instalar (bot de rescate)
# Bot principal (existente o nuevo, sin el parámetro --profile)
# Se ejecuta en el puerto 18789 + puertos Chrome CDC/Canvas/...
openclaw onboard
openclaw gateway install
# Bot de rescate (perfil y puertos aislados)
openclaw --profile rescue onboard
# Notas:
# - El nombre del workspace se postfija con -rescue por defecto
# - El puerto debería ser al menos 18789 + 20 puertos,
# mejor elegir un puerto base completamente diferente, como 19789
# - El resto del onboarding es igual que el normal
# Para instalar el servicio (si no ocurrió automáticamente durante el onboarding)
openclaw --profile rescue gateway install
Mapeo de puertos (derivados)
Puerto base = gateway.port (o OPENCLAW_GATEWAY_PORT / --port).
- Puerto del servicio de control del navegador = base + 2 (solo loopback)
- El canvas host se sirve en el servidor HTTP del Gateway (mismo puerto que
gateway.port) - Los puertos CDP de los perfiles del navegador se asignan automáticamente desde
browser.controlPort + 9 .. + 108
Si sobrescribes alguno de estos en la configuración o en variables de entorno, debes mantenerlos únicos por instancia.
Notas sobre Browser/CDP (error frecuente)
- No fijes
browser.cdpUrla los mismos valores en múltiples instancias. - Cada instancia necesita su propio puerto de control del navegador y rango CDP (derivado de su puerto de gateway).
- Si necesitas puertos CDP explícitos, configura
browser.profiles.<name>.cdpPortpor instancia. - Chrome remoto: usa
browser.profiles.<name>.cdpUrl(por perfil, por instancia).
Ejemplo manual con variables de entorno
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