acp
Execute a bridge do Agent Client Protocol (ACP) que se comunica com um Gateway OpenClaw. Este comando fala ACP por stdio para IDEs e encaminha prompts para o Gateway por WebSocket. Ele mantém as sessões ACP mapeadas para chaves de sessão do Gateway.openclaw acp é uma bridge ACP com suporte do Gateway, não um runtime de editor
totalmente nativo de ACP. Ela se concentra em roteamento de sessão, entrega de
prompts e atualizações básicas de streaming.
Se você quiser que um cliente MCP externo fale diretamente com conversas de canal
do OpenClaw em vez de hospedar uma sessão de harness ACP, use
openclaw mcp serve.
O que isto não é
Esta página costuma ser confundida com sessões de harness ACP.openclaw acp significa:
- o OpenClaw atua como um servidor ACP
- uma IDE ou cliente ACP se conecta ao OpenClaw
- o OpenClaw encaminha esse trabalho para uma sessão do Gateway
acpx.
Regra rápida:
- editor/cliente quer falar ACP com o OpenClaw: use
openclaw acp - o OpenClaw deve iniciar Codex/Claude/Gemini como um harness ACP: use
/acp spawne ACP Agents
Matriz de compatibilidade
| Área do ACP | Status | Observações |
|---|---|---|
initialize, newSession, prompt, cancel | Implementado | Fluxo principal da bridge por stdio para chat/send + abort do Gateway. |
listSessions, comandos com barra | Implementado | A lista de sessões funciona com base no estado de sessão do Gateway; os comandos são anunciados via available_commands_update. |
loadSession | Parcial | Reassocia a sessão ACP a uma chave de sessão do Gateway e reproduz o histórico armazenado de texto de usuário/assistente. O histórico de ferramenta/sistema ainda não é reconstruído. |
Conteúdo do prompt (text, resource incorporado, imagens) | Parcial | Texto/recursos são achatados na entrada do chat; imagens se tornam anexos do Gateway. |
| Modos de sessão | Parcial | session/set_mode é compatível e a bridge expõe controles iniciais de sessão com suporte do Gateway para nível de pensamento, verbosidade de ferramentas, raciocínio, detalhe de uso e ações elevadas. Superfícies mais amplas de modo/config nativas de ACP ainda estão fora do escopo. |
| Informações de sessão e atualizações de uso | Parcial | A bridge emite notificações session_info_update e usage_update em modo best-effort a partir de snapshots em cache da sessão do Gateway. O uso é aproximado e só é enviado quando os totais de tokens do Gateway estão marcados como atualizados. |
| Streaming de ferramentas | Parcial | Eventos tool_call / tool_call_update incluem E/S bruta, conteúdo de texto e localizações de arquivo em modo best-effort quando argumentos/resultados de ferramenta do Gateway os expõem. Terminais incorporados e saída mais rica nativa de diff ainda não são expostos. |
Servidores MCP por sessão (mcpServers) | Não compatível | O modo bridge rejeita solicitações de servidor MCP por sessão. Configure MCP no gateway ou agente OpenClaw. |
Métodos de sistema de arquivos do cliente (fs/read_text_file, fs/write_text_file) | Não compatível | A bridge não chama métodos de sistema de arquivos do cliente ACP. |
Métodos de terminal do cliente (terminal/*) | Não compatível | A bridge não cria terminais do cliente ACP nem transmite IDs de terminal por chamadas de ferramenta. |
| Planos de sessão / streaming de pensamento | Não compatível | Atualmente, a bridge emite texto de saída e status de ferramenta, não atualizações de plano ou pensamento do ACP. |
Limitações conhecidas
loadSessionreproduz o histórico armazenado de texto de usuário e assistente, mas não reconstrói chamadas históricas de ferramenta, avisos de sistema nem tipos de evento nativos de ACP mais ricos.- Se vários clientes ACP compartilharem a mesma chave de sessão do Gateway, o roteamento
de eventos e cancelamento será best-effort em vez de estritamente isolado por cliente. Prefira as
sessões isoladas padrão
acp:<uuid>quando precisar de turnos limpos locais do editor. - Estados de parada do Gateway são traduzidos em motivos de parada do ACP, mas esse mapeamento é menos expressivo do que um runtime totalmente nativo de ACP.
- Os controles iniciais de sessão atualmente expõem um subconjunto focado de opções do Gateway: nível de pensamento, verbosidade de ferramentas, raciocínio, detalhe de uso e ações elevadas. Seleção de modelo e controles de host de execução ainda não são expostos como opções de configuração ACP.
session_info_updateeusage_updatesão derivados de snapshots da sessão do Gateway, não de contabilidade em tempo real nativa de ACP. O uso é aproximado, não inclui dados de custo e só é emitido quando o Gateway marca os dados totais de tokens como atualizados.- Os dados de acompanhamento de ferramentas são best-effort. A bridge pode expor caminhos de arquivo que aparecem em argumentos/resultados de ferramentas conhecidos, mas ainda não emite terminais ACP nem diffs estruturados de arquivo.
Uso
Cliente ACP (depuração)
Use o cliente ACP integrado para validar a bridge sem uma IDE. Ele inicia a bridge ACP e permite digitar prompts interativamente.- A aprovação automática é baseada em lista de permissões e se aplica apenas a IDs de ferramenta centrais confiáveis.
- A aprovação automática de
readé limitada ao diretório de trabalho atual (--cwdquando definido). - O ACP só aprova automaticamente classes readonly restritas: chamadas
readcom escopo sob o cwd ativo mais ferramentas de busca readonly (search,web_search,memory_search). Ferramentas desconhecidas/não centrais, leituras fora do escopo, ferramentas com capacidade de execução, ferramentas do plano de controle, ferramentas mutáveis e fluxos interativos sempre exigem aprovação explícita por prompt. toolCall.kindfornecido pelo servidor é tratado como metadado não confiável (não como fonte de autorização).- Esta política da bridge ACP é separada das permissões do harness ACPX. Se você executar o OpenClaw por meio do backend
acpx,plugins.entries.acpx.config.permissionMode=approve-allé a opção emergencial “yolo” para essa sessão de harness.
Como usar isto
Use ACP quando uma IDE (ou outro cliente) falar Agent Client Protocol e você quiser que ela conduza uma sessão do Gateway OpenClaw.- Certifique-se de que o Gateway esteja em execução (local ou remoto).
- Configure o destino do Gateway (configuração ou flags).
- Configure sua IDE para executar
openclaw acppor stdio.
Seleção de agentes
ACP não escolhe agentes diretamente. Ele faz o roteamento pela chave de sessão do Gateway. Use chaves de sessão com escopo de agente para direcionar um agente específico:acp:<uuid>, a menos que você substitua
a chave ou o rótulo.
mcpServers por sessão não são compatíveis no modo bridge. Se um cliente ACP
os enviar durante newSession ou loadSession, a bridge retorna um erro
claro em vez de ignorá-los silenciosamente.
Se você quiser que sessões com suporte de ACPX vejam ferramentas de plugin do OpenClaw, ative a
bridge de plugin ACPX no lado do gateway em vez de tentar passar
mcpServers por sessão. Consulte ACP Agents.
Usar a partir de acpx (Codex, Claude, outros clientes ACP)
Se você quiser que um agente de programação como Codex ou Claude Code fale com seu
bot OpenClaw por ACP, use acpx com seu destino integrado openclaw.
Fluxo típico:
- Execute o Gateway e certifique-se de que a bridge ACP consegue alcançá-lo.
- Aponte
acpx openclawparaopenclaw acp. - Direcione para a chave de sessão OpenClaw que você quer que o agente de programação use.
acpx openclaw direcione para um Gateway específico e uma chave de sessão específica
sempre, substitua o comando do agente openclaw em ~/.acpx/config.json:
Configuração do editor Zed
Adicione um agente ACP personalizado em~/.config/zed/settings.json (ou use a interface de configurações do Zed):
Mapeamento de sessão
Por padrão, as sessões ACP recebem uma chave de sessão isolada do Gateway com prefixoacp:.
Para reutilizar uma sessão conhecida, passe uma chave de sessão ou rótulo:
--session <key>: usa uma chave de sessão específica do Gateway.--session-label <label>: resolve uma sessão existente por rótulo.--reset-session: gera um novo ID de sessão para essa chave (mesma chave, nova transcrição).
Opções
--url <url>: URL WebSocket do Gateway (usa por padrãogateway.remote.urlquando configurado).--token <token>: token de autenticação do Gateway.--token-file <path>: lê o token de autenticação do Gateway a partir de um arquivo.--password <password>: senha de autenticação do Gateway.--password-file <path>: lê a senha de autenticação do Gateway a partir de um arquivo.--session <key>: chave de sessão padrão.--session-label <label>: rótulo de sessão padrão a ser resolvido.--require-existing: falha se a chave/rótulo de sessão não existir.--reset-session: redefine a chave de sessão antes do primeiro uso.--no-prefix-cwd: não prefixa prompts com o diretório de trabalho.--provenance <off|meta|meta+receipt>: inclui metadados de procedência ACP ou recibos.--verbose, -v: logging detalhado em stderr.
--tokene--passwordpodem ficar visíveis em listagens locais de processos em alguns sistemas.- Prefira
--token-file/--password-fileou variáveis de ambiente (OPENCLAW_GATEWAY_TOKEN,OPENCLAW_GATEWAY_PASSWORD). - A resolução de autenticação do Gateway segue o contrato compartilhado usado por outros clientes do Gateway:
- modo local: env (
OPENCLAW_GATEWAY_*) ->gateway.auth.*-> fallbackgateway.remote.*apenas quandogateway.auth.*não está definido (SecretRefs locais configurados, mas não resolvidos, falham em modo fechado) - modo remoto:
gateway.remote.*com fallback de env/config pelas regras de precedência remota --urlé seguro para sobrescrita e não reutiliza credenciais implícitas de config/env; passe--token/--passwordexplícitos (ou variantes de arquivo)
- modo local: env (
- Processos filhos do backend de runtime ACP recebem
OPENCLAW_SHELL=acp, que pode ser usado para regras específicas de contexto no shell/profile. openclaw acp clientdefineOPENCLAW_SHELL=acp-clientno processo da bridge iniciado.
Opções de acp client
--cwd <dir>: diretório de trabalho da sessão ACP.--server <command>: comando do servidor ACP (padrão:openclaw).--server-args <args...>: argumentos extras passados ao servidor ACP.--server-verbose: ativa logging detalhado no servidor ACP.--verbose, -v: logging detalhado do cliente.