Примечание автора: NPM-пакет Claude Code должен работать через нативный интерфейс /v1/messages, однако на практике запросы часто уходят на /v1/chat/completions. В этой статье мы разберем 6 вероятных причин такого поведения, предложим 5-шаговый план диагностики и покажем правильную настройку для работы через APIYI.
Согласно официальной документации, @anthropic-ai/claude-code, установленный через NPM, в среде командной строки должен всегда отправлять запросы на эндпоинт /v1/messages. Это протокол нативного API Anthropic, который требует наличия заголовка anthropic-version и специфического формата messages.
Если при перехвате трафика вы видите /v1/chat/completions (формат OpenAI Chat Completions) — это значит, что на каком-то этапе происходит конвертация протокола или подмена пакета. Это не баг самого Claude Code, а результат одной из 6 типичных проблем с конфигурацией или окружением.
Ключевая ценность: В этой статье мы подробно разберем эти 6 причин (включая установку сторонних пакетов, перенаправление ANTHROPIC_BASE_URL на прокси-шлюзы, перехват через claude-code-router и т.д.), предложим 5-шаговый план диагностики и приведем пример правильной настройки для работы через сервис-прокси API APIYI (apiyi.com), чтобы гарантированно использовать нативный /v1/messages.

I. Почему Claude Code должен использовать /v1/messages: разбор механизмов
Прежде чем приступать к диагностике, давайте разберемся с ожидаемым поведением официального Claude Code.
1.1 Дизайн протокола официального пакета @anthropic-ai/claude-code
Официальный NPM-пакет @anthropic-ai/claude-code от Anthropic всегда использует только нативный протокол Messages API. Вот как это выглядит:
| Параметр | Поведение официального Claude Code |
|---|---|
| Эндпоинт запроса | POST {ANTHROPIC_BASE_URL}/v1/messages |
| Заголовки запроса | x-api-key, anthropic-version: 2023-06-01, anthropic-beta |
| Формат тела запроса | { "model": "...", "messages": [...], "system": "...", "max_tokens": ... } |
| Формат ответа | { "content": [...], "stop_reason": "...", "usage": {...} } |
| Потоковый ответ | SSE-поток, типы событий: message_start, content_block_delta |
Если при перехвате вы видите /v1/chat/completions, заголовок Authorization: Bearer ... или массив choices в теле запроса — это признаки протокола OpenAI. Это означает, что запрос идет не по тому пути, который предусмотрен официальным Claude Code.
1.2 Правильное использование переменных окружения
Официальный Claude Code распознает только следующие переменные окружения для настройки API:
# Обязательно: API-ключ Anthropic или ключ совместимого сервиса
ANTHROPIC_AUTH_TOKEN=sk-your-key
# Или синоним:
ANTHROPIC_API_KEY=sk-your-key
# Опционально: пользовательский адрес API-шлюза (не добавляйте суффикс /v1)
ANTHROPIC_BASE_URL=https://api.anthropic.com
# Опционально: ID модели
ANTHROPIC_MODEL=claude-sonnet-4-5
ANTHROPIC_SMALL_FAST_MODEL=claude-haiku-4-5
Обратите внимание: У официального Claude Code нет переменных вроде OPENAI_BASE_URL или CLAUDE_CODE_USE_OPENAI. Если они есть в вашем окружении, значит, вы используете стороннюю обертку (wrapper).
💡 Совет для быстрой проверки: Выполните в терминале
which claude, чтобы узнать путь установки, а затемcat $(which claude) | head -20. Если вы видите упоминание@anthropic-ai/claude-code, значит, у вас официальная версия. Если же встречаютсяopenclaude,claudex,cli-agent-openai-adapterи подобные названия — причина найдена.
二、6 причин, почему Claude Code переходит в режим совместимости с OpenAI
Ниже приведен список причин, отсортированный по вероятности возникновения. Рекомендуем проверять их именно в этом порядке.
2.1 Причина №1: Случайная установка стороннего пакета OpenAI Wrapper (около 35% случаев)
В NPM существует множество пакетов с похожими названиями, но совершенно другим функционалом, предназначенных для преобразования протоколов под OpenAI. Клиенты часто устанавливают их по ошибке:
| Имя пакета | Реальный функционал | Протокол по умолчанию |
|---|---|---|
@anthropic-ai/claude-code |
✅ Официальный пакет | /v1/messages |
@gitlawb/openclaude |
OpenAI shim | /v1/chat/completions |
@aryanjsx/openclaude |
OpenAI shim | /v1/chat/completions |
cli-agent-openai-adapter |
Конвертер протоколов | /v1/chat/completions |
claude-code-openai-wrapper |
Двухпротокольный wrapper | Поддерживает оба |
claudex |
OpenAI-прокси на Go | /v1/chat/completions |
Метод диагностики:
# 1. Просмотр фактического пути установки
which claude
# Пример вывода: /usr/local/bin/claude
# 2. Проверка поля name в package.json пакета
cat $(npm root -g)/@anthropic-ai/claude-code/package.json 2>/dev/null | grep '"name"'
# 3. Просмотр всех установленных глобально пакетов, связанных с claude
npm list -g --depth=0 | grep -i claude
Если npm list не показывает @anthropic-ai/claude-code, но находит другие похожие пакеты — вы установили не то.
2.2 Причина №2: Настроен инструмент маршрутизации, например claude-code-router (около 25% случаев)
claude-code-router (CCR) — популярный в сообществе инструмент, который перехватывает запросы Claude Code и перенаправляет их на другие модели (например, OpenAI, DeepSeek, Zhipu). Принцип работы:
- Запускается локальный прокси-сервер (по умолчанию
http://localhost:3456). - Пользователь указывает
ANTHROPIC_BASE_URLна этот локальный прокси. - CCR получает запрос
/v1/messages, транслирует его в/v1/chat/completionsи пересылает целевой модели. - При перехвате трафика вы видите протокол OpenAI.
Метод диагностики:
# Проверка переменных окружения
env | grep -i ANTHROPIC
# Если видите что-то вроде ANTHROPIC_BASE_URL=http://localhost:3456 или http://127.0.0.1:xxx
# Скорее всего, это CCR / claude-code-router или аналогичный локальный прокси.
2.3 Причина №3: ANTHROPIC_BASE_URL указывает на шлюз, совместимый с OpenAI (около 20% случаев)
Некоторые LLM-шлюзы (например, LiteLLM Proxy, OneAPI, Bifrost), хотя и поддерживают настройку моделей Anthropic, раскрывают только интерфейс /v1/chat/completions. Если клиент указывает ANTHROPIC_BASE_URL на такой шлюз:
- Claude Code по-прежнему отправляет запросы в формате
/v1/messages. - Шлюз возвращает 404 или автоматически переписывает путь.
- Внутри шлюза запрос преобразуется в формат OpenAI для вызова вышестоящего API.
- Если инструмент захвата трафика развернут после шлюза, он увидит протокол OpenAI.
Метод диагностики: проверьте, является ли ANTHROPIC_BASE_URL известным шлюзом, совместимым с OpenAI, и успешно ли проходят запросы (200 или 404).
2.4 Причина №4: Установлены переменные окружения для сторонних Wrapper-пакетов (около 10% случаев)
Некоторые пакеты-обертки переключают протоколы через переменные окружения, например:
# Переменные для переключения openclaude
CLAUDE_CODE_USE_OPENAI=1
OPENAI_API_KEY=sk-xxx
OPENAI_MODEL=gpt-4o
OPENAI_BASE_URL=https://api.openai.com/v1
Даже если установлен официальный пакет, если в PATH есть скрипт-обертка (например, /usr/local/bin/claude на самом деле является wrapper), эти переменные будут активны.
Метод диагностики:
# Список всех исполняемых файлов с именем claude в PATH
type -a claude
# Проверка наличия соответствующих переменных окружения
env | grep -E 'CLAUDE_CODE|OPENAI_BASE_URL|OPENAI_MODEL'
2.5 Причина №5: Перехват через Shell alias или скрипт-обертку (около 7% случаев)
Клиент мог настроить alias в ~/.bashrc / ~/.zshrc:
# Такой alias подменяет оригинальную команду claude
alias claude='openclaude'
alias claude='claude-code-router run'
# Или определена функция с тем же именем
claude() {
CCR_PROXY=http://localhost:3456 command claude "$@"
}
Метод диагностики:
# Просмотр alias
alias | grep claude
# Просмотр функции
type claude
# Просмотр файлов запуска оболочки
grep -nE 'claude' ~/.bashrc ~/.zshrc ~/.profile 2>/dev/null
2.6 Причина №6: Ошибочная интерпретация при захвате трафика (около 3% случаев)
В редких случаях инструмент захвата трафика развернут неверно, и перехваченные запросы не являются теми, что на самом деле отправляет Claude Code. Например:
- Claude Code → Локальный прозрачный прокси (например, mitmproxy) → Удаленный шлюз OpenAI.
- Инструмент захвата стоит после шлюза и видит уже переписанный запрос.
- На самом деле Claude Code отправляет именно
/v1/messages.
Метод диагностики: используйте mitmproxy локально на машине клиента, чтобы напрямую проксировать процесс Claude Code и подтвердить, какой протокол используется в первом звене.
Три: 5 шагов для быстрой диагностики проблем с протоколом Claude Code

Выполняйте проверку по порядку — большинство проблем с протоколом решаются в первые 3 шага.
3.1 Шаг 1: Убедитесь, что установлен официальный NPM-пакет
# Удаление всех возможных оберток
npm uninstall -g @gitlawb/openclaude @aryanjsx/openclaude cli-agent-openai-adapter claudex claude-code-router 2>/dev/null
# Удаление и переустановка официального пакета
npm uninstall -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
# Проверка версии и источника
claude --version
npm list -g @anthropic-ai/claude-code
Условие прохождения: вывод npm list -g содержит @anthropic-ai/[email protected].
3.2 Шаг 2: Очистка PATH и Shell alias
# Поиск всех исполняемых файлов claude в PATH
type -a claude
which -a claude
# Удаление alias / функций с тем же именем
unalias claude 2>/dev/null
unset -f claude 2>/dev/null
# Проверка и очистка конфигураций, связанных с claude, в скриптах запуска оболочки
grep -n 'claude' ~/.bashrc ~/.zshrc ~/.profile 2>/dev/null
Условие прохождения: type -a claude выводит только один путь, указывающий на официальный пакет в глобальной директории npm.
3.3 Шаг 3: Очистка конфликтующих переменных окружения
# Просмотр всех переменных, связанных с claude / openai
env | grep -iE 'claude|openai|anthropic'
# Очистка потенциально конфликтующих переменных
unset CLAUDE_CODE_USE_OPENAI
unset OPENAI_BASE_URL
unset OPENAI_MODEL
unset CCR_PROXY
# Оставьте только необходимые переменные
export ANTHROPIC_BASE_URL="https://vip.apiyi.com"
export ANTHROPIC_AUTH_TOKEN="sk-your-apiyi-key"
🎯 Важное напоминание:
ANTHROPIC_BASE_URLдолжен указывать на корневой домен (без суффикса/v1), так как Claude Code автоматически добавляет/v1/messages. Если вы укажетеhttps://vip.apiyi.com/v1, путь превратится вhttps://vip.apiyi.com/v1/v1/messages, что приведет к ошибке 404.
3.4 Шаг 4: Тестирование поддержки /v1/messages через curl
Используйте curl, чтобы имитировать запрос Claude Code и проверить, действительно ли шлюз поддерживает нативный протокол Anthropic:
curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 100,
"messages": [{"role": "user", "content": "Hello"}]
}'
Условие прохождения: ответ 200, тело ответа содержит "type": "message" и "content": [...].
Если возвращается 404 или тело ответа в формате OpenAI (содержит choices), значит шлюз не поддерживает нативный протокол Anthropic. В этом случае переход на APIYI (apiyi.com) решит проблему — он поддерживает как нативный /v1/messages, так и совместимый /v1/chat/completions.
3.5 Шаг 5: Проверка через локальный перехват трафика
Если первые 4 шага пройдены, но проблема осталась, используйте mitmproxy для проверки:
# Запуск mitmproxy (порт по умолчанию 8080)
mitmproxy --listen-port 8080
# Настройка Claude Code на использование локального прокси
export HTTPS_PROXY=http://localhost:8080
export HTTP_PROXY=http://localhost:8080
# Запуск Claude Code
claude
Условие прохождения: первый запрос, перехваченный mitmproxy, — это POST /v1/messages, заголовок содержит anthropic-version.
IV. Полная настройка Claude Code через APIYI для работы с нативным протоколом /v1/messages
APIYI (apiyi.com) — один из немногих сервисов-прокси API, который полностью поддерживает нативный протокол Anthropic Messages API. Это гарантирует, что Claude Code будет использовать эндпоинт /v1/messages, а не /v1/chat/completions.
4.1 Настройка переменных окружения (самый простой способ)
# macOS / Linux
export ANTHROPIC_BASE_URL="https://vip.apiyi.com"
export ANTHROPIC_AUTH_TOKEN="sk-your-apiyi-key"
# Опционально: укажите модель по умолчанию
export ANTHROPIC_MODEL="claude-sonnet-4-5"
export ANTHROPIC_SMALL_FAST_MODEL="claude-haiku-4-5"
# Windows PowerShell
$env:ANTHROPIC_BASE_URL = "https://vip.apiyi.com"
$env:ANTHROPIC_AUTH_TOKEN = "sk-your-apiyi-key"
# Запуск Claude Code
claude
4.2 Постоянная конфигурация в файле запуска Shell
# Добавьте в ~/.zshrc или ~/.bashrc
cat >> ~/.zshrc <<'EOF'
# Конфигурация Claude Code через сервис-прокси APIYI
export ANTHROPIC_BASE_URL="https://vip.apiyi.com"
export ANTHROPIC_AUTH_TOKEN="sk-your-apiyi-key"
export ANTHROPIC_MODEL="claude-sonnet-4-5"
EOF
# Перезагрузка конфигурации
source ~/.zshrc
4.3 Использование встроенной команды настройки Claude Code (рекомендуется)
Claude Code имеет собственный CLI для конфигурации, что позволяет избежать утечки переменных окружения:
# Способ 1: Интерактивный
claude /login
# Выберите "Custom Endpoint", введите https://vip.apiyi.com и ваш API-ключ
# Способ 2: Прямое редактирование файла настроек
cat > ~/.claude/settings.json <<'EOF'
{
"env": {
"ANTHROPIC_BASE_URL": "https://vip.apiyi.com",
"ANTHROPIC_AUTH_TOKEN": "sk-your-apiyi-key"
}
}
EOF
4.4 Проверка фактического пути запроса после настройки
После запуска Claude Code откройте новый терминал и выполните проверку:
# Способ 1: Перехват трафика через mitmproxy (самый точный)
mitmproxy --listen-port 8080
# В другом терминале запустите Claude Code с переменной HTTPS_PROXY=http://localhost:8080
# Способ 2: Включение отладочных логов Claude Code
ANTHROPIC_LOG=debug claude
# В логах будут видны полные URL запросов и методы
Ожидаемый результат: все URL запросов должны выглядеть как https://vip.apiyi.com/v1/messages, метод POST, заголовок запроса содержит anthropic-version: 2023-06-01.
4.5 Ключевые преимущества APIYI
| Преимущество | Описание |
|---|---|
| Нативная поддержка /v1/messages | Родной протокол Claude Code, нулевые потери при конвертации |
| Поддержка /v1/chat/completions | Один ключ для двух протоколов, гибкая адаптация |
| Сохранение заголовков anthropic-beta | Поддержка кэширования промптов, использования инструментов и др. |
| Без лимитов на параллельные запросы | Claude Code не будет ограничиваться в длинных сессиях |
| Бонус при пополнении | При пополнении на 100$ начисляется +10% |
| Удобная оплата | Прямая оплата в рублях через WeChat/Alipay |
V. Сравнение протоколов: нативный /v1/messages vs OpenAI /v1/chat/completions

Понимание ключевых различий между протоколами необходимо для осознания того, почему Claude Code требует нативного протокола для полной реализации своих возможностей.
| Характеристика | Anthropic /v1/messages | OpenAI /v1/chat/completions |
|---|---|---|
| Заголовок авторизации | x-api-key: sk-... |
Authorization: Bearer sk-... |
| Заголовок версии | anthropic-version: 2023-06-01 |
Нет (версия в URL) |
| Заголовки функций | anthropic-beta: prompt-caching-... |
Нет единого стандарта |
| Поле system | Отдельное поле верхнего уровня | Роль system в messages[0] |
| Формат ответа | { "content": [...], "stop_reason": "..." } |
{ "choices": [{ "message": {...} }] } |
| События потока (stream) | Структурированные события: message_start, content_block_delta и др. |
Стандартные SSE data: {...} |
| Вызов инструментов | Вложенные tool_use в блоках контента |
choices[0].message.tool_calls |
| Подсчет токенов | usage.input_tokens / usage.output_tokens |
usage.prompt_tokens / usage.completion_tokens |
Ключевой вывод: Claude Code активно использует уникальные функции Anthropic (кэширование промптов, потоковые инкременты tool_use, рассуждения и т.д.). При принудительной конвертации в протокол OpenAI эти возможности теряются или работают некорректно. Именно поэтому критически важно обеспечить работу через нативный /v1/messages.
六、各使用场景排查清单
6.1 场景一:个人开发者本地使用
最常见原因:Shell alias 或 PATH 中存在同名的 wrapper。
排查清单:
-
npm list -g— проверяем, нет ли в списке@anthropic-ai/claude-code -
type -a claude— убеждаемся, что команда указывает только на официальный пакет -
~/.zshrc/~/.bashrc— проверяем наличиеalias claude=... -
env | grep -i claude— ищем нестандартные переменные окружения -
ANTHROPIC_BASE_URL— убеждаемся, что в конце нет суффикса/v1(он не нужен)
6.2 场景二:团队/公司环境部署
最常见原因:Внутренний LLM-шлюз поддерживает только протокол OpenAI.
排查清单:
- Поддерживает ли корпоративный шлюз эндпоинт
/v1/messages«из коробки»? - Пересылает ли шлюз заголовки
anthropic-versionиanthropic-beta? - Сохраняет ли шлюз исходный формат событий SSE?
- Нет ли в компании единого wrapper-скрипта?
Если корпоративный шлюз действительно работает только с протоколом OpenAI, рекомендуем изменить ANTHROPIC_BASE_URL на APIYI (apiyi.com). Это обеспечит прямую работу с нативным протоколом и избавит от потерь при конвертации.
6.3 场景三:CI/CD окружение и Claude Code
最常见原因:В CI-скриптах жестко прописан сторонний wrapper.
排查清单:
- Устанавливает ли CI-конфигурация неофициальные пакеты через
npm install -g? - Есть ли в переменных окружения CI такие параметры, как
CLAUDE_CODE_USE_OPENAI=1? - Предустановлен ли wrapper в образе CI-раннера?
6.4 场景四:Запуск внутри Docker-контейнера
最常见原因:В базовом образе уже предустановлен wrapper.
排查清单:
- Является ли пакет, установленный через
RUN npm install -gв Dockerfile, официальным? - Куда указывает
which claudeвнутри контейнера? - Установлены ли в ENV контейнера переменные для переключения протоколов?
七、FAQ: Проблемы с протоколом в Claude Code
Q1: Я установил официальный @anthropic-ai/claude-code, почему он все равно использует протокол OpenAI?
Скорее всего, ANTHROPIC_BASE_URL указывает на шлюз, совместимый с OpenAI. Некоторые шлюзы при получении запроса /v1/messages внутренне конвертируют его в /v1/chat/completions для вызова вышестоящего API. Если ваш инструмент для перехвата трафика стоит после шлюза, вы увидите уже преобразованный протокол.
Решение: укажите в ANTHROPIC_BASE_URL адрес APIYI (apiyi.com). Он поддерживает /v1/messages нативно, без потерь при конвертации.
Q2: Как полностью удалить все возможные wrapper для Claude?
# Вывести список всех глобальных пакетов, связанных с claude
npm list -g --depth=0 | grep -i claude
# Удалить известные wrapper одним махом
npm uninstall -g \
@gitlawb/openclaude \
@aryanjsx/openclaude \
cli-agent-openai-adapter \
claudex \
claude-code-router \
ccr \
2>/dev/null
# Переустановить официальный пакет
npm install -g @anthropic-ai/claude-code
# Проверка
which claude
claude --version
Q3: До какого уровня нужно указывать путь в ANTHROPIC_BASE_URL?
Указывайте только корень домена, без суффикса /v1. Claude Code автоматически добавит /v1/messages.
# ✅ Правильно
export ANTHROPIC_BASE_URL="https://vip.apiyi.com"
# ❌ Ошибка (получится /v1/v1/messages)
export ANTHROPIC_BASE_URL="https://vip.apiyi.com/v1"
# ❌ Ошибка (указан путь к эндпоинту)
export ANTHROPIC_BASE_URL="https://vip.apiyi.com/v1/messages"
Q4: Почему в некоторых туториалах советуют ставить claude-code-router?
claude-code-router — это сообщественный инструмент, созданный для того, чтобы позволить Claude Code вызывать модели не от Anthropic (например, DeepSeek, Zhipu, локальные Ollama и т.д.). Это работает через конвертацию протоколов.
Если вы хотите использовать оригинальные модели Anthropic (например, Claude Sonnet 4.5, Opus 4.7), CCR не нужен. Просто подключитесь к APIYI (apiyi.com) через нативный /v1/messages — это даст лучший опыт без лишних преобразований.
Q5: Поддерживает ли APIYI (apiyi.com) одновременно /v1/messages и /v1/chat/completions?
Да, APIYI полностью совместим с обоими протоколами:
https://vip.apiyi.com/v1/messages— нативный формат Anthropic (по умолчанию для Claude Code)https://vip.apiyi.com/v1/chat/completions— формат, совместимый с OpenAI
Один API-ключ можно использовать для обоих протоколов, клиентские инструменты адаптируются автоматически.
Q6: Если в перехваченном трафике URL — https://vip.apiyi.com/v1/messages, значит ли это, что используется нативный режим?
Не обязательно. Нужно проверить следующее:
- Заголовок запроса содержит
anthropic-version: 2023-06-01. - В теле запроса на верхнем уровне есть массив
messagesи отдельное полеsystem(а не роль system внутриmessages). - В ответе есть
"type": "message"иcontent: [...](а неchoices: [...]).
Если URL — /v1/messages, но тело запроса в формате OpenAI (с ролью system внутри messages), значит, клиент использует собственный слой конвертации.
Q7: Какая переменная окружения включает debug-логи для Claude Code?
# Вывод подробных логов HTTP-запросов и ответов
ANTHROPIC_LOG=debug claude
# Или через verbose-режим
claude --verbose
# Просмотр диагностической информации самого Claude Code
claude /doctor
Debug-логи показывают полные URL, заголовки и тела запросов (чувствительные данные маскируются) — это самый прямой способ диагностики проблем с протоколом.
Q8: Мой Claude Code работал нормально, но недавно внезапно переключился на протокол OpenAI. В чем причина?
Наиболее вероятные причины:
- Обновили Claude Code, но при
npm install -gслучайно установили сторонний пакет с тем же именем. - Команда недавно развернула LLM-шлюз и обновила
ANTHROPIC_BASE_URL. - После обновления macOS некоторые alias активировались заново.
- Компания включила прозрачный прокси для аудита протоколов.
При поиске проблемы в первую очередь проверьте последние изменения в окружении (историю установки npm, правки в конфигах shell, уведомления об изменениях шлюза).
八、Key Takeaways: Основные выводы
- ✅ Официальный пакет
@anthropic-ai/claude-codeвсегда использует/v1/messages, официального режима совместимости с OpenAI не существует. - ✅ 6 вероятных причин (по убыванию вероятности): установка стороннего пакета / перехват через
claude-code-router/base_urlуказывает на шлюз OpenAI / сторонние переменные окружения / Shell alias / ошибка интерпретации при перехвате трафика. - ✅ 5 шагов для быстрой диагностики: проверка имени пакета → очистка PATH/alias → очистка переменных окружения → curl-тест
base_url→ проверка через локальный перехват трафика. - ✅ Не добавляйте суффикс
/v1вANTHROPIC_BASE_URL, Claude Code добавит его автоматически. - ✅ APIYI (apiyi.com) поддерживает
/v1/messagesнативно, а также совместим с/v1/chat/completions— один ключ для двух протоколов. - ✅ Преимущества использования нативного протокола: полная поддержка уникальных функций Anthropic, таких как prompt caching, tool_use, reasoning content и других.
- ✅ Метод быстрой проверки: используйте
ANTHROPIC_LOG=debug claude, чтобы увидеть фактический URL запроса и метод.
九、Заключение
Claude Code, установленный через NPM, в командной строке всегда должен использовать нативный протокол /v1/messages — это жестко закодированное поведение официального пакета @anthropic-ai/claude-code, и никаких официальных переключателей для перехода на режим совместимости с OpenAI не предусмотрено. Если при перехвате трафика вы видите /v1/chat/completions, проблема определенно кроется в окружении клиента: либо ошибочно установлен сторонний wrapper, либо ANTHROPIC_BASE_URL указывает на шлюз, поддерживающий только протокол OpenAI, либо Shell alias или переменные окружения выполняют перехват и подмену.
Если следовать 5-шаговому процессу диагностики из третьей главы, большинство проблем можно локализовать менее чем за 10 минут. Самое частое решение: удалить все неофициальные пакеты → переустановить @anthropic-ai/claude-code → указать в ANTHROPIC_BASE_URL сервис-прокси API с нативной поддержкой /v1/messages.
APIYI (apiyi.com) разработан специально для таких сценариев — он нативно поддерживает Anthropic Messages API (включая полную передачу заголовков anthropic-version и anthropic-beta) и одновременно совместим с OpenAI Chat Completions (один ключ для двух протоколов). Нет лимитов на параллельные запросы (длинные сессии Claude Code не будут ограничены), при пополнении на 100 долларов вы получаете бонус 10% (эквивалентно скидке 15% от официальных цен), доступна оплата в юанях (через WeChat/Alipay). Для настройки достаточно установить ANTHROPIC_BASE_URL на https://vip.apiyi.com, никаких изменений в коде не требуется.
🎯 Рекомендация по дальнейшим действиям: попросите клиента выполнить проверку по порядку (3.1 → 3.2 → 3.3), изменить
ANTHROPIC_BASE_URLнаhttps://vip.apiyi.comи после перезапуска Claude Code использоватьANTHROPIC_LOG=debug claude, чтобы убедиться, что URL запроса вернулся к/v1/messages.
Справочные материалы
-
Официальная документация Claude Code: Инструкции по настройке LLM Gateway
- Ссылка:
code.claude.com/docs/en/llm-gateway - Описание: В официальной документации четко указано, что Claude Code использует формат Anthropic Messages API.
- Ссылка:
-
NPM-пакет @anthropic-ai/claude-code: Страница официального NPM-пакета
- Ссылка:
npmjs.com/package/@anthropic-ai/claude-code - Описание: Убедитесь, что вы устанавливаете именно официальный пакет.
- Ссылка:
-
Официальная документация Anthropic Messages API: Спецификация нативного протокола
- Ссылка:
docs.anthropic.com/en/api/messages - Описание: Полная информация о полях, заголовках запросов и формате ответов для эндпоинта
/v1/messages.
- Ссылка:
-
Официальный сайт APIYI: Сервис-прокси API с нативной поддержкой протокола Anthropic
- Ссылка:
apiyi.com - Описание: Нативная поддержка
/v1/messages+ совместимость с/v1/chat/completions, отсутствие лимитов на параллельные запросы, бонус 10% при пополнении от 100 долларов.
- Ссылка:
Автор: Техническая команда
Последнее обновление: 02.05.2026
Об APIYI: APIYI (apiyi.com) — это профессиональный сервис-прокси API для Claude, который обеспечивает нативную поддержку Anthropic Messages API (/v1/messages, включая полную передачу заголовков anthropic-version и anthropic-beta), а также совместимость с OpenAI Chat Completions (/v1/chat/completions). Мы предоставляем стабильный доступ ко всей линейке моделей: Claude Sonnet 4.5, Claude Opus 4.7 и Claude Haiku 4.5. При пополнении счета на 100 долларов вы получаете бонус 10% (что эквивалентно скидке 15% от официальных цен), отсутствие ограничений по количеству параллельных запросов и оперативную техническую поддержку.
