Text
Claude Haiku 5.5
Справочник Messages для Claude Haiku 5.5: параметры, мышление, принудительные инструменты, расход кэша, beta, потоковый вывод и обработка ответов.
Используйте claude-haiku-5-5 с POST https://api.seedrouter.ai/v1/messages. Модель принимает текст, изображения и документы и возвращает текст или запросы инструментов. На странице модели указаны текущие тарифы токенов.
Контракт ниже соответствует документации Anthropic для этой модели, проверенной 9 октября 2026 года. Официальные пределы возможностей и сквозная проверка — разные вещи: принятие поля не доказывает, что оно оказало ожидаемое действие. Перед использованием расширенных параметров ознакомьтесь с результатами совместимости ниже.
Быстрый старт
curl https://api.seedrouter.ai/v1/messages \
-H "x-api-key: $SEEDROUTER_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Classify this request as billing, technical or account: I was charged twice. Return only the label."}]
}'import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["SEEDROUTER_API_KEY"],
base_url="https://api.seedrouter.ai",
)
message = client.messages.create(
model="claude-haiku-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Summarize the purpose of a database index."}],
)
for block in message.content:
if block.type == "text":
print(block.text)import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: process.env.SEEDROUTER_API_KEY,
baseURL: 'https://api.seedrouter.ai',
});
const message = await client.messages.create({
model: 'claude-haiku-5-5',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Summarize the purpose of a database index.' }],
});
for (const block of message.content) {
if (block.type === 'text') console.log(block.text);
}Храните ключ API на сервере. Выбирайте блоки ответа по type; ответ может начинаться с мышления или вызова инструмента.
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
"time"
)
func main() {
body, err := json.Marshal(map[string]any{
"model": "claude-haiku-5-5",
"max_tokens": 1024,
"messages": []map[string]string{
{"role": "user", "content": "Summarize the purpose of a database index."},
},
})
if err != nil { panic(err) }
req, err := http.NewRequest("POST", "https://api.seedrouter.ai/v1/messages", bytes.NewReader(body))
if err != nil { panic(err) }
req.Header.Set("x-api-key", os.Getenv("SEEDROUTER_API_KEY"))
req.Header.Set("anthropic-version", "2023-06-01")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{Timeout: 2 * time.Minute}
res, err := client.Do(req)
if err != nil { panic(err) }
defer res.Body.Close()
data, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
if res.StatusCode >= 400 { panic(fmt.Sprintf("HTTP %d: %s", res.StatusCode, data)) }
fmt.Println(string(data))
}Параметры запроса
Нативный контракт содержит 25 полей верхнего уровня. Необязательность не означает допустимость null: только строки, явно упоминающие null, принимают его. Неизвестные поля и неподдерживаемые поля сэмплирования отбрасываются перед передачей в соответствии с политикой параметров текстовых моделей. Недопустимые значения поддерживаемых полей возвращают invalid_request_error до генерации.
| Поле | Обязательно | Контракт |
|---|---|---|
model | Да | claude-haiku-5-5. |
max_tokens | Да | Целое число 0–128000, включая мышление. В API нет значения по умолчанию. Playground начинает с 8192. |
messages | Да | 1–100000 сообщений с ролью и строкой или массивом блоков содержимого. Правила диалога приведены ниже. |
system | Нет | Строка или массив текстовых блоков. Не null. |
thinking | Нет | По умолчанию adaptive; можно выбрать disabled. Нет ручного бюджета и режима between_tools. |
output_config | Нет | Объект с effort, format и необязательным beta-полем task_budget. |
stop_sequences | Нет | Массив строк остановки. |
stream | Нет | Логическое значение; по умолчанию false. |
temperature | Нет | Не указывайте. Здесь отбрасывается; официальное значение для совместимости — 1. |
top_p | Нет | Не указывайте. Здесь отбрасывается; официальное значение для совместимости — 0.99. |
top_k | Нет | Не поддерживается и отбрасывается. |
tools | Нет | Массив клиентских инструментов или официальных объявлений серверных инструментов. |
tool_choice | Нет | auto, none, any или именованный tool. Принудительные инструменты поддерживаются. |
metadata | Нет | Объект; необязательный user_id — строка не длиннее 512 символов или null. |
cache_control | Нет | Null или {"type":"ephemeral","ttl":"5m"}; TTL также принимает 1h. По умолчанию TTL — 5m. |
container | Нет | Null, строка ID контейнера или объект с необязательным ID и не более чем 20 навыками. |
context_management | Нет | Null или объект с официальными правками контекста; действуют требования beta-заголовков. |
mcp_servers | Нет | Массив не более чем 20 серверов URL; требуется соответствующий beta-заголовок MCP. |
service_tier | Нет | auto или standard_only. У Haiku нет мощностей Priority Tier. |
inference_geo | Нет | global, us или null. Без поля используется настройка аккаунта; прежде чем предполагать регион, проверьте отчётный расход. |
diagnostics | Нет | Null или объект; previous_message_id — null или строка не длиннее 256 символов. |
compaction | Нет | Null или {"type":"summarize","instructions":"..."}. Инструкции необязательны, допускают null и не превышают 16384 символа. |
fallbacks | Нет | Null или default с соответствующей beta. У Haiku нет моделей автоматической замены; явные списки недопустимы. |
fallback_credit_token | Нет | Null, строка токена или {token,mode}. API должен проверить право использования и действительность; не считайте любую модель допустимой целью. |
speed | Нет | standard или null. Быстрый режим не поддерживается. |
Playground предоставляет элементы управления поддерживаемыми полями, включая JSON для вложенных структур. Параметры сэмплирования и фиксированная стандартная скорость отсутствуют в форме. ID модели закреплён за этой страницей. Просматривайте отправляемое тело в предварительном просмотре JSON-запроса.
Мышление и уровень усилий
По умолчанию используется адаптивное мышление с усилием medium и без текста мышления. Effort принимает low, medium, high, xhigh, max или null для значения по умолчанию.
{
"thinking": {"type": "adaptive", "display": "summarized"},
"output_config": {"effort": "medium"}
}Чтобы отключить мышление, используйте {"type":"disabled"} с low, medium или high. В режиме disabled не включайте display или block_binding. enabled, budget_tokens, between_tools и отключённое мышление при xhigh/max недопустимы.
При adaptive параметр display принимает omitted, summarized или null. Общее beta-значение updates требует thinking-display-updates-2026-08-18; Anthropic пока не подтверждает читаемые обновления хода работы для Haiku, поэтому не полагайтесь на такой вывод.
Необязательный thinking.block_binding требует thinking-binding-controls-2026-08-01. Это null или объект с prefix_mismatch_behavior, равным error, drop_block или null. При повторной отправке истории сохраняйте предыдущие ходы диалога и полные блоки мышления без изменений. Подписи мышления привязаны к создавшему их аккаунту или связанному с ним аккаунту.
output_config.task_budget — null или { "type": "tokens", "total": 20000 } с необязательным целым числом/null remaining. Требуется task-budgets-2026-03-13; total должен быть не меньше 20000. Дополнительный диапазон remaining здесь не задаётся.
Инструменты и структурированный вывод
Клиентские инструменты требуют имени из 1–128 букв, цифр, подчёркиваний или дефисов и input_schema с type: "object". Используйте tool_choice: {"type":"any"} или {"type":"tool","name":"lookup"}, чтобы принудительно вызвать объявленный инструмент. При адаптивном мышлении ответ с принудительным инструментом начинается с вызова инструмента без блока мышления.
disable_parallel_tool_use — необязательное логическое значение для вариантов auto, any и tool; оно не является полем none. Возвращайте результат инструмента с исходным tool_use_id. Playground показывает вызовы, но не исполняет ваши клиентские инструменты.
{
"tools": [{
"name": "lookup",
"description": "Look up a product by SKU.",
"input_schema": {
"type": "object",
"properties": {"sku": {"type": "string"}},
"required": ["sku"],
"additionalProperties": false
}
}],
"tool_choice": {"type": "tool", "name": "lookup"}
}Структурированные ответы используют output_config.format: {"type":"json_schema","schema":{...}}. Соблюдайте поддерживаемое Anthropic подмножество JSON Schema, включая additionalProperties: false для объектов. Корректная структура не гарантирует фактическую правильность значений. Строгие инструменты и структурированный вывод имеют ограничения на всю схему; см. официальный справочник структурированного вывода.
Работа с компьютером требует computer_toolset_20260801; старые версии инструментов компьютера недопустимы. Для браузера есть собственный browser_toolset_20260801. Объявление инструмента не подтверждает работоспособность полной сессии серверного инструмента. Перед использованием изучите его официальное руководство и требования beta.
Диалоги и управление контекстом
Обычное предварительное заполнение assistant не поддерживается. Продолжение приостановленного серверного инструмента — другой случай: повторно отправляйте полные блоки assistant согласно протоколу Messages.
Системное сообщение с содержимым может идти после пользовательского сообщения или результата приостановленного серверного инструмента. За ним должно идти сообщение assistant, либо оно должно быть последним. Последовательные системные сообщения оцениваются как одна группа. Не вставляйте такое сообщение между вызовом клиентского инструмента и обязательным результатом.
Системное сообщение с пустым содержимым может менять только output_config.effort с mid-conversation-output-config-2026-07-01. Оно может находиться в любом месте. При отключённом мышлении оно не может менять действующий уровень усилий. Системный clear_at принимает never, next_user_message или null с mid-conversation-system-clear-at-2026-08-21; сообщения, ограниченные одним ходом, допускают только текст, без конфигурации вывода или кэширования блоков.
Правки контекста включают:
| Правка | Beta | Основные ограничения |
|---|---|---|
clear_tool_uses_20250919 | context-management-2025-06-27 | Число для срабатывания не меньше 1; число сохраняемых элементов не меньше 0. |
clear_thinking_20251015 | context-management-2025-06-27 | Сохраняйте всё либо хотя бы один ход мышления. При сочетании правок ставьте перед очисткой вызовов инструментов. |
compact_20260112 | compact-2026-01-12 | Порог входных токенов не меньше 50000; по умолчанию 150000. |
Сжатие по запросу compaction требует compact-2026-09-04. Его нельзя сочетать с context_management, stop_sequences, форматом вывода, принудительными инструментами или task_budget.remaining. Подписанный блок сжатия также нельзя сочетать с task_budget.remaining или сжатием по порогу. При продолжении сохраняйте возвращённый блок и подпись.
Изображения, PDF и размер запроса
Изображения принимают JPEG, PNG, GIF и WebP по URL, в base64 или по ссылке на файл. PDF принимают URL, base64 или ссылку на файл. Ссылки на файлы требуют соответствующей beta Files API и действительного доступа. Текстовые документы могут использовать текстовые источники или источники содержимого.
Лимит нативного запроса — 32 MB. Официальные ограничения изображений: до 600 изображений, 10 MB данных в base64 на изображение и 8000 пикселей по любой стороне; для запросов с большим числом изображений могут действовать более строгие ограничения платформы. PDF должны быть незашифрованными и содержать не более 600 страниц для контекста этой модели. Проверка удалённых файлов остаётся ответственностью API; локальная проверка структуры не подтверждает содержимое URL.
Playground загружает вложения перед отправкой URL. JSON диалога также поддерживает нативные блоки медиасодержимого. Проверки полных границ размера медиа и окна контекста проводятся отдельно от небольшого примера запроса.
Кэширование промптов и расчёт стоимости
Минимальный кэшируемый промпт Haiku — 512 токенов. Более короткие помеченные промпты могут выполняться без создания записи кэша. Используйте не более четырёх точек кэширования; автоматическое управление кэшем верхнего уровня занимает один слот. Размещайте префиксы с большим сроком хранения перед префиксами с меньшим сроком.
max_tokens: 0 запрашивает прогрев кэша без генерации ответа. Его нельзя сочетать с stream: true, структурированным выводом или принудительными инструментами. Сохраняйте одинаковые настройки мышления и усилий при подготовке кэша и в повторно использующих его запросах.
Читайте usage.input_tokens, output_tokens, cache_creation_input_tokens, cache_read_input_tokens и разбивку 5m/1h в cache_creation. Мышление входит в выходные токены; указанная разбивка токенов мышления не является дополнительной платой, которую нужно прибавить ещё раз. Текущие тарифы находятся в разделе цен, дополнительные объяснения — в руководстве по ценам.
Ответы, потоковый вывод и ошибки
Завершённый ответ содержит id, type: "message", role: "assistant", model, content, stop_reason, stop_sequence и usage. Необязательные container, diagnostics, context_management, stop_details и input_transformations сохраняются, если возвращены.
Обрабатывайте end_turn, max_tokens, stop_sequence, tool_use, pause_turn, compaction, refusal и model_context_window_exceeded. Остановка по лимиту или отказ не равны HTTP-ошибке. Не считайте первый блок содержимого гарантированно текстовым.
Поток использует SSE-события Messages: message_start, content_block_start, content_block_delta, content_block_stop, message_delta и message_stop. Также обрабатывайте события ping и error. Сохраняйте подписи мышления и блоки инструментов, нужные для следующих ходов.
Ошибки имеют формат Anthropic:
{"type":"error","error":{"type":"invalid_request_error","message":"max_tokens must be an integer from 0 to 128000."}}Запросы, возвращающие ошибку, не оплачиваются. Общие типы ошибок приведены в обработке ошибок.
Форматы, совместимые с OpenAI
Тот же ID доступен с /v1/chat/completions и /v1/responses. Используйте их нативные поля: Chat использует messages; Responses — input. Нативные параметры Claude относятся к Messages, и их не следует целиком копировать в тело формата OpenAI.
curl https://api.seedrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-haiku-5-5","max_tokens":256,"messages":[{"role":"user","content":"Reply with OK."}]}'curl https://api.seedrouter.ai/v1/responses \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-haiku-5-5","max_output_tokens":256,"input":"Reply with OK."}'Результаты совместимости
Проверено 9 октября 2026 года в среде разработки. Эти проверки устанавливают наблюдаемое поведение конкретных запросов, а не каждый официальный предел или развёртывание в production.
| Возможность | Наблюдаемый результат |
|---|---|
| Нативные Messages и SSE | Текстовый ответ и полная последовательность событий проверены. |
| Классификация | Возвращено Billing; 41 входной и 5 выходных токенов. |
| Структурированный JSON и клиентские инструменты | Проверены значения JSON, выбор automatic/none/named/any, аргументы строгих инструментов и продолжение после результата инструмента. |
| Изображения и PDF | Возвращены ожидаемые цвет изображения и маркер PDF из тестовых данных base64. Полные границы медиа не проверялись. |
| Прогрев кэша | max_tokens: 0 не вернул сгенерированного текста и вернул ноль выходных токенов. |
| Кэширование на пять минут и один час | Для обоих TTL проверены создание и последующий расход при попадании в кэш. |
| Последовательности остановки | Возвращена запрошенная причина остановки; генерация остановилась до исключённого суффикса. |
| Мышление и усилия | Приняты все пять значений effort. Некоторые запросы с явно отключённым мышлением всё же вернули блоки мышления. Само принятие не проверяет действие effort. |
| Системные инструкции и усилия на уровне сообщений | Результаты были несогласованными; тест с большим бюджетом на уровне сообщения всё равно вернул посторонний текст. Перед запуском проверяйте свой конкретный диалог. |
| Сжатие по запросу | Возвращены подписанный блок сжатия и stop_reason: compaction. Полная проверка повторного использования и расчёта стоимости ещё не завершена. |
| Метаданные и география инференса | metadata.user_id вернул ошибку прав; явная география — ограничение типа аккаунта. |
| MCP | Текущая beta MCP вернула ограничение учётных данных. Полная сессия MCP не проверена. |
| OpenAI Chat и Responses | Базовые запросы и явные запросы рассуждений max/none вернули ожидаемый ответ. Семантика рассуждений отдельно не установлена. |
| Другие beta-поля | Бюджет задачи, управление привязкой и fallback default приняты; полная семантика функций не установлена. |
Расчёт стоимости записи кэша на один час и сжатия не прошёл проверку для выпуска. Не проверялись максимальные контекст/выход, размещённые инструменты с отдельной оплатой, доступ Files API и использование fallback-credit. Сохраняйте официальные структуры запросов; не делайте вывод о поддержке только по успешному статусу.
