acp
Esegui il bridge Agent Client Protocol (ACP) che comunica con un Gateway OpenClaw. Questo comando usa ACP su stdio per gli IDE e inoltra i prompt al Gateway tramite WebSocket. Mantiene le sessioni ACP mappate alle chiavi di sessione del Gateway.openclaw acp è un bridge ACP supportato dal Gateway, non un runtime editor completamente nativo ACP. Si concentra su routing delle sessioni, recapito dei prompt e aggiornamenti di streaming di base.
Se vuoi che un client MCP esterno comunichi direttamente con le conversazioni dei canali OpenClaw invece di ospitare una sessione harness ACP, usa invece openclaw mcp serve.
Cosa non è
Questa pagina viene spesso confusa con le sessioni harness ACP.openclaw acp significa:
- OpenClaw agisce come server ACP
- un IDE o client ACP si connette a OpenClaw
- OpenClaw inoltra quel lavoro in una sessione Gateway
acpx.
Regola rapida:
- se l’editor/client vuole comunicare via ACP con OpenClaw: usa
openclaw acp - se OpenClaw deve avviare Codex/Claude/Gemini come harness ACP: usa
/acp spawne ACP Agents
Matrice di compatibilità
| Area ACP | Stato | Note |
|---|---|---|
initialize, newSession, prompt, cancel | Implementato | Flusso core del bridge su stdio verso chat/send + abort del Gateway. |
listSessions, comandi slash | Implementato | L’elenco sessioni funziona rispetto allo stato delle sessioni del Gateway; i comandi sono pubblicizzati tramite available_commands_update. |
loadSession | Parziale | Ricollega la sessione ACP a una chiave di sessione Gateway e riproduce la cronologia di testo utente/assistente memorizzata. La cronologia di strumenti/sistema non viene ancora ricostruita. |
Contenuto dei prompt (text, resource incorporata, immagini) | Parziale | Testo/risorse vengono appiattiti nell’input chat; le immagini diventano allegati del Gateway. |
| Modalità sessione | Parziale | session/set_mode è supportato e il bridge espone controlli iniziali della sessione supportati dal Gateway per livello di pensiero, verbosità degli strumenti, ragionamento, dettaglio di utilizzo e azioni elevate. Superfici di modalità/configurazione ACP native più ampie sono ancora fuori ambito. |
| Informazioni sulla sessione e aggiornamenti di utilizzo | Parziale | Il bridge emette notifiche session_info_update e usage_update best-effort da snapshot in cache della sessione Gateway. L’utilizzo è approssimativo e viene inviato solo quando i totali token del Gateway sono contrassegnati come aggiornati. |
| Streaming degli strumenti | Parziale | Gli eventi tool_call / tool_call_update includono I/O grezzo, contenuto testuale e percorsi file best-effort quando argomenti/risultati degli strumenti del Gateway li espongono. Terminali incorporati e output nativi diff più ricchi non sono ancora esposti. |
Server MCP per sessione (mcpServers) | Non supportato | La modalità bridge rifiuta le richieste di server MCP per sessione. Configura MCP sul gateway o sull’agente OpenClaw. |
Metodi filesystem del client (fs/read_text_file, fs/write_text_file) | Non supportato | Il bridge non chiama i metodi filesystem del client ACP. |
Metodi terminale del client (terminal/*) | Non supportato | Il bridge non crea terminali del client ACP né trasmette ID terminale tramite le chiamate degli strumenti. |
| Piani di sessione / streaming del pensiero | Non supportato | Attualmente il bridge emette testo di output e stato degli strumenti, non aggiornamenti di piani o pensieri ACP. |
Limitazioni note
loadSessionriproduce la cronologia di testo utente e assistente memorizzata, ma non ricostruisce chiamate storiche degli strumenti, avvisi di sistema o tipi di eventi ACP nativi più ricchi.- Se più client ACP condividono la stessa chiave di sessione Gateway, il routing di eventi e annullamenti è best-effort anziché rigorosamente isolato per client. Preferisci le sessioni isolate predefinite
acp:<uuid>quando ti servono turni locali puliti nell’editor. - Gli stati di arresto del Gateway vengono tradotti in motivi di arresto ACP, ma questa mappatura è meno espressiva di un runtime completamente nativo ACP.
- I controlli iniziali della sessione espongono attualmente un sottoinsieme mirato delle impostazioni del Gateway: livello di pensiero, verbosità degli strumenti, ragionamento, dettaglio di utilizzo e azioni elevate. La selezione del modello e i controlli exec-host non sono ancora esposti come opzioni di configurazione ACP.
session_info_updateeusage_updatederivano da snapshot della sessione Gateway, non da contabilità runtime ACP nativa in tempo reale. L’utilizzo è approssimativo, non include dati sui costi e viene emesso solo quando il Gateway contrassegna come aggiornati i dati totali dei token.- I dati di follow-along degli strumenti sono best-effort. Il bridge può mostrare i percorsi dei file che compaiono in argomenti/risultati di strumenti noti, ma non emette ancora terminali ACP o diff di file strutturati.
Utilizzo
Client ACP (debug)
Usa il client ACP integrato per verificare rapidamente il bridge senza un IDE. Avvia il bridge ACP e ti consente di digitare prompt in modo interattivo.- L’approvazione automatica è basata su allowlist e si applica solo a ID di strumenti core affidabili.
- L’approvazione automatica di
readè limitata alla directory di lavoro corrente (--cwdquando impostato). - ACP approva automaticamente solo classi ristrette in sola lettura: chiamate
readlimitate sotto la cwd attiva più strumenti di ricerca in sola lettura (search,web_search,memory_search). Strumenti sconosciuti/non core, letture fuori ambito, strumenti capaci di esecuzione, strumenti control-plane, strumenti che modificano dati e flussi interattivi richiedono sempre un’approvazione esplicita del prompt. toolCall.kindfornito dal server viene trattato come metadato non affidabile (non come fonte di autorizzazione).- Questa policy del bridge ACP è separata dalle autorizzazioni dell’harness ACPX. Se esegui OpenClaw tramite il backend
acpx,plugins.entries.acpx.config.permissionMode=approve-allè l’opzione break-glass “yolo” per quella sessione harness.
Come usarlo
Usa ACP quando un IDE (o un altro client) parla Agent Client Protocol e vuoi che guidi una sessione Gateway OpenClaw.- Assicurati che il Gateway sia in esecuzione (locale o remoto).
- Configura il target del Gateway (config o flag).
- Configura il tuo IDE per eseguire
openclaw acpsu stdio.
Selezione degli agenti
ACP non seleziona direttamente gli agenti. Esegue il routing tramite la chiave di sessione del Gateway. Usa chiavi di sessione con ambito agente per indirizzare un agente specifico:acp:<uuid> a meno che tu non sovrascriva la chiave o l’etichetta.
Gli mcpServers per sessione non sono supportati in modalità bridge. Se un client ACP li invia durante newSession o loadSession, il bridge restituisce un errore chiaro invece di ignorarli silenziosamente.
Se vuoi che le sessioni supportate da ACPX vedano gli strumenti plugin OpenClaw, abilita invece il bridge plugin ACPX lato gateway invece di provare a passare mcpServers per sessione. Vedi ACP Agents.
Uso da acpx (Codex, Claude, altri client ACP)
Se vuoi che un agente di coding come Codex o Claude Code comunichi con il tuo bot OpenClaw tramite ACP, usa acpx con il suo target openclaw integrato.
Flusso tipico:
- Esegui il Gateway e assicurati che il bridge ACP possa raggiungerlo.
- Punta
acpx openclawaopenclaw acp. - Indirizza la chiave di sessione OpenClaw che vuoi usare per l’agente di coding.
acpx openclaw punti ogni volta a un Gateway e a 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):
Mappatura delle sessioni
Per impostazione predefinita, le sessioni ACP ottengono una chiave di sessione Gateway isolata con prefissoacp:.
Per riutilizzare una sessione nota, passa una chiave di sessione o un’etichetta:
--session <key>: usa una chiave di sessione Gateway specifica.--session-label <label>: risolve una sessione esistente tramite etichetta.--reset-session: genera un nuovo id sessione per quella chiave (stessa chiave, nuova trascrizione).
Opzioni
--url <url>: URL WebSocket del Gateway (usagateway.remote.urlcome predefinito quando configurato).--token <token>: token di autenticazione del Gateway.--token-file <path>: legge il token di autenticazione del Gateway da file.--password <password>: password di autenticazione del Gateway.--password-file <path>: legge la password di autenticazione del Gateway da file.--session <key>: chiave di sessione predefinita.--session-label <label>: etichetta di sessione predefinita da risolvere.--require-existing: fallisce se la chiave/etichetta di sessione non esiste.--reset-session: reimposta la chiave di sessione prima del primo utilizzo.--no-prefix-cwd: non anteporre ai prompt la directory di lavoro.--provenance <off|meta|meta+receipt>: include metadati di provenienza ACP o ricevute.--verbose, -v: logging dettagliato 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 usato da altri client Gateway:
- modalità locale: env (
OPENCLAW_GATEWAY_*) ->gateway.auth.*-> fallbackgateway.remote.*solo quandogateway.auth.*non è impostato (gli SecretRef locali configurati ma non risolti falliscono in modo chiuso) - modalità remota:
gateway.remote.*con fallback env/config secondo le regole di precedenza della modalità remota --urlè sicuro per la sovrascrittura e non riutilizza credenziali implicite config/env; passa--token/--passwordespliciti (o le varianti da file)
- modalità locale: env (
- I processi figli del backend runtime ACP ricevono
OPENCLAW_SHELL=acp, che può essere usato per regole shell/profile specifiche del contesto. openclaw acp clientimpostaOPENCLAW_SHELL=acp-clientsul processo bridge avviato.
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 extra passati al server ACP.--server-verbose: abilita il logging dettagliato sul server ACP.--verbose, -v: logging dettagliato del client.