# GPT-6 Astra в Claude Code: как подключить через прокси или Codex

> GPT-6 Astra работает в Claude Code основной моделью через прокси LiteLLM или исполнителем через плагин Codex. Стоимость задачи Claude Code занижает вдвое.

- URL: https://blog.laozhang.ai/ru/posts/gpt-6-astra-in-claude-code
- Published: 2026-11-12
- Updated: 2026-11-12
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ru/about)
- Topic: Claude Code
- Tags: GPT-6 Astra, Claude Code, LiteLLM, Codex, Настройка API

---
GPT-6 Astra можно запустить внутри Claude Code, но готового переключателя для неё нет: в `/model` такой модели не будет, а Anthropic в документации о шлюзах прямо пишет, что не поддерживает маршрутизацию Claude Code на модели не от Claude. Рабочих схем две. Чтобы Astra стала основной моделью и сама вела сеанс, между Claude Code и OpenAI-совместимым API ставится локальный прокси LiteLLM, а в переменные `ANTHROPIC_MODEL`, `ANTHROPIC_DEFAULT_OPUS_MODEL` и `ANTHROPIC_DEFAULT_SONNET_MODEL` вписывается `gpt-6-astra`; платите вы за токены API. Чтобы основной оставалась Claude, а Astra получала отдельные задачи, ставится официальный плагин OpenAI для Claude Code, и задача отдаётся командой `/codex:rescue --model gpt-6-astra`; расход тогда идёт из лимитов Codex в подписке ChatGPT.

12 ноября 2026 года обе схемы получили одну и ту же маленькую задачу: исправить Python-файл с двумя ошибками так, чтобы прошли четыре теста. Связка Claude Code 2.1.316 и LiteLLM 1.109.1, где Astra отвечала через OpenAI-совместимый API laozhang.ai, справилась за 19,2 секунды, плагин Codex 1.0.6 — за 28 секунд, оба раза 4 теста из 4. Короткий путь без прокси, то есть адрес шлюза в `ANTHROPIC_BASE_URL` и `gpt-6-astra` в переменных модели, на том же шлюзе закончился ошибкой 503. И учтите заранее: стоимость, которую Claude Code печатает для `gpt-6-astra`, примерно вдвое ниже расчёта по прайсу, потому что цены этой модели он не знает.

*Примечание: [laozhang.ai — наш собственный сервис](https://blog.laozhang.ai/ru/about#laozhang); его цены — наши тарифы, а не независимое сравнение.*

## Astra основной моделью или через плагин Codex: что выбрать

Схему выбирают по двум вопросам: кто должен вести работу и чем вы готовы платить. Через прокси Astra получает весь цикл Claude Code — читает файлы, вызывает инструменты, правит код, — и каждый запрос оплачивается токенами API. Через плагин Claude остаётся основной моделью и сам решает, когда отдать задачу, а Astra выполняет её в Codex CLI за счёт подписки ChatGPT. Если подписка Plus или Pro уже есть и Claude в роли ведущего вас устраивает, проще начать с плагина; если Astra нужна во всём сеансе, без прокси не обойтись.

![Путь запроса в трёх вариантах: Claude Code через LiteLLM на 127.0.0.1:4011 к GPT-6 Astra, Claude через /codex:rescue и Codex CLI к Astra, и прямой запрос к шлюзу, который заканчивается ошибкой 503](https://blog.laozhang.ai/posts/ru/gpt-6-astra-in-claude-code/img/astra-claude-code-routes.webp)

| Параметр | Прокси LiteLLM: Astra — основная модель | Плагин Codex: Astra — исполнитель |
| --- | --- | --- |
| Кто ведёт сеанс | Astra, с инструментами Claude Code | Claude; Astra получает задачу через `/codex:rescue` |
| Чем платите | Токены API Astra: $10 за 1 млн входных и $50 за 1 млн выходных | Лимиты Codex в подписке ChatGPT или ключ OpenAI API |
| Что нужно | Ключ API с доступом к `gpt-6-astra`, Python для LiteLLM | ChatGPT Plus, Business или Pro, Node.js 18.18+ |
| Как выбирается Astra | Переменные модели в Claude Code | Флаг `--model gpt-6-astra`; без него Codex выбирает модель сам |
| Тест 12 ноября 2026 года | 4 из 4, 19,2 с, effort `high` | 4 из 4, 28 с, effort `medium` |
| Слабые места | Неверная стоимость в Claude Code, окно 200k по умолчанию | Каждая переданная задача расходует лимит Codex |

Суммы токенов двух схем в этом тесте напрямую сравнивать нельзя: уровень рассуждения был разный (`high` против `medium`), и каждый инструмент добавляет к задаче свои системные инструкции. Если вы выбираете не схему, а инструмент целиком, расходы на подписки и API разобраны в статье [«Claude Code или Codex: стоимость подписки, лимиты и реальный счет API»](https://blog.laozhang.ai/ru/posts/claude-code-vs-codex).

## Как подключить GPT-6 Astra основной моделью через LiteLLM

Claude Code разговаривает с моделью только в формате Anthropic Messages (`/v1/messages`) и вместе с запросом отправляет поля, которых у OpenAI нет: заголовки `anthropic-beta`, `output_config.effort`, `context_management`. А у самой Astra в API OpenAI вызов инструментов работает только через Responses API, не через Chat Completions. Прокси принимает запрос Claude Code, перекладывает его в формат OpenAI и возвращает ответ обратно в формате Anthropic. В тесте 12 ноября 2026 года LiteLLM отправил все запросы к провайдеру на `/v1/responses`, и ни одной ошибки 400 не было, хотя Claude Code передавал восемь значений `anthropic-beta` и поле `output_config`.

Ниже конфигурация, на которой прошёл тест; ключ провайдера берётся из переменной окружения.

1. Установите LiteLLM с прокси. В документации LiteLLM это команда `uv tool install 'litellm[proxy]'`; в тесте работала версия 1.109.1 в виртуальном окружении Python 3.12.

2. Создайте файл `litellm-config.yaml`:

   ```yaml
   model_list:
     - model_name: gpt-6-astra
       litellm_params:
         model: openai/gpt-6-astra
         api_base: https://api.laozhang.ai/v1
         api_key: os.environ/LAOZHANG_API_KEY
     - model_name: gpt-6-astra-responses
       litellm_params:
         model: openai/responses/gpt-6-astra
         api_base: https://api.laozhang.ai/v1
         api_key: os.environ/LAOZHANG_API_KEY
     - model_name: gpt-6-luna
       litellm_params:
         model: openai/gpt-6-luna
         api_base: https://api.laozhang.ai/v1
         api_key: os.environ/LAOZHANG_API_KEY
   litellm_settings:
     drop_params: true
   ```

   `api_base` указывает на OpenAI-совместимый адрес laozhang.ai, через который шёл тест. С ключом OpenAI, по инструкции самого LiteLLM, строка `api_base` убирается, а ключ берётся из `OPENAI_API_KEY`; такой вариант в тесте не запускался. Запись `gpt-6-astra-responses` явно включает Responses API, но обычная `openai/gpt-6-astra` в тесте тоже ушла на `/v1/responses`, так что для Claude Code достаточно её. `drop_params: true` отбрасывает параметры, которые провайдер не принимает.

3. Запустите прокси:

   ```bash
   export LAOZHANG_API_KEY="ваш-ключ-api"
   export LITELLM_MASTER_KEY="sk-local-test-1112"
   litellm --config litellm-config.yaml --host 127.0.0.1 --port 4011 --detailed_debug
   ```

   `LITELLM_MASTER_KEY` — это не ключ провайдера, а пароль самого прокси, его можно заменить любой длинной строкой. Флаг `--detailed_debug` пишет в журнал каждый запрос к провайдеру, он понадобится для проверки.

4. Проверьте прокси одним запросом с инструментом ещё до запуска Claude Code:

   ```bash
   curl -s http://127.0.0.1:4011/v1/messages \
     -H "Authorization: Bearer $LITELLM_MASTER_KEY" \
     -H "Content-Type: application/json" \
     -d '{"model":"gpt-6-astra","max_tokens":512,
          "tools":[{"name":"read_file","description":"Read a file from disk",
            "input_schema":{"type":"object","properties":{"path":{"type":"string"}},"required":["path"]}}],
          "messages":[{"role":"user","content":"Read the file src/app.py using the tool."}]}'
   ```

   В ответе должны быть `"model":"gpt-6-astra"`, `"stop_reason":"tool_use"` и блок `tool_use` с вызовом `read_file`, именно так прокси ответил в тесте. Если вместо этого пришла ошибка, Claude Code её только повторит, поэтому чинить нужно на этом шаге.

5. Укажите Claude Code адрес прокси и модели и запустите его:

   ```bash
   export ANTHROPIC_BASE_URL="http://127.0.0.1:4011"
   export ANTHROPIC_AUTH_TOKEN="sk-local-test-1112"
   export ANTHROPIC_MODEL="gpt-6-astra"
   export ANTHROPIC_DEFAULT_OPUS_MODEL="gpt-6-astra"
   export ANTHROPIC_DEFAULT_SONNET_MODEL="gpt-6-astra"
   export ANTHROPIC_DEFAULT_HAIKU_MODEL="gpt-6-luna"
   export CLAUDE_CODE_MAX_CONTEXT_TOKENS=272000
   claude
   ```

Основной сеанс Claude Code идёт через переменную Opus (`ANTHROPIC_DEFAULT_OPUS_MODEL`), субагенты используют модель сеанса, а переменная Haiku (`ANTHROPIC_DEFAULT_HAIKU_MODEL`) обслуживает служебные запросы вроде названия сеанса. Поэтому Astra стоит во всех основных переменных, а в Haiku — более лёгкая `gpt-6-luna`: в интерактивном тесте одно сообщение дало три запроса к прокси, два к `gpt-6-astra` и один к `gpt-6-luna` за названием сеанса. Если какую-то переменную не задать, Claude Code запросит у прокси обычное имя модели Claude, которого в `litellm-config.yaml` нет; так было в проверке 30 октября 2026 года на тестовом сервере. Те же ключи можно перенести в блок `env` файла `~/.claude/settings.json`: где лежат настройки и какая из них важнее при конфликте, описано в статье [«Настройка Claude Code API: ключи, settings.json, модели и шлюзы»](https://blog.laozhang.ai/ru/posts/claude-code-api-configuration), а как три переменные моделей делят работу, подробно показано в [«GLM-5.3-Flash в Claude Code: настройка, слоты, effort и кредиты»](https://blog.laozhang.ai/ru/posts/glm-5-3-flash-claude-code).

*Примечание: [laozhang.ai — наш собственный сервис](https://blog.laozhang.ai/ru/about#laozhang); его цены — наши тарифы, а не независимое сравнение.*

`CLAUDE_CODE_MAX_CONTEXT_TOKENS=272000` нужен потому, что Claude Code не знает `gpt-6-astra`, считает её окно равным 200 000 токенов и на этом пороге сжимает контекст. Реальное окно Astra — 1 050 000 токенов, но запрос, в котором больше 272 000 входных токенов, OpenAI целиком считает по повышенной цене: $20 за 1 млн входных и $75 за 1 млн выходных. Значение 272 000 — самый большой запрос, который ещё идёт по обычному тарифу; это выбор под тариф, а не официальная рекомендация. В тесте с этой переменной Claude Code записал окно 272 000, и строка о 200k больше не выводилась.

Уровень рассуждения (effort) из Claude Code доходит до Astra как `reasoning.effort`. По умолчанию Claude Code отправил `high`, а с `CLAUDE_CODE_EFFORT_LEVEL=low` и `CLAUDE_CODE_EFFORT_LEVEL=max` — соответственно `low` и `max`; время и стоимость всех трёх запусков приведены в разделе о цене. Значения `none` и `minimal` Astra не поддерживает. Как устроены уровни в самом Claude Code, разобрано в статье [«Effort в Claude Code: что это, уровни и почему снова medium»](https://blog.laozhang.ai/ru/posts/claude-code-effort-level).

## Как убедиться, что отвечает gpt-6-astra

Первый признак виден при запуске: в шапке сеанса вместо имени Claude стоят `gpt-6-astra` и тип оплаты, а ниже — предупреждение о неизвестной модели. Так выглядело начало интерактивного сеанса 12 ноября 2026 года, запущенного без `CLAUDE_CODE_MAX_CONTEXT_TOKENS`:

```text
Claude Code v2.1.316
gpt-6-astra · API Usage Billing

⚠ Model "gpt-6-astra" isn't recognized · context assumed to be 200k tokens · update Claude Code, or see
  https://code.claude.com/docs/en/model-config
```

Команда `/status` показывает, куда и с каким ключом Claude Code отправляет запросы: `Auth token: ANTHROPIC_AUTH_TOKEN`, `Anthropic base URL: http://127.0.0.1:4011`, `Model: gpt-6-astra`. Но шапка и `/status` говорят только о том, какое имя модели Claude Code запросил. Что ответила именно Astra, подтверждает журнал прокси: с флагом `--detailed_debug` в нём видно, что запрос ушёл к провайдеру на `/v1/responses` с моделью `gpt-6-astra`, а в ответе поле `model` содержит то же имя, как и в проверке через curl. На вопрос о том, какая это модель, Astra в тесте ответила «I am GPT-6 Astra (`gpt-6-astra`)», и это совпало с журналом, однако ответ модели о себе без журнала доказательством не считается.

## Сколько стоит задача: Claude Code показывает вдвое меньше прайса

По прайсу Astra тестовая задача 12 ноября 2026 года стоила $0,228, а Claude Code в строке стоимости показал $0,114. Так было во всех трёх запусках: цены для `gpt-6-astra` у Claude Code нет (в его отчёте в формате JSON стоит `costBasis: "unknown"`), поэтому его цифра не годится ни для бюджета, ни для сравнения с другими моделями. Считать нужно по токенам, которые вернул провайдер.

| Запуск | effort, полученный Astra | Время | Ходов | Выходные токены (из них рассуждение) | По прайсу Astra | Показал Claude Code |
| --- | --- | --- | --- | --- | --- | --- |
| По умолчанию | `high` | 19,2 с | 7 | 521 (37) | $0,228 | $0,114 |
| `CLAUDE_CODE_EFFORT_LEVEL=low` | `low` | 17,5 с | 5 | 364 (0) | $0,203 | $0,101 |
| `CLAUDE_CODE_EFFORT_LEVEL=max` | `max` | 34,4 с | 9 | 1 531 (963) | $0,289 | $0,144 |

Расчёт для запуска по умолчанию: провайдер вернул 12 некэшированных входных токенов, 11 728 токенов записи в кэш, 55 265 токенов чтения из кэша и 521 выходной. По прайсу Astra за 1 млн токенов ($10 за вход, $12,50 за запись в кэш, $1 за чтение из кэша, $50 за выход) получается (12 × 10 + 11 728 × 12,5 + 55 265 × 1 + 521 × 50) / 1 000 000 ≈ $0,228. Это оценка по прайсу, а не счёт: кэширование здесь автоматическое, на стороне провайдера.

Около 64 % этой суммы, примерно $0,147, ушло на первую запись в кэш системных инструкций и описаний инструментов Claude Code, а это около 11 700 токенов. Её оплачивает каждый новый сеанс ещё до того, как модель прочитает ваш код, поэтому короткие сеансы с Astra через прокси обходятся дороже, чем можно ожидать по размеру задачи. Настоящий рабочий сеанс намного больше этого теста, а как только запрос переходит за 272 000 входных токенов, действует повышенный тариф; полный прайс с кэшем и длинным контекстом — в статье [«GPT-6 Astra API: тарифы, кэш и стоимость длинного контекста»](https://blog.laozhang.ai/ru/posts/gpt-6-astra-api-pricing).

![Из чего сложились $0,228 за тестовую задачу по прайсу Astra: около 64 % — запись в кэш, остальное — чтение из кэша и выход, тогда как Claude Code показал $0,114](https://blog.laozhang.ai/posts/ru/gpt-6-astra-in-claude-code/img/astra-claude-code-task-cost.webp)

На такой лёгкой задаче все три уровня прошли тесты. Уровень `max` занял почти вдвое больше времени (34,4 секунды против 19,2) и обошёлся примерно на 27 % дороже уровня по умолчанию. Один запуск на уровень показывает, что настройка доходит до модели, но не то, какой уровень лучше для ваших задач.

## Плагин Codex: как передать задачу GPT-6 Astra, оставив Claude основной

Плагин `openai/codex-plugin-cc` — официальное дополнение OpenAI, которое добавляет в Claude Code команды для проверки кода и передачи задач в Codex. Задачу отдаёт команда `/codex:rescue`: её выполняет субагент `codex:codex-rescue`, который вызывает ваш локальный Codex CLI. Astra будет работать, только если назвать её явно: без `--model` Codex выбирает модель по своим умолчаниям. Нужны Node.js 18.18 или новее и вход в Codex через ChatGPT или ключ OpenAI API; расход учитывается в лимитах Codex. По данным OpenAI на 26 октября 2026 года, на тарифах Free и Go в Codex доступна GPT-6 Luna, а не Astra, Plus и стандартный Business дают примерно от 5 до 45 локальных сообщений Astra за 5 часов, а у Pro пятичасового лимита нет.

1. Добавьте каталог плагинов OpenAI: `/plugin marketplace add openai/codex-plugin-cc`.
2. Установите плагин командой `/plugin install codex@openai-codex` и выполните `/reload-plugins`.
3. Запустите `/codex:setup`. Команда проверяет, установлен ли Codex и выполнен ли вход; если Codex нет, а npm есть, она предложит его установить. Если входа нет, введите `!codex login`.
4. Передайте задачу, явно указав модель:

   ```text
   /codex:rescue --model gpt-6-astra --effort medium исправь падающие тесты в textkit/slug.py
   ```

5. Для долгих задач добавьте `--background`, а ход работы и результат смотрите командами `/codex:status` и `/codex:result`; `/codex:cancel` останавливает задачу.

12 ноября 2026 года плагин 1.0.6 был установлен в чистую конфигурацию Claude Code, а Codex CLI 0.166.0 был подключён к аккаунту ChatGPT. Скрипт плагина запустили так же, как его вызывает субагент `codex:codex-rescue` (`codex-companion.mjs task --write --model gpt-6-astra --effort medium` с той же задачей), и Codex исправил файл за 28 секунд, все 4 теста прошли. Саму команду `/codex:rescue` в интерактивном сеансе Claude не вводили: проверен скрипт, который она вызывает.

Модель здесь проверяют по журналу Codex, а не вопросом к ней: на просьбу назвать себя она ответила «I’m Codex, based on GPT-6». В файле сеанса Codex (каталог `~/.codex/sessions`) записаны `"model":"gpt-6-astra"` и `"reasoning_effort":"medium"`, а также 130 507 входных токенов, из них 112 128 из кэша, и 369 выходных.

В установленных файлах плагина видны ещё три детали. Субагент по умолчанию передаёт Codex флаг `--write`, то есть Codex сразу правит файлы в репозитории. Сам субагент описан с `model: sonnet`, поэтому передачу задачи и пересказ результата обслуживает Claude, а не Astra. Необязательная проверка ответов Claude через Codex (review gate, включается через `/codex:setup --enable-review-gate`), по предупреждению OpenAI, может быстро исчерпать лимиты.

## Первые ошибки: 503, предупреждение о 200k и 400 Extra inputs

Первой обычно появляется ошибка 503: так заканчивается попытка подключить Astra без прокси, прямо к шлюзу. Предупреждение о 200k ошибкой не является и работу не останавливает, а 400 возникает у прокси, который пересылает поля Claude Code без перевода.

### 503 Current group default has no available channels for model gpt-6-astra

Так ответил laozhang.ai 12 ноября 2026 года на запрос к `https://api.laozhang.ai/v1/messages` с моделью `gpt-6-astra`: и через curl, и из Claude Code 2.1.316, у которого в `ANTHROPIC_BASE_URL` стоял адрес шлюза, а во всех четырёх переменных модели — `gpt-6-astra`. Деньги за такие запросы не списались. В Claude Code ошибка выглядит так:

*Примечание: [laozhang.ai — наш собственный сервис](https://blog.laozhang.ai/ru/about#laozhang); его цены — наши тарифы, а не независимое сравнение.*

```text
API Error: 503 Current group default has no available channels for model gpt-6-astra under billing mode [pay-as-you-go, pay-per-request] (request id: …). This is a server-side issue, usually temporary — try again in a moment. If it persists, check your inference gateway (api.laozhang.ai).
```

Слова «usually temporary» — стандартный текст Claude Code для любой ошибки 5xx, здесь повтор не поможет: эндпоинт laozhang.ai в формате Claude не отдаёт Astra. В документации шлюза для Claude Code перечислены модели Claude, GLM и DeepSeek, а `gpt-6-astra` указана для `/v1/chat/completions` и `/v1/responses`; отдельная группа токенов `Claude Code` не проверялась, но GPT в её списке тоже нет. Решение — прокси из раздела о LiteLLM, который ходит на OpenAI-совместимый адрес. Другие шлюзы могут переводить форматы на своей стороне, поэтому прежде чем менять настройки Claude Code, отправьте на их `/v1/messages` один запрос через curl. Если доступ к Astra через API ещё не настроен, ключ и первый запрос описаны в статье [«Доступ к GPT-6 Astra API: ключ, первый запрос и ошибки подключения»](https://blog.laozhang.ai/ru/posts/gpt-6-astra-api-access).

### Model "gpt-6-astra" isn't recognized · context assumed to be 200k tokens

Это предупреждение, а не ошибка: работа идёт дальше, но Claude Code считает окно модели равным 200 000 токенов и сжимает контекст на этом пороге. В режиме `claude -p` та же мысль выводится длинной фразой «Claude Code doesn't recognize the model "gpt-6-astra", so it assumes a context window of 200k tokens». Предупреждение исчезает, когда задана переменная `CLAUDE_CODE_MAX_CONTEXT_TOKENS`; почему в ней стоит 272 000, объяснено после шагов настройки прокси.

### 400 Extra inputs are not permitted

По документации Anthropic, такая ошибка появляется, когда шлюз пересылает тело запроса Claude Code без изменений провайдеру с другой схемой и тот отвергает незнакомые поля, например `context_management` или `output_config`. Claude Code один раз сам повторяет запрос без `output_config.effort` или `context_management`, и только если не помогло, показывает ошибку. С LiteLLM 1.109.1 в тесте ни одной ошибки 400 не было. Если она появилась с другим прокси, задайте `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`: Claude Code перестанет отправлять экспериментальные возможности и парные им значения `anthropic-beta`, а effort при этом останется.

## Что в связке Claude Code и Astra не проверялось

Все цифры выше получены 12 ноября 2026 года на одном компьютере, на одной маленькой задаче, по одному запуску на вариант. В эти запуски не попали веб-поиск и загрузка страниц (WebSearch, WebFetch), изображения, субагенты, серверы MCP, долгие сеансы и автоматическое сжатие контекста; для веб-поиска у LiteLLM есть отдельная страница «Claude Code - WebSearch Across All Providers». Не устанавливался и Claude Code Router (CCR): версия 3.1.3 от 9 октября 2026 года поднимает локальный шлюз на `http://127.0.0.1:3456` и, по описанию проекта, умеет отправлять запросы в форматах OpenAI Chat и Responses. Поскольку Anthropic такие схемы не поддерживает, любое обновление Claude Code может их сломать, и после обновления стоит повторить проверку через curl и заглянуть в `/status`.

## GPT-6 Astra в Claude Code: другие вопросы

### Можно ли обойтись подпиской ChatGPT вместо ключа API?

Да, но только через плагин Codex: Codex CLI входит через аккаунт ChatGPT, а схема с прокси требует ключ API. Для Astra нужен тариф Plus или выше (по данным OpenAI на 26 октября 2026 года). Существуют самодельные обратные прокси, которые используют вход ChatGPT за пределами Codex, но разрешает ли так делать OpenAI, нигде не подтверждено, и строить на них рабочую схему рискованно.

### Что выбрать для работы в Claude Code: GPT-6 Astra или Fable 5.2?

Это вопрос выбора модели, а не подключения: результаты, цены и стоимость типичной задачи для обеих моделей сопоставлены в статье [«Fable 5.2 или GPT-6 Astra: что выбрать и сколько стоит задача»](https://blog.laozhang.ai/ru/posts/claude-fable-5-2-vs-gpt-6-astra).
