Vibe Coding: Заглянем под капот Claude Code. Часть 2. claude code.. claude code. coding agent.. claude code. coding agent. llm.. claude code. coding agent. llm. python.. claude code. coding agent. llm. python. ReAct-agent.. claude code. coding agent. llm. python. ReAct-agent. vibecoding.. claude code. coding agent. llm. python. ReAct-agent. vibecoding. ии-агенты.. claude code. coding agent. llm. python. ReAct-agent. vibecoding. ии-агенты. искусственный интеллект.. claude code. coding agent. llm. python. ReAct-agent. vibecoding. ии-агенты. искусственный интеллект. Программирование.

В первой части пытался разобрать внутреннее устройство Claude Code: его архитектуру, инструменты и системные промпты. И удалось это сделать, запустив Claude Code с моделью от OpenAI, что дало доступ ко всем логам. В этой статье мы разберем какими средствами можно это сделать.

Claude Code Router (CCR)

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

Как это возможно?
Claude Code позволяет переопределить адрес API через переменную окружения ANTHROPIC_BASE_URL  и CCR использует этот механизм

Переопределенный ANTHROPIC_BASE_URL

Переопределенный ANTHROPIC_BASE_URL

Принцип работы:

  1. Claude Code Router запускает локальный сервер (по умолчанию на порту 3456).

  2. При запуске Claude Code через CCR он автоматически подставляет  ANTHROPIC_BASE_URL=http://127.0.0.1:3456.

  3. Claude Code отправляет запрос в формате Anthropic.

  4. CCR на этом адресе принимает запрос, анализирует и, согласно правилам, выбирает нужную модель (например, DeepSeek, Gemini или OpenAI ).

  5. Он преобразует запрос в формат, понятный целевому API (например, DeepSeek, OpenAI или Gemini ).

  6. Отправляет преобразованный запрос, получает ответ и конвертирует его обратно в формат Anthropic.

Основные возможности:

  • Маршрутизация по задачам: Разные типы задач можно отправлять разным моделям

  • Поддержка множества провайдеров: OpenRouter, DeepSeek, Ollama, Gemini, и другие

  • Трансформация запросов: Адаптация под особенности API каждого провайдера

Установка Claude Code Router

Убедитесь, что у вас уже установлен Claude Code:

npm install -g @anthropic-ai/claude-code

Затем установите сам Router:

npm install -g @musistudio/claude-code-router

Разбор конфигурационного файла

Основные настройки Claude Code Router находятся в файле ~/.claude-code-router/config.json. Если его нет, создайте его.

Пример:

{
  "LOG": true,
  "Providers": [
    {
      "name": "local",
      "api_base_url": "http://10.12.12.123/v1/chat/completions",
      "api_key": "",
      "models": [
        "Qwen2.5-70B"
      ]
    },
	 {
      "name": "openai",
      "api_base_url": "https://api.openai.com/v1/chat/completions",
      "api_key":"sk-proj-....",
      "models": [
        "gpt-4.1-nano",
		"gpt-4.1"
      ]
    },
    
  ],
  "Router": {
    "default": "local,Qwen2.5-70B"
  }
}

Секция Providers

Здесь вы объявляете всех поставщиков моделей. Это может быть как облачный сервис, так и локальный сервер. Каждый объект в Providers – это один поставщик.

  • name: Уникальное имя для провайдера (например, “deepseek”, “openrouter”, “ollama”). Оно будет использоваться в секции Router.

  • api_base_url: Полный URL-адрес эндпоинта API включая chat/completions.

  • api_key: Ключ провайдера.

  • models: Список моделей, которые вы хотите использовать от этого провайдера

  • transformer (необязательно): Используется для преобразования формата запросов и ответов из Anthropic под формат конкретного провайдера (deepseek, gemini, groq, openai).

Пример настройки провайдера OpenRouter (с указанным трансформером) :

{
  "name": "openrouter",
  "api_base_url": "https://openrouter.ai/api/v1/chat/completions",
  "api_key": "sk-xxx",
  "models": [
    "google/gemini-2.5-pro-preview",
    "anthropic/claude-sonnet-4"
  ],
  "transformer": {"use": ["openrouter"]}
}

Секция Router

Router позволяет направлять запросы к разным моделям в зависимости от типа задачи: фоновая работа, размышления, обработка длинного контекста и т. д.

"Router": {
  "default": "deepseek,deepseek-chat",
  "background": "ollama,qwen2.5-coder:latest",
  "think": "deepseek,deepseek-reasoner",
  "longContext": "openrouter,google/gemini-2.5-pro-preview",
}

Формат записи: "провайдер,модель".

Теперь разберем каждый тип задач, который поддерживается CCR:

  • default: Модель по умолчанию.
    Это основная рабочая лошадка. Она используется для всех задач, если не сработали другие, более специфичные правила.

  • background: Модель для фоновых задач.
    Когда срабатывает? Claude Code иногда выполняет небольшие фоновые задачи, например, генерацию кратких описаний или форматирование. Для этого он запрашивает легковесную модель claude-3-5-haiku. Роутер перехватывает запросы к этой модели и перенаправляет их на ту, что указана у вас в “background”.

  • think: Модель для режима планирования и размышлений.
    Когда срабатывает? Когда вы активируете “Plan Mode” или когда Claude Code входит в режим глубоких размышлений, в его запросе к API появляется специальный флаг thinking. Роутер обнаруживает этот флаг и направляет запрос на модель, указанную в “think”.

  • longContext: Модель для обработки длинного контекста.
    Когда срабатывает? Перед каждым запросом роутер с помощью tiktoken подсчитывает общее количество токенов в истории диалога. Если оно превышает порог в 60,000 токенов, запрос автоматически перенаправляется на модель из поля “longContext”.

Запуск Claude Code через Router

После настройки запустите Claude Code Router:

ccr code

Теперь запросы из Claude Code будут автоматически направляться через Router согласно вашим настройкам.

Практические сценарии использования CCR

Когда CCR действительно полезен?

  • Корпоративные ограничения: CCR – это выход, если в организации запрещено использовать сторонние облачные модели, но у вас есть локальные модели или модели от проверенного корпоративного провайдера. В этом случае вы получите мощный агентский движок Claude Code, работающий в рамках ваших политик безопасности.

  • Исследовательские цели: лично я использую CCR для изучения внутренних механизмов Claude Code и работы его субагентов. Это позволяет глубже понимать тонкие места, которые можно улучшить. Например, переопределить некоторые стандартные tools собственными реализациями.

Экономический вопрос: Подписка vs API

Стоит ли использовать Claude Code с моделью от OpenAI или другого провайдера, оплачивая токены по API? Скорее всего, нет.

Основная причина – стоимость. Claude Code генерирует большое количество токенов для планирования, размышлений и анализа кода. Использование его по подписке от Anthropic за ~$20 в месяц почти всегда будет выгоднее, чем оплата того же объема работы через API любого провайдера.

Таким образом, CCR – это в первую очередь инструмент для гибкости, безопасности и экспериментов, а не для прямой экономии на API популярных облачных сервисов.


В следующей статье попробуем разобрать, как происходит планирование и взаимодействие субагентов в Claude Code. Это поможет понять, как декомпозировать задачи и использовать чуть больше потенциала для кодинга.

Пишите в комментариях, работали ли с Claude Code, с какими проблемами сталкиваетесь?

И не забывайте заглядывать в мой Telegram канал.

Автор: DmitriiFilippov

Источник

Rambler's Top100