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 エラーになります。省略した場合は temperature 1.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
Go2.0.0
Java3.0.0
C# (Anthropic)13.0.0
PHP / Ruby1.0.0 / 2.0.0
ant CLI2.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 のインポートパスに変わりました。ant CLI も /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 段階です。

  1. 切り替える: SDK をメジャー更新する。SDK を使わない場合は anthropic-version を 2026-10-21 にする。
  2. 破壊的変更に対応する: 上で挙げた API の変更と、使っている言語の SDK の変更を潰す。
  3. テストしてからリリースする: 新バージョンに対して結合テストを通してから、修正と一緒に出す。

実務的には、依存関係の自動更新(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 仕様の変更」という関係を前提に、更新の運用を組み立てておく必要があります。

ソース