Dépannage approfondi
Diagnostics axés sur les symptômes, avec des séquences de commandes exactes et des signatures de journaux.
Configuration
Guide de configuration axé sur les tâches et référence complète de la configuration.
Gestion des secrets
Contrat SecretRef, comportement des instantanés d’exécution et opérations de migration/rechargement.
Contrat du plan de secrets
Règles exactes de cible/chemin de
secrets apply et comportement des profils d’authentification reposant uniquement sur des références.Démarrage local en 5 minutes
1
Démarrer le Gateway
2
Vérifier l’état du service
Runtime: running, Connectivity probe: ok et une ligne Capability correspondant à vos attentes. Utilisez openclaw gateway status --require-rpc pour vérifier le RPC avec une portée de lecture, et pas seulement l’accessibilité.3
Valider la disponibilité des canaux
Le rechargement de la configuration du Gateway surveille le chemin du fichier de configuration actif (déterminé à partir des valeurs par défaut du profil/de l’état, ou de
OPENCLAW_CONFIG_PATH lorsque cette variable est définie). Le mode par défaut est gateway.reload.mode="hybrid". Après le premier chargement réussi, le processus en cours d’exécution utilise l’instantané actif de la configuration 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 aux canaux.
- Un seul port multiplexé pour :
- le contrôle/RPC WebSocket ;
- les API HTTP (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) ; - les routes HTTP des Plugins, comme la route facultative
/api/v1/admin/rpc; - l’interface de contrôle et les hooks.
- Mode de liaison par défaut :
loopback. Dans un environnement de conteneur détecté, la valeur par défaut effective estauto(résolue en0.0.0.0pour la redirection de ports), sauf si le service ou le funnel Tailscale est actif, auquel casloopbackest toujours imposé. - 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 hors loopback peuvent utilisergateway.auth.mode: "trusted-proxy".
Points de terminaison compatibles avec OpenAI
La surface de compatibilité d’OpenClaw offrant le plus d’impact :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 privilégient de plus en plus
/v1/responses.
/v1/models est centré sur les agents : il renvoie openclaw, openclaw/default et openclaw/<agentId> pour chaque agent configuré. openclaw/default est l’alias stable qui correspond toujours à l’agent par défaut configuré. Envoyez x-openclaw-model lorsque vous souhaitez remplacer le fournisseur/modèle du backend ; sinon, la configuration normale du modèle et des embeddings de l’agent sélectionné reste utilisée.
Tous ces points de terminaison s’exécutent sur le port principal du Gateway et utilisent la même frontière d’authentification d’opérateur de confiance que le reste de l’API HTTP du Gateway.
Le RPC HTTP d’administration (POST /api/v1/admin/rpc) est une route de Plugin distincte, désactivée par défaut, destinée aux outils de l’hôte qui ne peuvent pas utiliser le RPC WebSocket. Consultez RPC HTTP d’administration.
Priorité du port et de la liaison
Les services Gateway installés enregistrent la valeur résolue de
--port dans les métadonnées du superviseur. Après avoir modifié gateway.port, exécutez openclaw doctor --fix ou openclaw gateway install --force afin que launchd/systemd/schtasks démarre le processus sur le nouveau port.
Au démarrage, le Gateway utilise le même port et le même mode de liaison effectifs lorsqu’il initialise les origines locales de l’interface de contrôle pour les liaisons hors loopback. Par exemple, --bind lan --port 3000 initialise http://localhost:3000 et http://127.0.0.1:3000 avant l’exécution de la validation. Ajoutez explicitement toute origine de navigateur distant, comme les URL de proxy HTTPS, à gateway.controlUi.allowedOrigins.
Modes de rechargement à chaud
Ensemble de commandes pour l’opérateur
gateway status --deep sert à effectuer une détection supplémentaire des services (LaunchDaemons/unités système systemd/schtasks), et non une vérification plus approfondie de l’état du RPC.
Plusieurs Gateways (sur le même hôte)
La plupart des installations doivent exécuter un seul Gateway par machine. Un seul Gateway peut héberger plusieurs agents et canaux. Vous n’avez besoin de plusieurs Gateways que si vous souhaitez délibérément les isoler ou disposer d’un bot de secours. Vérifications utiles :gateway status --deeppeut signalerOther gateway-like services detected (best effort)et afficher des indications de nettoyage lorsque d’anciennes installations launchd/systemd/schtasks sont toujours présentes.gateway probepeut avertir de la présence demultiple reachable gateway identitieslorsque plusieurs Gateways distincts répondent, ou lorsqu’OpenClaw ne peut pas prouver que les cibles accessibles correspondent au même Gateway. Un tunnel SSH, une URL de proxy ou une URL distante configurée vers le même Gateway correspond à un seul Gateway utilisant plusieurs transports, même lorsque les ports de transport diffèrent.- Si cela est intentionnel, isolez les ports, la configuration/l’état et les racines des espaces de travail pour chaque Gateway.
- Valeur
gateway.portunique - Valeur
OPENCLAW_CONFIG_PATHunique - Valeur
OPENCLAW_STATE_DIRunique - Valeur
agents.defaults.workspaceunique
Accès distant
Option recommandée : Tailscale/VPN. Solution de repli : tunnel SSH.ws://127.0.0.1:18789.
Consultez : Gateway distant, Authentification, Tailscale.
Supervision et cycle de vie du service
Utilisez des exécutions supervisées pour obtenir une fiabilité proche de celle d’un environnement de production.- macOS (launchd)
- Linux (systemd utilisateur)
- Windows (natif)
- Linux (service système)
openclaw gateway restart pour les redémarrages. N’enchaînez pas openclaw gateway stop et openclaw gateway start pour remplacer un redémarrage.Sous macOS, gateway stop utilise launchctl bootout par défaut. Cela supprime le LaunchAgent de la session de démarrage actuelle sans conserver un état désactivé, de sorte que la récupération automatique KeepAlive continue de fonctionner après les arrêts inattendus et que gateway start le réactive correctement. Pour empêcher durablement le redémarrage automatique après les redémarrages du système, transmettez --disable : openclaw gateway stop --disable.Les libellés LaunchAgent sont ai.openclaw.gateway (par défaut) ou ai.openclaw.<profile> (profil nommé). openclaw doctor audite et corrige les dérives de la configuration du service.78. Les unités systemd Linux utilisent RestartPreventExitStatus=78 pour interrompre les relancements jusqu’à ce que la configuration soit corrigée. launchd et le Planificateur de tâches Windows ne disposent pas d’une règle équivalente d’arrêt selon le code de sortie ; le Gateway conserve donc également l’historique des démarrages incorrects rapprochés et désactive le démarrage automatique des comptes de canaux/fournisseurs après des échecs de démarrage répétés. Dans ce mode sécurisé, le plan de contrôle démarre toujours afin de permettre l’inspection et la réparation, les rechargements à chaud de la configuration et secrets.reload refusent les redémarrages automatiques des canaux, et une requête explicite channels.start de l’opérateur peut remplacer cette désactivation.
Parcours rapide avec le profil de développement
19001.
Référence rapide du protocole (vue de l’opérateur)
- La première trame du client doit être
connect. - Le Gateway renvoie une trame
hello-okavec unsnapshot(presence,health,stateVersion,uptimeMs), ainsi que les limites depolicy(maxPayload,maxBufferedBytes,tickIntervalMs). hello-ok.features.methods/eventsconstituent une liste de découverte prudente, et non une liste générée de toutes les routes auxiliaires pouvant être appelées.- Requêtes :
req(method, params)→res(ok/payload|error). - Les événements courants comprennent
connect.challenge,agent,chat,session.message,session.operation,session.tool, l’événement facultatifsession.approval,sessions.changed,presence,tick,health,heartbeat, les événements du cycle de vie de l’appairage/de l’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
Disponibilité
- Ouvrez une connexion WS et envoyez
connect. - Attendez une réponse
hello-okavec un instantané.
État de préparation
Récupération après une interruption
Les événements ne sont pas rejoués. En cas d’écart dans la séquence, actualisez l’état (health, system-presence) avant de continuer.
Signatures d’échec courantes
Pour consulter les procédures de diagnostic complètes, utilisez Dépannage du Gateway.
Garanties de sécurité
- Les clients du protocole Gateway échouent immédiatement lorsque le Gateway est indisponible (aucun repli implicite vers un canal direct).
- Les premières trames non valides ou autres que des trames de connexion sont rejetées, puis la connexion est fermée.
- L’arrêt progressif émet l’événement
shutdownavant la fermeture du socket.