LM Warden

Codex CLI nas suas próprias GPUs.

O LM Warden como provedor de modelo personalizado para o Codex CLI, um modelo servido.

Para onde vai uma solicitação do Codex CLI 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. Codex CLI base_url the warden, at /v1 env_key LMWARDEN_KEY holds vw_… POST /v1/responses LM Warden checks the key: one per app speaks OpenAI Responses scheduler, key priority usage, latency and live stats per key Replica router a session goes back to the replica that holds its cache one model copy per GPU your GPUs: vLLM or llama.cpp replica 0, GPU 0 replica 1, GPU 1 replica 2, GPU 2 a conversation stays on its replica
Para onde vai uma solicitação do Codex CLI 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. Codex CLI base_url the warden, at /v1 env_key LMWARDEN_KEY holds vw_… POST /v1/responses LM Warden checks the key: one per app speaks OpenAI Responses scheduler, key priority usage, latency, live stats per key Replica router a session goes back to the replica that holds its cache replica 0 GPU 0 replica 1 GPU 1 replica 2 GPU 2 your GPUs: vLLM or llama.cpp a conversation stays on its replica
Para onde vai uma solicitação do Codex CLI: as duas configurações que o Connect grava, o warden no meio e depois uma cópia do modelo por GPU.

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.
Shell
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).