Claude Code всё ещё использует прежнего провайдера: как проверить маршрут
Base URL уже изменён, но Claude Code ведёт себя по-прежнему: определите проблемный клиент, найдите источник настроек и сопоставьте тестовый запрос с историей провайдера.
Содержание

Вы изменили ANTHROPIC_BASE_URL, но Claude Code, похоже, продолжает обращаться к прежнему сервису. До замены ключа или переустановки клиента проверьте две вещи: какой именно процесс вы тестируете и какой след его запрос оставляет у провайдера. Правильный ответ, название модели в интерфейсе или переменная в терминале сами по себе не устанавливают адрес назначения.
Эта инструкция предполагает, что конфигурация уже создана. Для первой установки и актуальных значений откройте инструкцию по настройке Claude Code. Здесь задача уже: найти источник конфликта и проверить маршрутизацию конкретного клиента.
Начните с наблюдаемого симптома
| Что вы видите | Что сравнить сначала | Что это помогает разделить |
|---|---|---|
| Терминал работает, а VS Code, похоже, использует прежний сервис | Один каталог и по одному запросу из каждого клиента | Общую проблему проекта и различие в запуске или настройках расширения |
| Проблема возникает только в одном проекте | Один клиент в проблемном проекте и в тестовом каталоге | Проектную настройку и источник, общий для всей машины |
| После каждого нового запуска проблема возвращается | Настройки до и после запуска менеджера провайдеров | Сохранённое изменение и значение, которое инструмент записывает заново |
| Claude Code отвечает, но в BetterToken нет подходящей записи | Время, аккаунт, ключ и фильтры истории | Поиск не в том месте и всё ещё неподтверждённый маршрут |
Такие сравнения сужают поиск, но ещё не доказывают причину. До изменений запишите клиент, способ запуска, каталог и время теста.
Разделите shell, файлы и уже запущенный клиент
На macOS или Linux выполните команды в том терминале, из которого собираетесь запускать CLI:
printenv ANTHROPIC_BASE_URL
test -n "$ANTHROPIC_AUTH_TOKEN" && echo "ANTHROPIC_AUTH_TOKEN is set"
test -n "$ANTHROPIC_API_KEY" && echo "ANTHROPIC_API_KEY is set"
Первый вывод относится к этому shell. Две другие строки показывают только наличие значения и не раскрывают ключ. Пустой вывод не доказывает отсутствие аутентификации у Claude Code: её может предоставить другой источник. Эта проверка также не читает окружение уже запущенного процесса или расширения VS Code.
Затем найдите файлы, в которых могут быть определены те же переменные. Из корня проекта команда ниже выводит только имена совпавших файлов в стандартных расположениях:
grep -lE '"ANTHROPIC_(BASE_URL|AUTH_TOKEN|API_KEY)"' \
~/.claude/settings.json \
.claude/settings.json \
.claude/settings.local.json 2>/dev/null
Проверка не охватывает нестандартный каталог конфигурации, managed settings организации или отдельный инструмент запуска. Отсутствие результата означает лишь, что в этих трёх доступных файлах совпадений не найдено. В Windows откройте соответствующие файлы в редакторе, не копируя их содержимое в чат.
Claude Code задаёт приоритет источников настроек, и его нельзя вывести только из значения printenv. Сверьтесь с официальным справочником настроек и выполните /status в CLI, чтобы увидеть загруженные источники. Если действует политика организации, её фактическое значение должен проверить администратор.
Изолируйте различие между терминалом и VS Code
Сохраняйте один каталог и одинаковые параметры теста. В VS Code отдельно проверьте claudeCode.environmentVariables, описанный в инструкции для клиента. Не рассчитывайте, что расширение было запущено с окружением встроенного терминала.
Если вы используете shell-скрипт или менеджер провайдеров, проверьте, задаёт ли он переменные или переписывает файл при запуске. Само наличие .env ничего не доказывает: этот файл влияет на процесс, только если один из компонентов запуска его загружает.
Исправляйте по одному найденному источнику, сохраняя остальные поля файла. Для сравнения двух запусков закройте проверяемый клиент и снова откройте его тем же способом. Для расширения при необходимости перезапустите VS Code. Перезапуск делает сравнение воспроизводимым; из этого не следует, что он обязателен для каждого вида настройки.
Проверьте назначение узнаваемым запросом
В тестовом каталоге без чувствительных данных запишите время и отправьте из проблемного клиента:
Ответь только: ROUTE_CHECK_A7. Не читай файлы,
ничего не изменяй и не запускай команды.
Это короткая инструкция для ответа, а не защитная граница. Не проводите тест в чувствительном репозитории и не разрешайте клиенту дополнительные действия.
Если ожидаемое назначение — BetterToken, откройте историю запросов в Workspace. Проверьте аккаунт и фильтры, затем найдите новые записи рядом с отмеченным временем. Когда ключ можно различить, сопоставьте его, а также модель, статус и расход. Одно действие клиента может породить несколько вызовов, поэтому соответствие «одно сообщение — одна строка» не требуется.
| Результат | Обоснованный вывод | Следующий шаг |
|---|---|---|
| Ответ получен, а для ожидаемого ключа есть согласующиеся записи | Результат теста согласуется с маршрутом через BetterToken | Повторить проверку после нового запуска |
| Ответ получен, но согласующихся записей нет | Адрес назначения пока не подтверждён | Проверить аккаунт, фильтры и задержку отображения, затем другие источники настроек |
| Запись есть, но запрос завершился ошибкой | Запрос достиг сервиса, однако не выполнился корректно | Исправить конфигурацию по справке об API Key и Base URL |
| Несколько клиентов или коллег одновременно используют один ключ | Времени недостаточно, чтобы связать запись с вашим тестом | Повторить тест с личным ключом без параллельной активности |
ROUTE_CHECK_A7 помогает узнать ответ в клиенте; не предполагайте, что этот текст будет виден в истории провайдера. Запись рядом по времени остаётся косвенным признаком, если её могли создать другие запросы.
Когда диагностику можно завершить
Маршрут можно считать подтверждённым, когда проблемный клиент создаёт согласующиеся записи у ожидаемого провайдера и сохраняет этот результат после нового запуска. Если ошибка остаётся только в VS Code, продолжайте проверять его способ запуска и настройки, не меняя повторно уже работающий CLI.
Если назначение остаётся неясным, подготовьте для поддержки версию клиента, способ запуска, зависимость от конкретного каталога, время с часовым поясом, найденные источники настроек и результат сравнения. Удалите API Key, заголовки авторизации и содержимое проекта. Это позволяет воспроизвести различие без передачи доступа.