Runbook Gateway
Utilisez cette page pour le démarrage au jour 1 et les opérations au jour 2 du service Gateway.Dépannage approfondi
Diagnostics orientés symptômes avec suites de commandes exactes et signatures de journaux.
Configuration
Guide de configuration orienté tâches + référence complète de configuration.
Gestion des secrets
Contrat SecretRef, comportement des instantanés d’exécution et opérations de migration/rechargement.
Contrat du plan des secrets
Règles exactes de cible/chemin
secrets apply et comportement des profils d’authentification ref-only.Démarrage local en 5 minutes
Valider l’état de préparation des canaux
Le rechargement de configuration de la Gateway surveille le chemin du fichier de configuration actif (résolu à partir des valeurs par défaut du profil/de l’état, ou de
OPENCLAW_CONFIG_PATH lorsqu’il est défini).
Le mode par défaut est gateway.reload.mode="hybrid".
Après le premier chargement réussi, le processus en cours d’exécution sert l’instantané de configuration actif en mémoire ; un rechargement réussi échange cet instantané de façon atomique.Modèle d’exécution
- Un processus toujours actif pour le routage, le plan de contrôle et les connexions de canaux.
- Un port multiplexé unique pour :
- le contrôle/RPC WebSocket
- les API HTTP, compatibles OpenAI (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - l’UI de contrôle et les hooks
- Mode de liaison par défaut :
loopback. - L’authentification est requise par défaut. Les configurations à secret partagé utilisent
gateway.auth.token/gateway.auth.password(ouOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD), et les configurations de reverse proxy hors loopback peuvent utilisergateway.auth.mode: "trusted-proxy".
Points de terminaison compatibles OpenAI
La surface de compatibilité la plus utile d’OpenClaw est désormais :GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
- La plupart des intégrations Open WebUI, LobeChat et LibreChat sondent d’abord
/v1/models. - De nombreux pipelines RAG et mémoire attendent
/v1/embeddings. - Les clients natifs d’agent préfèrent de plus en plus
/v1/responses.
/v1/modelsest centré sur l’agent : il renvoieopenclaw,openclaw/defaultetopenclaw/<agentId>.openclaw/defaultest l’alias stable qui pointe toujours vers l’agent par défaut configuré.- Utilisez
x-openclaw-modellorsque vous voulez un remplacement fournisseur/modèle backend ; sinon, le modèle normal et la configuration d’embedding de l’agent sélectionné restent maîtres.
Priorité du port et de la liaison
| Paramètre | Ordre de résolution |
|---|---|
| Port Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| Mode de liaison | CLI/override → gateway.bind → loopback |
Modes de rechargement à chaud
gateway.reload.mode | Comportement |
|---|---|
off | Aucun rechargement de configuration |
hot | Applique uniquement les changements sûrs à chaud |
restart | Redémarre pour les changements nécessitant un redémarrage |
hybrid (par défaut) | Applique à chaud lorsque c’est sûr, redémarre lorsque nécessaire |
Ensemble de commandes opérateur
gateway status --deep sert à la découverte supplémentaire de services (LaunchDaemons/unités systemd système
/schtasks), pas à une probe RPC de santé plus approfondie.
Plusieurs gateways (même hôte)
La plupart des installations devraient exécuter une gateway par machine. Une seule gateway peut héberger plusieurs agents et canaux. Vous n’avez besoin de plusieurs gateways que si vous voulez intentionnellement de l’isolation ou un bot de secours. Vérifications utiles :gateway status --deeppeut signalerOther gateway-like services detected (best effort)et afficher des conseils de nettoyage lorsque des installations launchd/systemd/schtasks obsolètes sont encore présentes.gateway probepeut avertir demultiple reachable gatewayslorsque plus d’une cible répond.- Si c’est intentionnel, isolez les ports, la configuration/l’état et les racines d’espace de travail par gateway.
Accès distant
Préféré : Tailscale/VPN. Solution de repli : tunnel SSH.ws://127.0.0.1:18789 localement.
Voir : Gateway distante, Authentification, Tailscale.
Supervision et cycle de vie du service
Utilisez des exécutions supervisées pour une fiabilité de type production.- macOS (launchd)
- Linux (systemd utilisateur)
- Windows (natif)
- Linux (service système)
ai.openclaw.gateway (par défaut) ou ai.openclaw.<profile> (profil nommé). openclaw doctor audite et répare la dérive de configuration du service.Plusieurs gateways sur un même hôte
La plupart des configurations devraient exécuter une seule Gateway. N’en utilisez plusieurs que pour une isolation/redondance stricte (par exemple un profil de secours). Liste de contrôle par instance :gateway.portuniqueOPENCLAW_CONFIG_PATHuniqueOPENCLAW_STATE_DIRuniqueagents.defaults.workspaceunique
Chemin rapide du profil dev
19001.
Référence rapide du protocole (vue opérateur)
- La première trame cliente doit être
connect. - La Gateway renvoie un instantané
hello-ok(presence,health,stateVersion,uptimeMs, limites/politique). hello-ok.features.methods/eventssont une liste de découverte conservatrice, pas un dump généré de toutes les routes d’assistance appelables.- Requêtes :
req(method, params)→res(ok/payload|error). - Les événements courants incluent
connect.challenge,agent,chat,session.message,session.tool,sessions.changed,presence,tick,health,heartbeat, les événements du cycle de vie d’appairage/d’approbation, etshutdown.
- Accusé de réception immédiat (
status:"accepted") - Réponse finale d’achèvement (
status:"ok"|"error"), avec des événementsagentdiffusés entre les deux.
Vérifications opérationnelles
Vivacité
- Ouvrir un WS et envoyer
connect. - Attendre une réponse
hello-okavec instantané.
Disponibilité
Récupération après trou
Les événements ne sont pas rejoués. En cas de trous 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 hors loopback sans chemin d’authentification gateway valide |
another gateway instance is already listening / EADDRINUSE | Conflit de port |
Gateway start blocked: set gateway.mode=local | Configuration en mode distant, ou marque locale manquante dans une configuration endommagée |
unauthorized during connect | Incohérence d’authentification entre le client et la gateway |
Garanties de sécurité
- Les clients du protocole Gateway échouent immédiatement lorsque la Gateway n’est pas disponible (pas de solution de repli implicite directe vers le canal).
- Les premières trames invalides/non-connect sont rejetées et la connexion est fermée.
- Un arrêt propre émet un événement
shutdownavant la fermeture du socket.
Liens associés :