Pular para o conteúdo principal
Esta página documenta o contrato de runtime para turnos do harness Codex. Para configuração e roteamento, comece com harness Codex. Para campos de configuração, consulte referência do harness Codex.

Visão geral

O modo Codex não é o OpenClaw com uma chamada de modelo diferente por baixo. O Codex é responsável por mais partes do loop nativo do modelo, e o OpenClaw adapta suas superfícies de Plugin, ferramenta, sessão e diagnóstico em torno desse limite. O OpenClaw ainda é responsável pelo roteamento de canais, arquivos de sessão, entrega de mensagens visíveis, ferramentas dinâmicas do OpenClaw, aprovações, entrega de mídia e um espelho de transcrição. O Codex é responsável pela thread nativa canônica, pelo loop nativo do modelo, pela continuação de ferramentas nativas e pela Compaction nativa. O roteamento de prompts segue o runtime selecionado, não apenas a string do provedor. Um turno nativo do Codex recebe instruções de desenvolvedor do app-server do Codex, enquanto uma rota explícita de compatibilidade do OpenClaw mantém o prompt de sistema normal do OpenClaw mesmo quando usa autenticação ou transporte OpenAI no estilo Codex. O Codex nativo mantém instruções base/de modelo e comportamento de documentos do projeto de propriedade do Codex conforme a configuração ativa da thread do Codex. O OpenClaw inicia e retoma threads nativas do Codex com a personalidade integrada do Codex desabilitada para que os arquivos de personalidade do workspace e a identidade do agente OpenClaw permaneçam autoritativos. Execuções leves do OpenClaw ainda preservam a supressão existente de documentos do projeto. Instruções de desenvolvedor do OpenClaw cobrem preocupações de runtime do OpenClaw, como entrega de canal de origem, ferramentas dinâmicas do OpenClaw, delegação ACP, contexto do adaptador e os arquivos de perfil do workspace do agente ativo. Catálogos de Skills do OpenClaw e ponteiros MEMORY.md roteados por ferramenta são projetados como instruções de desenvolvedor de colaboração com escopo de turno para o Codex nativo. Conteúdo ativo de BOOTSTRAP.md e injeção de fallback completa de MEMORY.md ainda usam contexto de referência de entrada do turno.

Vínculos de thread e alterações de modelo

Quando uma sessão do OpenClaw é anexada a uma thread existente do Codex, o próximo turno envia novamente ao app-server o modelo OpenAI selecionado no momento, a política de aprovação, a sandbox e a camada de serviço. Alternar de openai/gpt-5.5 para openai/gpt-5.2 mantém o vínculo da thread, mas solicita que o Codex continue com o modelo recém-selecionado.

Respostas visíveis e heartbeats

Quando um turno de chat direto/de origem é executado pelo harness Codex, as respostas visíveis usam por padrão a entrega automática final do assistente para superfícies internas do WebChat. Isso mantém o Codex alinhado ao contrato de prompt do harness Pi: agentes respondem normalmente, e o OpenClaw publica o texto final na conversa de origem. Defina messages.visibleReplies: "message_tool" quando um chat direto/de origem deve intencionalmente manter o texto final do assistente privado, a menos que o agente chame message(action="send"). Turnos de Heartbeat do Codex também recebem heartbeat_respond no catálogo pesquisável de ferramentas do OpenClaw por padrão, para que o agente possa registrar se o despertar deve permanecer silencioso ou notificar sem codificar esse fluxo de controle no texto final. A orientação de iniciativa específica de Heartbeat é enviada como uma instrução de desenvolvedor em modo de colaboração do Codex no próprio turno de Heartbeat. Turnos comuns de chat restauram o modo Padrão do Codex em vez de carregar a filosofia de Heartbeat no prompt normal do runtime. Quando existe um HEARTBEAT.md não vazio, as instruções em modo de colaboração de Heartbeat apontam o Codex para o arquivo em vez de incorporar seu conteúdo.

Limites de hooks

O harness Codex tem três camadas de hooks:
CamadaResponsávelFinalidade
Hooks de Plugin do OpenClawOpenClawCompatibilidade de produto/Plugin entre harnesses OpenClaw e Codex.
Middleware de extensão do app-server do CodexPlugins empacotados do OpenClawComportamento do adaptador por turno em torno das ferramentas dinâmicas do OpenClaw.
Hooks nativos do CodexCodexCiclo de vida de baixo nível do Codex e política de ferramentas nativas da configuração do Codex.
O OpenClaw não usa arquivos hooks.json de projeto ou globais do Codex para rotear comportamento de Plugin do OpenClaw. Para a ponte compatível de ferramenta nativa e permissão, o OpenClaw injeta configuração do Codex por thread para PreToolUse, PostToolUse, PermissionRequest e Stop. Quando as aprovações do app-server do Codex estão habilitadas, ou seja, approvalPolicy não é "never", a configuração padrão injetada de hooks nativos omite PermissionRequest para que o revisor do app-server do Codex e a ponte de aprovação do OpenClaw lidem com escalonamentos reais após a revisão. Operadores podem adicionar explicitamente permission_request a nativeHookRelay.events quando precisam do relay de compatibilidade. Outros hooks do Codex, como SessionStart e UserPromptSubmit, permanecem controles no nível do Codex. Eles não são expostos como hooks de Plugin do OpenClaw no contrato v1. Para ferramentas dinâmicas do OpenClaw, o OpenClaw executa a ferramenta depois que o Codex solicita a chamada, então o OpenClaw dispara o comportamento de Plugin e middleware que ele possui no adaptador do harness. Para ferramentas nativas do Codex, o Codex é responsável pelo registro canônico da ferramenta. O OpenClaw pode espelhar eventos selecionados, mas não pode reescrever a thread nativa do Codex a menos que o Codex exponha essa operação por meio do app-server ou callbacks de hooks nativos. Eventos PreToolUse em modo de relatório do app-server do Codex adiam solicitações de aprovação de Plugin para a aprovação correspondente do app-server. Se um hook before_tool_call do OpenClaw retornar requireApproval enquanto o payload nativo define o modo de aprovação de relatório (openclaw_approval_mode é "report"), o relay de hooks nativos registra o requisito de aprovação de Plugin e não retorna nenhuma decisão nativa. Quando o Codex envia a solicitação de aprovação do app-server para o mesmo uso de ferramenta, o OpenClaw abre o prompt de aprovação do Plugin e mapeia a decisão de volta para o Codex. Eventos PermissionRequest do Codex são um caminho de aprovação separado e ainda podem ser roteados por aprovações do OpenClaw quando o runtime está configurado para essa ponte. Notificações de itens do app-server do Codex também fornecem observações assíncronas after_tool_call para conclusões de ferramentas nativas que ainda não são cobertas pelo relay nativo PostToolUse. Essas observações são apenas para telemetria e compatibilidade de Plugin; elas não podem bloquear, atrasar nem modificar a chamada de ferramenta nativa. Projeções de Compaction e ciclo de vida de LLM vêm de notificações do app-server do Codex e do estado do adaptador do OpenClaw, não de comandos nativos de hooks do Codex. Os eventos before_compaction, after_compaction, llm_input e llm_output do OpenClaw são observações no nível do adaptador, não capturas byte a byte da solicitação interna ou dos payloads de Compaction do Codex. Notificações hook/started e hook/completed nativas do Codex no app-server são projetadas como eventos de agente codex_app_server.hook para trajetória e depuração. Elas não invocam hooks de Plugin do OpenClaw.

Contrato de suporte v1

Compatível no runtime Codex v1:
SuperfícieSuportePor quê
Loop de modelo OpenAI por meio do CodexCompatívelO app-server do Codex controla o turno OpenAI, a retomada nativa da thread e a continuação nativa de ferramentas.
Roteamento e entrega de canais do OpenClawCompatívelTelegram, Discord, Slack, WhatsApp, iMessage e outros canais permanecem fora do runtime do modelo.
Ferramentas dinâmicas do OpenClawCompatívelO Codex pede ao OpenClaw para executar essas ferramentas, então o OpenClaw permanece no caminho de execução.
Plugins de prompt e contextoCompatívelO OpenClaw projeta prompt/contexto específicos do OpenClaw no turno do Codex, enquanto deixa prompts base, de modelo e de documentação de projeto configurada pertencentes ao Codex na trilha nativa do Codex. O OpenClaw desativa a personalidade integrada do Codex para threads nativas, para que os arquivos de personalidade do workspace do agente permaneçam autoritativos. As instruções nativas de desenvolvedor do Codex aceitam apenas orientação de comandos explicitamente escopada para codex_app_server; dicas globais legadas de comando permanecem para superfícies de prompt que não são Codex.
Ciclo de vida do mecanismo de contextoCompatívelMontagem, ingestão e manutenção pós-turno são executadas ao redor dos turnos do Codex. Mecanismos de contexto não substituem a Compaction nativa do Codex.
Hooks de ferramentas dinâmicasCompatívelbefore_tool_call, after_tool_call e middleware de resultado de ferramenta são executados ao redor das ferramentas dinâmicas pertencentes ao OpenClaw.
Hooks de ciclo de vidaCompatível como observações do adaptadorllm_input, llm_output, agent_end, before_compaction e after_compaction disparam com payloads honestos do modo Codex.
Gate de revisão da resposta finalCompatível por retransmissão de hook nativoStop do Codex é retransmitido para before_agent_finalize; revise pede ao Codex mais uma passagem de modelo antes da finalização.
Shell, patch e bloqueio ou observação de MCP nativosCompatível por retransmissão de hook nativoPreToolUse e PostToolUse do Codex são retransmitidos para superfícies nativas de ferramenta confirmadas, incluindo payloads MCP no app-server do Codex 0.125.0 ou mais novo. Bloqueio é compatível; reescrita de argumentos não é.
Política de permissões nativaCompatível por aprovações do app-server do Codex e retransmissão compatível de hook nativoSolicitações de aprovação do app-server do Codex são roteadas pelo OpenClaw após a revisão do Codex. A retransmissão do hook nativo PermissionRequest é opcional para modos de aprovação nativa porque o Codex a emite antes da revisão do guardião.
Captura de trajetória do app-serverCompatívelO OpenClaw registra a solicitação enviada ao app-server e as notificações do app-server que recebe.
Não compatível no runtime Codex v1:
SuperfícieLimite da V1Caminho futuro
Mutação de argumentos de ferramentas nativasHooks nativos pré-ferramenta do Codex podem bloquear, mas o OpenClaw não reescreve argumentos de ferramentas nativas do Codex.Requer suporte de hook/esquema do Codex para entrada de ferramenta substituta.
Histórico editável de transcrição nativa do CodexO Codex controla o histórico canônico da thread nativa. O OpenClaw controla um espelho e pode projetar contexto futuro, mas não deve modificar componentes internos sem suporte.Adicionar APIs explícitas do app-server do Codex se cirurgia em thread nativa for necessária.
tool_result_persist para registros de ferramentas nativas do CodexEsse hook transforma gravações de transcrição pertencentes ao OpenClaw, não registros de ferramentas nativas do Codex.Poderia espelhar registros transformados, mas a reescrita canônica precisa de suporte do Codex.
Metadados ricos de Compaction nativaO OpenClaw pode solicitar Compaction nativa, mas não recebe uma lista estável de itens mantidos/descartados, delta de tokens, resumo de conclusão ou payload de resumo.Precisa de eventos de Compaction do Codex mais ricos.
Intervenção na CompactionO OpenClaw não permite que plugins ou mecanismos de contexto vetem, reescrevam ou substituam a Compaction nativa do Codex.Adicionar hooks pré/pós-Compaction do Codex se plugins precisarem vetar ou reescrever Compaction nativa.
Captura byte a byte da solicitação à API do modeloO OpenClaw pode capturar solicitações e notificações do app-server, mas o núcleo do Codex constrói internamente a solicitação final à API OpenAI.Precisa de um evento de rastreamento de solicitação de modelo do Codex ou uma API de depuração.

Permissões nativas e solicitações MCP

Para PermissionRequest, o OpenClaw retorna apenas decisões explícitas de permitir ou negar quando a política decide. Um resultado sem decisão não é uma permissão. O Codex o trata como ausência de decisão de hook e segue para seu próprio caminho de aprovação do guardião ou do usuário. Os modos de aprovação do app-server do Codex omitem esse hook nativo por padrão. Esse comportamento se aplica quando permission_request está explicitamente incluído em nativeHookRelay.events ou quando um runtime de compatibilidade o instala. Quando um operador escolhe allow-always para uma solicitação de permissão nativa do Codex, o OpenClaw lembra a impressão digital exata de provedor/sessão/entrada de ferramenta/cwd por uma janela de sessão limitada. A decisão lembrada é intencionalmente apenas de correspondência exata: um comando, argumentos, payload de ferramenta ou cwd alterado cria uma nova aprovação. Solicitações de aprovação de ferramenta MCP do Codex são roteadas pelo fluxo de aprovação de Plugin do OpenClaw quando o Codex marca _meta.codex_approval_kind como "mcp_tool_call". Prompts request_user_input do Codex são enviados de volta ao chat de origem, e a próxima mensagem de acompanhamento enfileirada responde a essa solicitação do servidor nativo em vez de ser direcionada como contexto extra. Outras solicitações MCP de elicitação falham de forma fechada. Para o fluxo geral de aprovação de Plugin que transporta esses prompts, consulte Solicitações de permissão de Plugin.

Direcionamento de fila

O direcionamento de fila de execução ativa é mapeado para turn/steer do app-server do Codex. Com o padrão messages.queue.mode: "steer", o OpenClaw agrupa mensagens de chat em modo steer durante a janela silenciosa configurada e as envia como uma única solicitação turn/steer na ordem de chegada. As revisões do Codex e os turnos manuais de Compaction podem rejeitar o direcionamento no mesmo turno. Nesse caso, o OpenClaw aguarda a execução ativa terminar antes de iniciar o prompt. Use /queue followup ou /queue collect quando as mensagens devem entrar na fila por padrão em vez de direcionar. Consulte Fila de direcionamento.

Upload de feedback do Codex

Quando /diagnostics [note] é aprovado para uma sessão que usa o harness nativo do Codex, o OpenClaw também chama feedback/upload do app-server do Codex para threads relevantes do Codex. O upload solicita que o app-server inclua logs para cada thread listada e subthreads do Codex geradas quando disponíveis. O upload passa pelo caminho normal de feedback do Codex para os servidores da OpenAI. Se o feedback do Codex estiver desativado nesse app-server, o comando retorna o erro do app-server. A resposta de diagnósticos concluída lista os canais, ids de sessão do OpenClaw, ids de thread do Codex e comandos locais codex resume <thread-id> para as threads que foram enviadas. Se você negar ou ignorar a aprovação, o OpenClaw não imprime esses ids do Codex e não envia feedback do Codex. O upload não substitui a exportação local de diagnósticos do Gateway. Consulte Exportação de diagnósticos para o comportamento de aprovação, privacidade, pacote local e chat em grupo. Use /codex diagnostics [note] somente quando você quiser especificamente o upload de feedback do Codex para a thread atualmente anexada sem o pacote completo de diagnósticos do Gateway.

Compaction e espelho de transcrição

Quando o modelo selecionado usa o harness do Codex, a Compaction de thread nativa pertence ao app-server do Codex. O OpenClaw não executa Compaction de preflight para turnos do Codex, não substitui a Compaction do Codex pela Compaction do mecanismo de contexto e não recorre à sumarização do OpenClaw ou pública da OpenAI quando a Compaction nativa do Codex não pode ser iniciada. O OpenClaw mantém um espelho de transcrição para histórico do canal, busca, /new, /reset e troca futura de modelo ou harness. Solicitações explícitas de Compaction, como /compact ou uma operação manual de compactação solicitada por Plugin, iniciam a Compaction nativa do Codex com thread/compact/start. O OpenClaw mantém a solicitação e o lease do cliente compartilhado abertos até que o Codex emita o item de conclusão contextCompaction correspondente e então relata o turno de Compaction como concluído. Se esse turno terminal exceder o tempo limite configurado de Compaction, o OpenClaw solicita uma interrupção de turno nativa. O lease e a barreira de Compaction por thread permanecem retidos até que o Codex relate o estado terminal ou confirme o RPC de interrupção. Se o Codex não confirmar dentro do período de carência da interrupção, o OpenClaw aposenta a conexão antes de liberar a barreira. Conexões remotas também destacam o vínculo da thread correspondente para que trabalho posterior não possa se sobrepor a um turno remoto não confirmado. Outros turnos em uma conexão aposentada falham e podem tentar novamente em um cliente novo. Fechamento do cliente, cancelamento da solicitação ou falha em um turno de Compaction retorna uma operação com falha. Quando um mecanismo de contexto solicita projeção de bootstrap de thread do Codex, o OpenClaw projeta nomes e ids de chamadas de ferramenta, formatos de entrada e conteúdo editado de resultados de ferramenta na nova thread do Codex. Ele não copia valores brutos de argumentos de chamada de ferramenta para essa projeção. O espelho inclui o prompt do usuário, o texto final do assistente e registros leves de raciocínio ou plano do Codex quando o app-server os emite. O OpenClaw registra o início da Compaction nativa e o status terminal, mas não expõe um resumo de Compaction legível por humanos nem uma lista auditável de quais entradas o Codex manteve após a Compaction. Como o Codex é dono da thread nativa canônica, tool_result_persist atualmente não reescreve registros de resultado de ferramenta nativos do Codex. Ele se aplica apenas quando o OpenClaw está escrevendo um resultado de ferramenta de transcrição de sessão de propriedade do OpenClaw.

Mídia e entrega

O OpenClaw continua sendo dono da entrega de mídia e da seleção de provedor de mídia. Imagem, vídeo, música, PDF, TTS e compreensão de mídia usam configurações de provedor/modelo correspondentes, como agents.defaults.imageGenerationModel, videoGenerationModel, pdfModel e messages.tts. Texto, imagens, vídeo, música, TTS, aprovações e saída da ferramenta de mensagens continuam pelo caminho normal de entrega do OpenClaw. A geração de mídia não exige o runtime legado. Quando o Codex emite um item nativo de geração de imagem com um savedPath, o OpenClaw encaminha esse arquivo exato pelo caminho normal de mídia de resposta, mesmo que o turno do Codex não tenha texto de assistente.

Relacionados