Перейти к основному содержанию
Протокол Claude — это формат Messages API от Anthropic. SDK Anthropic и Claude Code подключаются к LaoZhang API после замены базового URL на наш и подстановки вашего API-ключа.
Если приложение использует OpenAI SDK, воспользуйтесь протоколом OpenAI: перечисленные ниже модели принимают оба формата. Структуры запросов и ответов у форматов разные, поэтому для каждого клиента выбирайте один из них.

Выбор модели

Берите модель, у которой в столбце Endpoints каталога моделей указан Anthropic Messages. В публичном прайс-листе на 18 октября 2026 года это, в частности:
  • Модели Claude: 11 моделей, например claude-sonnet-5-5 и claude-opus-5-5, доступных в группе токенов default. Полный список и цены — в разделе Anthropic каталога.
  • glm-5.2, которая используется в примерах на этой странице. Она доступна в группе токенов default и через этот протокол ведёт себя почти так же, как официальный Messages API.
  • deepseek-v4-pro
  • deepseek-v4-flash
Модели Claude снова доступны с 18 октября 2026 года. Перед переключением прочитайте раздел «Ограничения моделей Claude», а подробности смотрите в объявлении.
Копируйте ID моделей точно из каталога или страницы цен в консоли, а не составляйте их из названия продукта или ID в Bedrock или Vertex AI.

Ограничения моделей Claude

Модели Claude поддерживают потоковую передачу, использование инструментов, адаптивное мышление, кэширование промптов со временем жизни 5 минут и 1 час, а также ввод изображений. Несколько вещей работают иначе, чем в собственном API Anthropic:
  • Длина вывода: каждый ответ ограничен 32 768 токенами. Если max_tokens больше, значение уменьшается до этого предела.
  • PDF и документы: блоки содержимого document не поддерживаются. Сначала извлеките текст и передайте его в блоке text.
  • Серверные инструменты: серверные инструменты Anthropic, такие как web_search, web_fetch и code_execution, не поддерживаются, а запросы с их объявлением возвращают 400.
  • Другие эндпоинты: /v1/messages/count_tokens, Message Batches и Files API недоступны.
  • Стоп-последовательности: при срабатывании стоп-последовательности stop_reason равен end_turn, а stop_sequence — null.
  • Длинные промпты Haiku: если промпт claude-haiku-5-5 превышает 100 000 токенов (с учётом чтения и записи кэша), весь запрос оплачивается по тарифу длинного контекста, указанному в ступенчатых ценах каталога.

Отправка сообщения

Создайте API-ключ в разделе Управление токенами, выбрав режим оплаты «сначала по использованию» (в консоли — 按量优先, рекомендуется) или «оплата по использованию» (按量计费), и сохраните его в переменной окружения:
В ответ ожидается connected. SDK сам отправляет API-ключ и заголовок anthropic-version и добавляет /v1/messages к базовому URL, поэтому /v1 в base_url не указывайте. Системные инструкции передаются в поле system верхнего уровня, а не сообщением с ролью system. В messages чередуются реплики user и assistant; чтобы продолжить диалог, отправьте предыдущие реплики и следом новое сообщение user.

Чтение ответа

Сокращённый ответ показывает поля, которые нужно читать:
content — это список блоков, и в одном ответе их может быть несколько. Читайте каждый блок по его type, а не считайте, что content[0] — это текст: stop_reason объясняет, почему ответ закончился:
  • end_turn: ответ завершён.
  • max_tokens: ответ оборван лимитом вывода.
  • tool_use: модель ждёт результат инструмента.
Число токенов указано в usage, а сумма списания по каждому запросу — в журнале вызовов.

Потоковый ответ

Добавьте "stream": true, чтобы получать ответ как server-sent events. Текст приходит в событиях content_block_delta, у которых delta.type равен text_delta, а поток заканчивается событием message_stop.
Флаг -N отключает буферизацию вывода cURL, так что каждое событие печатается сразу после получения.
Потоковый ответ идёт в такой последовательности (сокращено до нужных полей):
Как читать поток:
  • Склеивайте фрагменты text_delta для каждого index блока, чтобы собрать ответ.
  • Рассуждения и ввод инструментов приходят в дельтах других типов, а в потоке бывают и события ping, поэтому пропускайте типы событий, которые не обрабатываете.
  • В Python text_stream отдаёт только текст и завершается после message_stop.
  • Если соединение закрылось до message_stop, считайте ответ неполным.

Использование инструментов

Инструменты, которые вы описываете в массиве tools, выполняются в вашем приложении, а не в LaoZhang API. Когда ответ завершается с stop_reason: "tool_use":
  1. Прочитайте id, name и input каждого блока tool_use.
  2. Выполните соответствующую функцию в своём коде.
  3. Отправьте следующий запрос: реплику ассистента без изменений, а за ней реплику user с одним блоком tool_result на каждый вызов. tool_use_id в каждом из них должен совпадать с id вызова, на который он отвечает.
Массив messages для такого повторного запроса выглядит так:
Этот цикл проводит весь обмен через Python SDK: он объявляет функцию погоды, выполняет её локально по запросу модели и возвращает результат, пока модель не ответит текстом:
Передавайте те же tools в каждом повторном запросе и сохраняйте реплику ассистента ровно в том виде, в каком она пришла. Серверные инструменты Anthropic, например типы web_search_* и code_execution_*, шлюз не выполняет. Модели Claude отклоняют запрос с их объявлением ошибкой 400. Остальные модели возвращают вызов как обычный блок tool_use, не выполняя поиск и никакой код. Обрабатывайте такие вызовы в своём приложении, как клиентский инструмент, или не включайте эти инструменты в запрос.

Использование с Claude Code

Claude Code работает в формате Anthropic Messages:
  • Задайте для ANTHROPIC_BASE_URL значение https://api.laozhang.ai (корень хоста, без /v1).
  • Выберите модель, у которой в Endpoints указан Anthropic Messages, например claude-sonnet-5-5 или glm-5.2. Обе доступны в группе токенов default.
  • Используйте токен группы default с режимом оплаты «сначала по использованию». Токены, ранее созданные в группе Claude Code (раньше claude_code), продолжают работать; для новых токенов эта группа не нужна.
Полный ~/.claude/settings.json приведён в материале настройка Claude Code с LaoZhang API. Если Claude Code возвращает 400 ValidationException, смотрите исправление ошибки 400 ValidationException в Claude Code.

Устранение неполадок

  • 401: проверьте заголовок Authorization: Bearer и используйте API-ключ для моделей из раздела Управление токенами, а не AccessToken аккаунта.
  • 400 с упоминанием max_tokens: добавьте max_tokens. В отличие от Chat Completions, Messages требует это поле.
  • В URL запроса есть /v1/v1/messages: базовый URL SDK заканчивается на /v1. Задайте https://api.laozhang.ai.
  • 404 или модель не найдена: проверьте точный ID модели и убедитесь по каталогу моделей, что для группы вашего токена указан Anthropic Messages.
  • Claude Code возвращает 400 ValidationException или Extra inputs are not permitted: следуйте материалу исправление ошибки 400 ValidationException в Claude Code.
  • 400 после объявления web_search или другого серверного инструмента у модели Claude: уберите серверный инструмент из tools. Выполняйте поиск в приложении и возвращайте результаты блоками tool_result.
  • 529 с сообщением о занятости upstream: в часы пик не хватает мощности. Повторите запрос после короткой паузы; SDK Anthropic по умолчанию сами повторяют 529.
При таймауте или ошибке 5xx проверьте журнал вызовов, прежде чем отправлять запрос снова. В примерах на Python автоматические повторы отключены, чтобы момент повтора выбирало ваше приложение.

Связанные материалы