openclaw acp usa ACP por stdio para IDEs e encaminha prompts ao Gateway por WebSocket, mantendo as sessões ACP mapeadas para chaves de sessão do Gateway. É uma ponte ACP apoiada pelo Gateway, não um ambiente de execução de editor totalmente nativo de ACP: ela se concentra no roteamento de sessões, na entrega de prompts e nas atualizações por streaming.
Se você quiser que um cliente MCP externo se comunique diretamente com conversas de canais do OpenClaw em vez de hospedar uma sessão de ambiente ACP, use openclaw mcp serve.
O que isto não é
openclaw acp significa que o OpenClaw atua como um servidor ACP: uma IDE ou um cliente ACP se conecta ao OpenClaw, e o OpenClaw encaminha esse trabalho para uma sessão do Gateway.
Isso é diferente de Agentes ACP, em que o OpenClaw executa um ambiente externo, como Codex ou Claude Code, por meio do acpx.
Regra rápida:
- o editor/cliente quer se comunicar via ACP com o OpenClaw: use
openclaw acp - o OpenClaw deve iniciar Codex/Claude/Gemini como um ambiente ACP: use
/acp spawne Agentes ACP
Matriz de compatibilidade
Limitações conhecidas
loadSessionreproduz o histórico completo do registro de eventos ACP apenas para sessões criadas pela ponte. Sessões antigas ou sem registro usam o histórico da conversa como alternativa e não reconstroem chamadas históricas de ferramentas nem avisos do sistema.- Se vários clientes ACP compartilharem a mesma chave de sessão do Gateway, o roteamento de eventos e cancelamentos funciona com melhor esforço, em vez de ser estritamente isolado por cliente. Prefira as sessões isoladas padrão
acp-bridge:<uuid>quando precisar de turnos locais do editor claramente separados. - Os estados de parada do Gateway são convertidos em motivos de parada do ACP, mas esse mapeamento é menos expressivo do que o de um ambiente de execução totalmente nativo de ACP.
- Os controles de sessão apresentam um subconjunto específico das opções do Gateway: nível de pensamento, detalhamento das ferramentas, raciocínio, detalhes de uso e ações elevadas. A seleção de modelo e os controles do host de execução não são expostos como opções de configuração do ACP.
session_info_updateeusage_updatesão derivados de instantâneos das sessões do Gateway, não da contabilização em tempo real de um ambiente de execução nativo de ACP. O uso é aproximado, não inclui dados de custo e só é emitido quando o Gateway marca os dados totais de tokens como atuais.- Os dados de acompanhamento das ferramentas funcionam com melhor esforço: a ponte apresenta caminhos de arquivos que aparecem em argumentos/resultados conhecidos das ferramentas, mas não emite terminais ACP nem diffs estruturados de arquivos.
- O retransmissão de aprovações de execução é limitada ao turno ativo do prompt ACP; aprovações de outras sessões do Gateway são ignoradas.
Uso
Cliente ACP (depuração)
Use o cliente ACP integrado para fazer uma verificação básica da ponte sem uma IDE. Ele inicia a ponte ACP e permite que você digite prompts interativamente.- A aprovação automática é baseada em uma lista de permissões e se aplica somente a IDs confiáveis de ferramentas principais.
- A aprovação automática de
readé limitada ao diretório de trabalho atual (--cwd, quando definido). - O ACP aprova automaticamente apenas classes restritas somente leitura: chamadas
readlimitadas aocwdativo, além de ferramentas de pesquisa somente leitura (search,web_search,memory_search). Ferramentas desconhecidas ou não pertencentes ao núcleo, leituras fora do escopo, ferramentas capazes de executar comandos, ferramentas do plano de controle, ferramentas que realizam alterações e fluxos interativos sempre exigem aprovação explícita no prompt. - O
toolCall.kindfornecido pelo servidor é tratado como metadado não confiável, não como fonte de autorização. - Esta política da ponte ACP é separada das permissões do ambiente ACPX. Se você executar o OpenClaw por meio do backend
acpx,plugins.entries.acpx.config.permissionMode=approve-allserá o interruptor emergencial “yolo” para essa sessão do ambiente.
Teste de fumaça do protocolo
Para depuração no nível do protocolo, inicie um Gateway com estado isolado e controleopenclaw acp via stdio com um cliente JSON-RPC ACP. Abranja initialize, session/new, session/list com um cwd absoluto, session/resume, session/close, fechamento duplicado e retomada inexistente.
A comprovação deve incluir os recursos de ciclo de vida anunciados, uma linha de sessão apoiada pelo Gateway, notificações de atualização e o log sessions.list do Gateway:
openclaw gateway call sessions.list como a única comprovação do ACP. Esse caminho da CLI pode solicitar uma elevação de escopo do operador com token novo; a correção da ponte ACP é comprovada pelos quadros ACP via stdio junto com o log sessions.list do Gateway.
Como usar
Use o ACP quando uma IDE (ou outro cliente) usar o Agent Client Protocol e você quiser que ela controle uma sessão do Gateway do 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 acpvia stdio.
Seleção de agentes
O ACP não seleciona agentes diretamente. Ele roteia pela chave de sessão do Gateway. Use chaves de sessão com escopo de agente para direcionar a um agente específico:acp-bridge:<uuid>, a menos que você substitua a chave ou o rótulo.
mcpServers por sessão não são compatíveis com o modo de ponte. Se um cliente ACP os enviar durante newSession ou loadSession, a ponte retornará um erro claro em vez de ignorá-los silenciosamente.
Se você quiser que sessões baseadas em ACPX vejam ferramentas de plugins do OpenClaw ou ferramentas integradas selecionadas, como cron, habilite as pontes MCP do ACPX no lado do Gateway em vez de tentar passar mcpServers por sessão. Consulte Agentes ACP e Ponte MCP de ferramentas do OpenClaw.
Uso pelo acpx (Codex, Claude e outros clientes ACP)
Se você quiser que um agente de programação, como Codex ou Claude Code, se comunique com seu bot OpenClaw via ACP, use o acpx com seu destino openclaw integrado.
Fluxo típico:
- Execute o Gateway e verifique se a ponte ACP consegue acessá-lo.
- Direcione
acpx openclawparaopenclaw acp. - Defina como destino a chave de sessão do OpenClaw que você quer que o agente de programação use.
acpx openclaw sempre tenha como destino um Gateway e uma chave de sessão específicos, 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 Settings do Zed):
Mapeamento de sessões
Por padrão, as sessões da ponte ACP recebem uma chave de sessão isolada do Gateway com o prefixoacp-bridge:. Essas sessões de ponte de modelo normal são sintéticas e descartáveis: estão sujeitas à remoção de entradas obsoletas e não são tratadas como superfícies protegidas de conversas humanas. Para reutilizar uma sessão conhecida, passe uma chave ou um rótulo de sessão:
--session <key>: usa uma chave de sessão específica do Gateway.--session-label <label>: resolve uma sessão existente pelo 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 (o padrão égateway.remote.urlquando configurado).--token <token>: token de autenticação do Gateway.--token-file <path>: lê o token de autenticação do Gateway de um arquivo.--password <password>: senha de autenticação do Gateway.--password-file <path>: lê a senha de autenticação do Gateway 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 ou o rótulo da sessão não existir.--reset-session: redefine a chave da sessão antes do primeiro uso.--no-prefix-cwd: não adiciona o diretório de trabalho como prefixo aos prompts.--provenance <off|meta|meta+receipt>: inclui metadados ou recibos de proveniência do ACP.--verbose, -v: registro detalhado em stderr.
--tokene--passwordpodem ficar visíveis nas listas de processos locais em alguns sistemas. Prefira--token-file/--password-fileou variáveis de ambiente (OPENCLAW_GATEWAY_TOKEN,OPENCLAW_GATEWAY_PASSWORD).- A resolução da autenticação do Gateway segue o contrato compartilhado usado por outros clientes do Gateway:
- modo local: variáveis de ambiente (
OPENCLAW_GATEWAY_*) e depoisgateway.auth.*, recorrendo agateway.remote.*somente quandogateway.auth.*não estiver definido (uma SecretRef local configurada, mas não resolvida, falha de forma segura em vez de recorrer silenciosamente a outra opção) - modo remoto:
gateway.remote.*, com fallback para variáveis de ambiente/configuração de acordo com as regras de precedência remota --urlé seguro para substituição e não reutiliza credenciais implícitas da configuração ou das variáveis de ambiente; passe--token/--passwordexplicitamente (ou as variantes de arquivo)
- modo local: variáveis de ambiente (
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 adicionais passados ao servidor ACP.--server-verbose: habilita o registro detalhado no servidor ACP.--verbose, -v: registro detalhado do cliente.openclaw acp clientdefineOPENCLAW_SHELL=acp-clientno processo da ponte iniciado, o que pode ser usado para regras de shell/perfil específicas do contexto.