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.

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 (ou OPENCLAW_GATEWAY_TOKEN / OPENCLAW_GATEWAY_PASSWORD), et les configurations de proxy inverse non-loopback peuvent utiliser gateway.auth.mode: "trusted-proxy".

    Points de terminaison compatibles OpenAI

    La surface de compatibilité à plus fort levier d’OpenClaw est désormais :

    • GET /v1/models
    • GET /v1/models/{id}
    • POST /v1/embeddings
    • POST /v1/chat/completions
    • POST /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/models est pensé d’abord pour les agents : il renvoie openclaw, openclaw/default et openclaw/<agentId>.
    • openclaw/default est l’alias stable qui pointe toujours vers l’agent par défaut configuré.
    • Utilisez x-openclaw-model lorsque 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 --portOPENCLAW_GATEWAY_PORTgateway.port18789
    Mode de liaison CLI/remplacement → gateway.bindloopback

    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 --deep peut signaler Other gateway-like services detected (best effort) et afficher des conseils de nettoyage lorsque de vieilles installations launchd/systemd/schtasks sont encore présentes.
    • gateway probe peut avertir au sujet de multiple reachable gateways lorsque 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.port unique
    • OPENCLAW_CONFIG_PATH unique
    • OPENCLAW_STATE_DIR unique
    • agents.defaults.workspace unique

    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 / events sont 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 et shutdown.

    Les exécutions d’agent se font en deux étapes :

    1. Accusé de réception accepté immédiat (status:"accepted")
    2. Réponse finale d’achèvement (status:"ok"|"error"), avec des événements agent diffusé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-ok avec 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 shutdown avant la fermeture du socket.

    Voir aussi :

    Voir aussi