3 мин чтения

GPT в Claude Code через прокси: где ломается

claude-codegpt-modelsllm-proxy

Claude Code можно направить на GPT-модели через Anthropic-совместимый прокси: инструмент видит знакомый API, а прокси переводит запросы к OpenAI или другому бэкенду. Это практично, но хрупко: в обсуждениях всплывают проблемы с subagents, tool-calling и стримингом; в примерах фигурируют ANTHROPIC_BASE_URL и ANTHROPIC_AUTH_TOKEN.

Как это вообще подключают

Claude Code можно направить на внешние GPT-class модели через Anthropic-совместимый прокси: для самого инструмента это выглядит как обычный Anthropic endpoint, а прокси переводит запросы к OpenAI или другому провайдеру. В официальной документации Anthropic по Claude Code это укладывается в два механизма: сетевые proxy-переменные HTTP_PROXY и HTTPS_PROXY и паттерн LLM gateway.

Типовая схема простая: поднимается локальный или gateway-прокси, затем Claude Code получает ANTHROPIC_BASE_URL и токен вроде ANTHROPIC_AUTH_TOKEN или ANTHROPIC_API_KEY. В tutorial LiteLLM описан именно такой поток: запустить proxy через litellm --config, проверить совместимость Anthropic-формата и уже потом запускать claude.

На бумаге это не выглядит грязным хаком. Claude Code не обязан знать, что за прокси сидит GPT, Gemini, OpenRouter-style backend или другой роутер. Вся магия и вся боль находятся в слое перевода: сообщения, tool calls, streaming, структура ответа, маршрутизация моделей.

Отдельно интересны community-сценарии с subagents. В обсуждениях на Reddit люди пробуют маппить отдельных агентов на разные модели, например code-reviewer на gpt-4o, а data-analyst на o3. Это уже не просто смена модели, а попытка пересобрать поведение агентного инструмента чужими руками.

Где оно начинает ехать боком

Главный риск не в том, что прокси не ответит, а в том, что он ответит почти правильно. Для обычного чата этого хватает, но Claude Code сильно опирается на tool-calling, потоковую выдачу и корректное понимание промежуточных результатов.

Если Anthropic-style tools переводятся в формат другого провайдера с потерями, агент может начать ходить кругами. Отсюда и жалобы на subagent spam: модель или прокси снова и снова провоцируют делегирование, вместо того чтобы закрыть задачу. В supplied Reddit-контексте это именно community-reported поведение, а не официально описанный баг Claude Code.

Я бы первым делом смотрел не на качество финального ответа, а на трассу: какие tool calls реально уходят, как возвращаются результаты, не режется ли контекст, не ломается ли streaming. Агентный кодинг обычно умирает не красиво, а мелкими рассинхронами.

Практический вывод без романтики

Прокси для GPT в Claude Code имеет смысл как инженерный эксперимент или как способ подключить gateway-роутинг, но стабильность там определяется самым слабым переводчиком форматов. LiteLLM, Bifrost, Kong AI Proxy и GitHub-proxy проекты решают похожую задачу, но edge cases у них будут разными.

Побеждает не тот backend, у которого модель умнее в вакууме, а тот, кто лучше имитирует Anthropic-поведение для Claude Code. Если subagents начинают спамить, это почти всегда сигнал не про один плохой prompt, а про трение между агентной логикой Claude Code и чужой модельной семантикой. Вот это место и остается самым нервным во всей схеме.

Ранее мы подробно рассматривали, как LLM-прокси и слои абстракции помогают избежать жёсткой привязки к одному вендору. Эта инженерная практика напрямую перекликается с тем неоднозначным опытом, который мы получили при попытке подключить GPT-модели в Claude Code через прокси и столкнулись со спамом от сабагентов.