Gateway
Guide d’exploitation du Gateway
Utilisez cette page pour le démarrage du jour 1 et les opérations du jour 2 du service Gateway.
Diagnostics orientés symptômes avec des séquences de commandes exactes et des signatures de journaux.
Guide de configuration orienté tâches + référence de configuration complète.
Contrat SecretRef, comportement des instantanés d’exécution et opérations de migration/rechargement.
Règles exactes cible/chemin de secrets apply et comportement des profils d’authentification par référence uniquement.
Démarrage local en 5 minutes
Démarrer le Gateway
openclaw gateway --port 18789# debug/trace mirrored to stdioopenclaw gateway --port 18789 --verbose# force-kill listener on selected port, then startopenclaw gateway --forceVérifier l’état du service
openclaw gateway statusopenclaw statusopenclaw logs --followBase saine : Runtime: running, Connectivity probe: ok et Capability: ... correspondant à ce que vous attendez. Utilisez openclaw gateway status --require-rpc lorsque vous avez besoin d’une preuve RPC avec périmètre de lecture, et pas seulement d’une joignabilité.
Valider la disponibilité des canaux
openclaw channels status --probeAvec un Gateway joignable, cela exécute des sondes de canaux en direct par compte et des audits facultatifs. Si le Gateway est injoignable, la CLI se replie sur des résumés de canaux fondés uniquement sur la configuration au lieu de la sortie de sonde en direct.
Modèle d’exécution
- Un processus toujours actif pour le routage, le plan de contrôle et les connexions de canaux.
- Port multiplexé unique pour :
- Contrôle/RPC WebSocket
- API HTTP, compatibles OpenAI (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - Interface de contrôle et 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".
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
Pourquoi cet ensemble est important :
- La plupart des intégrations Open WebUI, LobeChat et LibreChat sondent 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.
Note de planification :
/v1/modelsest pensé d’abord pour les agents : il renvoieopenclaw,openclaw/defaultetopenclaw/<agentId>.openclaw/defaultest l’alias stable qui correspond toujours à l’agent par défaut configuré.- Utilisez
x-openclaw-modellorsque vous voulez une substitution du fournisseur/modèle backend ; sinon, la configuration normale du modèle et des embeddings de l’agent sélectionné reste aux commandes.
Tout cela s’exécute sur le port principal du Gateway et utilise la même frontière d’authentification opérateur de confiance que le reste de l’API HTTP du Gateway.
Précédence 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 |
Les services Gateway installés enregistrent le --port résolu 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 effectif et la même liaison lorsqu’il initialise les origines locales
de l’interface de contrôle pour les liaisons non-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 d’exécution. Ajoutez explicitement toutes les origines de navigateurs distants, comme les URL de proxy HTTPS, à
gateway.controlUi.allowedOrigins.
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 rechargement |
hybrid (par défaut) |
Applique à chaud si sûr, redémarre si nécessaire |
Jeu de commandes opérateur
openclaw gateway statusopenclaw gateway status --deep # adds a system-level service scanopenclaw gateway status --jsonopenclaw gateway installopenclaw gateway restartopenclaw gateway stopopenclaw secrets reloadopenclaw logs --followopenclaw doctorgateway status --deep sert à la découverte supplémentaire des services (LaunchDaemons/unités système systemd/schtasks), pas à une sonde de santé RPC plus approfondie.
Gateways multiples (même hôte)
La plupart des installations devraient 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 intentionnellement de l’isolation ou un bot de secours.
Vérifications utiles :
openclaw gateway status --deepopenclaw gateway probeÀ quoi s’attendre :
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 à propos demultiple reachable gatewayslorsque plusieurs cibles répondent.- Si c’est intentionnel, isolez les ports, la configuration/l’état et les racines d’espaces de travail par Gateway.
Liste de contrôle par instance :
gateway.portuniqueOPENCLAW_CONFIG_PATHuniqueOPENCLAW_STATE_DIRuniqueagents.defaults.workspaceunique
Exemple :
OPENCLAW_CONFIG_PATH=~/.openclaw/a.json OPENCLAW_STATE_DIR=~/.openclaw-a openclaw gateway --port 19001OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002Configuration détaillée : /gateway/multiple-gateways.
Accès distant
Préféré : Tailscale/VPN. Solution de repli : tunnel SSH.
ssh -N -L 18789:127.0.0.1:18789 user@hostConnectez ensuite les clients localement à 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é proche de la production.
macOS (launchd)
openclaw gateway installopenclaw gateway statusopenclaw gateway restartopenclaw gateway stopUtilisez openclaw gateway restart pour les redémarrages. N’enchaînez pas openclaw gateway stop et openclaw gateway start comme substitut de redémarrage.
Sur macOS, gateway stop utilise launchctl bootout par défaut — cela retire le LaunchAgent de la session de démarrage actuelle sans persister de désactivation, de sorte que la récupération automatique KeepAlive fonctionne toujours après des plantages inattendus et que gateway start le réactive proprement. Pour supprimer durablement la relance automatique entre les redémarrages, passez --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 répare la dérive de configuration du service.
Linux (systemd utilisateur)
openclaw gateway installsystemctl --user enable --now openclaw-gateway[-<profile>].serviceopenclaw gateway statusPour la persistance après déconnexion, activez le lingering :
sudo loginctl enable-linger <user>Exemple manuel d’unité utilisateur lorsque vous avez besoin d’un chemin d’installation personnalisé :
[Unit]Description=OpenClaw GatewayAfter=network-online.targetWants=network-online.target [Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143KillMode=control-group [Install]WantedBy=default.targetWindows (natif)
openclaw gateway installopenclaw gateway status --jsonopenclaw gateway restartopenclaw gateway stopLe démarrage géré Windows natif utilise une tâche planifiée nommée OpenClaw Gateway
(ou OpenClaw Gateway (<profile>) pour les profils nommés). Si la création de la tâche planifiée
est refusée, OpenClaw se replie sur un lanceur par utilisateur dans le dossier de démarrage
qui pointe vers gateway.cmd dans le répertoire d’état.
Linux (service système)
Utilisez une unité système pour les hôtes multi-utilisateurs/toujours actifs.
sudo systemctl daemon-reloadsudo systemctl enable --now openclaw-gateway[-<profile>].serviceUtilisez le même corps de service que l’unité utilisateur, mais installez-le sous
/etc/systemd/system/openclaw-gateway[-<profile>].service et ajustez
ExecStart= si votre binaire openclaw se trouve ailleurs.
Ne laissez pas aussi openclaw doctor --fix installer un service Gateway au niveau utilisateur pour le même profil/port. Doctor refuse cette installation automatique lorsqu’il trouve un service Gateway OpenClaw au niveau système ; utilisez OPENCLAW_SERVICE_REPAIR_POLICY=external lorsque l’unité système possède le cycle de vie.
Chemin rapide du profil dev
openclaw --dev setupopenclaw --dev gateway --allow-unconfiguredopenclaw --dev statusLes valeurs par défaut incluent une configuration/un état isolés et le port Gateway de base 19001.
Référence rapide du protocole (vue opérateur)
- La première trame client doit être
connect. - Le Gateway renvoie l’instantané
hello-ok(presence,health,stateVersion,uptimeMs, limites/politique). hello-ok.features.methods/eventssont une liste de découverte prudente, pas un dump généré de toutes les routes d’aide 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 de cycle de vie d’appairage/approbation etshutdown.
Les exécutions d’agents se font en deux étapes :
- Accusé d’acceptation immédiat (
status:"accepted") - Réponse finale de complétion (
status:"ok"|"error"), avec des événementsagentdiffusés entre les deux.
Voir la documentation complète du protocole : Protocole Gateway.
Contrôles opérationnels
Vivacité
- Ouvrir WS et envoyer
connect. - Attendre une réponse
hello-okavec instantané.
Disponibilité
openclaw gateway statusopenclaw channels status --probeopenclaw healthRécupération des lacunes
Les événements ne sont pas rejoués. En cas de lacunes de séquence, actualisez l’état (health, system-presence) avant de continuer.
Signatures de défaillance courantes
| Signature | Problème probable |
|---|---|
refusing to bind gateway ... without auth |
Liaison non-loopback sans chemin d’authentification de 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 horodatage du mode local absent d’une configuration endommagée |
unauthorized pendant la connexion |
Incompatibilité d’authentification entre le client et le gateway |
Pour des procédures de diagnostic complètes, utilisez Dépannage du Gateway.
Garanties de sécurité
- Les clients du protocole Gateway échouent rapidement lorsque le Gateway est indisponible (pas de repli implicite vers un canal direct).
- Les premières trames invalides ou non connectées sont rejetées et fermées.
- L’arrêt gracieux émet l’événement
shutdownavant la fermeture du socket.
Associé :