LM Warden

Codex CLI auf Ihren eigenen GPUs.

LM Warden als benutzerdefinierter Modellanbieter für Codex CLI, ein bereitgestelltes Modell.

Wohin eine Anfrage von Codex CLI geht Codex CLI sendet seine Anfragen an LM Warden: base_url zeigt auf den Warden, env_key enthält einen Warden-Schlüssel. LM Warden prüft den Schlüssel, unterstützt OpenAI Responses, reiht die Anfrage nach der Priorität des Schlüssels ein und übergibt sie an den Replikat-Router, der jede Sitzung auf dem Replikat hält, das ihren Cache bereits hat – eine Modellkopie pro 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
Wohin eine Anfrage von Codex CLI geht Codex CLI sendet seine Anfragen an LM Warden: base_url zeigt auf den Warden, env_key enthält einen Warden-Schlüssel. LM Warden prüft den Schlüssel, unterstützt OpenAI Responses, reiht die Anfrage nach der Priorität des Schlüssels ein und übergibt sie an den Replikat-Router, der jede Sitzung auf dem Replikat hält, das ihren Cache bereits hat – eine Modellkopie pro 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
Wohin eine Anfrage von Codex CLI geht: die zwei Einstellungen, die Connect einträgt, der Warden in der Mitte, dann eine Kopie des Modells pro GPU.

Kurz gesagt: Codex CLI sendet seine Anfragen an LM Warden: base_url zeigt auf den Warden, env_key enthält einen Warden-Schlüssel. LM Warden prüft den Schlüssel, unterstützt OpenAI Responses, reiht die Anfrage nach der Priorität des Schlüssels ein und übergibt sie an den Replikat-Router, der jede Sitzung auf dem Replikat hält, das ihren Cache bereits hat – eine Modellkopie pro GPU.

Protokoll
OpenAI Responses
Unterstützung
Nur lokale Modelle

Nur lokale Modelle. Codex unterstützt nur die Responses API; der Warden übersetzt POST /v1/responses für das bereitgestellte Modell in Chat Completions, sodass Antwort, Tool-Aufrufe und Nutzung als Responses-Ereignisse bei Codex ankommen. Die Übersetzung ist zustandslos: Codex sendet store:false und in jeder Runde die ganze Unterhaltung, und previous_response_id wird abgelehnt. Das Reasoning ist standardmäßig an (Codex fordert Zusammenfassungen des Reasonings an, und das Reasoning des Modells wird als Zusammenfassung angezeigt; zum Ausschalten setzen Sie model_reasoning_effort = "none" in config.toml), die gehostete Websuche entfällt (setzen Sie web_search = "disabled"), und Router-Regeln gelten nicht. Setzen Sie model_context_window auf das echte Kontextfenster des Modells: Bei Namen, die Codex nicht kennt, geht es von 272 Tsd. Token aus. Die Engine braucht aktiviertes Tool Calling (vLLM: --enable-auto-tool-choice und ein --tool-call-parser). Eine Anfrage für ein nicht geladenes Modell erhält 404, und Codex versucht es mehrere Sekunden lang erneut, bevor es aufgibt.

Voraussetzungen

  • Braucht ein Modell mit Tool-Aufrufen (agentische Bearbeitungen).
  • Funktioniert am besten mit mindestens 32.768 Token Kontext.

Einrichtung

In der Konsole erzeugt Connect diese Dateien mit der Adresse Ihres Wardens, Ihrem Schlüssel und dem gewählten Modell. Hier sehen Sie sie mit Platzhaltern.

Lokale Modelle

Fügen Sie LM Warden in ~/.codex/config.toml als Modellanbieter hinzu.

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."

Offizielle Dokumentation: https://learn.chatgpt.com/docs/config-file/config-reference (abgerufen am 2026-10-04).