Codex CLI nas suas próprias GPUs.
O LM Warden como provedor de modelo personalizado para o Codex CLI, um modelo servido.
Em texto: O Codex CLI envia as solicitações ao LM Warden com base_url apontando para o warden e env_key contendo uma chave do warden. O LM Warden verifica a chave, implementa o protocolo OpenAI Responses, coloca a solicitação na fila pela prioridade da chave e a entrega ao roteador de réplicas, que mantém cada sessão na réplica que já tem o cache dela, uma cópia do modelo por GPU.
- Protocolo
- OpenAI Responses
- Suporte
- Só modelos locais
Só modelos locais. O Codex só usa a Responses API; o warden traduz POST /v1/responses para Chat Completions para o modelo servido, então a resposta, as chamadas de ferramenta e o uso chegam ao Codex como eventos Responses. É sem estado: o Codex envia store:false e a conversa inteira a cada turno, e previous_response_id é recusado. O raciocínio vem ligado por padrão (o Codex pede resumos de raciocínio e o raciocínio do modelo aparece como resumo; para desligá-lo, defina model_reasoning_effort = "none" em config.toml), a pesquisa na web hospedada é descartada (defina web_search = "disabled") e as regras do roteador não se aplicam. Defina model_context_window com a janela real do modelo: o Codex presume 272k para nomes que não conhece. O mecanismo precisa de chamada de ferramentas ativada (vLLM: --enable-auto-tool-choice e um --tool-call-parser). Uma solicitação para um modelo que não está carregado recebe 404, e o Codex tenta de novo por vários segundos antes de desistir.
Requisitos
- Precisa de um modelo com chamada de ferramentas (edições agênticas).
- Funciona melhor com pelo menos 32.768 tokens de contexto.
Configuração
No console, o Connect grava estes arquivos com o endereço do seu warden, a sua chave e o modelo que você escolheu. Aqui eles aparecem com espaços reservados.
Modelos locais
Adicione o LM Warden como provedor de modelo em ~/.codex/config.toml.
config.toml (~/.codex/config.toml)model = "your-served-model-name" model_provider = "lmwarden" # Codex assumes a 272k window for models it does not know; set the real one. model_context_window = 32768 [model_providers.lmwarden] name = "LM Warden" base_url = "https://your-warden/v1" env_key = "LMWARDEN_KEY" wire_api = "responses" # The model's context window is unknown: 32768 is a guess. Set it to the model's real window.
export LMWARDEN_KEY=vw_YOUR_KEY codex exec "Reply with the single word OK."
Documentação oficial: https://learn.chatgpt.com/docs/config-file/config-reference (lida em 2026-10-04).