Gateway
Manual operativo de Gateway
Usa esta página para el arranque del día 1 y las operaciones del día 2 del servicio Gateway.
Diagnósticos centrados en síntomas con escaleras de comandos exactas y firmas de registro.
Guía de configuración orientada a tareas + referencia de configuración completa.
Contrato SecretRef, comportamiento de instantánea en tiempo de ejecución y operaciones de migración/recarga.
Reglas exactas de destino/ruta de secrets apply y comportamiento de perfil de autenticación solo por referencia.
Arranque local en 5 minutos
Start the Gateway
openclaw gateway --port 18789
# debug/trace mirrored to stdio
openclaw gateway --port 18789 --verbose
# force-kill listener on selected port, then start
openclaw gateway --force
Verify service health
openclaw gateway status
openclaw status
openclaw logs --follow
Línea base saludable: Runtime: running, Connectivity probe: ok y Capability: ... que coincida con lo que esperas. Usa openclaw gateway status --require-rpc cuando necesites prueba RPC de alcance de lectura, no solo accesibilidad.
Validate channel readiness
openclaw channels status --probe
Con un gateway accesible, esto ejecuta pruebas de canal en vivo por cuenta y auditorías opcionales. Si no se puede acceder al gateway, la CLI recurre a resúmenes de canales solo de configuración en lugar de la salida de prueba en vivo.
Modelo en tiempo de ejecución
- Un proceso siempre activo para enrutamiento, plano de control y conexiones de canal.
- Puerto multiplexado único para:
- Control/RPC de WebSocket
- API HTTP, compatibles con OpenAI (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - Control UI y hooks
- Modo de enlace predeterminado:
loopback. - La autenticación es obligatoria de forma predeterminada. Las configuraciones con secreto compartido usan
gateway.auth.token/gateway.auth.password(oOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), y las configuraciones de proxy inverso sin loopback pueden usargateway.auth.mode: "trusted-proxy".
Endpoints compatibles con OpenAI
La superficie de compatibilidad de mayor impacto de OpenClaw ahora es:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
Por qué importa este conjunto:
- La mayoría de las integraciones con Open WebUI, LobeChat y LibreChat prueban primero
/v1/models. - Muchas canalizaciones de RAG y memoria esperan
/v1/embeddings. - Los clientes nativos para agentes prefieren cada vez más
/v1/responses.
Nota de planificación:
/v1/modelsprioriza agentes: devuelveopenclaw,openclaw/defaultyopenclaw/<agentId>.openclaw/defaultes el alias estable que siempre se asigna al agente predeterminado configurado.- Usa
x-openclaw-modelcuando quieras anular el proveedor/modelo de backend; de lo contrario, la configuración normal de modelo e incrustaciones del agente seleccionado mantiene el control.
Todos estos se ejecutan en el puerto principal del Gateway y usan el mismo límite de autenticación de operador de confianza que el resto de la API HTTP del Gateway.
Precedencia de puerto y enlace
| Configuración | Orden de resolución |
|---|---|
| Puerto del Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Modo de enlace | CLI/anulación → gateway.bind → loopback |
Los servicios de gateway instalados registran el --port resuelto en los metadatos del supervisor. Después de cambiar gateway.port, ejecuta openclaw doctor --fix o openclaw gateway install --force para que launchd/systemd/schtasks inicie el proceso en el puerto nuevo.
El arranque del Gateway usa el mismo puerto y enlace efectivos cuando inicializa orígenes locales de
Control UI para enlaces sin loopback. Por ejemplo, --bind lan --port 3000
inicializa http://localhost:3000 y http://127.0.0.1:3000 antes de que se ejecute la
validación en tiempo de ejecución. Añade explícitamente cualquier origen de navegador remoto, como URL de proxy HTTPS, a
gateway.controlUi.allowedOrigins.
Modos de recarga en caliente
gateway.reload.mode |
Comportamiento |
|---|---|
off |
Sin recarga de configuración |
hot |
Aplica solo cambios seguros en caliente |
restart |
Reinicia ante cambios que requieren recarga |
hybrid (predeterminado) |
Aplica en caliente cuando es seguro, reinicia cuando es necesario |
Conjunto de comandos del operador
openclaw gateway status
openclaw gateway status --deep # adds a system-level service scan
openclaw gateway status --json
openclaw gateway install
openclaw gateway restart
openclaw gateway stop
openclaw secrets reload
openclaw logs --follow
openclaw doctor
gateway status --deep es para descubrimiento adicional de servicios (LaunchDaemons/unidades de sistema systemd/schtasks), no una prueba de estado RPC más profunda.
Varios gateways (mismo host)
La mayoría de las instalaciones deberían ejecutar un gateway por máquina. Un solo gateway puede alojar múltiples agentes y canales.
Solo necesitas varios gateways cuando quieres aislamiento intencionalmente o un bot de rescate.
Comprobaciones útiles:
openclaw gateway status --deep
openclaw gateway probe
Qué esperar:
gateway status --deeppuede informarOther gateway-like services detected (best effort)e imprimir sugerencias de limpieza cuando todavía quedan instalaciones antiguas de launchd/systemd/schtasks.gateway probepuede advertir sobremultiple reachable gatewayscuando responde más de un destino.- Si eso es intencional, aísla los puertos, la configuración/estado y las raíces de espacio de trabajo por gateway.
Lista de comprobación por instancia:
gateway.portúnicoOPENCLAW_CONFIG_PATHúnicoOPENCLAW_STATE_DIRúnicoagents.defaults.workspaceúnico
Ejemplo:
OPENCLAW_CONFIG_PATH=~/.openclaw/a.json OPENCLAW_STATE_DIR=~/.openclaw-a openclaw gateway --port 19001
OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002
Configuración detallada: /gateway/multiple-gateways.
Acceso remoto
Preferido: Tailscale/VPN. Alternativa: túnel SSH.
ssh -N -L 18789:127.0.0.1:18789 user@host
Luego conecta los clientes localmente a ws://127.0.0.1:18789.
Consulta: Remote Gateway, Authentication, Tailscale.
Supervisión y ciclo de vida del servicio
Usa ejecuciones supervisadas para una fiabilidad similar a producción.
macOS (launchd)
openclaw gateway install
openclaw gateway status
openclaw gateway restart
openclaw gateway stop
Usa openclaw gateway restart para reinicios. No encadenes openclaw gateway stop y openclaw gateway start; en macOS, gateway stop deshabilita intencionalmente el LaunchAgent antes de detenerlo.
Las etiquetas de LaunchAgent son ai.openclaw.gateway (predeterminado) o ai.openclaw.<profile> (perfil con nombre). openclaw doctor audita y repara desviaciones de configuración del servicio.
Linux (systemd user)
openclaw gateway install
systemctl --user enable --now openclaw-gateway[-<profile>].service
openclaw gateway status
Para persistencia después de cerrar sesión, habilita lingering:
sudo loginctl enable-linger <user>
Ejemplo manual de unidad de usuario cuando necesitas una ruta de instalación personalizada:
[Unit]
Description=OpenClaw Gateway
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/openclaw gateway --port 18789
Restart=always
RestartSec=5
TimeoutStopSec=30
TimeoutStartSec=30
SuccessExitStatus=0 143
KillMode=control-group
[Install]
WantedBy=default.target
Windows (native)
openclaw gateway install
openclaw gateway status --json
openclaw gateway restart
openclaw gateway stop
El inicio administrado nativo de Windows usa una tarea programada llamada OpenClaw Gateway
(o OpenClaw Gateway (<profile>) para perfiles con nombre). Si se deniega la creación de la tarea programada,
OpenClaw recurre a un lanzador por usuario en la carpeta de inicio
que apunta a gateway.cmd dentro del directorio de estado.
Linux (system service)
Usa una unidad del sistema para hosts multiusuario/siempre activos.
sudo systemctl daemon-reload
sudo systemctl enable --now openclaw-gateway[-<profile>].service
Usa el mismo cuerpo de servicio que la unidad de usuario, pero instálalo bajo
/etc/systemd/system/openclaw-gateway[-<profile>].service y ajusta
ExecStart= si tu binario openclaw se encuentra en otro lugar.
No permitas también que openclaw doctor --fix instale un servicio de gateway de nivel de usuario para el mismo perfil/puerto. Doctor rechaza esa instalación automática cuando encuentra un servicio de gateway OpenClaw de nivel de sistema; usa OPENCLAW_SERVICE_REPAIR_POLICY=external cuando la unidad del sistema es propietaria del ciclo de vida.
Ruta rápida del perfil de desarrollo
openclaw --dev setup
openclaw --dev gateway --allow-unconfigured
openclaw --dev status
Los valores predeterminados incluyen estado/configuración aislados y puerto base de gateway 19001.
Referencia rápida del protocolo (vista del operador)
- La primera trama del cliente debe ser
connect. - Gateway devuelve la instantánea
hello-ok(presence,health,stateVersion,uptimeMs, límites/política). hello-ok.features.methods/eventsson una lista de descubrimiento conservadora, no un volcado generado de todas las rutas auxiliares invocables.- Solicitudes:
req(method, params)→res(ok/payload|error). - Los eventos comunes incluyen
connect.challenge,agent,chat,session.message,session.tool,sessions.changed,presence,tick,health,heartbeat, eventos del ciclo de vida de emparejamiento/aprobación yshutdown.
Las ejecuciones de agentes tienen dos etapas:
- Confirmación aceptada inmediata (
status:"accepted") - Respuesta final de finalización (
status:"ok"|"error"), con eventosagenttransmitidos entre medias.
Consulta la documentación completa del protocolo: Gateway Protocol.
Comprobaciones operativas
Vivacidad
- Abre WS y envía
connect. - Espera una respuesta
hello-okcon instantánea.
Preparación
openclaw gateway status
openclaw channels status --probe
openclaw health
Recuperación de brechas
Los eventos no se reproducen. Ante brechas de secuencia, actualiza el estado (health, system-presence) antes de continuar.
Firmas de fallos comunes
| Firma | Problema probable |
|---|---|
refusing to bind gateway ... without auth |
Enlace sin loopback sin una ruta válida de autenticación del gateway |
another gateway instance is already listening / EADDRINUSE |
Conflicto de puerto |
Gateway start blocked: set gateway.mode=local |
Configuración establecida en modo remoto, o falta el sello de modo local en una configuración dañada |
unauthorized during connect |
Desajuste de autenticación entre cliente y gateway |
Para escaleras completas de diagnóstico, usa Gateway Troubleshooting.
Garantías de seguridad
- Los clientes del protocolo Gateway fallan de inmediato cuando Gateway no está disponible (sin alternativa implícita de canal directo).
- Las primeras tramas no válidas o que no son de conexión se rechazan y se cierran.
- El cierre ordenado emite el evento
shutdownantes del cierre del socket.
Relacionado: