openclaw acp utilise ACP sur stdio pour les IDE et transmet les requêtes au Gateway par WebSocket, tout en associant les sessions ACP aux clés de session du Gateway. Il s’agit d’une passerelle ACP reposant sur le Gateway, et non d’un environnement d’exécution d’éditeur entièrement natif ACP : elle se concentre sur le routage des sessions, la transmission des requêtes et la diffusion des mises à jour en continu.
Si vous souhaitez qu’un client MCP externe communique directement avec les conversations des canaux OpenClaw au lieu d’héberger une session d’environnement ACP, utilisez plutôt openclaw mcp serve.
Ce que ce n’est pas
openclaw acp signifie qu’OpenClaw agit comme serveur ACP : un IDE ou un client ACP se connecte à OpenClaw, qui transmet ensuite le travail à une session du Gateway.
Cela diffère des agents ACP, où OpenClaw exécute un environnement externe tel que Codex ou Claude Code via acpx.
Règle rapide :
- si l’éditeur ou le client doit communiquer avec OpenClaw via ACP : utilisez
openclaw acp - si OpenClaw doit lancer Codex, Claude ou Gemini comme environnement ACP : utilisez
/acp spawnet les agents ACP
Matrice de compatibilité
Limitations connues
loadSessionne relit l’intégralité de l’historique du registre d’événements ACP que pour les sessions créées par la passerelle. Les sessions plus anciennes ou dépourvues de registre utilisent l’historique de conversation comme solution de repli et ne reconstituent pas les appels d’outils ni les notifications système historiques.- Si plusieurs clients ACP partagent la même clé de session du Gateway, le routage des événements et des annulations s’effectue dans la mesure du possible, sans isolation stricte par client. Préférez les sessions isolées
acp-bridge:<uuid>par défaut lorsque vous avez besoin de tours locaux à l’éditeur clairement séparés. - Les états d’arrêt du Gateway sont convertis en motifs d’arrêt ACP, mais cette correspondance est moins expressive que celle d’un environnement d’exécution entièrement natif ACP.
- Les contrôles de session exposent un sous-ensemble ciblé des paramètres du Gateway : niveau de réflexion, verbosité des outils, raisonnement, détail de l’utilisation et actions avec privilèges élevés. La sélection du modèle et les contrôles de l’hôte d’exécution ne sont pas exposés comme options de configuration ACP.
session_info_updateetusage_updateproviennent d’instantanés de session du Gateway, et non d’une comptabilisation en direct propre à un environnement d’exécution natif ACP. L’utilisation est approximative, ne comporte aucune donnée de coût et n’est émise que lorsque le Gateway indique que les données sur le nombre total de jetons sont à jour.- Les données de suivi des outils sont fournies dans la mesure du possible : la passerelle expose les chemins de fichiers présents dans les arguments ou résultats d’outils connus, mais n’émet ni terminaux ACP ni différences de fichiers structurées.
- Le relais des approbations d’exécution est limité au tour de requête ACP actif ; les approbations provenant d’autres sessions du Gateway sont ignorées.
Utilisation
Client ACP (débogage)
Utilisez le client ACP intégré pour effectuer une vérification sommaire de la passerelle sans IDE. Il lance la passerelle ACP et vous permet de saisir des requêtes de manière interactive.- L’approbation automatique repose sur une liste d’autorisation et ne s’applique qu’aux identifiants d’outils principaux approuvés.
- L’approbation automatique de
readest limitée au répertoire de travail actuel (--cwdlorsqu’il est défini). - ACP n’approuve automatiquement que des catégories restreintes en lecture seule : les appels
readlimités au répertoire de travail actif, ainsi que les outils de recherche en lecture seule (search,web_search,memory_search). Les outils inconnus ou non principaux, les lectures hors périmètre, les outils capables d’exécuter des commandes, les outils du plan de contrôle, les outils effectuant des modifications et les flux interactifs exigent toujours une approbation explicite de la requête. - La valeur
toolCall.kindfournie par le serveur est traitée comme une métadonnée non fiable, et non comme une source d’autorisation. - Cette politique de passerelle ACP est distincte des autorisations de l’environnement ACPX. Si vous exécutez OpenClaw via le moteur
acpx,plugins.entries.acpx.config.permissionMode=approve-allest l’interrupteur d’urgence « yolo » pour cette session d’environnement.
Test de bon fonctionnement du protocole
Pour le débogage au niveau du protocole, démarrez un Gateway avec un état isolé et pilotezopenclaw acp sur stdio à l’aide d’un client JSON-RPC ACP. Couvrez initialize, session/new, session/list avec un cwd absolu, session/resume, session/close, une fermeture en double et une reprise inexistante.
La preuve doit inclure les capacités de cycle de vie annoncées, une ligne de session reposant sur le Gateway, les notifications de mise à jour et le journal sessions.list du Gateway :
openclaw gateway call sessions.list comme unique preuve ACP. Ce chemin de la CLI peut demander une élévation de la portée opérateur avec un nouveau jeton ; le bon fonctionnement de la passerelle ACP est démontré par les trames ACP sur stdio ainsi que par le journal sessions.list du Gateway.
Comment l’utiliser
Utilisez ACP lorsqu’un IDE, ou un autre client, prend en charge Agent Client Protocol et que vous souhaitez lui permettre de piloter une session du Gateway OpenClaw.- Vérifiez que le Gateway est en cours d’exécution, localement ou à distance.
- Configurez la cible du Gateway à l’aide de la configuration ou des options.
- Configurez votre IDE pour exécuter
openclaw acpsur stdio.
Sélection des agents
ACP ne sélectionne pas directement les agents. Il effectue le routage selon la clé de session du Gateway. Utilisez des clés de session limitées à un agent pour cibler un agent particulier :acp-bridge:<uuid>, sauf si vous remplacez la clé ou le libellé.
Les mcpServers propres à chaque session ne sont pas pris en charge en mode pont. Si un client ACP les envoie lors de newSession ou de loadSession, le pont renvoie une erreur explicite au lieu de les ignorer silencieusement.
Si vous souhaitez que les sessions basées sur ACPX aient accès aux outils des plugins OpenClaw ou à certains outils intégrés comme cron, activez les ponts MCP ACPX côté Gateway au lieu d’essayer de transmettre des mcpServers propres à chaque session. Consultez Agents ACP et Pont MCP des outils OpenClaw.
Utilisation depuis acpx (Codex, Claude et autres clients ACP)
Si vous souhaitez qu’un agent de programmation comme Codex ou Claude Code communique avec votre bot OpenClaw via ACP, utilisez acpx avec sa cible openclaw intégrée.
Déroulement type :
- Exécutez le Gateway et vérifiez que le pont ACP peut y accéder.
- Faites pointer
acpx openclawversopenclaw acp. - Ciblez la clé de session OpenClaw que l’agent de programmation doit utiliser.
acpx openclaw cible systématiquement un Gateway et une clé de session spécifiques, remplacez la commande de l’agent openclaw dans ~/.acpx/config.json :
Configuration de l’éditeur Zed
Ajoutez un agent ACP personnalisé dans~/.config/zed/settings.json (ou utilisez l’interface Settings de Zed) :
Correspondance des sessions
Par défaut, les sessions du pont ACP reçoivent une clé de session Gateway isolée avec le préfixeacp-bridge:. Ces sessions de pont utilisant un modèle normal sont synthétiques et temporaires : elles sont soumises à la suppression des entrées obsolètes et ne sont pas considérées comme des espaces de conversation humaine protégés. Pour réutiliser une session connue, transmettez une clé ou un libellé de session :
--session <key>: utiliser une clé de session Gateway spécifique.--session-label <label>: rechercher une session existante par son libellé.--reset-session: générer un nouvel identifiant de session pour cette clé (même clé, nouvelle transcription).
Options
--url <url>: URL WebSocket du Gateway (utilise par défautgateway.remote.urllorsque cette valeur est configurée).--token <token>: jeton d’authentification du Gateway.--token-file <path>: lire le jeton d’authentification du Gateway depuis un fichier.--password <password>: mot de passe d’authentification du Gateway.--password-file <path>: lire le mot de passe d’authentification du Gateway depuis un fichier.--session <key>: clé de session par défaut.--session-label <label>: libellé de session par défaut à rechercher.--require-existing: échouer si la clé ou le libellé de session n’existe pas.--reset-session: réinitialiser la clé de session avant la première utilisation.--no-prefix-cwd: ne pas préfixer les invites avec le répertoire de travail.--provenance <off|meta|meta+receipt>: inclure les métadonnées de provenance ACP ou les reçus.--verbose, -v: journalisation détaillée sur stderr.
--tokenet--passwordpeuvent apparaître dans les listes de processus locaux sur certains systèmes. Préférez--token-file/--password-fileou les variables d’environnement (OPENCLAW_GATEWAY_TOKEN,OPENCLAW_GATEWAY_PASSWORD).- La résolution de l’authentification du Gateway suit le contrat commun utilisé par les autres clients Gateway :
- mode local : variables d’environnement (
OPENCLAW_GATEWAY_*), puisgateway.auth.*, avec repli surgateway.remote.*uniquement lorsquegateway.auth.*n’est pas défini (une SecretRef locale configurée mais non résolue provoque un échec fermé au lieu d’un repli silencieux) - mode distant :
gateway.remote.*, avec repli sur les variables d’environnement ou la configuration conformément aux règles de priorité du mode distant --urlpermet un remplacement sûr et ne réutilise pas les identifiants implicites issus de la configuration ou des variables d’environnement ; transmettez explicitement--token/--password(ou leurs variantes utilisant un fichier)
- mode local : variables d’environnement (
Options de acp client
--cwd <dir>: répertoire de travail de la session ACP.--server <command>: commande du serveur ACP (valeur par défaut :openclaw).--server-args <args...>: arguments supplémentaires transmis au serveur ACP.--server-verbose: activer la journalisation détaillée sur le serveur ACP.--verbose, -v: journalisation détaillée du client.openclaw acp clientdéfinitOPENCLAW_SHELL=acp-clientsur le processus de pont lancé, ce qui permet d’appliquer des règles d’interpréteur de commandes ou de profil propres au contexte.