Claude API 3年ぶりの新バージョン「2026-10-21」— temperature廃止など破壊的変更と移行手順を解説
はじめに
Claude API を直接叩いたことがある人なら、リクエストヘッダーに anthropic-version: 2023-06-01 と書いた経験があるはずです。この値は 3 年以上変わっていませんでした。
2026 年 10 月 21 日、Anthropic はこのヘッダーの新しい値 2026-10-21 を公開しました。2023 年以来初めての API バージョンです。各言語の SDK もメジャーバージョンが上がり、新しいバージョンを既定で送るようになっています。
この記事では、新バージョンで何が壊れるのか、SDK 側で何が変わったのか、そしてどの順番で移行すればよいかを、公式の移行ガイドに沿って整理します。
何が変わったのか — API レベルの破壊的変更
公式ドキュメントのバージョン履歴と移行ガイドによると、2026-10-21 での主な破壊的変更は次のとおりです。
Messages API
temperature/top_p/top_kの廃止: これらを送ると、既定値と同じ値であっても、どのモデルでも 400 エラーになります。省略した場合はtemperature1.0 を含む既定値でサンプリングされます。- assistant メッセージ内の
documentブロック: assistant メッセージに直接置くと 400 エラーになります。ドキュメントは user メッセージで送ります(Claude が返した web fetch ツール結果の中など、別ブロックに入れ子になったものは引き続き受け付けられます)。 - user メッセージ内の
citations: user メッセージのtextブロックに空でないcitations配列があると 400 エラーになります。
この変更は POST /v1/messages だけでなく、トークンカウントや、2026-10-21 で作成した Message Batches の各リクエストにも適用されます。
Admin API / Enterprise Analytics API
旧フィールド名が返らなくなりました。たとえば RBAC グループの roles は role_ids、ロールの name は display_name、API キーの workspace_id は scope に置き換わります。管理系のスクリプトやダッシュボードを自作している場合は、こちらの影響も確認が必要です。
提供範囲
2026-10-21 は Claude API のほか、Claude Platform on AWS、Microsoft Foundry、Google Cloud で利用できます。Amazon Bedrock では Claude 4.7 以降のモデルでのみ使えます。Bedrock で Opus 4.6 以前を呼んでいる場合は、先にモデルを切り替えるか、現在の SDK バージョンに留まる必要があります。
技術的な背景 — 「バージョン固定」と SDK の関係
バージョンが守るもの
Claude API のバージョンは、ヘッダーで指定した値ごとに「既存の入力パラメータと出力パラメータを維持する」と公式に保証されています。逆に、任意の入力の追加、出力値の追加、ストリーミングのイベント種別のような列挙値の追加は、同じバージョンのままでも起こりえます。つまり、ヘッダーの値を変えない限り、既存のコードは壊れないという契約です。
前回の 2023-06-01 はストリーミング(SSE)形式の刷新でした。それ以降の 3 年間、新機能の多くはバージョンを上げる代わりに anthropic-beta ヘッダーや任意パラメータの追加で提供されてきました。今回は、その間に積み上がった「互換性のために残していた古い仕様」を一度に整理した形です。
@ClaudeDevs の告知では、今後はバージョンをより頻繁に出す方針と、2023-06-01 を非推奨にしないことが示されています(なお、公式ドキュメントのバージョンページと移行ガイドには、リリース頻度や 2023-06-01 の終了日についての記載はありません)。
SDK は「メジャーバージョン=API バージョン」
移行ガイドの説明では、SDK を使っている場合、リクエストはその SDK のメジャーバージョンがリリースされた時点の API バージョンで送られます。新バージョンを送る SDK は次のとおりです。
| SDK | バージョン |
|---|---|
Python (anthropic) | 2.0.0 |
TypeScript (@anthropic-ai/sdk) | 1.0.0 |
| Go | 2.0.0 |
| Java | 3.0.0 |
C# (Anthropic) | 13.0.0 |
| PHP / Ruby | 1.0.0 / 2.0.0 |
ant CLI | 2.0.0 |
旧メジャーの SDK は引き続き 2023-06-01 を送ります。したがって pip install -U や npm update をメジャー更新込みで実行すると、コードを一行も変えていなくても API の挙動が変わる点に注意が必要です。
SDK 自体の破壊的変更
API バージョンとは独立した SDK の変更もあります。影響が大きいものを挙げます。
- API キーの送り方: SDK と CLI は
X-Api-KeyではなくAuthorization: Bearer <key>でキーを送るようになりました(Foundry 用クライアントを除く)。API 側はどちらのヘッダーも受け付けますが、X-Api-Keyを見ているプロキシやログのマスキング、テストのスタブは修正が必要です。 - クライアントあたり認証情報は 1 つ:
api_keyとauth_tokenなどを同時に渡すと、多くの SDK でエラーになります。 MessageParamの型分割: ロールごとの型(UserMessageParamなど)の union になりました。辞書リテラルの多くはそのまま通りますが、Python でMessageParam(...)を直接呼ぶコードはTypeErrorになります。- Text Completions の削除(TypeScript / Go / Java / Ruby / CLI)と、TypeScript・Ruby のツールランナーにあったクライアント側コンパクションの削除(サーバー側コンパクションへ移行)。
- Go のモジュールパス: Go SDK は
/v2のインポートパスに変わりました。antCLI も/v2になり、旧パスはエラーも警告もなく v1 の最新版を入れ続けます。パスを書き換えない限り、更新したつもりで旧バージョンに留まります。 - ライセンス: 新しい SDK と CLI は MIT から Apache 2.0 に変わりました。コード変更は不要ですが、ライセンス管理をしている組織は台帳の更新が必要です。
エンジニアへの影響 — どこから手を付けるか
1. temperature を使っているかを最初に調べる
最も影響が出やすいのはサンプリングパラメータです。移行ガイドによると、Claude 4.7 以降のモデルはもともと既定値しか受け付けないため、パラメータを外しても挙動は変わりません。一方、Claude Sonnet 4.6 のように他の値を受け付けるモデルで temperature: 0 などを指定していた場合、その効果は失われ、代わりになる設定はないと明記されています。
分類や抽出のように出力の揺れを抑えたい処理で低い temperature に頼っていた場合は、選択肢が 2 つあります。
- パラメータを外し、構造化出力やプロンプト側の制約、出力の検証で揺れを吸収する
- そのリクエストだけ
2023-06-01に留める
全部を一度に移す必要はありません。ヘッダーはリクエスト単位なので、影響のある呼び出しだけ旧バージョンに残すことができます。
2. 移行の手順
移行ガイドが示す手順は 3 段階です。
- 切り替える: SDK をメジャー更新する。SDK を使わない場合は
anthropic-versionを2026-10-21にする。 - 破壊的変更に対応する: 上で挙げた API の変更と、使っている言語の SDK の変更を潰す。
- テストしてからリリースする: 新バージョンに対して結合テストを通してから、修正と一緒に出す。
実務的には、依存関係の自動更新(Dependabot や Renovate)が SDK のメジャー更新 PR を作ったときが要注意です。「SDK の更新」に見えて、実際には API バージョンの切り替えも含んでいるため、通常のライブラリ更新と同じ感覚でマージしないようにしましょう。
3. 周辺インフラも確認する
認証ヘッダーの変更は、アプリのコードよりも周辺で問題になります。社内の LLM ゲートウェイ、API キーを検査するプロキシ、ログからキーを伏せるフィルタが X-Api-Key だけを見ていないかを確認してください。キーが Authorization ヘッダーに移ることで、マスキングされずにログへ残るといった事故も考えられます。
まとめ
- Claude API に 2023 年以来の新バージョン
2026-10-21が登場した temperature/top_p/top_kは送るだけで 400 エラーになる。低いtemperatureに頼っていた処理は対応が必要- SDK はメジャーバージョンごとに API バージョンが決まる。メジャー更新はそのまま API の切り替えを意味する
- SDK 側でも認証ヘッダー、型、ライセンスなどが変わる
- ヘッダーはリクエスト単位なので、影響のある呼び出しだけ
2023-06-01に残す段階的な移行ができる
告知どおりバージョンが頻繁に出るようになれば、「SDK のメジャー更新=API 仕様の変更」という関係を前提に、更新の運用を組み立てておく必要があります。