Text
Claude Haiku 5.5
Dokumentacja Messages Claude Haiku 5.5: parametry, rozumowanie, wymuszone narzędzia, buforowanie, funkcje beta, strumieniowanie i obsługa odpowiedzi.
Użyj claude-haiku-5-5 z POST https://api.seedrouter.ai/v1/messages. Model przyjmuje tekst, obrazy i dokumenty, a zwraca tekst lub żądania użycia narzędzi. Strona modelu pokazuje aktualne stawki za tokeny.
Poniższy kontrakt jest zgodny z dokumentacją Anthropic dla tego modelu, sprawdzoną 9 października 2026. Oficjalne limity możliwości i weryfikacja całego przepływu to osobne kwestie: przyjęcie pola nie dowodzi, że wystąpił jego zamierzony efekt. Przed użyciem opcji zaawansowanych sprawdź poniższe wyniki zgodności.
Szybki start
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);
}Przechowuj klucz API na serwerze. Wybieraj bloki odpowiedzi według type; odpowiedź może zaczynać się od rozumowania lub wywołania narzędzia.
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))
}Parametry żądania
Natywny kontrakt zawiera 25 pól najwyższego poziomu. Opcjonalność nie oznacza dopuszczenia null: przyjmują je tylko wiersze, które jawnie wymieniają null. Nieznane pola i nieobsługiwane pola próbkowania są odrzucane przed przekazaniem, zgodnie z polityką parametrów modeli tekstowych. Nieprawidłowe wartości obsługiwanych pól zwracają invalid_request_error przed generowaniem.
| Pole | Wymagane | Kontrakt |
|---|---|---|
model | Tak | claude-haiku-5-5. |
max_tokens | Tak | Liczba całkowita 0–128000, w tym rozumowanie. Brak domyślnej wartości API. Playground zaczyna od 8192. |
messages | Tak | 1–100000 wiadomości z rolą i ciągiem znaków lub tablicą bloków treści. Zobacz poniższe zasady rozmowy. |
system | Nie | Ciąg znaków lub tablica bloków tekstowych. Bez null. |
thinking | Nie | Domyślnie adaptive; opcjonalnie disabled. Bez ręcznego budżetu i bez trybu between_tools. |
output_config | Nie | Obiekt z effort, format i opcjonalnym task_budget w wersji beta. |
stop_sequences | Nie | Tablica ciągów zatrzymujących generowanie. |
stream | Nie | Wartość logiczna; domyślnie false. |
temperature | Nie | Pomiń. Jest tutaj odrzucane; oficjalna wartość zgodności to 1. |
top_p | Nie | Pomiń. Jest tutaj odrzucane; oficjalna wartość zgodności to 0.99. |
top_k | Nie | Nieobsługiwane i odrzucane. |
tools | Nie | Tablica narzędzi klienckich lub oficjalnych deklaracji narzędzi serwerowych. |
tool_choice | Nie | auto, none, any lub wskazane tool. Wymuszone narzędzia są obsługiwane. |
metadata | Nie | Obiekt; opcjonalne user_id to ciąg do 512 znaków lub null. |
cache_control | Nie | Null lub {"type":"ephemeral","ttl":"5m"}; TTL przyjmuje też 1h. Domyślne TTL to 5m. |
container | Nie | Null, ciąg z ID kontenera lub obiekt z opcjonalnym ID i maksymalnie 20 umiejętnościami. |
context_management | Nie | Null lub obiekt zawierający oficjalne edycje kontekstu; obowiązują nagłówki beta. |
mcp_servers | Nie | Tablica maksymalnie 20 serwerów URL; wymaga pasującego nagłówka beta MCP. |
service_tier | Nie | auto lub standard_only. Haiku nie ma zasobów Priority Tier. |
inference_geo | Nie | global, us lub null. Pominięcie używa domyślnego ustawienia konta; sprawdź raportowane użycie, zanim założysz region. |
diagnostics | Nie | Null lub obiekt; previous_message_id to null lub ciąg do 256 znaków. |
compaction | Nie | Null lub {"type":"summarize","instructions":"..."}. Instrukcje są opcjonalne, dopuszczają null i mają najwyżej 16384 znaki. |
fallbacks | Nie | Null lub default z odpowiednią wersją beta. Haiku nie ma automatycznych modeli zastępczych; jawne listy są nieprawidłowe. |
fallback_credit_token | Nie | Null, ciąg tokenu lub {token,mode}. API musi sprawdzić uprawnienia i ważność; nie zakładaj, że dowolny model jest uprawnionym celem. |
speed | Nie | standard lub null. Tryb szybki nie jest obsługiwany. |
Playground udostępnia kontrolki obsługiwanych pól, w tym kontrolki JSON dla struktur zagnieżdżonych. Parametry próbkowania i stała standardowa prędkość są pominięte w formularzu. ID modelu jest stałe dla tej strony. Sprawdź wysyłane dane w podglądzie żądania JSON.
Rozumowanie i poziom wysiłku
Domyślne ustawienie to rozumowanie adaptacyjne z wysiłkiem medium i pominiętym tekstem rozumowania. Wysiłek przyjmuje low, medium, high, xhigh, max lub null, aby użyć ustawienia domyślnego.
{
"thinking": {"type": "adaptive", "display": "summarized"},
"output_config": {"effort": "medium"}
}Aby wyłączyć rozumowanie, użyj {"type":"disabled"} z wysiłkiem low, medium lub high. Nie dodawaj display ani block_binding w trybie disabled. enabled, budget_tokens, between_tools oraz wyłączone rozumowanie przy xhigh/max są nieprawidłowe.
Adaptacyjne display przyjmuje omitted, summarized lub null. Ogólna wartość beta updates wymaga thinking-display-updates-2026-08-18; Anthropic nie potwierdza obecnie czytelnych aktualizacji postępu dla Haiku, więc nie polegaj na takim wyjściu.
Opcjonalne thinking.block_binding wymaga thinking-binding-controls-2026-08-01. Jest to null lub obiekt, którego prefix_mismatch_behavior to error, drop_block lub null. Przy ponownym wysyłaniu historii zachowaj wcześniejsze tury rozmowy i kompletne bloki rozumowania bez zmian. Podpisy rozumowania są związane z kontem, które je utworzyło, lub z kontem z nim połączonym.
output_config.task_budget to null lub { "type": "tokens", "total": 20000 } z opcjonalnym remaining typu liczba całkowita/null. Wymaga task-budgets-2026-03-13; total musi wynosić co najmniej 20000. Nie narzuca się tutaj dodatkowego zakresu remaining.
Narzędzia i wyjście strukturalne
Narzędzia klienckie wymagają nazwy złożonej z 1–128 liter, cyfr, podkreśleń lub łączników oraz input_schema z type: "object". Użyj tool_choice: {"type":"any"} lub {"type":"tool","name":"lookup"}, aby wymusić zadeklarowane narzędzie. Przy rozumowaniu adaptacyjnym odpowiedź z wymuszonym narzędziem zaczyna się od jego wywołania, bez bloku rozumowania.
disable_parallel_tool_use to opcjonalna wartość logiczna dla wyborów auto, any i tool; nie jest polem none. Odeślij wynik narzędzia z oryginalnym tool_use_id. Playground wyświetla wywołania, ale nie wykonuje twoich narzędzi klienckich.
{
"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"}
}Odpowiedzi strukturalne używają output_config.format: {"type":"json_schema","schema":{...}}. Stosuj obsługiwany przez Anthropic podzbiór JSON Schema, w tym additionalProperties: false dla obiektów. Prawidłowa struktura nie gwarantuje wartości zgodnych z faktami. Ścisłe narzędzia i wyjście strukturalne mają ograniczenia obejmujące cały schemat; zobacz oficjalną dokumentację wyjścia strukturalnego.
Użycie komputera wymaga computer_toolset_20260801; stare wersje narzędzi komputerowych są nieprawidłowe. Użycie przeglądarki ma własne browser_toolset_20260801. Deklaracja narzędzia nie potwierdza działania kompletnej sesji narzędzi serwerowych. Przed użyciem sprawdź oficjalny przewodnik narzędzia i wymagania beta.
Rozmowy i zarządzanie kontekstem
Zwykłe wstępne wypełnianie odpowiedzi asystenta nie jest obsługiwane. Kontynuacja wstrzymanego narzędzia serwerowego to inny przypadek: wyślij ponownie kompletne bloki asystenta zgodnie z protokołem Messages.
Wiadomość systemowa z treścią może wystąpić po wiadomości użytkownika lub wyniku wstrzymanego narzędzia serwerowego. Musi po niej nastąpić wiadomość asystenta albo musi być ostatnią wiadomością. Kolejne wiadomości systemowe są oceniane jako jedna grupa. Nie wstawiaj takiej wiadomości między wywołaniem narzędzia klienckiego a jego wymaganym wynikiem.
Wiadomość systemowa z pustą treścią może zmieniać tylko output_config.effort przy mid-conversation-output-config-2026-07-01. Może pojawić się w dowolnym miejscu. Gdy rozumowanie jest wyłączone, nie może zmieniać efektywnego wysiłku. Systemowe clear_at przyjmuje never, next_user_message lub null z mid-conversation-system-clear-at-2026-08-21; wiadomości ograniczone do tury dopuszczają tylko tekst, bez konfiguracji wyjścia ani buforowania bloków.
Edycje kontekstu obejmują:
| Edycja | Beta | Główne ograniczenia |
|---|---|---|
clear_tool_uses_20250919 | context-management-2025-06-27 | Liczba wyzwalająca co najmniej 1; liczba zachowywanych co najmniej 0. |
clear_thinking_20251015 | context-management-2025-06-27 | Zachowaj wszystkie lub co najmniej jedną turę rozumowania. Przy łączeniu edycji umieść przed czyszczeniem użycia narzędzi. |
compact_20260112 | compact-2026-01-12 | Próg tokenów wejścia co najmniej 50000; domyślnie 150000. |
compaction na żądanie wymaga compact-2026-09-04. Nie można łączyć z context_management, stop_sequences, formatem wyjścia, wymuszonymi narzędziami ani task_budget.remaining. Podpisanego bloku kompakcji również nie można łączyć z task_budget.remaining ani kompakcją progową. Przy kontynuacji zachowaj zwrócony blok i podpis.
Obrazy, PDF i rozmiar żądania
Obrazy przyjmują JPEG, PNG, GIF i WebP przez URL, base64 lub odniesienie do pliku. PDF przyjmują URL, base64 lub odniesienie do pliku. Odniesienia do plików wymagają odpowiedniej wersji beta Files API i ważnego dostępu do pliku. Dokumenty tekstowe mogą używać źródeł tekstowych lub treści.
Natywny limit żądania wynosi 32 MB. Oficjalne limity obrazów to maksymalnie 600 obrazów, 10 MB danych zakodowanych w base64 na obraz i 8000 pikseli na każdej krawędzi; żądania z wieloma obrazami mogą mieć bardziej restrykcyjne limity zależne od platformy. PDF muszą być niezaszyfrowane i mieć najwyżej 600 stron dla rozmiaru kontekstu tego modelu. API nadal odpowiada za sprawdzenie zdalnych plików; lokalne kontrole struktury nie potwierdzają zawartości URL.
Playground przesyła załączniki przed wysłaniem ich URL. JSON rozmowy obsługuje też natywne bloki treści multimedialnych. Sprawdzenie pełnych granic rozmiaru mediów i okna kontekstu jest osobnym zadaniem względem małego przykładowego żądania.
Buforowanie promptów i rozliczenia
Minimalny prompt nadający się do buforowania w Haiku ma 512 tokenów. Krótsze oznaczone prompty mogą wykonać się bez utworzenia wpisu w pamięci podręcznej. Używaj maksymalnie czterech punktów buforowania; automatyczna kontrola buforowania najwyższego poziomu zajmuje jeden z nich. Umieszczaj prefiksy o dłuższym czasie ważności przed krótszymi.
max_tokens: 0 żąda rozgrzania pamięci podręcznej bez generowania odpowiedzi. Nie można go łączyć z stream: true, wyjściem strukturalnym ani wymuszonym użyciem narzędzia. Zachowaj spójne ustawienia rozumowania i wysiłku między przygotowaniem pamięci podręcznej a żądaniami, które ją wykorzystują.
Odczytuj usage.input_tokens, output_tokens, cache_creation_input_tokens, cache_read_input_tokens i podział 5m/1h w cache_creation. Rozumowanie jest wliczone w tokeny wyjścia; raportowany podział tokenów rozumowania nie jest dodatkową opłatą do ponownego dodania. Aktualne stawki są w sekcji cen, a dalsze wyjaśnienia w przewodniku cenowym.
Odpowiedzi, strumieniowanie i błędy
Zakończona odpowiedź zawiera id, type: "message", role: "assistant", model, content, stop_reason, stop_sequence i usage. Opcjonalne container, diagnostics, context_management, stop_details i input_transformations są zachowywane, gdy zostaną zwrócone.
Obsługuj end_turn, max_tokens, stop_sequence, tool_use, pause_turn, compaction, refusal i model_context_window_exceeded. Zatrzymanie z powodu limitu lub odmowa nie oznaczają tego samego co błąd HTTP. Nigdy nie zakładaj, że pierwszy blok treści musi być tekstem.
Strumieniowanie używa zdarzeń SSE Messages: message_start, content_block_start, content_block_delta, content_block_stop, message_delta i message_stop. Obsługuj też zdarzenia ping i error. Zachowuj podpisy rozumowania i bloki narzędzi potrzebne w kolejnych turach.
Błędy używają formatu Anthropic:
{"type":"error","error":{"type":"invalid_request_error","message":"max_tokens must be an integer from 0 to 128000."}}Żądania zwracające błąd są bezpłatne. Zobacz obsługę błędów, aby poznać wspólne typy błędów.
Formaty zgodne z OpenAI
To samo ID jest dostępne z /v1/chat/completions i /v1/responses. Używaj ich natywnych pól: Chat używa messages; Responses używa input. Natywne opcje Claude należą do Messages i nie należy kopiować ich w całości do danych w formacie 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."}'Wyniki zgodności
Sprawdzono 9 października 2026 w środowisku deweloperskim. Te kontrole potwierdzają zaobserwowane zachowanie konkretnych żądań, a nie każdy oficjalny limit ani wdrożenie produkcyjne.
| Możliwość | Zaobserwowany wynik |
|---|---|
| Natywne Messages i SSE | Zweryfikowano odpowiedź tekstową i kompletną sekwencję zdarzeń. |
| Klasyfikacja | Zwrócono Billing; 41 tokenów wejścia i 5 wyjścia. |
| Strukturalny JSON i narzędzia klienckie | Zweryfikowano wartości JSON, wybór automatyczny/none/wskazany/any, argumenty ścisłych narzędzi i kontynuację z wynikiem narzędzia. |
| Obrazy i PDF | Zwrócono oczekiwany kolor obrazu i znacznik PDF z danych testowych base64. Pełne granice mediów nie zostały przetestowane. |
| Rozgrzewanie pamięci podręcznej | max_tokens: 0 nie zwróciło wygenerowanego tekstu i zwróciło zero tokenów wyjścia. |
| Buforowanie na pięć minut i godzinę | Zweryfikowano utworzenie i późniejsze użycie trafienia w pamięć podręczną dla obu TTL. |
| Sekwencje zatrzymania | Zwrócono żądany powód zatrzymania i zatrzymano przed wykluczonym sufiksem. |
| Rozumowanie i wysiłek | Przyjęto wszystkie pięć wartości wysiłku. Niektóre żądania z jawnym wyłączeniem rozumowania nadal zwracały bloki rozumowania. Samo przyjęcie nie potwierdza działania wysiłku. |
| Instrukcje systemowe i wysiłek dla poszczególnych wiadomości | Wyniki były niespójne; test wysiłku dla wiadomości z większym budżetem nadal zwracał niepowiązany tekst. Przetestuj dokładnie swoją rozmowę przed wdrożeniem. |
| Kompakcja na żądanie | Zwrócono podpisany blok kompakcji i stop_reason: compaction. Pełne odtworzenie i walidacja rozliczeń pozostają do wykonania. |
| Metadane i geografia inferencji | metadata.user_id zwróciło błąd uprawnień; jawna geografia zwróciła ograniczenie typu konta. |
| MCP | Aktualna wersja beta MCP zwróciła ograniczenie danych uwierzytelniających. Nie zweryfikowano kompletnej sesji MCP. |
| OpenAI Chat i Responses | Podstawowe żądania oraz jawne żądania rozumowania max/none zwróciły oczekiwaną odpowiedź. Semantyka rozumowania nie została niezależnie potwierdzona. |
| Inne pola beta | Przyjęto budżet zadania, kontrolki wiązania i zastępowanie default; pełna semantyka funkcji nie została potwierdzona. |
Rozliczanie godzinnego zapisu pamięci podręcznej i kompakcji nie przeszło walidacji przed wydaniem. Nie przetestowano przebiegów z maksymalnym kontekstem/wyjściem, hostowanych narzędzi z osobnymi opłatami, dostępu Files API ani wykorzystania kredytu na zastępowanie. Zachowaj oficjalne struktury żądań; nie wnioskuj o obsłudze tylko na podstawie statusu bez błędu.
