openclaw acp usa ACP tramite stdio per gli IDE e inoltra i prompt al Gateway tramite WebSocket, mantenendo le sessioni ACP associate alle chiavi di sessione del Gateway. È un bridge ACP basato sul Gateway, non un runtime completo per editor nativo ACP: si concentra sull’instradamento delle sessioni, sulla consegna dei prompt e sugli aggiornamenti in streaming.
Se vuoi che un client MCP esterno comunichi direttamente con le conversazioni dei canali OpenClaw anziché ospitare una sessione dell’harness ACP, usa invece openclaw mcp serve.
Cosa non è
openclaw acp significa che OpenClaw opera come server ACP: un IDE o un client ACP si connette a OpenClaw e OpenClaw inoltra il lavoro a una sessione del Gateway.
Questo è diverso dagli agenti ACP, in cui OpenClaw esegue un harness esterno come Codex o Claude Code tramite acpx.
Regola rapida:
- se l’editor/client deve comunicare tramite ACP con OpenClaw: usa
openclaw acp - se OpenClaw deve avviare Codex/Claude/Gemini come harness ACP: usa
/acp spawne agenti ACP
Matrice di compatibilità
Limitazioni note
loadSessionriproduce la cronologia completa del registro eventi ACP solo per le sessioni create dal bridge. Le sessioni precedenti o prive di registro usano il ripiego sulla trascrizione e non ricostruiscono le chiamate storiche agli strumenti né gli avvisi di sistema.- Se più client ACP condividono la stessa chiave di sessione del Gateway, l’instradamento degli eventi e degli annullamenti è basato sul massimo sforzo anziché essere rigorosamente isolato per client. Quando servono turni locali dell’editor nettamente separati, preferisci le sessioni isolate predefinite
acp-bridge:<uuid>. - Gli stati di arresto del Gateway vengono tradotti in motivi di arresto ACP, ma questa associazione è meno espressiva rispetto a un runtime completamente nativo ACP.
- I controlli di sessione espongono un sottoinsieme mirato delle opzioni del Gateway: livello di pensiero, verbosità degli strumenti, ragionamento, dettagli di utilizzo e azioni con privilegi elevati. La selezione del modello e i controlli dell’host di esecuzione non sono esposti come opzioni di configurazione ACP.
session_info_updateeusage_updatederivano dalle istantanee delle sessioni del Gateway, non dalla contabilizzazione in tempo reale di un runtime nativo ACP. L’utilizzo è approssimativo, non include dati sui costi e viene emesso solo quando il Gateway contrassegna come aggiornati i dati sui token totali.- I dati di accompagnamento degli strumenti sono basati sul massimo sforzo: il bridge espone i percorsi dei file presenti negli argomenti/risultati noti degli strumenti, ma non emette terminali ACP né differenze strutturate dei file.
- L’inoltro dell’approvazione dell’esecuzione è limitato al turno attivo del prompt ACP; le approvazioni provenienti da altre sessioni del Gateway vengono ignorate.
Utilizzo
Client ACP (debug)
Usa il client ACP integrato per verificare rapidamente il bridge senza un IDE. Avvia il bridge ACP e consente di digitare prompt in modo interattivo.- L’approvazione automatica si basa su un elenco consentito e si applica solo agli ID attendibili degli strumenti principali.
- L’approvazione automatica di
readè limitata alla directory di lavoro corrente (--cwdse impostato). - ACP approva automaticamente solo categorie ristrette di sola lettura: chiamate
readlimitate alla directory di lavoro corrente attiva, oltre agli strumenti di ricerca di sola lettura (search,web_search,memory_search). Gli strumenti sconosciuti/non principali, le letture fuori ambito, gli strumenti con capacità di esecuzione, gli strumenti del piano di controllo, gli strumenti che apportano modifiche e i flussi interattivi richiedono sempre l’approvazione esplicita del prompt. - Il valore
toolCall.kindfornito dal server viene trattato come metadato non attendibile, non come fonte di autorizzazione. - Questa politica del bridge ACP è distinta dalle autorizzazioni dell’harness ACPX. Se esegui OpenClaw tramite il backend
acpx,plugins.entries.acpx.config.permissionMode=approve-allè l’interruttore di emergenza “yolo” per quella sessione dell’harness.
Test rapido del protocollo
Per il debug a livello di protocollo, avvia un Gateway con stato isolato e controllaopenclaw acp tramite stdio con un client JSON-RPC ACP. Verifica initialize, session/new, session/list con un cwd assoluto, session/resume, session/close, la chiusura duplicata e la ripresa di una sessione inesistente.
La prova deve includere le funzionalità del ciclo di vita pubblicizzate, una riga di sessione basata sul Gateway, le notifiche di aggiornamento e il log sessions.list del Gateway:
openclaw gateway call sessions.list come unica prova ACP. Quel percorso della CLI potrebbe richiedere un aggiornamento dell’ambito operatore con token recente; la correttezza del bridge ACP viene dimostrata dai frame ACP su stdio insieme al log sessions.list del Gateway.
Come usarlo
Usa ACP quando un IDE (o un altro client) utilizza Agent Client Protocol e vuoi che controlli una sessione del Gateway OpenClaw.- Assicurati che il Gateway sia in esecuzione (locale o remoto).
- Configura la destinazione del Gateway (configurazione o flag).
- Configura il tuo IDE affinché esegua
openclaw acptramite stdio.
Selezione degli agenti
ACP non seleziona direttamente gli agenti. Esegue l’instradamento in base alla chiave di sessione del Gateway. Usa chiavi di sessione specifiche per agente per scegliere un agente specifico:acp-bridge:<uuid>, a meno che non venga specificata un’altra chiave o etichetta.
Le opzioni mcpServers per sessione non sono supportate in modalità bridge. Se un client ACP le invia durante newSession o loadSession, il bridge restituisce un errore chiaro anziché ignorarle silenziosamente.
Se vuoi che le sessioni basate su ACPX vedano gli strumenti dei plugin OpenClaw o strumenti integrati selezionati come cron, abilita i bridge MCP ACPX sul lato Gateway anziché provare a passare mcpServers per sessione. Consulta Agenti ACP e Bridge MCP degli strumenti OpenClaw.
Utilizzo da acpx (Codex, Claude, altri client ACP)
Se vuoi che un agente di programmazione come Codex o Claude Code comunichi con il tuo bot OpenClaw tramite ACP, usa acpx con la destinazione openclaw integrata.
Flusso tipico:
- Avvia il Gateway e assicurati che il bridge ACP possa raggiungerlo.
- Indirizza
acpx openclawversoopenclaw acp. - Specifica la chiave di sessione OpenClaw che vuoi far usare all’agente di programmazione.
acpx openclaw usi ogni volta un Gateway e una chiave di sessione specifici, sovrascrivi il comando dell’agente openclaw in ~/.acpx/config.json:
Configurazione dell’editor Zed
Aggiungi un agente ACP personalizzato in~/.config/zed/settings.json (oppure usa l’interfaccia Settings di Zed):
Associazione delle sessioni
Per impostazione predefinita, le sessioni del bridge ACP ricevono una chiave di sessione Gateway isolata con il prefissoacp-bridge:. Queste sessioni bridge con modello normale sono sintetiche e temporanee: sono soggette alla rimozione delle voci obsolete e non sono considerate superfici protette di conversazione umana. Per riutilizzare una sessione nota, passa una chiave o un’etichetta di sessione:
--session <key>: usa una chiave di sessione Gateway specifica.--session-label <label>: risolvi una sessione esistente tramite etichetta.--reset-session: genera un nuovo ID di sessione per quella chiave (stessa chiave, nuova trascrizione).
Opzioni
--url <url>: URL WebSocket del Gateway (il valore predefinito ègateway.remote.url, se configurato).--token <token>: token di autenticazione del Gateway.--token-file <path>: legge il token di autenticazione del Gateway da un file.--password <password>: password di autenticazione del Gateway.--password-file <path>: legge la password di autenticazione del Gateway da un file.--session <key>: chiave di sessione predefinita.--session-label <label>: etichetta di sessione predefinita da risolvere.--require-existing: genera un errore se la chiave o l’etichetta di sessione non esiste.--reset-session: reimposta la chiave di sessione prima del primo utilizzo.--no-prefix-cwd: non anteporre la directory di lavoro ai prompt.--provenance <off|meta|meta+receipt>: include i metadati o le ricevute di provenienza ACP.--verbose, -v: registrazione dettagliata su stderr.
--tokene--passwordpossono essere visibili negli elenchi dei processi locali su alcuni sistemi. Preferisci--token-file/--password-fileo le variabili d’ambiente (OPENCLAW_GATEWAY_TOKEN,OPENCLAW_GATEWAY_PASSWORD).- La risoluzione dell’autenticazione del Gateway segue il contratto condiviso utilizzato dagli altri client Gateway:
- modalità locale: variabili d’ambiente (
OPENCLAW_GATEWAY_*), quindigateway.auth.*, con ripiego sugateway.remote.*solo quandogateway.auth.*non è impostato (un SecretRef locale configurato ma non risolto interrompe l’operazione in modo sicuro anziché ricorrere silenziosamente al ripiego) - modalità remota:
gateway.remote.*con ripiego su variabili d’ambiente/configurazione secondo le regole di precedenza remota --urlè sicuro come sovrascrittura e non riutilizza credenziali implicite provenienti dalla configurazione o dalle variabili d’ambiente; passa esplicitamente--token/--password(o le varianti basate su file)
- modalità locale: variabili d’ambiente (
Opzioni di acp client
--cwd <dir>: directory di lavoro per la sessione ACP.--server <command>: comando del server ACP (predefinito:openclaw).--server-args <args...>: argomenti aggiuntivi passati al server ACP.--server-verbose: abilita la registrazione dettagliata sul server ACP.--verbose, -v: registrazione dettagliata del client.openclaw acp clientimpostaOPENCLAW_SHELL=acp-clientnel processo bridge avviato, che può essere utilizzato per regole della shell o del profilo specifiche del contesto.