Claude Opus 5.5 w API: cztery zmiany, które zepsują działający kod
Przejście z Opus 5 to nie jest zmiana jednej nazwy modelu. Cztery rzeczy kończą się błędem 400 - z gotowymi poprawkami.

👁 119 przeczytań
- Na Opus 5.5 pole thinking: disabled oraz budget_tokens zwracają błąd 400 na każdym poziomie wysiłku - zamiast tego należy ustawić thinking: adaptive i kontrolować koszt parametrem effort: low lub medium.
- Bloki myślenia Opus 5.5 odczytują tylko modele Fable 5.1 i Mythos 5.1, więc przełączenie rozmowy na Opus 5 lub Opus 4.8 powoduje, że model traci dostęp do wcześniejszego rozumowania.
Przejście z Claude Opus 5 na Opus 5.5 wygląda jak zmiana jednej nazwy modelu w konfiguracji. Nie jest. Cztery zachowania, które na Opus 5 działały, na Opus 5.5 kończą się błędem 400, a piąta zmiana nie zwraca błędu, tylko po cichu wycisza interfejs. Zebrałem je z dokumentacji Anthropic razem z gotowymi poprawkami.
Werdykt w jednym akapicie
Zmień nazwę modelu na claude-opus-5-5 dopiero po przejściu listy poniżej. Najczęstszy problem to wyłączone myślenie - na Opus 5 była to popularna optymalizacja kosztu, na Opus 5.5 to błąd przy każdym zapytaniu. Drugi to wymuszone wywołanie narzędzia. Oba poprawia się w kilku linijkach, ale bez nich aplikacja po prostu przestaje działać. Do tego trzeba ręcznie ustawić poziom wysiłku, bo domyślny spadł z high na medium.
Zmiana 1: myślenia nie da się wyłączyć
Na Opus 5 thinking: {"type": "disabled"} było dozwolone do poziomu wysiłku high. Na Opus 5.5 myślenie jest zawsze włączone - zarówno wyłączenie, jak i stary budżet tokenów (budget_tokens) zwracają błąd 400 na każdym poziomie.
Poprawka: usuń pole thinking albo ustaw {"type": "adaptive"}, a o koszcie decyduj poziomem wysiłku.
client.messages.create(
model="claude-opus-5-5",
max_tokens=16000,
output_config={"effort": "low"},
messages=[{"role": "user", "content": "..."}],
)
Trzy rzeczy do dopilnowania przy okazji:
- Zwiększ
max_tokens. Myślenie liczy się do limitu wyjścia, nawet jeśli jego treść nie wraca. Limit ustawiony pod Opus 5 z wyłączonym myśleniem obetnie odpowiedzi. Na długie zadania programistyczne producent wskazuje 64 tysiące. - Czytaj odpowiedź po typie bloku, nie po pozycji. Odpowiedź może zaczynać się od bloków myślenia z pustą treścią.
- Usuń z poleceń instrukcje „nie myśl”. Model i tak nie może się do nich zastosować, a polecenia każące mu wypisać rozumowanie w odpowiedzi mogą zostać odrzucone z kategorią
reasoning_extraction.
Zmiana 2: wymuszone narzędzia zwracają błąd
tool_choice: {"type": "any"} i {"type": "tool", "name": "..."} kończą się błędem 400 - w zwykłych zapytaniach, w trybie wsadowym i przy liczeniu tokenów. Zostaje auto i none.
Poprawka zależy od tego, po co było wymuszenie:
- Jeśli chciałeś, żeby model użył narzędzia - ustaw
auto, napisz w poleceniu, którego narzędzia ma użyć, dodajstrict: truedo definicji narzędzia i sprawdź w kodzie, czy wywołanie nastąpiło.autogo nie gwarantuje. - Jeśli chodziło tylko o JSON w odpowiedzi - zamiast wymuszonego narzędzia użyj ustrukturyzowanego wyjścia (
output_config.format).
Zmiana 3: bloki myślenia są przypięte do modelu i rozmowy
To zmiana, która najczęściej zaskoczy w systemach z kilkoma modelami:
- Opus 5.5 czyta bloki myślenia Opus 5 i starszych modeli - rozmowa przeniesiona na Opus 5.5 zachowuje rozumowanie.
- W drugą stronę tylko Fable 5.1 i Mythos 5.1 czytają bloki Opus 5.5. Przełączenie rozmowy na Opus 5 czy Opus 4.8 - na przykład przez model zapasowy po odmowie - oznacza, że dalsze tury idą bez wcześniejszego rozumowania. Zapytanie się uda, ale model „zapomni”, jak doszedł do dotychczasowych wniosków.
- Edycja historii unieważnia bloki. Jeśli Twój kod zmienia wcześniejsze wiadomości, polecenie systemowe albo listę narzędzi w trakcie rozmowy, ponownie wysłany blok myślenia może zostać odrzucony. Dla kont założonych od 31 sierpnia 2026 jest to domyślnie błąd.
Poprawka: buduj historię tylko przez dopisywanie. Zmiany instrukcji w trakcie rozmowy wstawiaj jako nową wiadomość systemową, a narzędzia deklaruj od pierwszego zapytania.
Zmiana 4: obsługa komputera tylko przez nowy zestaw
Stare narzędzie computer_20251124 zwraca błąd 400. Opus 5.5 przyjmuje tylko zestaw computer_toolset_20260801 - bez nagłówka beta, bez nazwy i bez wymiarów ekranu w definicji.
To więcej niż podmiana wpisu: w nowym zestawie akcja jest nazwą bloku wywołania (screenshot, left_click…), a nie polem input.action, w jednej turze może przyjść kilka akcji naraz, a każdy wynik musi zawierać "toolset_name": "computer". Producent radzi zrobić i przetestować tę zmianę najpierw na Opus 5, który przyjmuje obie formy.
Zmiana bez błędu: cisza między wywołaniami narzędzi
Nie przepłacaj za te subskrypcje
Prowadzę sklep z rocznymi dostępami do narzędzi AI - te same konta, o których piszę wyżej, tylko taniej niż w cenniku producenta.
Na Opus 5 krótkie notatki między wywołaniami narzędzi - „znalazłem X, teraz sprawdzam Y” - wracały jako zwykły tekst. Na Opus 5.5 dłuższe notatki wracają jako bloki myślenia z pustą treścią. Nic się nie psuje, ale interfejs, który pokazuje tylko tekst, milknie na całą długą turę agenta.
Poprawka: ustaw thinking.display na "updates" (nagłówek beta thinking-display-updates-2026-08-18) i wyświetlaj niepuste bloki myślenia przed wywołaniem, które poprzedzają.
Dwie rzeczy do przestawienia ręcznie
| Ustawienie | Co się zmieniło | Co zrobić |
|---|---|---|
| Poziom wysiłku | Domyślny spadł z high na medium | Ustaw jawnie i przetestuj low oraz medium. Mój pomiar |
| Odmowy | Nowe kategorie: bio i reasoning_extraction obok cyber | Sprawdzaj stop_reason: "refusal" przed odczytem treści i włącz model zapasowy |
Odmowa przychodzi jako zwykła odpowiedź HTTP 200 ze stop_reason: "refusal". Anthropic zaleca od pierwszego dnia włączyć modele zapasowe po stronie serwera (fallbacks: "default" z nagłówkiem server-side-fallback-2026-07-01), bo klasyfikatory czasem blokują nieszkodliwe zapytania. Odmowy z kategorii reasoning_extraction nie są przekazywane do modelu zapasowego.
Lista kontrolna
- Nazwa modelu:
claude-opus-5-5(na Bedrockuanthropic.claude-opus-5-5, na OpenRouterzeanthropic/claude-opus-5.5). - Usunięte
thinking: disabledibudget_tokenswe wszystkich ścieżkach. max_tokensz zapasem na myślenie.tool_choiceanyitoolzamienione naautozestrict: truei sprawdzeniem wywołania.- Historia rozmowy budowana wyłącznie przez dopisywanie.
- Obsługa komputera na
computer_toolset_20260801. - Obsługa
stop_reason: "refusal"i włączony model zapasowy. - Jawnie ustawiony poziom wysiłku.
- Wyświetlanie bloków myślenia w interfejsach agentowych.
Co zostaje bez zmian
Kontekst 1 mln tokenów, maksymalnie 128 tysięcy tokenów wyjścia, ten sam tokenizer co Opus 5 (liczba tokenów się nie zmienia), pamięć podręczna z minimum 512 tokenów, tryb wsadowy, obsługa plików, PDF, obrazów, ustrukturyzowane wyjście i narzędzia serwerowe. Priority Tier - jak w Opus 5 - nie jest obsługiwany.
Najczęstsze pytania
Jak nazywa się Opus 5.5 w API?
claude-opus-5-5. Na Amazon Bedrock anthropic.claude-opus-5-5, na OpenRouterze anthropic/claude-opus-5.5.
Dlaczego dostaję błąd 400 po zmianie modelu?
Najczęściej przez wyłączone myślenie albo wymuszone narzędzie. Obie rzeczy są w Opus 5.5 niedozwolone.
Czy mogę wyłączyć myślenie, żeby było taniej?
Nie. Ustaw niski poziom wysiłku - w moim teście low obniżył koszt tekstu o 17% wobec domyślnego.
Czy zmienia się liczba tokenów względem Opus 5?
Nie. Tokenizer jest ten sam, więc ten sam tekst to ta sama liczba tokenów.
Co to jest „preserved thinking”?
Przypięcie bloków myślenia do modelu i rozmowy. Edycja wcześniejszej historii albo przełączenie na inny model sprawia, że dotychczasowe rozumowanie przestaje być dostępne.
Źródła i data sprawdzenia
Wszystkie zmiany, komunikaty błędów, nazwy parametrów i nagłówków pochodzą z przewodnika migracji do Claude Opus 5.5 i dokumentacji modeli Anthropic na platform.claude.com, odczytanych 24 września 2026. Nazwa modelu na OpenRouterze z publicznej listy modeli z tego samego dnia. Przykład kodu jest uproszczonym przykładem z dokumentacji. Wynik 17% pochodzi z mojego testu opisanego w tekście o poziomach wysiłku.
Cały tydzień w AI, w jednym mailu
Wybrane premiery, narzędzia i analizy. Raz w tygodniu, prosto do skrzynki.
Zapisz się za darmo →Najczęstsze pytania
Dlaczego po zmianie modelu na claude-opus-5-5 dostaję błąd 400?
Najczęstszą przyczyną jest wyłączone myślenie (thinking: disabled) albo wymuszone wywołanie narzędzia (tool_choice: any lub tool) - obie opcje są na Opus 5.5 niedozwolone. Należy usunąć pole thinking lub ustawić adaptive, a tool_choice zmienić na auto ze strict: true.
Czy w Claude Opus 5.5 można wyłączyć myślenie, żeby obniżyć koszty?
Nie, myślenie jest zawsze włączone i nie da się go wyłączyć. Koszt można ograniczyć, ustawiając niski poziom wysiłku - według testu opisanego w artykule effort: low obniżył koszt tekstu o 17% wobec domyślnego poziomu medium.
Jak obsłużyć komputer w Claude Opus 5.5 po usunięciu starego narzędzia?
Stare narzędzie computer_20251124 zwraca błąd 400, więc trzeba przejść na zestaw computer_toolset_20260801 bez nagłówka beta, bez nazwy i bez wymiarów ekranu w definicji. Producent zaleca najpierw przetestować nowy zestaw na Opus 5, który przyjmuje obie formy.
Co oznacza stop_reason refusal w odpowiedzi Claude Opus 5.5?
Odmowa modelu przychodzi jako zwykła odpowiedź HTTP 200 ze stop_reason: refusal, a nie jako błąd. Anthropic zaleca od pierwszego dnia włączyć modele zapasowe przez nagłówek server-side-fallback-2026-07-01, przy czym odmowy z kategorii reasoning_extraction nie są przekazywane do modelu zapasowego.
