Runbook du Gateway
Utilisez cette page pour le démarrage du premier jour et les opérations du deuxième jour du service Gateway.Dépannage approfondi
Diagnostics orientés symptômes avec des séquences de commandes exactes et des 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 des cibles/chemins de
secrets apply et comportement des profils d’authentification en mode ref-only.Démarrage local en 5 minutes
Vérifier l’état de santé du service
Runtime: running, Connectivity probe: ok, et Capability: ... qui correspond à ce que vous attendez. Utilisez openclaw gateway status --require-rpc lorsque vous avez besoin d’une preuve RPC en portée lecture, et pas seulement d’une joignabilité.Valider l’état de préparation des canaux
Le rechargement de la configuration du 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 remplace cet instantané de manière 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’interface utilisateur 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 proxy inverse non-loopback peuvent utilisergateway.auth.mode: "trusted-proxy".
Endpoints 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 interrogent d’abord
/v1/models. - De nombreux pipelines RAG et de mémoire attendent
/v1/embeddings. - Les clients natifs pour agents préfèrent de plus en plus
/v1/responses.
/v1/modelsest orienté 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 souhaitez un remplacement du fournisseur/modèle backend ; sinon, la configuration normale du modèle et des embeddings de l’agent sélectionné reste maîtresse.
Priorité du port et du mode de 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 sur les changements nécessitant un rechargement |
hybrid (par défaut) | Applique à chaud quand c’est sûr, redémarre quand c’est nécessaire |
Jeu de commandes opérateur
gateway status --deep sert à une découverte de services supplémentaire (LaunchDaemons/unités systemd système
/schtasks), pas à une sonde d’état de santé RPC plus approfondie.
Plusieurs gateways (même hôte)
La plupart des installations doivent exécuter un gateway par machine. Un seul gateway peut héberger plusieurs agents et canaux. Vous n’avez besoin de plusieurs gateways que si vous voulez délibérément 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 d’anciennes installations launchd/systemd/schtasks sont encore présentes.gateway probepeut avertir demultiple reachable gatewayslorsque plus d’une cible répond.- Si cela est intentionnel, isolez les ports, la configuration/l’état et les racines d’espace de travail pour chaque gateway.
Accès distant
Préféré : Tailscale/VPN. Solution de repli : tunnel SSH.ws://127.0.0.1:18789.
Voir : Gateway distant, Authentification, Tailscale.
Supervision et cycle de vie du service
Utilisez des exécutions supervisées pour une fiabilité de niveau 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 les dérives de configuration du service.Plusieurs gateways sur un même hôte
La plupart des configurations doivent exécuter un Gateway. N’utilisez plusieurs gateways 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. - Le Gateway renvoie un instantané
hello-ok(presence,health,stateVersion,uptimeMs, limits/policy). hello-ok.features.methods/eventssont une liste de découverte prudente, et non 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/approbation, etshutdown.
- Accusé de réception immédiat accepté (
status:"accepted") - Réponse finale de fin (
status:"ok"|"error"), avec des événementsagentdiffusés entre les deux.
Vérifications opérationnelles
Disponibilité
- Ouvrez un WS et envoyez
connect. - Attendez une réponse
hello-okavec instantané.
État de préparation
Récupération après rupture
Les événements ne sont pas rejoués. En cas de trou 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 chemin d’authentification gateway valide |
another gateway instance is already listening / EADDRINUSE | Conflit de port |
Gateway start blocked: set gateway.mode=local | Configuration définie en mode distant, ou tampon de mode local manquant dans une configuration endommagée |
unauthorized during connect | Incompatibilité d’authentification entre le client et le gateway |
Garanties de sécurité
- Les clients du protocole Gateway échouent rapidement lorsque le Gateway n’est pas disponible (pas de bascule implicite directe vers le canal).
- Les premières trames invalides/non-
connectsont rejetées et la connexion est fermée. - L’arrêt propre émet un événement
shutdownavant la fermeture du socket.
Associé :