Harness do Codex
O plugincodex empacotado permite que o OpenClaw execute turnos de agente incorporado por meio do
app-server do Codex em vez do harness PI integrado.
Use isso quando você quiser que o Codex seja responsável pela sessão de agente de baixo nível: descoberta
de modelos, retomada nativa de thread, compactação nativa e execução no app-server.
O OpenClaw continua sendo responsável pelos canais de chat, arquivos de sessão, seleção de modelos, ferramentas,
aprovações, entrega de mídia e pelo espelho visível da transcrição.
O harness vem desativado por padrão. Ele é selecionado apenas quando o plugin codex
está ativado e o modelo resolvido é um modelo codex/*, ou quando você força explicitamente
embeddedHarness.runtime: "codex" ou OPENCLAW_AGENT_RUNTIME=codex.
Se você nunca configurar codex/*, as execuções existentes de PI, OpenAI, Anthropic, Gemini, local
e de provedor personalizado manterão o comportamento atual.
Escolha o prefixo de modelo certo
O OpenClaw tem rotas separadas para acesso no formato OpenAI e no formato Codex:| Ref do modelo | Caminho de runtime | Use quando |
|---|---|---|
openai/gpt-5.4 | Provedor OpenAI via plumbing OpenClaw/PI | Você quer acesso direto à API da plataforma OpenAI com OPENAI_API_KEY. |
openai-codex/gpt-5.4 | Provedor OpenAI Codex OAuth via PI | Você quer OAuth do ChatGPT/Codex sem o harness app-server do Codex. |
codex/gpt-5.4 | Provedor Codex empacotado mais harness Codex | Você quer execução nativa no app-server do Codex para o turno de agente incorporado. |
codex/*. Refs existentes de openai/*,
openai-codex/*, Anthropic, Gemini, xAI, local e provedor personalizado mantêm
seus caminhos normais.
Requisitos
- OpenClaw com o plugin
codexempacotado disponível. - Codex app-server
0.118.0ou mais recente. - Autenticação do Codex disponível para o processo do app-server.
OPENAI_API_KEY, além de
arquivos opcionais da CLI do Codex, como ~/.codex/auth.json e
~/.codex/config.toml. Use o mesmo material de autenticação que seu app-server local do Codex
usa.
Configuração mínima
Usecodex/gpt-5.4, ative o plugin empacotado e force o harness codex:
plugins.allow, inclua codex lá também:
agents.defaults.model ou o modelo de um agente como codex/<model> também
ativa automaticamente o plugin codex empacotado. A entrada explícita do plugin ainda
é útil em configurações compartilhadas porque deixa clara a intenção da implantação.
Adicione Codex sem substituir outros modelos
Mantenharuntime: "auto" quando você quiser Codex para modelos codex/* e PI para
todo o resto:
/model codexou/model codex/gpt-5.4usa o harness app-server do Codex./model gptou/model openai/gpt-5.4usa o caminho do provedor OpenAI./model opususa o caminho do provedor Anthropic.- Se um modelo não Codex for selecionado, o PI continua sendo o harness de compatibilidade.
Implantações somente com Codex
Desative o fallback de PI quando precisar comprovar que todo turno de agente incorporado usa o harness do Codex:codex/*, se o app-server for antigo demais ou se o
app-server não puder iniciar.
Codex por agente
Você pode fazer um agente usar somente Codex enquanto o agente padrão mantém a seleção automática normal:/new cria uma nova
sessão do OpenClaw, e o harness do Codex cria ou retoma sua thread sidecar do app-server
conforme necessário. /reset limpa o vínculo da sessão do OpenClaw para essa thread.
Descoberta de modelos
Por padrão, o plugin Codex consulta o app-server pelos modelos disponíveis. Se a descoberta falhar ou expirar, ele usa o catálogo de fallback empacotado:codex/gpt-5.4codex/gpt-5.4-minicodex/gpt-5.2
plugins.entries.codex.config.discovery:
Conexão e política do app-server
Por padrão, o plugin inicia o Codex localmente com:appServer compatíveis:
| Campo | Padrão | Significado |
|---|---|---|
transport | "stdio" | "stdio" inicia o Codex; "websocket" se conecta a url. |
command | "codex" | Executável para transporte stdio. |
args | ["app-server", "--listen", "stdio://"] | Argumentos para transporte stdio. |
url | não definido | URL WebSocket do app-server. |
authToken | não definido | Token Bearer para transporte WebSocket. |
headers | {} | Cabeçalhos WebSocket extras. |
requestTimeoutMs | 60000 | Timeout para chamadas do plano de controle do app-server. |
approvalPolicy | "never" | Política nativa de aprovação do Codex enviada para iniciar/retomar/executar thread. |
sandbox | "workspace-write" | Modo sandbox nativo do Codex enviado ao iniciar/retomar thread. |
approvalsReviewer | "user" | Use "guardian_subagent" para deixar o guardian do Codex revisar aprovações nativas. |
serviceTier | não definido | Camada de serviço opcional do Codex, por exemplo "priority". |
OPENCLAW_CODEX_APP_SERVER_BINOPENCLAW_CODEX_APP_SERVER_ARGSOPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICYOPENCLAW_CODEX_APP_SERVER_SANDBOXOPENCLAW_CODEX_APP_SERVER_GUARDIAN=1
Receitas comuns
Codex local com transporte stdio padrão:codex/*,
o provedor, a política de aprovação, o sandbox e a camada de serviço selecionados no momento para o
app-server. Mudar de codex/gpt-5.4 para codex/gpt-5.2 mantém o vínculo da
thread, mas solicita ao Codex que continue com o modelo recém-selecionado.
Comando Codex
O plugin empacotado registra/codex como um comando slash autorizado. Ele é
genérico e funciona em qualquer canal que ofereça suporte a comandos de texto do OpenClaw.
Formas comuns:
/codex statusmostra conectividade ativa com o app-server, modelos, conta, limites de taxa, servidores MCP e Skills./codex modelslista os modelos ativos do app-server do Codex./codex threads [filter]lista as threads recentes do Codex./codex resume <thread-id>vincula a sessão atual do OpenClaw a uma thread Codex existente./codex compactpede ao app-server do Codex para compactar a thread vinculada./codex reviewinicia a revisão nativa do Codex para a thread vinculada./codex accountmostra o status da conta e dos limites de taxa./codex mcplista o status dos servidores MCP do app-server do Codex./codex skillslista as Skills do app-server do Codex.
/codex resume grava o mesmo arquivo de vínculo sidecar que o harness usa para
turnos normais. Na próxima mensagem, o OpenClaw retoma essa thread do Codex, passa o
modelo codex/* do OpenClaw atualmente selecionado para o app-server e mantém o
histórico estendido ativado.
A superfície de comandos exige Codex app-server 0.118.0 ou mais recente. Métodos individuais
de controle são informados como unsupported by this Codex app-server se um
app-server futuro ou personalizado não expuser esse método JSON-RPC.
Ferramentas, mídia e compactação
O harness do Codex altera apenas o executor de baixo nível do agente incorporado. O OpenClaw ainda monta a lista de ferramentas e recebe resultados dinâmicos de ferramentas do harness. Texto, imagens, vídeo, música, TTS, aprovações e saída de ferramentas de mensagens continuam pelo caminho normal de entrega do OpenClaw. Quando o modelo selecionado usa o harness do Codex, a compactação nativa de thread é delegada ao app-server do Codex. O OpenClaw mantém um espelho da transcrição para histórico do canal, pesquisa,/new, /reset e futuras trocas de modelo ou harness. 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.
A geração de mídia não exige PI. Geração de imagem, vídeo, música, PDF, TTS e
interpretação de mídia continuam usando as configurações correspondentes de provedor/modelo, como
agents.defaults.imageGenerationModel, videoGenerationModel, pdfModel e
messages.tts.
Solução de problemas
Codex não aparece em/model: ative plugins.entries.codex.enabled,
defina um ref de modelo codex/* ou verifique se plugins.allow exclui codex.
O OpenClaw usa fallback para PI: defina embeddedHarness.fallback: "none" ou
OPENCLAW_AGENT_HARNESS_FALLBACK=none durante os testes.
O app-server é rejeitado: atualize o Codex para que o handshake do app-server
informe a versão 0.118.0 ou mais recente.
A descoberta de modelos está lenta: reduza plugins.entries.codex.config.discovery.timeoutMs
ou desative a descoberta.
O transporte WebSocket falha imediatamente: verifique appServer.url, authToken
e se o app-server remoto fala a mesma versão do protocolo app-server do Codex.
Um modelo não Codex usa PI: isso é esperado. O harness do Codex só assume
refs de modelo codex/*.