---
title: "Anthropic SDK i nowa wersja API: co psuje i co zmienić"
description: "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."
canonical_url: "https://www.outofplace.space/pl/blog/anthropic-sdk-migracja-api-2026-10-21"
language: "pl"
last_updated: "2026-10-24"
alternates:
  en: "https://www.outofplace.space/blog/claude-api-2026-10-21-sdk-migration.md"
---

# 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.

Opublikowano 2026-10-24 · Kategoria: Web development · Tagi: Claude, TypeScript, Python

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](https://platform.claude.com/docs/en/api/migration-2026-10-21), informacjach o wydaniach, na GitHubie oraz w rejestrach npm i PyPI; nowych SDK nie uruchamialiśmy na API.

  - TypeScript SDK 1.0.0 i Python SDK 2.0.0 opublikowano 21 października 2026; 24 października najnowsze są 1.3.0 i 2.3.0.
  - Wersja API `2026-10-21` zwraca 400 dla `temperature`, `top_p` i `top_k`, przy każdej wartości i na każdym modelu.
  - SDK wysyłają klucz API jako `Authorization: Bearer`; klient trzyma teraz dokładnie jedno poświadczenie.
  - Na Amazon Bedrock `2026-10-21` działa tylko z modelami Claude 4.7 i nowszymi, więc starsze modele na Bedrocku zostają na starym SDK.
  - Nowe wersje główne mają licencję Apache 2.0 zamiast MIT.

## Co się zmieniło 21 października 2026

[Informacje o wydaniach z 21 października 2026](https://platform.claude.com/docs/en/release-notes/overview) 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ędzie | Pakiet                                 | Pierwsza wersja na `2026-10-21` |
| ----------------- | -------------------------------------- | ------------------------------: |
| TypeScript        | `@anthropic-ai/sdk`                    |                           1.0.0 |
| Python            | `anthropic`                            |                           2.0.0 |
| Go                | `github.com/anthropics/anthropic-sdk-go/v2` |                    2.0.0 |
| Java              | `com.anthropic:anthropic-java`         |                           3.0.0 |
| C#                | `Anthropic`                            |                          13.0.0 |
| PHP               | `anthropic-ai/sdk`                     |                           1.0.0 |
| Ruby              | gem `anthropic`                        |                           2.0.0 |
| CLI               | `ant`                                  |                           2.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](https://www.outofplace.space/pl/blog/nowosci-web-dev-2026-10-18); 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](https://registry.npmjs.org/@anthropic-ai/sdk) podaje czas publikacji i licencję każdej wersji; API JSON w PyPI podaje czasy wysłania [wszystkich wydań](https://pypi.org/pypi/anthropic/json) i licencję wersji [1.17.0](https://pypi.org/pypi/anthropic/1.17.0/json) i [2.0.0](https://pypi.org/pypi/anthropic/2.0.0/json). Oto ostatnia wersja na starej wersji API, pierwsza nowa główna i wersja aktualna 24 października 2026:

| Pakiet              | Ostatnia na `2023-06-01` | Pierwsza na `2026-10-21` | Najnowsza 24.10.2026 |
| ------------------- | ------------------------ | ------------------------ | -------------------- |
| `@anthropic-ai/sdk` | 0.137.0, 20.10, MIT      | 1.0.0, 21.10, 16:00 UTC  | 1.3.0, 23.10         |
| `anthropic` (PyPI)  | 1.17.0, 20.10, MIT       | 2.0.0, 21.10, 15:51 UTC  | 2.3.0, 23.10         |

Wydania na GitHubie ([TypeScript sdk-v1.0.0](https://github.com/anthropics/anthropic-sdk-typescript/releases/tag/sdk-v1.0.0), [Python v2.0.0](https://github.com/anthropics/anthropic-sdk-python/releases/tag/v2.0.0)) 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](https://platform.claude.com/docs/en/api/migration-2026-10-21#breaking-changes):

| Żądanie                                                      | `2023-06-01` | `2026-10-21`                                          |
| ------------------------------------------------------------ | ------------ | ----------------------------------------------------- |
| `temperature`, `top_p` lub `top_k`, dowolna wartość          | Przyjęte     | Błąd 400                                              |
| Blok `document` bezpośrednio w wiadomości `assistant`        | Przyjęte     | Błąd 400; dokumenty wysyłaj w wiadomościach `user`    |
| Blok `text` z niepustym `citations` w wiadomości `user`      | Przyjęte     | Błą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](https://platform.claude.com/docs/en/api/versioning) 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](https://platform.claude.com/docs/en/api/migration-2026-10-21#sdk-changes) nie zależą od wersji API. TypeScript i Python obok siebie:

| Zmiana                              | TypeScript 1.0.0                                                         | Python 2.0.0                                                             |
| ----------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| Nagłówek klucza API                 | `Authorization: Bearer`, z `apiKey` i `ANTHROPIC_API_KEY`                | `Authorization: Bearer`, z `api_key` i `ANTHROPIC_API_KEY`               |
| Dwa poświadczenia w jednym kliencie | Rzuca `TypeError`                                                        | Rzuca `ValueError`                                                       |
| `MessageParam`                      | Unia `UserMessageParam`, `AssistantMessageParam`, `SystemMessageParam`; tylko typy | Ta sama unia; wywołanie lub dziedziczenie `MessageParam` rzuca `TypeError` |
| `betas` w `models.list`/`retrieve`  | Usunięte z typów parametrów; użyj `client.beta.models`                   | Przekazanie to `TypeError`; użyj `client.beta.models`                    |
| `compactionControl` w tool runnerze | Usunięte (przestało działać w 0.129.0); użyj kompakcji po stronie serwera | Nie wymieniono                                                          |
| Text Completions                    | Usunięte                                                                 | Nie wymieniono                                                           |
| Pakiety platform                    | Pakiety Bedrock, Vertex, Foundry, AWS i Google Cloud potrzebują własnego 1.0.0 | Nie wymieniono                                                     |
| Licencja                            | Apache-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 konfiguracji                       | Jeśli znajdziesz                                                              |
| ---------------------------------------------------- | ----------------------------------------------------------------------------- |
| `temperature`, `top_p`, `top_k` w wywołaniach Messages | Usuń je albo zostaw to żądanie na starym SDK                                |
| `X-Api-Key` (dowolna wielkość liter) w proxy, middleware, mockach | Czytaj `Authorization` albo sam wysyłaj `X-Api-Key`              |
| `apiKey` i `authToken` (lub `api_key` i `auth_token`) w jednym kliencie | Podaj jedno; drugie rzuci błąd                              |
| `models.list(` lub `models.retrieve(` z `betas`      | Woł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 starszym               | Zostań przy obecnym SDK, dopóki nie przejdziesz na model 4.7 lub nowszy       |
| `ant --api-key` lub `ant --auth-token` w skryptach i CI | `ant` 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](https://platform.claude.com/docs/en/api/migration-2026-10-21#upgrade) każe zostać przy obecnej wersji SDK. W TypeScripcie to wstrzymuje całe drzewo zależności: według [rejestru npm](https://registry.npmjs.org/@anthropic-ai/bedrock-sdk) `@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):

```ts title="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](https://platform.claude.com/docs/en/api/errors) 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](https://github.com/anthropics/anthropic-sdk-typescript/releases/tag/sdk-v1.2.0) i [Python 2.2.0](https://github.com/anthropics/anthropic-sdk-python/releases/tag/v2.2.0), 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.

## Dalsza lektura

- [Migrating to API version 2026-10-21](https://platform.claude.com/docs/en/api/migration-2026-10-21): Każda zmiana łamiąca zgodność z kodem przed i po, dla wszystkich ośmiu SDK i CLI.

- [Claude API: wersje](https://platform.claude.com/docs/en/api/versioning): Co zmieniała każda wersja API i gdzie jest dostępna 2026-10-21, łącznie z Bedrockiem.

- [Informacje o wydaniach Claude Platform](https://platform.claude.com/docs/en/release-notes/overview): Wpis z 21 października 2026 z ośmioma wersjami SDK i CLI oraz zmianą licencji.

- [anthropic-sdk-typescript sdk-v1.0.0](https://github.com/anthropics/anthropic-sdk-typescript/releases/tag/sdk-v1.0.0): Wydanie TypeScript na GitHubie; kolejne wydania 1.x są obok.

- [anthropic-sdk-python v2.0.0](https://github.com/anthropics/anthropic-sdk-python/releases/tag/v2.0.0): Wydanie Python na GitHubie, a po nim 2.1.0 do 2.3.0.

- [@anthropic-ai/sdk w rejestrze npm](https://registry.npmjs.org/@anthropic-ai/sdk): Każda wersja z czasem publikacji i licencją.
