O ACP é o caminho para ambientes externos, não o caminho padrão do Codex. O plugin
nativo do servidor de aplicativo Codex controla os comandos
/codex ... e o runtime
incorporado padrão openai/gpt-* para turnos do agente; o ACP controla os comandos
/acp ... e as sessões sessions_spawn({ runtime: "acp" }).Para permitir que o Codex ou o Claude Code se conecte diretamente como cliente MCP externo
a conversas existentes dos canais do OpenClaw, use
openclaw mcp serve em vez do ACP.Qual página devo usar?
Isso funciona imediatamente?
Sim, após instalar o plugin oficial de runtime ACP:extensions/acpx após
pnpm install. Execute /acp doctor para verificar a prontidão.
O OpenClaw só instrui os agentes sobre a inicialização via ACP quando o ACP está
realmente disponível: o ACP deve estar habilitado, o despacho não pode estar
desabilitado, a sessão atual não pode estar bloqueada pelo sandbox e um backend de
runtime deve estar carregado e íntegro. Se qualquer condição falhar, as Skills do ACP
e as orientações de ACP para sessions_spawn permanecem ocultas, para que o agente
não sugira um backend indisponível.
Considerações da primeira execução
Considerações da primeira execução
- Se
plugins.allowestiver definido, ele será um inventário restritivo de plugins e deverá incluiracpx; caso contrário, o backend ACP instalado será bloqueado intencionalmente (/acp doctorinformará a ausência da entrada na lista de permissões). - O adaptador ACP do Codex é fornecido com o plugin
acpxe é iniciado localmente quando possível. - O Codex ACP é executado com um
CODEX_HOMEisolado. O OpenClaw copia as entradas confiáveis de confiança do projeto e a configuração segura de roteamento de modelo/provedor (model,model_provider,model_reasoning_effort,sandbox_modee os campos seguros demodel_providers.<name>) da configuração do Codex no host; autenticação, notificações e hooks permanecem apenas na configuração do host. - Outros adaptadores de ambientes de destino podem ser obtidos sob demanda com
npxno primeiro uso. - A autenticação do fornecedor já deve existir no host para esse ambiente.
- Se o host não tiver npm ou acesso à rede, a obtenção dos adaptadores na primeira execução falhará até que os caches sejam pré-aquecidos ou que o adaptador seja instalado de outra forma.
Pré-requisitos do runtime
Pré-requisitos do runtime
O ACP inicia um processo real de ambiente externo. O OpenClaw controla o roteamento,
o estado das tarefas em segundo plano, a entrega, os vínculos e as políticas; o ambiente
controla o login no provedor, o catálogo de modelos, o comportamento do sistema de
arquivos e as ferramentas nativas.Antes de atribuir o problema ao OpenClaw, verifique:
/acp doctorinforma um backend habilitado e íntegro.- O id de destino é permitido por
acp.allowedAgentsquando essa lista de permissões está definida. - O comando do ambiente pode ser iniciado no host do Gateway.
- A autenticação do provedor está presente para esse ambiente (
claude,codex,gemini,opencode,droidetc.). - O modelo selecionado existe para esse ambiente — os ids de modelo não são intercambiáveis entre ambientes.
- O
cwdsolicitado existe e está acessível; caso contrário, omitacwde permita que o backend use seu padrão. - O modo de permissão corresponde ao trabalho. Sessões não interativas não podem clicar em solicitações nativas de permissão; portanto, execuções de programação com uso intenso de gravação/execução geralmente precisam de um perfil de permissões ACPX capaz de prosseguir sem interface interativa.
Ambientes de destino compatíveis
Com o backendacpx, use estes ids como destinos de /acp spawn <id> ou
sessions_spawn({ runtime: "acp", agentId: "<id>" }):
pi (pi-acp) também é registrado no backend acpx, mas não é um ambiente de
programação no mesmo sentido que os demais acima.
Aliases personalizados de agentes acpx podem ser configurados no próprio acpx, mas a
política do OpenClaw ainda verifica acp.allowedAgents e qualquer mapeamento
agents.list[].runtime.acp.agent antes do despacho.
Guia operacional
Fluxo rápido de/acp pelo chat:
1
Iniciar
/acp spawn claude --bind here,
/acp spawn gemini --mode persistent --thread auto ou, explicitamente,
/acp spawn codex --bind here.2
Trabalhar
Continue na conversa ou thread vinculada (ou indique explicitamente a chave
da sessão).
3
Verificar o estado
/acp status4
Ajustar
/acp model <provider/model>, /acp permissions <profile>,
/acp timeout <seconds>.5
Direcionar
Sem substituir o contexto:
/acp steer tighten logging and continue.6
Interromper
/acp cancel (turno atual) ou /acp close (sessão + vínculos).Detalhes do ciclo de vida
Detalhes do ciclo de vida
- A inicialização cria ou retoma uma sessão de runtime ACP, registra metadados ACP no armazenamento de sessões do OpenClaw e pode criar uma tarefa em segundo plano quando a execução pertence à tarefa principal.
- As sessões ACP pertencentes à tarefa principal são tratadas como trabalho em segundo plano, mesmo quando a sessão de runtime é persistente; a conclusão e a entrega entre superfícies passam pelo notificador da tarefa principal, em vez de se comportarem como uma sessão normal de chat voltada ao usuário.
- A manutenção de tarefas encerra sessões ACP de execução única, terminais ou órfãs, pertencentes à tarefa principal. Sessões ACP persistentes são preservadas enquanto houver um vínculo ativo com uma conversa; sessões persistentes obsoletas sem vínculo ativo são encerradas para impedir que sejam retomadas silenciosamente após a conclusão da tarefa proprietária ou a remoção do registro dessa tarefa.
- Mensagens subsequentes vinculadas são enviadas diretamente à sessão ACP até que o vínculo seja encerrado, perca o foco, seja redefinido ou expire.
- Os comandos do Gateway permanecem locais.
/acp ...,/statuse/unfocusnunca são enviados como texto normal de prompt a um ambiente ACP vinculado. cancelinterrompe o turno ativo quando o backend é compatível com cancelamento; ele não exclui o vínculo nem os metadados da sessão.closeencerra a sessão ACP do ponto de vista do OpenClaw e remove o vínculo. Um ambiente ainda pode manter seu próprio histórico no serviço de origem se for compatível com retomada.- O plugin acpx limpa as árvores de processos de wrappers e adaptadores pertencentes ao OpenClaw após
closee remove processos ACPX órfãos e obsoletos pertencentes ao OpenClaw durante a inicialização do Gateway. - Workers de runtime ociosos podem ser limpos após
acp.runtime.ttlMinutes; os metadados de sessão armazenados continuam disponíveis para/acp sessions.
Regras de roteamento nativo do Codex
Regras de roteamento nativo do Codex
Gatilhos em linguagem natural que devem ser encaminhados ao plugin nativo do Codex
quando ele estiver habilitado:
- “Vincule este canal do Discord ao Codex.”
- “Anexe este chat à thread
<id>do Codex.” - “Mostre as threads do Codex e vincule esta.”
before_tool_call, observar after_tool_call e encaminhar eventos
PermissionRequest do Codex pelas aprovações do OpenClaw. Os hooks Stop do Codex
são retransmitidos para before_agent_finalize do OpenClaw, onde os plugins podem
solicitar mais uma passagem do modelo antes que o Codex finalize sua resposta.
O retransmissor permanece deliberadamente conservador: ele não modifica os argumentos
das ferramentas nativas do Codex nem reescreve os registros de threads do Codex.
Use ACP explícito somente quando quiser o modelo de runtime/sessão do ACP. O limite
de suporte do Codex incorporado está documentado no
contrato de suporte v1 do harness do Codex.Guia rápido de seleção de modelo / provedor / runtime
Guia rápido de seleção de modelo / provedor / runtime
- referências legadas de modelos do Codex - rota legada de modelo por OAuth/assinatura do Codex reparada pelo doctor.
openai/*- runtime incorporado do app-server nativo do Codex para turnos de agentes da OpenAI./codex ...- controle nativo de conversas do Codex./acp ...ouruntime: "acp"- controle explícito do ACP/acpx.
Gatilhos de linguagem natural para roteamento ao ACP
Gatilhos de linguagem natural para roteamento ao ACP
Gatilhos que devem ser roteados ao runtime do ACP:
- “Execute isto como uma sessão ACP pontual do Claude Code e resuma o resultado.”
- “Use o Gemini CLI para esta tarefa em uma thread e mantenha os acompanhamentos nessa mesma thread.”
- “Execute o Codex pelo ACP em uma thread em segundo plano.”
runtime: "acp", resolve o agentId do harness,
vincula à conversa ou thread atual quando houver suporte e encaminha os
acompanhamentos para essa sessão até o fechamento ou a expiração. O Codex
só segue esse caminho quando ACP/acpx é explícito ou quando o plugin nativo
do Codex não está disponível para a operação solicitada.Para sessions_spawn, runtime: "acp" só é anunciado quando o ACP está
habilitado, o solicitante não está em sandbox e um backend de runtime do ACP
está carregado. acp.dispatch.enabled=false pausa o despacho automático de
threads do ACP, mas não oculta nem bloqueia chamadas explícitas de
sessions_spawn({ runtime: "acp" }). Ele tem como alvo ids de harness do ACP,
como codex, claude, droid, gemini ou opencode. Não passe um id normal
de agente da configuração do OpenClaw proveniente de agents_list, a menos
que essa entrada esteja configurada explicitamente com
agents.list[].runtime.type="acp"; caso contrário, use o runtime padrão de
subagente. Quando um agente do OpenClaw está configurado com
runtime.type="acp", o OpenClaw usa runtime.acp.agent como o id de harness
subjacente.ACP versus subagentes
Use ACP quando quiser um runtime de harness externo. Use o app-server nativo do Codex para vincular/controlar conversas do Codex quando o plugincodex estiver habilitado. Use subagentes quando quiser execuções delegadas
nativas do OpenClaw.
Consulte também Subagentes.
Como o ACP executa o Claude Code
Para o Claude Code por meio do ACP, a pilha é:- Plano de controle de sessões ACP do OpenClaw.
- Plugin de runtime oficial
@openclaw/acpx. - Adaptador ACP do Claude.
- Mecanismo de runtime/sessão no lado do Claude.
- Quer
/acp spawn, sessões vinculáveis, controles de runtime ou trabalho persistente no harness? Use ACP. - Quer uma alternativa textual local simples por meio da CLI bruta? Use backends de CLI.
Sessões vinculadas
Modelo mental
- Superfície de chat — onde as pessoas continuam conversando (canal do Discord, tópico do Telegram, conversa do iMessage).
- Sessão ACP — o estado durável de runtime do Codex/Claude/Gemini para o qual o OpenClaw encaminha.
- Thread/tópico filho — uma superfície adicional opcional de mensagens criada somente por
--thread .... - Workspace do runtime — o local no sistema de arquivos (
cwd, checkout do repositório, workspace do backend) onde o harness é executado. Independente da superfície de chat.
Vinculações à conversa atual
/acp spawn <harness> --bind here fixa a conversa atual à sessão ACP
criada — sem thread filha, na mesma superfície de chat. O OpenClaw continua
controlando transporte, autenticação, segurança e entrega. As mensagens de
acompanhamento nessa conversa são encaminhadas à mesma sessão; /new e
/reset redefinem a sessão no local; /acp close remove a vinculação.
Exemplos:
Regras de vinculação e exclusividade
Regras de vinculação e exclusividade
--bind heree--thread ...são mutuamente exclusivos.--bind heresó funciona em canais que anunciam suporte à vinculação da conversa atual; caso contrário, o OpenClaw retorna uma mensagem clara informando que não há suporte. As vinculações persistem após reinicializações do Gateway.- No Discord,
spawnSessionscontrola a criação de threads filhas para--thread auto|here, não para--bind here. - Se você criar uma sessão para um agente ACP diferente sem
--cwd, o OpenClaw herdará, por padrão, o workspace do agente de destino. Caminhos herdados ausentes (ENOENT/ENOTDIR) usam como alternativa o padrão do backend; outros erros de acesso (por exemplo,EACCES) são apresentados como erros de criação. - Os comandos de gerenciamento do Gateway permanecem locais em conversas vinculadas — os comandos
/acp ...são processados pelo OpenClaw mesmo quando o texto normal de acompanhamento é encaminhado à sessão ACP vinculada;/statuse/unfocustambém permanecem locais sempre que o processamento de comandos estiver habilitado para essa superfície.
Sessões vinculadas a threads
Sessões vinculadas a threads
Quando as vinculações de threads estão habilitadas para um adaptador de canal:
- O OpenClaw vincula uma thread a uma sessão ACP de destino.
- As mensagens de acompanhamento nessa thread são encaminhadas à sessão ACP vinculada.
- A saída do ACP é entregue de volta à mesma thread.
- Remover o foco, fechar, arquivar ou expirar por inatividade ou idade máxima remove a vinculação.
/acp close,/acp cancel,/acp status,/statuse/unfocussão comandos do Gateway, não prompts para o harness do ACP.
acp.enabled=trueacp.dispatch.enabledfica ativado por padrão (defina comofalsepara pausar o despacho automático de threads do ACP; chamadas explícitas desessions_spawn({ runtime: "acp" })continuam funcionando).- Criação de sessões de thread pelo adaptador de canal habilitada (padrão:
true):- Discord:
channels.discord.threadBindings.spawnSessions=true - Telegram:
channels.telegram.threadBindings.spawnSessions=true
- Discord:
Canais compatíveis com threads
Canais compatíveis com threads
- Qualquer adaptador de canal que exponha a capacidade de vinculação de sessões/threads.
- Suporte incorporado atual: threads/canais do Discord, tópicos do Telegram (tópicos de fórum em grupos/supergrupos e tópicos de mensagens diretas).
- Canais de plugins podem adicionar suporte pela mesma interface de vinculação.
Vinculações persistentes de canais
Para fluxos de trabalho não efêmeros, configure vinculações ACP persistentes em entradasbindings[] de nível superior.
Modelo de vinculação
"acp"
Marca uma vinculação persistente de conversa ACP.
object
Identifica a conversa de destino. Formatos por canal:
- Canal/thread do Discord:
match.channel="discord"+match.peer.id="<channelOrThreadId>" - Canal/mensagem direta do Slack:
match.channel="slack"+match.peer.id="<channelId|channel:<channelId>|#<channelId>|userId|user:<userId>|slack:<userId>|<@userId>>". Prefira ids estáveis do Slack; as vinculações de canais também correspondem a respostas nas threads desse canal. - Tópico de fórum do Telegram:
match.channel="telegram"+match.peer.id="<chatId>:topic:<topicId>" - Mensagem direta/grupo do WhatsApp:
match.channel="whatsapp"+match.peer.id="<E.164|group JID>". Use números E.164, como+15555550123, para conversas diretas e JIDs de grupos do WhatsApp, como120363424282127706@g.us, para grupos. - Mensagem direta/grupo do iMessage:
match.channel="imessage"+match.peer.id="<handle|chat_id:*|chat_guid:*|chat_identifier:*>". Prefirachat_id:*para vinculações estáveis de grupos.
string
O id do agente proprietário no OpenClaw.
"persistent" | "oneshot"
Substituição opcional do ACP.
string
Rótulo opcional voltado ao operador.
string
Diretório de trabalho opcional do runtime.
string
Substituição opcional do backend.
Padrões de runtime por agente
Useagents.list[].runtime para definir os padrões do ACP uma vez por agente:
agents.list[].runtime.type="acp"agents.list[].runtime.acp.agent(id do harness, por exemplo,codexouclaude)agents.list[].runtime.acp.backendagents.list[].runtime.acp.modeagents.list[].runtime.acp.cwd
bindings[].acp.*agents.list[].runtime.acp.*- Padrões globais do ACP (por exemplo,
acp.backend)
Exemplo
Comportamento
- O OpenClaw garante que a sessão ACP configurada exista após a admissão específica do canal e antes do uso.
- As mensagens nesse canal, tópico ou chat são encaminhadas para a sessão ACP configurada.
- Os vínculos ACP configurados controlam a rota de suas sessões. A distribuição de transmissões do canal não substitui a sessão ACP configurada para um vínculo correspondente.
- Em conversas vinculadas,
/newe/resetredefinem no local a mesma chave de sessão ACP. - Vínculos temporários de execução (por exemplo, criados por fluxos de foco em tópicos encadeados) continuam sendo aplicados quando presentes.
- Para inicializações ACP entre agentes sem um
cwdexplícito, o OpenClaw herda o espaço de trabalho do agente de destino da configuração do agente. - Caminhos de espaços de trabalho herdados que não existem usam como alternativa o diretório de trabalho padrão da infraestrutura; falhas de acesso a caminhos existentes são apresentadas como erros de inicialização.
Iniciar sessões ACP
Há duas maneiras de iniciar uma sessão ACP:- A partir de sessions_spawn
- A partir do comando /acp
Use
runtime: "acp" para iniciar uma sessão ACP a partir de um turno do agente ou de uma
chamada de ferramenta.O padrão de
runtime é subagent; portanto, defina runtime: "acp" explicitamente para
sessões ACP. Se agentId for omitido, o OpenClaw usará acp.defaultAgent
quando estiver configurado. mode: "session" exige thread: true para manter uma
conversa vinculada persistente.Parâmetros de sessions_spawn
string
obrigatório
Prompt inicial enviado à sessão ACP.
"acp"
obrigatório
Deve ser
"acp" para sessões ACP.string
Identificador da estrutura de execução ACP de destino. Usa
acp.defaultAgent como alternativa, se estiver definido.boolean
padrão:"false"
Solicita o fluxo de vinculação a tópico encadeado quando houver suporte.
"run" | "session"
padrão:"run"
"run" é uma execução única; "session" é persistente. Se thread: true e
mode for omitido, o OpenClaw poderá adotar por padrão o comportamento persistente de acordo com
o caminho de execução. mode: "session" exige thread: true.string
Diretório de trabalho solicitado para a execução (validado pela política da infraestrutura ou da execução).
Se omitido, a inicialização ACP herda o espaço de trabalho do agente de destino quando configurado;
caminhos herdados que não existem usam os padrões da infraestrutura como alternativa, enquanto erros
reais de acesso são retornados.
string
Rótulo voltado ao operador usado no texto da sessão ou do banner.
string
Retoma uma sessão ACP existente em vez de criar uma nova. O agente
reproduz o histórico da conversa por meio de
session/load. Exige
runtime: "acp"."parent"
"parent" transmite resumos do progresso da execução ACP inicial de volta à sessão
solicitante como eventos do sistema. As respostas aceitas incluem streamLogPath,
que aponta para um registro JSONL específico da sessão (<sessionId>.acp-stream.jsonl), cujo
conteúdo você pode acompanhar para obter todo o histórico de retransmissão. Por padrão, os fluxos de progresso
da sessão principal mostram comentários do assistente e o progresso do estado ACP, a menos que
streaming.progress.commentary=false. O Discord também usa por padrão o modo de progresso
nas prévias da sessão principal quando nenhum modo de transmissão está configurado. O progresso do
estado ainda respeita acp.stream.tagVisibility; portanto, etiquetas como plan
permanecem ocultas, a menos que sejam ativadas explicitamente.sessions_spawn ACP usam agents.defaults.subagents.runTimeoutSeconds
como limite padrão para o turno da sessão secundária. A ferramenta não aceita substituições de tempo-limite
por chamada (runTimeoutSeconds/timeoutSeconds são rejeitados com um erro que
solicita a configuração do valor padrão).
string
Substituição explícita do modelo para a sessão ACP secundária. Inicializações ACP do Codex
normalizam referências da OpenAI, como
openai/gpt-5.4, para a configuração de inicialização ACP do Codex
antes de session/new; formatos com barras, como openai/gpt-5.4/high, também definem
o nível de raciocínio ACP do Codex. Quando omitido, sessions_spawn({ runtime: "acp" })
usa os padrões existentes do modelo de subagente (agents.defaults.subagents.model ou
agents.list[].subagents.model) quando configurados; caso contrário, permite que a estrutura
de execução ACP use seu próprio modelo padrão. Outras estruturas de execução devem anunciar
models ACP e oferecer suporte a session/set_model; caso contrário, o OpenClaw/acpx falha
de forma clara em vez de usar silenciosamente o padrão do agente de destino.string
Nível explícito de pensamento ou raciocínio. Para ACP do Codex,
minimal corresponde ao nível baixo,
low/medium/high/xhigh são aplicados diretamente, e off omite a
substituição do nível de raciocínio na inicialização. Quando omitido, as inicializações ACP usam os
padrões existentes de pensamento dos subagentes e
agents.defaults.models["provider/model"].params.thinking por modelo para o
modelo selecionado.Modos de vinculação e tópico encadeado na inicialização
- --bind here|off
- --thread auto|here|off
Observações:
--bind hereé o caminho mais simples para o operador indicar que “este canal ou chat deve usar o Codex”.--bind herenão cria um tópico encadeado secundário.--bind hereestá disponível somente em canais que oferecem suporte à vinculação da conversa atual.--binde--threadnão podem ser combinados na mesma chamada de/acp spawn.
Modelo de entrega
As sessões ACP podem ser espaços de trabalho interativos ou trabalhos em segundo plano controlados pela sessão principal. O caminho de entrega depende desse formato.Sessões ACP interativas
Sessões ACP interativas
As sessões interativas destinam-se a manter a conversa em uma superfície de chat visível:
/acp spawn ... --bind herevincula a conversa atual à sessão ACP./acp spawn ... --thread ...vincula um tópico encadeado ou tópico do canal à sessão ACP.- Vínculos persistentes configurados com
bindings[].type="acp"encaminham as conversas correspondentes para a mesma sessão ACP.
- Mensagens subsequentes vinculadas normais são enviadas como texto do prompt, além de anexos somente quando a estrutura de execução ou a infraestrutura oferece suporte a eles.
- Os comandos de gerenciamento
/acpe os comandos locais do Gateway são interceptados antes do envio ao ACP. - Eventos de conclusão gerados durante a execução são materializados para cada destino. Agentes do OpenClaw recebem o envelope interno de contexto de execução do OpenClaw; estruturas de execução ACP externas recebem um prompt simples com o resultado da sessão secundária e a instrução. O envelope bruto
<<<BEGIN_OPENCLAW_INTERNAL_CONTEXT>>>nunca deve ser enviado a estruturas externas nem persistido como texto de transcrição do usuário no ACP. - As entradas da transcrição ACP usam o texto de acionamento visível ao usuário ou o prompt simples de conclusão. Os metadados internos do evento permanecem estruturados no OpenClaw sempre que possível e não são tratados como conteúdo de chat escrito pelo usuário.
Sessões ACP de execução única controladas pela sessão principal
Sessões ACP de execução única controladas pela sessão principal
Sessões ACP de execução única iniciadas por outra execução de agente são sessões
secundárias em segundo plano, semelhantes a subagentes:
- A sessão principal solicita o trabalho com
sessions_spawn({ runtime: "acp", mode: "run" }). - A sessão secundária é executada em sua própria sessão da estrutura de execução ACP.
- Os turnos da sessão secundária são executados na mesma faixa de segundo plano usada pelas inicializações nativas de subagentes; portanto, uma estrutura de execução ACP lenta não bloqueia trabalhos não relacionados da sessão principal.
- A conclusão é informada pelo caminho de anúncio de conclusão da tarefa. O OpenClaw converte os metadados internos de conclusão em um prompt ACP simples antes de enviá-los a uma estrutura externa; assim, essas estruturas não veem marcadores de contexto de execução exclusivos do OpenClaw.
- A sessão principal reformula o resultado da sessão secundária na voz normal do assistente quando uma resposta voltada ao usuário é útil.
Entrega com sessions_send e A2A
Entrega com sessions_send e A2A
sessions_send pode direcionar outra sessão após a inicialização. Para sessões pares
normais, o OpenClaw usa um caminho subsequente de agente para agente (A2A) após
injetar a mensagem:- Aguarda a resposta da sessão de destino.
- Opcionalmente, permite que o solicitante e o destino troquem uma quantidade limitada de turnos subsequentes.
- Solicita que o destino produza uma mensagem de anúncio.
- Entrega esse anúncio ao canal ou tópico encadeado visível.
tools.sessions.visibility.O OpenClaw ignora o acompanhamento A2A somente quando o solicitante é o pai de
seu próprio filho ACP de execução única pertencente ao pai. Nesse caso, executar A2A além
da conclusão da tarefa pode despertar o pai com o resultado do filho, encaminhar
a resposta do pai de volta ao filho e criar um ciclo de eco
pai/filho. O resultado de sessions_send informa delivery.status="skipped" nesse
caso de filho pertencente ao pai, pois o caminho de conclusão já é responsável
pelo resultado.Retomar uma sessão existente
Retomar uma sessão existente
Use Casos de uso comuns:
resumeSessionId para continuar uma sessão ACP anterior em vez de
começar do zero. O agente reproduz o histórico da conversa por meio de
session/load, retomando com o contexto completo do que ocorreu antes.- Transfira uma sessão do Codex do seu laptop para o telefone — peça ao agente que retome de onde você parou.
- Continue uma sessão de programação iniciada interativamente na CLI, agora sem interface por meio do seu agente.
- Retome um trabalho interrompido por uma reinicialização do Gateway ou pelo tempo limite de inatividade.
resumeSessionIdsó se aplica quandoruntime: "acp"; o runtime padrão de subagente ignora esse campo exclusivo do ACP.streamTosó se aplica quandoruntime: "acp"; o runtime padrão de subagente ignora esse campo exclusivo do ACP.resumeSessionIdé um id de retomada do ACP/harness local ao host, não uma chave de sessão de canal do OpenClaw; o OpenClaw ainda verifica a política de criação do ACP e a política do agente de destino antes do despacho, enquanto o backend ou harness ACP controla a autorização para carregar esse id de origem.resumeSessionIdrestaura o histórico da conversa ACP de origem;threademodeainda se aplicam normalmente à nova sessão do OpenClaw que você está criando, portantomode: "session"ainda exigethread: true.- O agente de destino deve oferecer suporte a
session/load(Codex e Claude Code oferecem). - Se o id da sessão não for encontrado, a criação falhará com um erro claro — sem fallback silencioso para uma nova sessão.
Teste de fumaça pós-implantação
Teste de fumaça pós-implantação
Após uma implantação do Gateway, execute uma verificação completa e ativa de ponta a ponta em vez de confiar
em testes unitários:
- Verifique a versão e o commit do Gateway implantado no host de destino.
- Abra uma sessão temporária de ponte ACPX para um agente ativo.
- Peça a esse agente que chame
sessions_spawncomruntime: "acp",agentId: "codex",mode: "run"e a tarefaReply with exactly LIVE-ACP-SPAWN-OK. - Verifique
accepted=yes, umachildSessionKeyreal e a ausência de erros do validador. - Encerre a sessão temporária de ponte.
mode: "run" e ignore streamTo: "parent" —
o mode: "session" vinculado a uma thread e os caminhos de retransmissão de fluxo são verificações de integração
distintas e mais abrangentes.Compatibilidade com sandbox
Atualmente, as sessões ACP são executadas no runtime do host, não dentro da sandbox do OpenClaw. Limitações atuais:- Se a sessão solicitante estiver em uma sandbox, as criações ACP serão bloqueadas tanto para
sessions_spawn({ runtime: "acp" })quanto para/acp spawn. sessions_spawncomruntime: "acp"não oferece suporte asandbox: "require".
Resolução do destino da sessão
A maioria das ações/acp aceita um destino de sessão opcional (session-key,
session-id ou session-label).
Ordem de resolução:
- Argumento de destino explícito (ou
--sessionpara/acp steer)- tenta a chave
- depois o id de sessão no formato UUID
- depois o rótulo
- Vinculação atual da thread (se esta conversa/thread estiver vinculada a uma sessão ACP).
- Fallback para a sessão solicitante atual.
Unable to resolve session target: ...).
Controles do ACP
Os controles de runtime (
spawn, cancel, steer, close, status, set-mode,
set, cwd, permissions, timeout, model e reset-options) exigem
a identidade do proprietário em canais externos e operator.admin em clientes internos do
Gateway. Remetentes autorizados que não sejam proprietários ainda podem usar sessions,
doctor, install e help.
/acp status exibe as opções efetivas do runtime, além dos identificadores de sessão
no nível do runtime e do backend. Erros de controles não compatíveis são exibidos
claramente quando um backend não possui um recurso. /acp sessions lê o armazenamento
da sessão atualmente vinculada ou solicitante; os tokens de destino (session-key,
session-id ou session-label) são resolvidos por meio da descoberta de sessões do Gateway,
incluindo raízes personalizadas de session.store por agente.
Mapeamento das opções de runtime
/acp possui comandos de conveniência e um definidor genérico. Operações equivalentes:
Harness acpx, configuração do Plugin e permissões
Para configurar o harness acpx (aliases do Claude Code / Codex / Gemini CLI), as pontes MCP das ferramentas de Plugin e do OpenClaw e os modos de permissão do ACP, consulte Agentes ACP — configuração.Solução de problemas
Command blocked by PreToolUse hook: Native hook relay unavailable pertence ao
retransmissor de hooks nativo do Codex, não ao ACP/acpx. Em um chat Codex vinculado, inicie uma
nova sessão com /new ou /reset; se funcionar uma vez e depois retornar na
próxima chamada de ferramenta nativa, reinicie o app-server do Codex ou o Gateway do OpenClaw
em vez de repetir /new. Consulte
Solução de problemas do harness Codex.