Gateway
Guide d’exploitation du Gateway
Utilisez cette page pour le démarrage au jour 1 et les opérations au jour 2 du service Gateway.
Diagnostics axés sur les symptômes, avec enchaînements de commandes exacts et signatures de journaux.
Guide de configuration orienté tâches + référence complète de configuration.
Contrat SecretRef, comportement des instantanés d’exécution et opérations de migration/rechargement.
Règles exactes de cible/chemin de secrets apply et comportement des profils d’authentification à références uniquement.
Démarrage local en 5 minutes
Démarrer le Gateway
openclaw gateway --port 18789
# debug/trace mirrored to stdio
openclaw gateway --port 18789 --verbose
# force-kill listener on selected port, then start
openclaw gateway --force
Vérifier l’état du service
openclaw gateway status
openclaw status
openclaw logs --follow
Référence 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 en portée lecture, pas seulement de l’accessibilité.
Valider la disponibilité des canaux
openclaw channels status --probe
Avec un Gateway joignable, cette commande exécute des sondes de canaux en direct par compte et des audits facultatifs. Si le Gateway est injoignable, la CLI revient à des résumés de canaux fondés uniquement sur la configuration au lieu d’une 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 aux 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é à plus fort levier d’OpenClaw est désormais :
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
Pourquoi cet ensemble compte :
- 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 privilégient 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 pointe toujours vers l’agent par défaut configuré.- Utilisez
x-openclaw-modellorsque vous voulez remplacer le fournisseur/modèle backend ; sinon, le modèle normal et la configuration d’embeddings de l’agent sélectionné restent aux commandes.
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.
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/remplacement → 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.
Le démarrage du Gateway utilise le même port et la même liaison effectifs 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 toute origine de navigateur distante, comme les URL de proxy HTTPS, à
gateway.controlUi.allowedOrigins.
Modes de rechargement à chaud
gateway.reload.mode |
Comportement |
|---|---|
off |
Aucun rechargement de configuration |
hot |
Appliquer uniquement les changements sûrs à chaud |
restart |
Redémarrer pour les changements nécessitant un rechargement |
hybrid (par défaut) |
Appliquer à chaud lorsque c’est sûr, redémarrer lorsque nécessaire |
Ensemble de commandes opérateur
openclaw gateway status
openclaw gateway status --deep # adds a system-level service scan
openclaw gateway status --json
openclaw gateway install
openclaw gateway restart
openclaw gateway stop
openclaw secrets reload
openclaw logs --follow
openclaw doctor
gateway status --deep sert à une découverte supplémentaire de 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 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 intentionnellement une isolation ou un bot de secours.
Vérifications utiles :
openclaw gateway status --deep
openclaw gateway probe
À quoi vous attendre :
gateway status --deeppeut signalerOther gateway-like services detected (best effort)et afficher des conseils de nettoyage lorsque de vieilles installations launchd/systemd/schtasks sont encore présentes.gateway probepeut avertir au sujet demultiple reachable gatewayslorsque plusieurs cibles répondent.- Si c’est intentionnel, isolez les ports, la configuration/l’état et les racines d’espace de travail pour chaque 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 19001
OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002
Configuration 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@host
Connectez 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 install
openclaw gateway status
openclaw gateway restart
openclaw gateway stop
Utilisez openclaw gateway restart pour les redémarrages. N’enchaînez pas openclaw gateway stop et openclaw gateway start ; sur macOS, gateway stop désactive intentionnellement le LaunchAgent avant de l’arrêter.
Les labels LaunchAgent sont 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.
Linux (utilisateur systemd)
openclaw gateway install
systemctl --user enable --now openclaw-gateway[-<profile>].service
openclaw gateway status
Pour la persistance après déconnexion, activez lingering :
sudo loginctl enable-linger <user>
Exemple d’unité utilisateur manuelle lorsque vous avez besoin d’un chemin d’installation personnalisé :
[Unit]
Description=OpenClaw Gateway
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/openclaw gateway --port 18789
Restart=always
RestartSec=5
TimeoutStopSec=30
TimeoutStartSec=30
SuccessExitStatus=0 143
KillMode=control-group
[Install]
WantedBy=default.target
Windows (natif)
openclaw gateway install
openclaw gateway status --json
openclaw gateway restart
openclaw gateway stop
Le démarrage géré natif de Windows 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 revient à 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-reload
sudo systemctl enable --now openclaw-gateway[-<profile>].service
Utilisez 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 de développement
openclaw --dev setup
openclaw --dev gateway --allow-unconfigured
openclaw --dev status
Les valeurs par défaut incluent un état/une configuration 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 conservatrice, pas un vidage 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.
Les exécutions d’agent se font en deux étapes :
- Accusé de réception accepté immédiat (
status:"accepted") - Réponse finale d’achèvement (
status:"ok"|"error"), avec des événementsagentdiffusés entre les deux.
Voir la documentation complète du protocole : Protocole Gateway.
Vérifications opérationnelles
Disponibilité
- Ouvrir WS et envoyer
connect. - Attendre une réponse
hello-okavec instantané.
Prêt à servir
openclaw gateway status
openclaw channels status --probe
openclaw health
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 de défaillance 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 marqueur de mode local absent d’une configuration endommagée |
unauthorized during connect |
Incompatibilité d’authentification entre le client et le Gateway |
Pour les enchaînements de diagnostic complets, utilisez Dépannage Gateway.
Garanties de sécurité
- Les clients du protocole Gateway échouent rapidement lorsque Gateway est indisponible (aucun basculement implicite vers le canal direct).
- Les premières trames invalides/non-connect sont rejetées et fermées.
- L’arrêt gracieux émet l’événement
shutdownavant la fermeture du socket.
Voir aussi :