Migracja z Claude Haiku 4.5 do 5.5: Pięć błędów 400 i ciche zmiany

AIHubMix9 min czytania
Migracja z Claude Haiku 4.5 do 5.5: Pięć błędów 400 i ciche zmiany

Zmiana claude-haiku-4-5 na claude-haiku-5-5 to najmniejsza część tej migracji. Pięć wzorców żądań, które działały w Haiku 4.5, teraz zwraca błąd 400, a kilka innych zmian nie powoduje błędów w żądaniach, ale zmienia to, co otrzymujesz, ile to kosztuje lub jak model zachowuje się w agencie.

Anthropic twierdzi, że istniejące podpowiedzi Haiku 4.5 powinny działać dobrze w Haiku 5.5 bez zmian. Kod żądania związany z tymi podpowiedziami to inna historia. Ten post wymienia każdy problem, z którym się spotkasz: co zobaczysz, dlaczego to się dzieje i jak to naprawić, a następnie lista kontrolna. Autorytatywnym odniesieniem jest przewodnik migracji Haiku 5.5 od Anthropic.

Triage: dopasuj objaw

Co widzisz Przyczyna Naprawa
400 w żądaniu z budżetem myślenia Usunięto ręczne myślenie Myślenie adaptacyjne plus wysiłek
400 z temperaturą, top_p lub top_k Parametry próbkowania zablokowane Usuń je
400, gdy wiadomości kończą się na turze asystenta Usunięto wstępne wypełnienie Zakończ na turze użytkownika
400 przy użyciu komputera Stary narzędzie komputerowe odrzucone Przenieś do zestawu narzędzi komputerowych
400 po edytowaniu wcześniejszych tur Myślenie związane z historią Zachowaj historię jako tylko do dodawania
Parser zwraca pusty lub błędny tekst Blok myślenia przychodzi jako pierwszy Wybierz bloki według typu
Odpowiedź odcięta lub brakująca Myślenie liczy się do limitu Zwiększ max_tokens lub zmniejsz wysiłek
Liczby tokenów i rachunki wzrosły o około 30% Nowy tokenizer Przelicz na nowym modelu
Odpowiedź z powodem zatrzymania odmowy Nowe klasyfikatory bezpieczeństwa Zarządzaj tym w swoim kliencie

Pierwsze pięć błędów jest głośnych. Pozostałe cicho zawodzą, co sprawia, że są trudniejsze do znalezienia.

Pięć głośnych błędów

1. Ręczne budżety myślenia

Co zobaczysz: błąd 400 w każdym żądaniu, które wysyła thinking: {"type": "enabled", "budget_tokens": N}.

Dlaczego: Haiku 4.5 obsługiwało tylko ręczne rozszerzone myślenie z budżetem tokenów. Haiku 5.5 obsługuje tylko myślenie adaptacyjne i kontroluje głębokość za pomocą effort.

Naprawa: wyślij {"type": "adaptive"} lub pomiń thinking, a następnie wybierz poziom wysiłku. Gdzie stary budżet był mały, aby zaoszczędzić tokeny, wybierz niski poziom.

# Przed: Haiku 4.5
thinking={"type": "enabled", "budget_tokens": 8000}

# Po: Haiku 5.5
thinking={"type": "adaptive"},
output_config={"effort": "medium"},

2. Parametry próbkowania

Co zobaczysz: błąd 400, gdy żądanie ustawia temperature, top_p lub top_k.

Dlaczego: Haiku 5.5 akceptuje tylko domyślne wartości: temperature wynoszące 1 i top_p wynoszące 0.99. Każda inna wartość, jak również jakiekolwiek top_k, lub wysłanie zarówno temperature, jak i top_p zwraca błąd 400, niezależnie od tego, czy myślenie jest używane. Odrzucone jest również top_p wynoszące 1.

Naprawa: usuń wszystkie trzy. Typowym przypadkiem jest temperature=0 w klasyfikatorze, używanym do uzyskania stabilnych etykiet. Zastąp to strukturalnym wyjściem lub narzędziem, którego wejście jest enum, aby zestaw etykiet był wymuszany przez schemat, a nie przez próbkowanie. Sprawdź również opakowania SDK i bramy, które dodają domyślne wartości próbkowania w Twoim imieniu.

3. Wstępne wypełnienie asystenta

Co zobaczysz: błąd 400, gdy ostatni wpis w messages to tura asystenta, nawet przy wyłączonym myśleniu.

Dlaczego: wstępne wypełnienie nie jest obsługiwane w Haiku 5.5, co odpowiada reszcie aktualnej linii Claude'a.

Naprawa: zakończ messages turą użytkownika i zastąp wstępne wypełnienie tym, do czego było przeznaczone. Kontrola formatu staje się strukturalnym wyjściem (output_config.format). Wstępnie wypełniony wstęp staje się instrukcją systemową do bezpośredniej odpowiedzi. Kontynuacja przerwanej odpowiedzi przenosi się do wiadomości użytkownika: "Twoja poprzednia odpowiedź zakończyła się na [tekst]. Kontynuuj stąd."

4. Użycie komputera

Co zobaczysz: błąd 400 w API Claude'a lub Google Cloud, gdy żądanie deklaruje narzędzie computer_20250124.

Dlaczego: na tych platformach Haiku 5.5 obsługuje użycie komputera tylko przez nowszy zestaw narzędzi, computer_toolset_20260801.

Naprawa: usuń nagłówek beta computer-use-2025-01-24, zastąp wpis narzędzia {"type": "computer_toolset_20260801"} i zaktualizuj pętlę agenta: rozdzielaj na każdy blok tool_use według name i toolset_name, a nie według input.action, obsługuj każdy taki blok w turze i powtarzaj toolset_name w wynikach. Zoom jest domyślnie włączony; jeśli Twoje środowisko go nie implementuje, wyłącz go w konfiguracji zestawu narzędzi. Na Amazon Bedrock sprawdź notatki dotyczące zgodności narzędzia użycia komputera przed wyborem wersji. Ta sama rodzina zestawów narzędzi wprowadza również użycie przeglądarki, którego Haiku 4.5 nigdy nie miało.

5. Edytowanie wcześniejszych tur

Co zobaczysz: błąd 400, gdy żądanie wysyła blok myślenia po tym, jak coś przed nim się zmieniło: systemowa podpowiedź, lista narzędzi lub wcześniejsza wiadomość.

Dlaczego: blok myślenia Haiku 5.5 pozostaje ważny tylko wtedy, gdy wszystko wysłane przed nim jest niezmienione. Sprawdzenie jest egzekwowane domyślnie dla kont utworzonych 31 sierpnia 2026 roku lub później, a na starszych kontach tylko wtedy, gdy żądanie się na to zdecyduje.

Naprawa: zachowaj rozmowy jako tylko do dodawania. Typowymi winowajcami są systemowa podpowiedź z znakiem czasu, lista narzędzi, która rośnie, gdy plugin się łączy, przycinanie po stronie klienta oraz przypomnienia wstrzykiwane do historii i usuwane w następnej turze. Dla instrukcji na poziomie tury Haiku 5.5 obsługuje wiadomości systemowe wewnątrz messages, bez nagłówka beta, które dodają kontekst bez edytowania tego, co było wcześniej.

Ciche błędy

Bloki myślenia przychodzą jako pierwsze. Myślenie jest domyślnie włączone, więc odpowiedź może zaczynać się od jednego lub więcej bloków thinking. Kod, który odczytuje response.content[0].text jako odpowiedź, psuje się lub zwraca pusty tekst. Wybierz bloki według type.

Tekst myślenia jest domyślnie pusty. Haiku 4.5 zwracało podsumowane myślenie. Haiku 5.5 zwraca bloki thinking z pustym polem tekstowym i tylko podpisem. Jeśli Twoje UI pokazywało podsumowania rozumowania, ustaw thinking: {"type": "adaptive", "display": "summarized"}. W każdym przypadku przekaż bloki myślenia z powrotem niezmienione z wynikami narzędzi; serializer, który usuwa puste bloki, je usuwa.

max_tokens teraz musi obejmować myślenie. Limit dostosowany do krótkiej odpowiedzi może zostać wykorzystany przez myślenie, kończąc odpowiedź z stop_reason: "max_tokens" przed jakimkolwiek tekstem. Zwiększ limit lub zmniejsz wysiłek.

Ten sam tekst to około 30% więcej tokenów. Nowy tokenizer zmienia pola usage, wyniki count_tokens, budżety kontekstowe i wszelkie max_tokens dostosowane do Haiku 4.5. Przenosi również linię cenową 100K tokenów na około 77K tokenów, jak Haiku 4.5 je liczyło. Przelicz rzeczywiste podpowiedzi z modelem ustawionym na claude-haiku-5-5 przed zaufaniem panelowi kosztów.

Domyślny wysiłek to średni. Haiku 4.5 nie miało ustawienia wysiłku. Haiku 5.5 domyślnie ustawia medium, co może być więcej myślenia, niż potrzebuje prosta trasa. Ustaw to wyraźnie.

Bloki myślenia pozostają z kontem, które je stworzyło. Jeśli Twoja usługa odtwarza zapisane rozmowy przez inne konto API, bloki myślenia Haiku 5.5 są cicho usuwane, a żądanie działa bez tego rozumowania. Odtwarzaj każdą rozmowę przez konto, które ją wygenerowało.

Priority Tier nie przenosi się. Haiku 5.5 nie obsługuje Priority Tier, więc planuj pojemność osobno, jeśli polegasz na tym w Haiku 4.5.

Wykazy bram mogą się różnić. Strona Haiku 5.5 na AIHubMix obecnie podaje długość kontekstu 200K, podczas gdy Anthropic określa 1M. Potwierdź limit na trasie, której używasz, przed migracją długich obciążeń podpowiedzi.

Zmiany w zachowaniu, które mają znaczenie dla agentów z rzeczywistymi uprawnieniami

Odmowy są nowe, a nic ich za Ciebie nie wychwytuje. Haiku 5.5 uruchamia klasyfikatory bezpieczeństwa w czterech kategoriach: cyber, bio, rozwój LLM na granicy oraz ogólne szkody. Odrzucenie wraca jako normalny HTTP 200 z stop_reason: "refusal" i kategorią w stop_details. W przeciwieństwie do Sonnet 5.5 i Opus 5.5, Haiku 5.5 nie ma serwerowego zapasowego rozwiązania: lista modeli zapasowych zwraca błąd 400, a domyślny tryb zapasowy pozostawia żądanie odrzucone. Sprawdź stop_reason przed odczytaniem content i zdecyduj w swoim kodzie, czy przeredagować, eskalować do większego modelu, czy zatrzymać. Zgodnie z postem o uruchomieniu, zabezpieczenia cybernetyczne pozwalają na szerszy zakres pracy obronnej niż te w Sonnet 5.5, ale blokują testy penetracyjne.

Tekst użytkownika wewnątrz wyników narzędzi może być ignorowany. Haiku 5.5 jest szkolone, aby opierać się na wstrzyknięciu podpowiedzi przez wyniki narzędzi. Jeśli Twoje narzędzie dostarcza wiadomość, którą użytkownik wpisał w trakcie zadania wewnątrz bloku tool_result, model może traktować ją jako nieufną i zignorować. Umieść wejście użytkownika w trakcie tury w bloku tekstowym po ostatnim wyniku narzędzia i trzymaj powiadomienia narzędzia w osobnej wiadomości systemowej.

Przy niskim wysiłku agenci mogą zatrzymać się wcześniej lub pominąć kontrole. Przy długim systemowym podpowiedzi agenta na poziomie low, Haiku 5.5 czasami oddaje zadanie przed jego zakończeniem, a na poziomach low i medium czasami zgłasza zmianę kodu jako zakończoną bez przeprowadzenia testu. Przewodnik po podpowiedziach Haiku 5.5 zawiera krótkie instrukcje dla obu. Dla agenta, który może pisać pliki lub uruchamiać polecenia, niezweryfikowane "zrobione" jest bardziej niebezpieczne z dwóch.

Wymuszenie narzędzia pomija myślenie. Wymuszone tool_choice jest nadal akceptowane, ale model następnie wywołuje narzędzie bez wcześniejszego myślenia. Dla narzędzi z efektami ubocznymi, auto plus jasna instrukcja pozwala modelowi rozumować przed działaniem.

Narzędzia wyszukiwania potrzebują dzisiejszej daty. Gdy Haiku 5.5 ma narzędzie wyszukiwania, podaj mu aktualną datę w podpowiedzi systemowej lub opisie narzędzia. W testach Anthropic to ugruntowało odpowiedzi w niedawnych wynikach.

Migracja żądania przez AIHubMix

Klasyfikator Haiku 4.5, który używał temperature=0, budżetu myślenia i wstępnie wypełnionego { dla JSON, przepisany dla Haiku 5.5 na punkcie końcowym AIHubMix Claude native:

import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["AIHUBMIX_API_KEY"],
    base_url="https://aihubmix.com",
)

r = client.messages.create(
    model="claude-haiku-5-5",
    max_tokens=2000,                     # miejsce na myślenie plus JSON
    output_config={
        "effort": "low",                 # zastępuje stary budżet myślenia
        "format": {                      # zastępuje wstępne wypełnienie i temperature=0
            "type": "json_schema",
            "schema": {
                "type": "object",
                "properties": {
                    "label": {"type": "string", "enum": ["billing", "bug", "other"]}
                },
                "required": ["label"],
                "additionalProperties": False,
            },
        },
    },
    messages=[{"role": "user", "content": "Ticket: 'I was charged twice for October.'"}],
)

if r.stop_reason == "refusal":
    raise RuntimeError(f"odmowa: {r.stop_details}")
text = next(b.text for b in r.content if b.type == "text")
print(text)

Warto potwierdzić, czy brama przekazuje pola output_config i nowsze nagłówki beta bez zmian podczas pierwszego uruchomienia testowego. Gdy migracyjna trasa przechodzi Twoje oceny, lista modeli AIHubMix ułatwia skierowanie tego samego kodu do Sonnet 5.5 dla każdego typu zadania, które nadal nie działa w Haiku.

Lista kontrolna migracji

  1. Zmiana identyfikatora modelu na claude-haiku-5-5, bez sufiksu daty.
  2. Zastąp każdy budżet myślenia myśleniem adaptacyjnym i wyraźnym poziomem wysiłku.
  3. Usuń temperaturę, top_p i top_k, w tym domyślne wartości dodane przez opakowania.
  4. Zastąp wstępne wypełnienia asystenta strukturalnym wyjściem, instrukcjami systemowymi lub kontynuacjami tur użytkownika.
  5. Przenieś użycie komputera do zestawu narzędzi komputerowych i zaktualizuj pętlę agenta.
  6. Uczyń historię rozmowy tylko do dodawania, jeśli bloki myślenia są odtwarzane.
  7. Odczytuj zawartość odpowiedzi według typu bloku i zachowuj puste bloki myślenia podczas odtwarzania.
  8. Zwiększ max_tokens w trasach krótkich odpowiedzi lub zmniejsz wysiłek.
  9. Zarządzaj powodem zatrzymania odmowy przed odczytaniem zawartości; nie konfiguruj zapasowych rozwiązań po stronie serwera.
  10. Przelicz tokeny podpowiedzi na nowym modelu i zaktualizuj panele kosztów.
  11. Sprawdź, które podpowiedzi teraz przekraczają 100K tokenów i przytnij lub podziel je.
  12. Ustaw wyświetlanie na podsumowane, jeśli użytkownicy widzieli podsumowania rozumowania.
  13. Dostarcz wejście użytkownika w trakcie tury poza wynikami narzędzi.
  14. Podaj agentom z funkcją wyszukiwania dzisiejszą datę.
  15. Sprawdź ponownie limity szybkości, potrzeby Priority Tier i limit kontekstu swojej bramy przed przeniesieniem dużych obciążeń.

FAQ

Czy moje podpowiedzi Haiku 4.5 będą działać w Haiku 5.5?
Anthropic twierdzi, że istniejące podpowiedzi powinny działać dobrze bez zmian. Parametry żądania wokół nich to to, co psuje: budżety myślenia, ustawienia próbkowania, wstępne wypełnienia i stare narzędzie użycia komputera, które wszystkie zwracają błędy.

Dlaczego mój klasyfikator zawodzi, gdy usunąłem temperaturę 0?
Nie powinien zawodzić, ale etykiety mogą się bardziej różnić. Użyj strukturalnego wyjścia lub narzędzia z polem enum, aby dozwolone etykiety były wymuszane przez schemat. To jest bardziej niezawodne niż temperatura 0 kiedykolwiek była.

Czy mogę nadal wyłączyć myślenie?
Tak, na niskim, średnim i wysokim wysiłku. Przy xhigh i max, wyłączenie myślenia zwraca błąd. Anthropic zaleca niższy poziom wysiłku, ponieważ model może samodzielnie pominąć myślenie w prostych żądaniach.

Co powinien zrobić mój kod, gdy Haiku 5.5 odmówi?
Sprawdź powód zatrzymania przed odczytaniem zawartości. Haiku 5.5 nie ma zapasowego rozwiązania po stronie serwera, więc Twój kod decyduje, czy przeredagować, wysłać żądanie do większego modelu, czy zwrócić błąd użytkownikowi.

Dlaczego moje zużycie tokenów wzrosło po migracji?
Dwa powody. Nowy tokenizer liczy około 30% więcej tokenów dla tego samego tekstu, a myślenie jest domyślnie włączone, dodając tokeny wyjściowe. Zmniejsz wysiłek i przelicz swoje podpowiedzi na nowym modelu.

Czy muszę coś zmieniać w przypadku pamięci podręcznej podpowiedzi?
Zwykle nie, a teraz jest łatwiej: minimalna pamięć podręczna podpowiedzi spada z 4096 do 512 tokenów, a bloki myślenia z wcześniejszych tur pozostają w pamięci podręcznej domyślnie. Unikaj edytowania wcześniejszych tur, co teraz unieważnia bloki myślenia oraz pamięć podręczną.

Czy rozmowa może przejść z Haiku 5.5 do większego modelu?
Tak. Sonnet 5.5 i Opus 5.5 odczytują bloki myślenia Haiku 5.5, więc rozmowa eskalowana do któregokolwiek z nich zachowuje swoje wcześniejsze rozumowanie. Dla innych modeli docelowych najpierw sprawdź dokumentację dotyczącą zachowanego myślenia.

Czytaj dalej: seria Claude Haiku 5.5

Źródła