API の入力・認証とツール・型と応答形式を確認する

公式の リリースノート の 10 月 21 日の項目で、Claude API のバージョン 2026-10-21 が公開されました。各言語の SDK と ant CLI のメジャー版も同時に出ていて、このバージョンを既定で送ります。

確認箇所は、API に送る入力、認証とツールの処理、型と応答形式の 3 つに分けられます。

確認箇所中身
API の入力assistant の document、user の citations、temperature・top_p・top_k
認証とツールの処理API キーの送り先ヘッダー、1 つのクライアントが持てる認証情報、tool runner の compaction
型と応答形式MessageParam の union 化、Text Completions の削除、Admin API のフィールド名など

内容はすべて、公式の 移行ガイド と、上のリリースノートに基づきます。各言語のコード例は移行ガイドに揃っているので、この記事では何が起きるかと、どこを確かめるかに絞ります。

直接 anthropic-version を送って API を呼ぶ人と、SDK を使う人とでは、新しい挙動に切り替わる時点が違います。前者はヘッダーの値を 2026-10-21 にした時点、後者は SDK のメジャー版を入れた時点です。

8 月に出た Python SDK v1.0 の話は、anthropic Python SDK が v1.0 に にまとめています。今回はその次の世代の更新です。

更新対象の SDK と CLI のバージョン

移行ガイドの「Switch to 2026-10-21」が示す版は、次のとおりです。これらが、新しいバージョンを既定で送る最初の版です。

対象バージョンインストール方法の注意
Python (anthropic)2.0.0なし
TypeScript (@anthropic-ai/sdk)1.0.0Bedrock・Vertex・Foundry・AWS・Google Cloud の各パッケージも v1 に揃える
C# (Anthropic)13.0.0なし
Go2.0.0import のパスを github.com/anthropics/anthropic-sdk-go/v2 に変える。Go 1.25 以降が必要
Java (com.anthropic:anthropic-java)3.0.0なし
PHP1.0.0composer require "anthropic-ai/sdk" を使う。composer update だけでは今の制約内にとどまる
Ruby (anthropic)2.0.0なし
ant CLI2.0.0go install のパスに /v2 を足す

TypeScript の各プラットフォーム用パッケージを揃えないと、パッケージマネージャーが古い @anthropic-ai/sdk を別に入れます。ant の古い go install のパスは、エラーも警告も出さずに v1 の最新を入れ続けます。更新したつもりでも v1 のままになるので、実際に入った版を確かめてください。

注意

Amazon Bedrock では、2026-10-21 を使えるのは Claude 4.7 以降のモデルだけです。Opus 4.6 以前のモデルを Bedrock で呼んでいるなら、SDK のバージョンや送信する API バージョンを維持してください。先にモデルを 4.7 以降へ移してから SDK や API バージョンを更新します。

400 になる変更|Messages API の 3 件

Messages API (POST /v1/messages) とトークン数の計測、Message Batches の各リクエストに適用される変更です。送っていれば 400 のエラーが返ります。テストで見つかりやすい一方、該当する書き方が本番に残っていると、そのリクエストはすべて失敗します。

送っているもの2026-10-21 での扱い直し方
assistant メッセージに直接置いた document ブロック400user メッセージに置く
user メッセージの text ブロックの空でない citations400 (search_result の中も同じ)citations を外す
temperature・top_p・top_k既定値のままでも 4003 つとも外す

document については、Claude が返した web fetch ツールの結果の中のように、別のブロックに入れ子になったものは、引き続き受け付けられます。citations も、assistant の text ブロックに付いた Claude の過去の返答と、"citations": {"enabled": true} の設定は、引き続き受け付けられます。

temperature を外すと何が変わるか

3 つのパラメーターを外すと、既定値で動作します。temperature の既定は 1.0 で、2023-06-01 で指定しなかった場合と同じです。SDK と CLI の側でも、この 3 つは型から消えました。

影響はモデルで分かれます。Claude 4.7 以降のモデルは、もともと既定値しか受け付けないので、挙動は変わりません。Claude Sonnet 4.6 のように他の値を受け付けるモデルで、出力を安定させるために temperature を下げていた呼び出しは、その効果を失います。代わりの設定はありません。移行ガイドは、その呼び出しについて、パラメーターを送るのをやめるか、そのリクエストだけ 2023-06-01 のままにする、という 2 つを挙げています。

8 月の記事では、temperature を extra_body 経由で送る方法を紹介しました。2026-10-21 では、この方法で送っても 400 になります。

FIXITFIXIT

temperature は消すだけで済むの?

DodaiDodai

モデルによります。temperature を下げていた呼び出しは、出力が変わる可能性があります。

FIXITFIXIT

それって、出力が変わっても気づけないってこと?

DodaiDodai

HTTP エラーにはならないので、対象の呼び出しとモデルを洗い出し、更新前後の出力を比べてください。

認証とツールの実行時挙動の変更

認証ヘッダーの変更は、API が成功していてもプロキシやログ処理に影響します。一方、認証情報の重複指定や削除されたオプションは、SDK や CLI 側のエラーになることがあります。

API キーは Authorization: Bearer で送られる

新しい SDK と ant CLI は、API キーを X-Api-Key ではなく Authorization: Bearer <key> で送ります。Claude API はどちらのヘッダーも受け付けるので、API 自体はエラーを返しません。確認が必要なのは、X-Api-Key を読む次の処理です。

  • X-Api-Key を読むプロキシやゲートウェイ
  • X-Api-Key を対象にしたログのフィルター
  • X-Api-Key を見るミドルウェアやテストのスタブ

プロキシ側を Authorization から読むように直すのが基本です。直せない場合は、SDK 側で X-Api-Key を自分で送る方法が言語ごとに用意されています。ただし ant には、独自のヘッダーを足す手段がありません。プロキシ側を直すしかありません。

リクエストごとに X-Api-Key を足して別のキーを送っていたコードも、Python・TypeScript・Go・PHP・Ruby の SDK では挙動が変わります。足した X-Api-Key がクライアントのキーを置き換えず、2 つのキーが両方送られます。別のキーを送るなら、Authorization に Bearer <key> の形式で指定します。

1 つのクライアントが持てる認証情報は 1 つ

API キーと認証トークンが同じヘッダーを使うため、SDK のクライアントが持てる認証情報は 1 つになりました。以前は、両方を持っていると、それぞれ別のヘッダーで両方送られていました。

Python では、api_key と auth_token のように 2 つ以上をコンストラクターに渡すと ValueError になります。何も渡さない場合は、まず環境変数の ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN の順に確認します。どちらも無ければ、指定されたプロファイルなど、公式の優先順位に沿って認証情報を探します。両方が設定されているときは、キーが使われ、警告が 1 回出ます。ゲートウェイ用のトークンと、その先の API 用のキーを両方送る構成は、ここで影響を受けます。

tool runner の compaction

TypeScript と Ruby の SDK では、tool runner のクライアント側 compaction が削除され、サーバー側の compaction に一本化されました。compactionControl (Ruby は compaction_control:) というオプションがその対象です。

移行ガイドによると、TypeScript では v0.129.0 から、このオプションを渡すと AnthropicError が出るようになっていました (Ruby は v1.74.0 から ArgumentError)。トークンの閾値で自動的に圧縮したいときは、betas と context_management で書き直します。閾値は 50,000 トークン以上にします。

ant CLI の --api-key と --auth-token

ant では --api-key と --auth-token のフラグが削除されました。コマンドラインに値を書くと、シェルの履歴やプロセス一覧から見えるためです。どちらも v1.27.0 から非推奨の警告が出ていました。使っているスクリプトは flag provided but not defined で止まります。

API キーには ANTHROPIC_API_KEY、--api-key-stdin、ant auth login のいずれかを使います。認証トークンには ANTHROPIC_AUTH_TOKEN または --auth-token-stdin を使います。

型・メソッド・API 応答形式の変更

次の変更の多くは、SDK が送るリクエストの内容を変えません。型チェックやビルドで見つかるものが中心ですが、実行時にエラーになるものもあります。

変更影響する範囲
MessageParam が user・assistant・system の 3 つの型の union になる全言語の SDK
Text Completions の削除TypeScript・Go・Java・Ruby の SDK と CLI
非ベータの Models メソッドから betas を削除全言語。client.beta.models に移す
1 つの値しか取れない enum を定数にするC#・Go・Java・PHP・Ruby と、CLI の 1 つのフラグ
Java の複数のゲッターが Optional を返すJava

MessageParam の union 化では、Python で {"role": "user", "content": "Hello"} のような dict を書いている場合は変更が要りません。MessageParam(role="user", content="Hello") のように関数として呼んでいると、TypeError になります。role が変数のときは、型チェッカーが union のどれにも一致しないと報告するので、role ごとに dict を作ります。

Admin API と Claude Enterprise Analytics API の応答では、一部のフィールドが改名され、古い名前は返されなくなります。

API古い名前新しい名前
Admin API (RBAC グループ)rolesrole_ids
Admin API (API キー)workspace_idscope
Enterprise Analytics APIactor.emailactor.email_address
Enterprise Analytics APIsummariesdata

表に載せたのは一部です。全体は移行ガイドの該当の節で確認してください。API キーの workspace_id は、scope に置き換わるだけでなく値の意味も変わります。Default Workspace に紐づくキーで null だった値は、scope.workspace_id で実際の ID が返ります。全ワークスペースのキーは scope が {"type": "organization"} で、workspace_id は付きません。null を Default Workspace と読んでいたコードは、ここで判定が変わります。

ライセンスは MIT から Apache 2.0 へ

新しいバージョンの SDK と ant CLI は、Apache License 2.0 です。以前のバージョンは MIT のままです。コードの変更は要りません。

依存パッケージのライセンス一覧を管理している場合は、該当の項目を更新します。TypeScript の各プラットフォーム用パッケージと、C# の Anthropic.Bedrock などは、それぞれの 1.0.0 のリリースでライセンスが変わります。Java は com.anthropic のすべてのアーティファクトが対象です。

旧バージョンの終了日は記載なし

2026 年 10 月 23 日に確認した移行ガイドとリリースノートには、旧バージョン 2023-06-01 の終了日の記載がありません。

終了日が書かれていないことは、無期限で使えるという保証ではありません。使うモデルや既存コードへの影響を確認して移行を計画し、公式の最新の案内も定期的に確かめてください。

SDK 更新前のチェック手順

SDK を更新する前に、次の順で確かめます。

  1. 使っているモデルを洗い出す。Bedrock で Opus 4.6 以前を呼んでいるなら、その呼び出しは今のバージョンのままにする
  2. temperature・top_p・top_k を探す。Claude 4.7 以降のモデルは外すだけでよい。他のモデルは、効果が消えてよいかを決める
  3. document と citations の置き場所を探す
  4. X-Api-Key を読む場所を、プロキシ・ログ・テストの順に探す
  5. API キーと認証トークンの両方を設定している環境を探す
  6. 型チェックとテストを通す

2〜5 の洗い出しには、次のような検索が使えます。

rg -l "temperature|top_p|top_k" src/
rg -l "document|citations" src/
rg -li "x-api-key" .
rg -l "ANTHROPIC_(API_KEY|AUTH_TOKEN)" .

この検索は候補のファイル名だけを表示します。見つかったファイルを開き、Claude API の呼び出しかどうかと、設定している値を確かめてください。

FIXIT の受け止め

私たちは、API の入力・認証とツール・型と応答形式を分けて確認すると、修正箇所を洗い出しやすいと考えています。特に、エラーが出ない認証ヘッダーの変更は、SDK の外側にあるプロキシや監視を見に行かないと見つかりません。

AI 駆動開発では、モデルや SDK の更新が短い間隔で続きます。更新のたびに全文を読み直すより、「モデルの対応範囲・既定値・エラーになる書き方・認証や応答の変更」の 4 点を確かめる型を持っておくほうが、手間が小さく済みます。モデル更新側の確認項目は Claude Opus 5.5 とは でも同じ見方で整理しました。

まず既存のパラメーターと認証処理を探す

SDK を更新する前に、temperature と X-Api-Key の 2 つだけでも検索し、使っている場所を一覧にしておきましょう。

モデルや SDK の更新を運用に組み込む仕組みづくりは AI 開発ツール定着支援 で、AI を組み込んだプロダクト開発そのものは AI 駆動開発 でお手伝いしています。個別のご相談は お問い合わせ から承っています。