Anthropic SDK i nowa wersja API: co psuje i co zmienić

Anthropic TypeScript SDK 1.0.0 i Python SDK 2.0.0 wysyłają wersję API 2026-10-21: temperature daje błąd 400, a klucz idzie jako Bearer. Co poprawić najpierw.

Czas czytania: 9 min czytaniaOpublikowano:

21 października 2026 Anthropic wydał wersję Claude API 2026-10-21 i nową główną wersję każdego SDK, które wysyła ją domyślnie: TypeScript SDK 1.0.0, Python SDK 2.0.0, pięć innych SDK i CLI ant. Aktualizacja psuje dwie rzeczy naraz. Wersja API odrzuca temperature, top_p i top_k błędem 400, nawet przy wartościach domyślnych, a także bloki document w wiadomościach asystenta i cytowania w wiadomościach użytkownika. SDK wysyłają klucz API jako Authorization: Bearer zamiast X-Api-Key, co psuje każde proxy, bramkę czy zaślepkę w testach, które czytają stary nagłówek. To zmień najpierw: usuń trzy parametry losowania, potem przestaw wszystko, co czyta X-Api-Key, na Authorization. Stare główne wersje SDK dalej wysyłają 2023-06-01, która działa i nie ma ogłoszonej daty końca, więc nic się nie psuje, dopóki nie zaktualizujesz. Każde twierdzenie poniżej sprawdziliśmy 24 października 2026 w przewodniku migracji (otwiera się w nowej karcie), informacjach o wydaniach, na GitHubie oraz w rejestrach npm i PyPI; nowych SDK nie uruchamialiśmy na API.

Co się zmieniło 21 października 2026

Informacje o wydaniach z 21 października 2026 (otwiera się w nowej karcie) wymieniają osiem nowych wersji, które domyślnie wysyłają 2026-10-21, wszystkie na licencji Apache 2.0, gdzie wcześniejsze były na MIT:

SDK lub narzędziePakietPierwsza wersja na 2026-10-21
TypeScript@anthropic-ai/sdk1.0.0
Pythonanthropic2.0.0
Gogithub.com/anthropics/anthropic-sdk-go/v22.0.0
Javacom.anthropic:anthropic-java3.0.0
C#Anthropic13.0.0
PHPanthropic-ai/sdk1.0.0
Rubygem anthropic2.0.0
CLIant2.0.0

W tych samych informacjach o wydaniach 15 października tryb fast dla Claude Opus 5.5 wyszedł z wersji testowej, co opisaliśmy w przeglądzie nowości web dev z 18 października; to wydanie wymaga więcej od twojego kodu. Dla dwóch SDK, których używa większość zespołów webowych, rejestry podają dokładny czas. Dokument rejestru npm (otwiera się w nowej karcie) podaje czas publikacji i licencję każdej wersji; API JSON w PyPI podaje czasy wysłania wszystkich wydań (otwiera się w nowej karcie) i licencję wersji 1.17.0 (otwiera się w nowej karcie) i 2.0.0 (otwiera się w nowej karcie). Oto ostatnia wersja na starej wersji API, pierwsza nowa główna i wersja aktualna 24 października 2026:

PakietOstatnia na 2023-06-01Pierwsza na 2026-10-21Najnowsza 24.10.2026
@anthropic-ai/sdk0.137.0, 20.10, MIT1.0.0, 21.10, 16:00 UTC1.3.0, 23.10
anthropic (PyPI)1.17.0, 20.10, MIT2.0.0, 21.10, 15:51 UTC2.3.0, 23.10

Wydania na GitHubie (TypeScript sdk-v1.0.0 (otwiera się w nowej karcie), Python v2.0.0 (otwiera się w nowej karcie)) wymieniają jedną zmianę łamiącą zgodność: „add support for new API version 2026-10-21”. Co to oznacza w praktyce, mówi przewodnik migracji, w dwóch grupach.

Co odrzuca nowa wersja API

Dotyczy to POST /v1/messages, liczenia tokenów i każdego żądania w Message Batch utworzonym z 2026-10-21, według sekcji breaking changes (otwiera się w nowej karcie):

Żądanie2023-06-012026-10-21
temperature, top_p lub top_k, dowolna wartośćPrzyjęteBłąd 400
Blok document bezpośrednio w wiadomości assistantPrzyjęteBłąd 400; dokumenty wysyłaj w wiadomościach user
Blok text z niepustym citations w wiadomości userPrzyjęteBłąd 400, także wewnątrz bloków search_result

Dwie rzeczy dalej przechodzą: cytowania na blokach tekstu w wiadomościach asystenta (wcześniejsze odpowiedzi Claude’a, które odsyłasz) i ustawienie "citations": {"enabled": true} na dokumentach i wynikach wyszukiwania. Dokument zagnieżdżony w innym bloku, np. w wyniku web fetch zwróconym przez Claude’a, też jest w porządku.

Najważniejsza jest zmiana parametrów losowania. Strona wersji (otwiera się w nowej karcie) mówi, że błąd 400 przychodzi „on every model”. Na modelach Claude 4.7 i nowszych, które i tak przyjmują tylko wartości domyślne, usunięcie parametrów niczego nie zmienia. Na modelu, który przyjmuje inne wartości, np. Claude Sonnet 4.6, żądanie z niską temperature dla bardziej powtarzalnych odpowiedzi traci ten efekt, a przewodnik mówi, że żadne inne ustawienie go nie zastępuje.

Admin API i Claude Enterprise Analytics API też tracą stare nazwy pól: roles zmienia się w role_ids, group_id w rbac_group_id, name w rolach RBAC w display_name, group_type w group.type, actor.email w actor.email_address, a summaries w data. Klucze API tracą workspace_id na rzecz scope, które ma inne wartości: klucz przypisany do Default Workspace niesie teraz prawdziwe ID tej przestrzeni, gdzie wcześniej było null.

Co SDK zmieniają same z siebie

Zmiany w SDK i CLI (otwiera się w nowej karcie) nie zależą od wersji API. TypeScript i Python obok siebie:

ZmianaTypeScript 1.0.0Python 2.0.0
Nagłówek klucza APIAuthorization: Bearer, z apiKey i ANTHROPIC_API_KEYAuthorization: Bearer, z api_key i ANTHROPIC_API_KEY
Dwa poświadczenia w jednym kliencieRzuca TypeErrorRzuca ValueError
MessageParamUnia UserMessageParam, AssistantMessageParam, SystemMessageParam; tylko typyTa sama unia; wywołanie lub dziedziczenie MessageParam rzuca TypeError
betas w models.list/retrieveUsunięte z typów parametrów; użyj client.beta.modelsPrzekazanie to TypeError; użyj client.beta.models
compactionControl w tool runnerzeUsunięte (przestało działać w 0.129.0); użyj kompakcji po stronie serweraNie wymieniono
Text CompletionsUsunięteNie wymieniono
Pakiety platformPakiety Bedrock, Vertex, Foundry, AWS i Google Cloud potrzebują własnego 1.0.0Nie wymieniono
LicencjaApache-2.0 (0.137.0 było na MIT)Apache-2.0 (1.17.0 było na MIT)

Zmiana nagłówka najczęściej zepsuje coś poza twoim kodem. Wszystko między aplikacją a API, co czyta X-Api-Key, przestaje widzieć klucz: firmowe proxy, bramka API, middleware, które go sprawdza, filtr logów, który go maskuje, zaślepka w teście, która go oczekuje. Samo API przyjmuje klucz w obu nagłówkach, jak podaje przewodnik migracji. Nie każdy klient się zmienia: w TypeScripcie apiKey w @anthropic-ai/foundry-sdk dalej idzie jako X-Api-Key, a apiKey w @anthropic-ai/bedrock-sdk już wcześniej był tokenem Bearer; w Pythonie AnthropicFoundry dalej wysyła x-api-key, a AnthropicBedrockMantle już wcześniej wysyłał token Bearer.

Zasada jednego poświadczenia łapie konfiguracje, które wysyłały razem token bramki i klucz API. Gdy w kodzie nie podasz żadnego, a ustawione są i ANTHROPIC_API_KEY, i ANTHROPIC_AUTH_TOKEN, klient użyje klucza i raz zapisze ostrzeżenie.

Kogo to dotyczy i jak to sprawdzić

Dotyczy cię od dnia, w którym zainstalujesz nową wersję główną, nie wcześniej. Przeszukanie repozytorium pokaże, ile jest pracy:

Szukaj w kodzie i konfiguracjiJeśli znajdziesz
temperature, top_p, top_k w wywołaniach MessagesUsuń je albo zostaw to żądanie na starym SDK
X-Api-Key (dowolna wielkość liter) w proxy, middleware, mockachCzytaj Authorization albo sam wysyłaj X-Api-Key
apiKey i authToken (lub api_key i auth_token) w jednym klienciePodaj jedno; drugie rzuci błąd
models.list( lub models.retrieve( z betasWołaj client.beta.models
MessageParam( (Python) lub extends MessageParam (TypeScript)Napisz literał słownika albo alias typu z &
compactionControl (TypeScript)Przejdź na context_management z compact_20260112
Bedrock z Claude Opus 4.6 lub starszymZostań przy obecnym SDK, dopóki nie przejdziesz na model 4.7 lub nowszy
ant --api-key lub ant --auth-token w skryptach i CIant 2.0.0 usuwa obie flagi: użyj ANTHROPIC_API_KEY, --api-key-stdin albo ant auth login (dla tokena ANTHROPIC_AUTH_TOKEN lub --auth-token-stdin)

Wiersz o Bedrocku wymaga uwagi. Nowe SDK wysyłają 2026-10-21 także z klientów Amazon Bedrock i Google Cloud, a na Bedrocku ta wersja istnieje tylko dla modeli Claude 4.7 i nowszych. Jeśli wołasz tam starszy model, krok aktualizacji (otwiera się w nowej karcie) każe zostać przy obecnej wersji SDK. W TypeScripcie to wstrzymuje całe drzewo zależności: według rejestru npm (otwiera się w nowej karcie) @anthropic-ai/bedrock-sdk 1.0.0 wymaga @anthropic-ai/sdk >=1.0.0 <2, a 0.36.0 wymaga >=0.115.1 <1. Strona wersji wymienia też 2026-10-21 na Claude Platform on AWS, w obu ofertach Google Cloud i w Microsoft Foundry, a ograniczenie modeli podaje tylko dla Bedrocka.

Jak zaktualizować Anthropic SDK do wersji API 2026-10-21

  1. Przypnij ostatnią starą wersję i zapisz punkt odniesienia

    Zanotuj, czego używasz dziś (np. @anthropic-ai/sdk 0.137.0 albo anthropic 1.17.0), i uruchom na tym testy, żeby odróżnić błąd migracji od starego i móc wrócić do znanej wersji.

  2. Usuń temperature, top_p i top_k

    Wykreśl te trzy parametry z każdego żądania Messages i Batch. Dla żądania, które zależy od niskiej temperatury na modelu, który ją przyjmuje, zdecyduj teraz: zaakceptuj wartość domyślną albo zostaw tę ścieżkę na starym SDK na jakiś czas.

  3. Przestaw wszystko, co czyta X-Api-Key, na Authorization

    Zaktualizuj proxy, bramki, middleware, maskowanie logów i zaślepki w testach, by czytały Authorization: Bearer <klucz>. Jeśli bramki nie da się jeszcze zmienić, ustaw nagłówek sam: w TypeScripcie defaultHeaders: { "X-Api-Key": apiKey, Authorization: null }, w Pythonie funkcją auth na kliencie HTTP, którą pokazuje przewodnik.

  4. Zainstaluj najnowszą nową wersję główną razem z pakietami platform

    Zainstaluj @anthropic-ai/sdk@^1 (1.3.0 na 24 października) albo anthropic>=2,<3 (2.3.0), a nie dokładnie 1.0.0 czy 2.0.0: wersje 1.2.0 i 2.2.0 poprawiły tool runner. W TypeScripcie przenieś @anthropic-ai/bedrock-sdk, vertex-sdk, foundry-sdk, aws-sdk czy google-cloud-sdk na 1.x w tej samej zmianie, inaczej menedżer pakietów zainstaluje dla nich drugą, starszą kopię SDK.

  5. Popraw to, co zgłoszą kompilator i testy

    Podawaj jedno poświadczenie na klienta, przenieś wywołania z betas do client.beta.models, przepisz konstruktory i interfejsy MessageParam, usuń bloki document z wiadomości asystenta i citations z wiadomości użytkownika. Potem puść testy na 2026-10-21, z jednym prawdziwym żądaniem na każdą ścieżkę kodu, zanim wydasz zmianę.

W TypeScripcie dwie zmiany, których potrzebuje większość aplikacji, wyglądają tak (druga to przykład z przewodnika migracji):

migrate.ts
// 0.x: przyjmowane na 2023-06-01
await client.messages.create({ model, max_tokens: 1024, temperature: 0.2, messages });
// 1.x: temperature nie ma już w typach, a API zwraca dla niego 400
await client.messages.create({ model, max_tokens: 1024, messages });
 
// 0.x
const page = await client.models.list({ betas: [beta] });
// 1.x
const page = await client.beta.models.list({ betas: [beta] });

Na co uważać

  • Brak daty końca 2023-06-01. Na 24 października 2026 nie podają jej ani informacje o wydaniach, ani strona wersji, a strona wersji zaleca najnowszą wersję, kiedy tylko to możliwe. Pozostanie przy starej wersji głównej traktuj jako decyzję z datą przeglądu, nie jako plan.
  • Nic nie zastępuje niskiej temperatury. Przewodnik daje tylko dwie opcje: przestać ją wysyłać albo zostawić to żądanie na 2023-06-01. Jeśli liczy się powtarzalność odpowiedzi, napisz ewaluację, zanim przełączysz model, który respektował twoją temperaturę.
  • Brak opisanego tekstu błędu. Przewodnik mówi, że te żądania zwracają 400, ale nie cytuje komunikatu. Strona błędów (otwiera się w nowej karcie) przypisuje 400 do invalid_request_error, a SDK rzucają dla niego wyjątek o konkretnym typie, więc test sprawdzający status lub typ jest pewniejszy niż porównywanie tekstu.
  • Poprawki tool runnera po 1.0.0. TypeScript 1.2.0 (otwiera się w nowej karcie) i Python 2.2.0 (otwiera się w nowej karcie), oba z 23 października, poprawiają tool runner: wydanie TypeScript wokół setMessagesParams() i pushMessages(), wydanie Python wokół append_messages() i set_messages_params(). Zaczynaj od najnowszej wersji.
  • Biblioteki zbudowane na SDK. Framework, który opakowuje @anthropic-ai/sdk albo anthropic, deklaruje własny zakres wersji i własne typy. Sprawdź, czy obsługuje nową wersję główną, zanim zaktualizujesz; przewodnik migracji obejmuje tylko pakiety Anthropic.
  • Ewidencja licencji. Apache 2.0 nie wymaga zmian w kodzie, ale jeśli śledzisz licencje zależności, zaktualizuj wpis.

Wszystkie źródła czytaliśmy 24 października 2026; zanim zaplanujesz aktualizację, sprawdź w informacjach o wydaniach, czy nie doszło coś nowego. Wcześniejsze nowości wokół Claude’a, w tym wyjście trybu fast dla Opus 5.5 z wersji testowej, są w podlinkowanym wyżej przeglądzie web dev z 18 października.

Co się psuje po aktualizacji Anthropic Python SDK do 2.0?

Wersja 2.0.0 wysyła wersję API 2026-10-21, więc temperature, top_p i top_k kończą się błędem 400, podobnie jak bloki document w wiadomościach asystenta i citations na blokach tekstu w wiadomościach użytkownika. Samo SDK wysyła klucz API jako Authorization: Bearer, rzuca ValueError, gdy klient dostanie dwa poświadczenia, robi z MessageParam unię, której nie da się już wywołać, i usuwa betas z client.models.list i retrieve.

Czy Anthropic TypeScript SDK 1.0.0 łamie zgodność z 0.x?

Tak. Wersja 1.0.0, opublikowana 21 października 2026, jako pierwsza wysyła wersję API 2026-10-21 i zmienia też samo SDK: klucz idzie jako Authorization: Bearer, klient przyjmuje jedno poświadczenie, MessageParam jest unią trzech typów ról, betas znika z metod Models spoza beta, a compactionControl i Text Completions zostały usunięte.

Dlaczego temperature daje błąd 400 w nowej wersji Claude API?

Wersja API 2026-10-21 usuwa parametry temperature, top_p i top_k, a żądanie z którymkolwiek z nich kończy się błędem 400, nawet przy wartości domyślnej. Usuń je. Żądania losują wtedy z wartościami domyślnymi, w tym temperature 1,0; niższej temperatury nic nie zastępuje, poza zostaniem przy 2023-06-01 dla tego żądania.

Czy mogę zostać przy wersji API 2023-06-01?

Tak, na 24 października 2026. Wcześniejsze główne wersje SDK nadal wysyłają 2023-06-01, a strona wersji i informacje o wydaniach nie podają dla niej daty końca. Anthropic zaleca najnowszą wersję, więc traktuj zostanie jako świadomy, tymczasowy wybór.

Czy muszę coś zmienić, jeśli wołam API przez curl?

Nie, dopóki sam nie zmienisz nagłówka anthropic-version na 2026-10-21. Wtedy zmiany w Messages API dotyczą twoich żądań. Zmiana na Authorization: Bearer jest tylko w SDK: API przyjmuje klucz w obu nagłówkach, więc curl z x-api-key dalej działa.

Dalsza lektura

Migrating to API version 2026-10-21 (otwiera się w nowej karcie)Każda zmiana łamiąca zgodność z kodem przed i po, dla wszystkich ośmiu SDK i CLI.platform.claude.com
Claude API: wersje (otwiera się w nowej karcie)Co zmieniała każda wersja API i gdzie jest dostępna 2026-10-21, łącznie z Bedrockiem.platform.claude.com
Informacje o wydaniach Claude Platform (otwiera się w nowej karcie)Wpis z 21 października 2026 z ośmioma wersjami SDK i CLI oraz zmianą licencji.platform.claude.com
anthropic-sdk-typescript sdk-v1.0.0 (otwiera się w nowej karcie)Wydanie TypeScript na GitHubie; kolejne wydania 1.x są obok.github.com
anthropic-sdk-python v2.0.0 (otwiera się w nowej karcie)Wydanie Python na GitHubie, a po nim 2.1.0 do 2.3.0.github.com
@anthropic-ai/sdk w rejestrze npm (otwiera się w nowej karcie)Każda wersja z czasem publikacji i licencją.registry.npmjs.org

Napisz, co budujemy.

Odpowiadamy w ciągu jednego dnia roboczego.