Codex CLI com modelos na UE: Kimi K3, GLM 5.3 e DeepSeek V4.1 Flash através de um fornecedor personalizado

Cartão de configuração do Codex com as linhas model_provider nodion e wire_api responses, ligado a um cartão do modelo Kimi K3 com uma etiqueta verde Connected e, por baixo, mosaicos de GLM 5.3 e DeepSeek

Em resumo

  • O Codex CLI funciona com o Nodion AI Gateway através de um fornecedor personalizado em ~/.codex/config.toml: URL base https://api.nodion.ai/v1, env_key = "NODION_AI_KEY" e wire_api = "responses", a única wire API que o Codex ainda aceita.
  • O gateway encaminha pedidos apenas para fornecedores sediados na UE, todos com zero data retention, e o Codex chama Kimi K3, GLM 5.3 e DeepSeek V4.1 Flash com a sua chave de API da Nodion, sem conta nos fornecedores.
  • O Codex não conhece estes IDs de modelo e recorre a uma janela de contexto de 272 000 tokens, abaixo do valor do catálogo; desde o Codex 0.134.0, cada perfil é um ficheiro separado em ~/.codex, e um .codex/config.toml de projeto não pode definir o fornecedor.
  • O /v1/responses da Nodion não tem estado: o Codex envia a conversa completa em cada pedido, a pesquisa na web funciona e nenhuma resposta é guardada; os detalhes estão na referência da API de IA.

O Codex CLI pode comunicar com qualquer fornecedor que disponibilize a API Responses da OpenAI. O Nodion AI Gateway, em https://api.nodion.ai/v1, oferece /v1/responses, pelo que basta um bloco de fornecedor em ~/.codex/config.toml para usar o Codex com Kimi K3, GLM 5.3 ou DeepSeek V4.1 Flash. O gateway encaminha pedidos apenas para fornecedores sediados na UE, todos com zero data retention. Não precisa de conta nesses fornecedores: o Codex faz todas as chamadas com a sua chave de API da Nodion.

Este guia segue a documentação do Codex para a versão 0.165.0 (outubro de 2026).

Do que precisa

  • Uma conta Nodion e um projeto com AI Inference.
  • Uma chave de API: uma chave de inferência criada em AI Inference → Keys (começa por nodion_ai_ e só é mostrada uma vez) ou uma chave criada no seu AI Coding Plan. As chaves da API da plataforma da Nodion não funcionam aqui.
  • Saldo pré-pago disponível, exceto se a chave pertencer a um AI Coding Plan.
  • Codex CLI. Os ficheiros de perfil descritos mais abaixo exigem a versão 0.134.0 ou posterior.

Defina a chave na shell que executa o Codex:

export NODION_AI_KEY=nodion_ai_your_key

Adicionar a Nodion como fornecedor personalizado

Abra ~/.codex/config.toml e adicione:

# ~/.codex/config.toml
model = "moonshot/kimi-k3"
model_provider = "nodion"

[model_providers.nodion]
name = "Nodion"
base_url = "https://api.nodion.ai/v1"
env_key = "NODION_AI_KEY"
wire_api = "responses"
  • model é o ID do modelo no catálogo da Nodion, incluindo a barra.
  • model_provider seleciona o bloco abaixo. Os IDs openai, ollama e lmstudio estão reservados, por isso o fornecedor precisa do seu próprio ID.
  • env_key indica a variável de ambiente que contém a chave. Os fornecedores personalizados dispensam o início de sessão na OpenAI, a menos que defina requires_openai_auth.
  • wire_api = "responses" é o único valor que o Codex aceita, e também o valor por omissão. O Codex rejeita configurações antigas com wire_api = "chat" ao lê-las: `wire_api = "chat"` is no longer supported.

Fontes, verificadas em outubro de 2026: referência de configuração do Codex, discussão #7782, model-provider-info.

Escolher um modelo

Três modelos de chat da lista dos AI Coding Plans, todos com suporte para ferramentas (tools) e raciocínio:

ModeloIDEntradaContexto (catálogo)Saída máx.
Kimi K3moonshot/kimi-k3Texto, imagem, vídeo1 048 57632 768
GLM 5.3z-ai/glm-5.3Texto1 048 576131 072
DeepSeek V4.1 Flashdeepseek/deepseek-v4.1-flashTexto, imagem1 048 576393 216

Para mudar de modelo numa única sessão, use -m (--model); o fornecedor continua a ser o da sua configuração:

codex -m z-ai/glm-5.3
codex -m deepseek/deepseek-v4.1-flash

Os perfis são agora ficheiros separados

Desde o Codex 0.134.0, --profile deixou de ler tabelas [profiles.name] de config.toml. Cada perfil é um ficheiro próprio, ~/.codex/<name>.config.toml, com chaves de nível superior que o Codex sobrepõe à sua configuração base. Mantenha o bloco de fornecedor em config.toml e crie um perfil por modelo:

# ~/.codex/nodion-glm.config.toml
model = "z-ai/glm-5.3"
model_provider = "nodion"
codex --profile nodion-glm
codex exec --profile nodion-glm "Summarize the open TODOs in this repo"

A configuração do projeto não pode definir o fornecedor

Em projetos de confiança, o Codex lê o ficheiro .codex/config.toml no repositório, mas ignora aí model_provider e model_providers e mostra um aviso ao arrancar. Por isso, o bloco de fornecedor deve ficar em ~/.codex/config.toml ou num ficheiro de perfil. Se as suas definições parecerem não ter efeito, /debug-config mostra que camadas de configuração o Codex carregou.

Fontes: configuração avançada do Codex, noções básicas de configuração do Codex, comandos slash.

A limitação da janela de contexto

O Codex não tem metadados integrados para estes IDs de modelo. Mostra Unknown model moonshot/kimi-k3 is used. This will use fallback model metadata. e usa uma janela de contexto de 272 000 tokens. model_context_window pode baixar esse valor, mas não aumentá-lo. No Codex, o contexto utilizável fica, portanto, abaixo dos 1 048 576 tokens que o catálogo indica para os três modelos. O aviso em si é normal.

Fonte: model_info.rs no repositório do Codex.

Verificar a configuração

Inicie o codex num repositório e execute /status. O comando mostra a configuração da sessão: o modelo ativo, a política de aprovação (approval policy), as pastas com permissão de escrita e o contexto restante. Isso não confirma que uma chamada chegou ao destino, por isso envie um primeiro prompt, por exemplo «Explique em duas frases o que faz este repositório». Se chegar uma resposta, a chave, o URL base e o ID do modelo funcionam. Os separadores Usage e Requests do AI Inference mostram o tráfego.

O que significa, na prática, um /v1/responses sem estado

  • Nada é guardado. A Nodion não guarda respostas: store é ignorado e a resposta indica store: false. Não existe previous_response_id, conversation nem GET /v1/responses/{id}. O Codex envia a conversa completa em input em cada pedido, por isso não precisa deles.
  • As sessões longas custam mais por turno. Cada pedido leva toda a conversa até esse momento, por isso os tokens de entrada crescem com a sessão. Os tokens de entrada em cache são faturados ao preço de cache quando a rota o reporta.
  • A pesquisa na web funciona. O próprio gateway executa web_search através da pesquisa na web da Nodion e devolve a consulta e os URLs das fontes num item web_search_call. A pesquisa devolve resultados do índice (título, URL, excerto) e não abre páginas. Por omissão, faz no máximo 10 pesquisas por resposta (max_tool_calls, até 20).
  • Ferramentas: function, custom, namespace e web_search. As outras ferramentas alojadas são rejeitadas.
  • Os resultados das ferramentas são texto. Imagens e ficheiros nos resultados das ferramentas não chegam ao modelo; uma nota no texto substitui-os.

Faturação: saldo pré-pago ou AI Coding Plan

Uma chave que não pertence a um plano paga a partir do saldo pré-pago: tokens de entrada e de saída ao preço do modelo. Cada pesquisa na web é faturada como uma chamada à ferramenta de pesquisa na web, e cada turno do modelo como uma chat completion. Uma chave de um AI Coding Plan (Go, Pro ou Max) usa antes a utilização incluída no plano para chat e ferramentas. Essa utilização conta para uma janela de 5 horas, uma semanal e uma mensal. Quando um desses limites se esgota, os pedidos só continuam a partir do saldo se o plano permitir usar o saldo. Os preços por modelo estão nas páginas dos modelos em AI Inference e os planos em AI Coding Plans.

Resolução de problemas

  • 401: a chave está em falta ou é do tipo errado. As chaves da plataforma (nodion_…) não funcionam nesta API. Use uma chave de inferência (nodion_ai_…) ou uma chave do seu plano e verifique se NODION_AI_KEY está exportada na shell que inicia o Codex.
  • 400 para uma ferramenta: as ferramentas alojadas que não sejam web_search, como file_search ou code_interpreter, são rejeitadas com 400. O mesmo acontece com background, prompt, truncation: "auto", file_id e file_url.
  • 404 model not found: o ID do modelo está errado. curl https://api.nodion.ai/v1/models lista os IDs exatos e não precisa de chave.
  • 402: o saldo não cobre o pedido ou foi atingido um limite de gastos. Carregue o saldo no separador Billing ou verifique o limite diário da chave.
  • 503: nenhuma rota operacional para o modelo corresponde às definições de IA do projeto, por exemplo porque os respetivos fornecedores estão aí excluídos.

Fontes: referência da API de IA: API Responses, erros e limites, documentação do AI Inference, AI Coding Plans.

Próximos passos

Perguntas frequentes

O Codex CLI pode usar modelos que não sejam da OpenAI?

Sim. O Codex suporta fornecedores personalizados que disponibilizam a API Responses da OpenAI. Com um bloco model_providers para https://api.nodion.ai/v1, funciona com Kimi K3, GLM 5.3 ou DeepSeek V4.1 Flash através do Nodion AI Gateway, que encaminha pedidos apenas para fornecedores sediados na UE.

O Codex CLI ainda suporta wire_api = "chat"?

Não. O Codex rejeita wire_api = "chat" ao ler a configuração. "responses" é o único valor suportado e o valor por omissão, por isso um fornecedor personalizado tem de disponibilizar a API Responses.

Porque é que a janela de contexto no Codex é menor do que a do modelo?

O Codex não tem metadados para IDs de modelo que não conhece e recorre a uma janela de 272 000 tokens. A definição model_context_window pode baixar esse valor, mas não aumentá-lo.

Posso pagar a utilização do Codex com um AI Coding Plan?

Sim. Uma chave criada num AI Coding Plan da Nodion usa a utilização incluída no plano para chat e ferramentas, contabilizada em janelas de 5 horas, semanais e mensais. As chaves sem plano pagam a partir do saldo pré-pago.

Dê uma cloud ao seu agente.

Ganhe até 15 € de crédito ao registar-se.

Continuar com o GitHub

ou com e-mail

Fique a par das novidades.

Novidades do produto, sem spam. Pode cancelar a subscrição a qualquer momento.