Выбор модели
Берите модель, у которой в столбце 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-prodeepseek-v4-flash
Модели Claude снова доступны с 18 октября 2026 года. Перед переключением прочитайте раздел «Ограничения моделей Claude», а подробности смотрите в объявлении.
Ограничения моделей 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-ключ в разделе Управление токенами, выбрав режим оплаты «сначала по использованию» (в консоли — 按量优先, рекомендуется) или «оплата по использованию» (按量计费), и сохраните его в переменной окружения:- cURL
- Python
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.
- cURL
- Python
Флаг
-N отключает буферизацию вывода cURL, так что каждое событие печатается сразу после получения.- Склеивайте фрагменты
text_deltaдля каждогоindexблока, чтобы собрать ответ. - Рассуждения и ввод инструментов приходят в дельтах других типов, а в потоке бывают и события
ping, поэтому пропускайте типы событий, которые не обрабатываете. - В Python
text_streamотдаёт только текст и завершается послеmessage_stop. - Если соединение закрылось до
message_stop, считайте ответ неполным.
Использование инструментов
Инструменты, которые вы описываете в массивеtools, выполняются в вашем приложении, а не в LaoZhang API. Когда ответ завершается с stop_reason: "tool_use":
- Прочитайте
id,nameиinputкаждого блокаtool_use. - Выполните соответствующую функцию в своём коде.
- Отправьте следующий запрос: реплику ассистента без изменений, а за ней реплику
userс одним блокомtool_resultна каждый вызов.tool_use_idв каждом из них должен совпадать сidвызова, на который он отвечает.
messages для такого повторного запроса выглядит так:
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.