Runbook du service Gateway
Utilisez cette page pour le démarrage jour 1 et les opérations jour 2 du service Gateway.Deep troubleshooting
Diagnostics orientés symptômes avec séquences de commandes exactes et signatures de logs.
Configuration
Guide d’installation orienté tâches + référence complète de configuration.
Démarrage local en 5 minutes
Le rechargement de la configuration Gateway surveille le chemin actif du fichier de configuration (résolu à partir des valeurs par défaut du profil/état, ou
OPENCLAW_CONFIG_PATH lorsqu’il est défini).
Mode par défaut : gateway.reload.mode="hybrid" (application à chaud des changements sûrs, redémarrage pour les changements critiques).Modèle d’exécution
- Un processus toujours actif pour le routage, le plan de contrôle et les connexions aux canaux.
- Multiplexage sur un port unique.
- Contrôle/RPC WebSocket
- OpenResponses (HTTP) :
/v1/responses. - Interface de contrôle et hooks
- Mode de liaison par défaut :
loopback. - L’authentification Gateway est requise par défaut : définissez
gateway.auth.token(ouOPENCLAW_GATEWAY_TOKEN) ougateway.auth.password.
Priorité du port et du mode de liaison
| Paramètre | Ordre de résolution |
|---|---|
| Port du Gateway | Priorité des ports : --port > OPENCLAW_GATEWAY_PORT > gateway.port > valeur par défaut 18789. |
| Mode de liaison | CLI/surcharge → gateway.bind → loopback |
Modes de rechargement à chaud
Désactiver avec gateway.reload.mode="off". | Comportement keepalive |
|---|---|
off | Aucun rechargement de la configuration |
hot | Appliquer uniquement les modifications sûres à chaud |
restart | Redémarrer si des modifications nécessitent un rechargement |
hybrid (par défaut) | Appliquer à chaud lorsque c’est sûr, redémarrer lorsque nécessaire |
Ensemble de commandes opérateur
Accès distant
Tailscale/VPN recommandé ; sinon tunnel SSH : Solution de secours : tunnel SSH.ws://127.0.0.1:18789 via le tunnel.
Voir : Remote Gateway, Authentication, Tailscale.
Supervision et cycle de vie du service
Utilisez des exécutions supervisées pour une fiabilité proche de la production.- macOS (launchd)
- Linux (systemd user)
- Linux (system service)
ai.openclaw.gateway (par défaut) ou ai.openclaw.<profile> lors de l’exécution d’un profil nommé. openclaw doctor audite et corrige les dérives de configuration du service.Gateways multiples (même hôte)
Généralement inutile : un Gateway peut servir plusieurs canaux de messagerie et agents. Utilisez plusieurs Gateways uniquement pour la redondance ou une isolation stricte (ex. bot de secours). Checklist par instance :gateway.portuniqueOPENCLAW_CONFIG_PATHuniqueOPENCLAW_STATE_DIRuniqueagents.defaults.workspaceunique
Profil dev (--dev)
19001.
Protocole (vue opérateur)
- La première trame client doit être
connect. - Le Gateway renvoie un instantané
hello-ok(presence,health,stateVersion,uptimeMs, limites/policy). - Requêtes :
{type:"req", id, method, params}→{type:"res", id, ok, payload|error} - Événements courants :
connect.challenge,agent,chat,presence,tick,health,heartbeat,shutdown.
- Accusé de réception immédiat accepté (
status:"accepted") - Les réponses
agentsont en deux étapes : d’abord un accuséres{runId,status:"accepted"}, puis unresfinal{runId,status:"ok"|"error",summary}après la fin de l’exécution ; la sortie streamée arrive sous forme deevent:"agent".
Vérifications opérationnelles
KeepAlive : true
- Ouvrez la connexion WS et envoyez
connect. - Attendez la réponse
hello-okavec l’instantané.
Disponibilité
Récupération des écarts
Les événements ne sont pas rejoués. En cas d’écarts de séquence, actualisez l’état (health, system-presence) avant de continuer.
Signatures d’échec courantes
| Signature | Problème probable |
|---|---|
refusing to bind gateway ... without auth | Liaison non-loopback sans token/mot de passe |
another gateway instance is already listening / EADDRINUSE | Conflit de port |
Gateway start blocked: set gateway.mode=local | Configuration définie en mode distant |
| Instantané de connexion | Incompatibilité d’authentification entre le client et le Gateway |
Garanties de sécurité
- Les clients du protocole Gateway échouent immédiatement lorsque le Gateway est indisponible (aucun fallback implicite vers un canal direct).
- Les premières trames non conformes ou le JSON malformé sont rejetés et la socket est fermée.
- Arrêt gracieux : émettre l’événement
shutdownavant la fermeture ; les clients doivent gérer la fermeture + reconnexion.
Liens connexes :