Manual de operaciones del Gateway
Use esta página para el inicio del día 1 y las operaciones del día 2 del servicio Gateway.
Diagnóstico basado en síntomas con escalas de comandos exactas y firmas de registros.
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 secrets apply destino/ruta y comportamiento del perfil de autenticación de solo referencia.
Inicio local en 5 minutos
Sección titulada «Inicio local en 5 minutos»Iniciar el Gateway
Ventana de terminal openclaw gateway --port 18789# debug/trace mirrored to stdioopenclaw gateway --port 18789 --verbose# force-kill listener on selected port, then startopenclaw gateway --forceVerificar el estado del servicio
Ventana de terminal openclaw gateway statusopenclaw statusopenclaw logs --followLínea base saludable:
Runtime: running,Connectivity probe: okyCapability: ...que coincidan con lo que espera. Useopenclaw gateway status --require-rpccuando necesite una prueba de RPC con ámbito de lectura, no solo accesibilidad.Validar la preparación del canal
Ventana de terminal openclaw channels status --probeCon un gateway accesible, esto ejecuta sondeos de canal en vivo por cuenta y auditorías opcionales. Si el gateway es inaccesible, la CLI recurre a resúmenes de canal solo de configuración en lugar de la salida del sondeo en vivo.
Modelo de tiempo de ejecución
Sección titulada «Modelo de tiempo de ejecución»- Un proceso siempre activo para el enrutamiento, el plano de control y las conexiones del canal.
- Un puerto multiplexado único para:
- Control/RPC de WebSocket
- APIs HTTP (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - Rutas HTTP de complementos, como el opcional
/api/v1/admin/rpc - Interfaz de usuario de control y enlaces (hooks)
- Modo de enlace predeterminado:
loopback. - Se requiere autenticación de forma predeterminada. Las configuraciones de secreto compartido usan
gateway.auth.token/gateway.auth.password(oOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), y las configuraciones de proxy inverso que no son de bucle local pueden usargateway.auth.mode: "trusted-proxy".
Endpoints compatibles con OpenAI
Sección titulada «Endpoints compatibles con OpenAI»La superficie de compatibilidad de mayor impacto de OpenClaw es ahora:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
Por qué es importante este conjunto:
- La mayoría de las integraciones de Open WebUI, LobeChat y LibreChat prueban
/v1/modelsprimero. - Muchos pipelines de RAG y memoria esperan
/v1/embeddings. - Los clientes nativos de agentes cada vez prefieren más
/v1/responses.
Nota de planificación:
/v1/modelsestá optimizado para agentes: devuelveopenclaw,openclaw/defaultyopenclaw/<agentId>.openclaw/defaultes el alias estable que siempre se asigna al agente predeterminado configurado.- Use
x-openclaw-modelcuando desee una anulación de proveedor/modelo de backend; de lo contrario, la configuración normal de modelo e incrustación del agente seleccionado mantiene el control.
Todos estos se ejecutan en el puerto principal de Gateway y usan el mismo límite de autenticación de operador de confianza que el resto de la API HTTP de Gateway.
Admin HTTP RPC (POST /api/v1/admin/rpc) es una ruta de complemento separada, desactivada de forma predeterminada, para herramientas de host que no pueden usar WebSocket RPC. Consulte Admin HTTP RPC.
Puerto y precedencia de enlace
Sección titulada «Puerto y precedencia de enlace»| Configuración | Orden de resolución |
|---|---|
| Puerto de 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, ejecute openclaw doctor --fix o openclaw gateway install --force para que launchd/systemd/schtasks inicie el proceso en el nuevo puerto.
El inicio del gateway utiliza el mismo puerto y enlace efectivos cuando inicializa los orígenes locales de la Interfaz de usuario de control (Control UI) para enlaces que no son de bucle local (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. Agregue cualquier origen de navegador remoto, como URL de proxy HTTPS, a gateway.controlUi.allowedOrigins explícitamente.
Modos de recarga en caliente
Sección titulada «Modos de recarga en caliente»gateway.reload.mode | Comportamiento |
|---|---|
off | Sin recarga de configuración |
hot | Aplicar solo cambios seguros en caliente |
restart | Reiniciar ante cambios que requieran recarga |
hybrid (predeterminado) | Aplicar en caliente cuando sea seguro, reiniciar cuando sea necesario |
Conjunto de comandos del operador
Sección titulada «Conjunto de comandos del operador»openclaw gateway statusopenclaw gateway status --deep # adds a system-level service scanopenclaw gateway status --jsonopenclaw gateway installopenclaw gateway restartopenclaw gateway stopopenclaw secrets reloadopenclaw logs --followopenclaw doctorgateway status --deep sirve para el descubrimiento de servicios adicional (LaunchDaemons/unidades de sistema systemd/schtasks), no para una sonda de estado RPC más profunda.
Múltiples gateways (mismo host)
Sección titulada «Múltiples 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 necesita múltiples gateways cuando desea intencionalmente aislamiento o un bot de rescate.
Verificaciones útiles:
openclaw gateway status --deepopenclaw gateway probeQué esperar:
gateway status --deeppuede informarOther gateway-like services detected (best effort)e imprimir sugerencias de limpieza cuando las instalaciones obsoletas de launchd/systemd/schtasks todavía están presentes.gateway probepuede advertir sobremultiple reachable gatewayscuando más de un objetivo responde.- Si eso es intencional, aisle los puertos, la configuración/estado y las raíces del espacio de trabajo por cada gateway.
Lista de verificació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 19001OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002Configuración detallada: /gateway/multiple-gateways.
Acceso remoto
Sección titulada «Acceso remoto»Preferido: Tailscale/VPN. Alternativa: Túnel SSH.
ssh -N -L 18789:127.0.0.1:18789 user@hostLuego conecte los clientes localmente a ws://127.0.0.1:18789.
Consulte: Remote Gateway, Authentication, Tailscale.
Supervisión y ciclo de vida del servicio
Sección titulada «Supervisión y ciclo de vida del servicio»Use ejecuciones supervisadas para una confiabilidad similar a la de producción.
openclaw gateway installopenclaw gateway statusopenclaw gateway restartopenclaw gateway stopUse openclaw gateway restart para los reinicios. No encadene openclaw gateway stop y openclaw gateway start como un sustituto de reinicio.
En macOS, gateway stop usa launchctl bootout de manera predeterminada; esto elimina el LaunchAgent de la sesión de arranque actual sin persistir una desactivación, por lo que la recuperación automática de KeepAlive aún funciona después de bloqueos inesperados y gateway start se vuelve a habilitar limpiamente. Para suprimir persistentemente el reinicio automático entre reinicios, pase --disable: openclaw gateway stop --disable.
Las etiquetas de LaunchAgent son ai.openclaw.gateway (predeterminado) o `ai.openclaw.
(perfil con nombre).openclaw doctor` audita y repara la deriva de la configuración del servicio.
openclaw gateway installsystemctl --user enable --now openclaw-gateway[-].service openclaw gateway status
Para la persistencia después de cerrar sesión, habilite el modo persistente (lingering):
```bashsudo loginctl enable-lingerEjemplo manual de unidad de usuario cuando necesita una ruta de instalación personalizada:
```ini[Unit]Description=OpenClaw GatewayAfter=network-online.targetWants=network-online.target
[Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143KillMode=control-group
[Install]WantedBy=default.targetopenclaw gateway installopenclaw gateway status --jsonopenclaw gateway restartopenclaw gateway stopEl inicio administrado nativo de Windows usa una Tarea Programada llamada OpenClaw Gateway
(o `OpenClaw Gateway (
)para perfiles con nombre). Si se deniega la creación de la Tarea Programada, OpenClaw recurre a un iniciador de carpeta de Inicio por usuario que apunta agateway.cmd` dentro del directorio de estado.
Use una unidad de sistema para hosts multiusuario/siempre activos.
sudo systemctl daemon-reloadsudo systemctl enable --now openclaw-gateway[-].service
Use el mismo cuerpo de servicio que la unidad de usuario, pero instálelo bajo`/etc/systemd/system/openclaw-gateway[-].servicey ajusteExecStart=si su binarioopenclaw` se encuentra en otro lugar.
No permita tampoco que openclaw doctor --fix instale un servicio de puerta de enlace a nivel de usuario para el mismo perfil/puerto. Doctor rechaza esa instalación automática cuando encuentra un servicio de puerta de enlace OpenClaw a nivel de sistema; use OPENCLAW_SERVICE_REPAIR_POLICY=external cuando la unidad del sistema sea propietaria del ciclo de vida.
Ruta rápida del perfil de desarrollo
Sección titulada «Ruta rápida del perfil de desarrollo»openclaw --dev setupopenclaw --dev gateway --allow-unconfiguredopenclaw --dev statusLos valores predeterminados incluyen estado/configuración aislados y puerto base de puerta de enlace 19001.
Referencia rápida del protocolo (vista del operador)
Sección titulada «Referencia rápida del protocolo (vista del operador)»- El primer tramo del cliente debe ser
connect. - La puerta de enlace devuelve una 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 cada ruta auxiliar invocable.- Solicitudes:
req(method, params)→res(ok/payload|error). - Los eventos comunes incluyen
connect.challenge,agent,chat,session.message,session.operation,session.tool,sessions.changed,presence,tick,health,heartbeat, eventos del ciclo de vida de emparejamiento/aprobación, yshutdown.
Las ejecuciones del agente son de dos etapas:
- Reconocimiento de aceptación inmediata (
status:"accepted") - Respuesta de finalización final (
status:"ok"|"error"), con eventosagenttransmitidos en el medio.
Consulte la documentación completa del protocolo: Gateway Protocol.
Verificaciones operativas
Sección titulada «Verificaciones operativas»Vitalidad
Sección titulada «Vitalidad»- Abra WS y envíe
connect. - Espere respuesta
hello-okcon instantánea.
Disponibilidad
Sección titulada «Disponibilidad»openclaw gateway statusopenclaw channels status --probeopenclaw healthRecuperación de brechas
Sección titulada «Recuperación de brechas»Los eventos no se repiten. En caso de brechas en la secuencia, actualice el estado (health, system-presence) antes de continuar.
Firmas comunes de fallos
Sección titulada «Firmas comunes de fallos»| Firma | Problema probable |
|---|---|
refusing to bind gateway ... without auth | Enlace no local sin una ruta de autenticación válida para la puerta de enlace |
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 la marca de modo local en una configuración dañada |
unauthorized durante la conexión | Discrepancia de autenticación entre el cliente y la puerta de enlace |
Para obtener escaleras de diagnóstico completas, utilice Solución de problemas de la puerta de enlace.
Garantías de seguridad
Sección titulada «Garantías de seguridad»- Los clientes del protocolo de la puerta de enlace fallan rápidamente cuando la puerta de enlace no está disponible (no hay retorno implícito al canal directo).
- Los primeros marcos no válidos o de no conexión se rechazan y cierran.
- El cierre ordenado emite el evento
shutdownantes de cerrar el socket.
Relacionado: