Codex CLI на ваших собственных GPU.
LM Warden как пользовательский провайдер моделей для Codex CLI с одной обслуживаемой моделью.
Иначе говоря: Codex CLI отправляет запросы в LM Warden: в base_url указан адрес сервера LM Warden, а в env_key — ключ LM Warden. LM Warden проверяет ключ, принимает запросы в формате OpenAI Responses, ставит их в очередь по приоритету ключа и передает маршрутизатору реплик. Маршрутизатор закрепляет каждую сессию за репликой, на которой уже лежит ее кэш; на каждом GPU работает своя копия модели.
- Протокол
- OpenAI Responses
- Поддержка
- Только локально
Только локальные модели. Codex работает только через Responses API; LM Warden преобразует POST /v1/responses в Chat Completions для обслуживаемой модели, так что ответ, вызовы инструментов и статистика использования доходят до Codex в виде событий Responses. Состояние не сохраняется: Codex отправляет store:false и весь диалог на каждом шаге, а запросы с previous_response_id отклоняются. Рассуждения по умолчанию включены (Codex запрашивает их краткое изложение, и рассуждения модели показываются в сжатом виде; чтобы выключить их, задайте model_reasoning_effort = "none" в config.toml), встроенный облачный веб-поиск отбрасывается (задайте web_search = "disabled"), а правила маршрутизатора не применяются. Укажите в model_context_window реальный размер контекстного окна модели: для незнакомых имен Codex исходит из 272 тыс. токенов. В движке должен быть включен вызов инструментов (vLLM: --enable-auto-tool-choice и --tool-call-parser). На запрос к незагруженной модели возвращается 404, и Codex несколько секунд повторяет запрос, прежде чем сдаться.
Требования
- Нужна модель с вызовом инструментов (агентное редактирование).
- Лучше всего работает с контекстом не меньше 32 768 токенов.
Настройка
В консоли раздел Connect создает эти файлы с адресом вашего сервера LM Warden, вашим ключом и выбранной моделью. Здесь они показаны с заполнителями.
Локальные модели
Добавьте LM Warden как провайдер моделей в ~/.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."
Официальная документация: https://learn.chatgpt.com/docs/config-file/config-reference (дата обращения: 2026-10-04).