Solución de problemas profunda
Diagnósticos orientados por síntomas con escaleras de comandos exactas y firmas de registro.
Configuración
Guía de configuración orientada a tareas + referencia de configuración completa.
Gestión de secretos
Contrato SecretRef, comportamiento de instantánea en tiempo de ejecución y operaciones de migración/recarga.
Contrato del plan de secretos
Reglas exactas de destino/ruta de
secrets apply y comportamiento de perfiles de autenticación solo por referencia.Arranque local en 5 minutos
Verifica el estado del servicio
Runtime: running, Connectivity probe: ok y Capability: ... que coincida con lo esperado. Usa openclaw gateway status --require-rpc cuando necesites prueba RPC con alcance de lectura, no solo alcanzabilidad.La recarga de configuración del Gateway observa la ruta del archivo de configuración activo (resuelta desde los valores predeterminados de perfil/estado, o
OPENCLAW_CONFIG_PATH cuando está definida).
El modo predeterminado es gateway.reload.mode="hybrid".
Después de la primera carga correcta, el proceso en ejecución sirve la instantánea de configuración activa en memoria; una recarga correcta intercambia esa instantánea de forma atómica.Modelo en tiempo de ejecución
- Un proceso siempre activo para enrutamiento, plano de control y conexiones de canales.
- Un único puerto multiplexado para:
- Control/RPC por WebSocket
- API HTTP (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - Rutas HTTP de Plugin, como la opcional
/api/v1/admin/rpc - Interfaz de control 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 no 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
- La mayoría de integraciones de Open WebUI, LobeChat y LibreChat sondean
/v1/modelsprimero. - Muchas canalizaciones RAG y de memoria esperan
/v1/embeddings. - Los clientes nativos para agentes prefieren cada vez más
/v1/responses.
/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 sobrescribir el proveedor/modelo de backend; de lo contrario, la configuración normal de modelo e incrustaciones del agente seleccionado mantiene el control.
POST /api/v1/admin/rpc) es una ruta de Plugin separada, desactivada de forma predeterminada, para herramientas del host que no pueden usar RPC por WebSocket. Consulta Admin HTTP RPC.
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/override → gateway.bind → loopback |
--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 nuevo puerto.
El arranque del Gateway usa el mismo puerto y enlace efectivos cuando inicializa los orígenes locales de la
interfaz de control para enlaces no 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. Agrega 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
gateway status --deep es para descubrimiento adicional de servicios (LaunchDaemons/unidades systemd de sistema/schtasks), no para un sondeo de estado RPC más profundo.
Múltiples gateways (mismo host)
La mayoría de las instalaciones deberían ejecutar un Gateway por máquina. Un único Gateway puede alojar varios agentes y canales. Solo necesitas varios gateways cuando quieres aislamiento intencionalmente o un bot de rescate. Comprobaciones útiles:gateway status --deeppuede informarOther gateway-like services detected (best effort)e imprimir sugerencias de limpieza cuando todavía queden instalaciones launchd/systemd/schtasks obsoletas.gateway probepuede advertir sobremultiple reachable gateway identitiescuando responden gateways distintos, o cuando OpenClaw no puede demostrar que los destinos alcanzables son el mismo Gateway. Un túnel SSH, una URL de proxy o una URL remota configurada hacia el mismo Gateway es un Gateway con varios transportes, incluso cuando los puertos de transporte difieren.- Si eso es intencional, aísla puertos, configuración/estado y raíces de espacios de trabajo por Gateway.
gateway.portúnicoOPENCLAW_CONFIG_PATHúnicoOPENCLAW_STATE_DIRúnicoagents.defaults.workspaceúnico
Acceso remoto
Preferido: Tailscale/VPN. Alternativa: túnel SSH.ws://127.0.0.1:18789.
Consulta: Gateway remoto, Autenticación, Tailscale.
Supervisión y ciclo de vida del servicio
Usa ejecuciones supervisadas para confiabilidad similar a producción.- macOS (launchd)
- Linux (systemd de usuario)
- Windows (nativo)
- Linux (servicio de sistema)
openclaw gateway restart para reinicios. No encadenes openclaw gateway stop y openclaw gateway start como sustituto de reinicio.En macOS, gateway stop usa launchctl bootout de forma 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 sigue funcionando después de bloqueos inesperados y gateway start lo vuelve a habilitar limpiamente. Para suprimir de forma persistente el reinicio automático entre reinicios del sistema, pasa --disable: openclaw gateway stop --disable.Las etiquetas LaunchAgent son ai.openclaw.gateway (predeterminada) o ai.openclaw.<profile> (perfil con nombre). openclaw doctor audita y repara desvíos de configuración del servicio.Ruta rápida de perfil de desarrollo
19001.
Referencia rápida del protocolo (vista del operador)
- La primera trama del cliente debe ser
connect. - Gateway 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 de ciclo de vida de emparejamiento/aprobación yshutdown.
- Confirmación aceptada inmediata (
status:"accepted") - Respuesta final de finalización (
status:"ok"|"error"), con eventosagenttransmitidos entre medio.
Comprobaciones operativas
Actividad
- Abre WS y envía
connect. - Espera una respuesta
hello-okcon instantánea.
Preparación
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 no loopback sin una ruta de autenticación de Gateway válida |
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 | Discordancia de autenticación entre el cliente y Gateway |
Garantías de seguridad
- Los clientes del protocolo Gateway fallan rápido cuando Gateway no está disponible (sin reserva implícita a canal directo).
- Los primeros frames inválidos o que no son de conexión se rechazan y se cierran.
- El apagado ordenado emite el evento
shutdownantes de cerrar el socket.
Relacionado: