Codex CLI na twoich własnych kartach GPU.
LM Warden jako niestandardowy dostawca modeli dla Codex CLI, jeden udostępniany model.
Opis słowny: Codex CLI wysyła żądania do LM Warden: base_url wskazuje instancję LM Warden, a env_key zawiera klucz LM Warden. LM Warden sprawdza klucz, obsługuje OpenAI Responses, ustawia żądanie w kolejce według priorytetu klucza i przekazuje je routerowi replik, który utrzymuje każdą sesję na replice mającej już jej cache, po jednej kopii modelu na kartę GPU.
- Protokół
- OpenAI Responses
- Obsługa
- Tylko modele lokalne
Tylko modele lokalne. Codex obsługuje wyłącznie Responses API; LM Warden tłumaczy POST /v1/responses na Chat Completions dla udostępnianego modelu, więc odpowiedź, wywołania narzędzi i użycie docierają do Codex jako zdarzenia Responses. Działa bezstanowo: Codex w każdej turze wysyła store:false i całą rozmowę, a previous_response_id jest odrzucane. Rozumowanie jest domyślnie włączone (Codex prosi o podsumowania rozumowania, a rozumowanie modelu jest pokazywane jako podsumowanie; aby je wyłączyć, ustaw model_reasoning_effort = "none" w config.toml), hostowane wyszukiwanie w sieci jest pomijane (ustaw web_search = "disabled"), a reguły routera nie mają zastosowania. Ustaw model_context_window na rzeczywiste okno modelu: dla nieznanych nazw Codex zakłada 272 tys. tokenów. Silnik musi mieć włączone wywoływanie narzędzi (vLLM: --enable-auto-tool-choice i --tool-call-parser). Na żądanie do modelu, który nie jest załadowany, serwer odpowiada kodem 404, a Codex ponawia próby przez kilka sekund, zanim się podda.
Wymagania
- Wymaga modelu z wywoływaniem narzędzi (edycje agentowe).
- Działa najlepiej z kontekstem co najmniej 32 768 tokenów.
Konfiguracja
W konsoli Connect zapisuje te pliki z adresem twojej instancji LM Warden, twoim kluczem i wybranym modelem. Tutaj są pokazane z symbolami zastępczymi.
Modele lokalne
Dodaj LM Warden jako dostawcę modeli w ~/.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."
Oficjalna dokumentacja: https://learn.chatgpt.com/docs/config-file/config-reference (stan na 2026-10-04).