# Codex CLI через Konductor

Codex CLI умеет работать с любым провайдером, который принимает формат OpenAI Responses. Konductor принимает его на `/v1/responses`, так что Codex подключается описанием провайдера в `config.toml`.

## Настройка

Открой `~/.codex/config.toml` и добавь провайдера Konductor. Идентификатор модели возьми из каталога на странице [Цены](/konductor/pricing):

```toml
model = "<идентификатор модели>"
model_provider = "konductor"

[model_providers.konductor]
name = "Konductor"
base_url = "https://llm.kodzavod.ru/v1"
env_key = "KONDUCTOR_KEY"
wire_api = "responses"
```

Что значат поля:

- `base_url` — `https://llm.kodzavod.ru/v1`, с `/v1` на конце. Codex дописывает к нему `/responses`.
- `env_key` — имя переменной окружения, из которой Codex возьмёт ключ компании. Сам ключ в файл не пиши.
- `wire_api` — `responses`. Другого значения Codex не принимает.

## Первый запрос

Задай переменную с ключом и запусти Codex:

```bash
export KONDUCTOR_KEY="<ключ>"
codex exec "Привет!"
```

В интерактивном режиме запускай просто `codex`: провайдер подхватится из `config.toml`.

## Что Konductor не принимает

Konductor не хранит ответы, поэтому всю историю нужно присылать в каждом запросе. Запрос с `previous_response_id`, `conversation`, `background: true` или `store: true` вернёт 400 с `param` поля, на которое он ответил. Серверные инструменты, например `web_search`, тоже вернут 400. Обычные функции (`function`) и `custom`-инструменты работают. Полный перечень — в описании `/v1/responses` в [справочнике API](/konductor/docs/api).

Konductor передаёт модели только поля `input`, `instructions`, `tools`, `tool_choice`, `parallel_tool_calls`, `temperature`, `top_p`, `top_logprobs`, `frequency_penalty`, `presence_penalty` и `text`. Остальные поля, включая `reasoning`, `include` и `prompt_cache_key`, он отбрасывает без ошибки: запрос проходит, но настройка не действует. Если Codex присылает эти поля, до модели они не доходят.

## Сколько стоил запрос

В ответе `/v1/responses` рубли лежат в `usage.cost_rub`. Подробнее — на странице [Цены в ответе](/konductor/docs/prices-in-response).

## Если запрос не прошёл

Смотри страницу [Ошибки 402, 403 и 429](/konductor/docs/errors). Остаток баланса и лимит ключа покажет запрос к `/v1/key` из [быстрого старта](/konductor/docs/quickstart).
