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.0 | Bedrock・Vertex・Foundry・AWS・Google Cloud の各パッケージも v1 に揃える |
C# (Anthropic) | 13.0.0 | なし |
| Go | 2.0.0 | import のパスを github.com/anthropics/anthropic-sdk-go/v2 に変える。Go 1.25 以降が必要 |
Java (com.anthropic:anthropic-java) | 3.0.0 | なし |
| PHP | 1.0.0 | composer require "anthropic-ai/sdk" を使う。composer update だけでは今の制約内にとどまる |
Ruby (anthropic) | 2.0.0 | なし |
ant CLI | 2.0.0 | go 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 ブロック | 400 | user メッセージに置く |
user メッセージの text ブロックの空でない citations | 400 (search_result の中も同じ) | citations を外す |
temperature・top_p・top_k | 既定値のままでも 400 | 3 つとも外す |
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 になります。
FIXITtemperature は消すだけで済むの?
Dodaiモデルによります。temperature を下げていた呼び出しは、出力が変わる可能性があります。
FIXITそれって、出力が変わっても気づけないってこと?
DodaiHTTP エラーにはならないので、対象の呼び出しとモデルを洗い出し、更新前後の出力を比べてください。
認証とツールの実行時挙動の変更
認証ヘッダーの変更は、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 グループ) | roles | role_ids |
| Admin API (API キー) | workspace_id | scope |
| Enterprise Analytics API | actor.email | actor.email_address |
| Enterprise Analytics API | summaries | data |
表に載せたのは一部です。全体は移行ガイドの該当の節で確認してください。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 を更新する前に、次の順で確かめます。
- 使っているモデルを洗い出す。Bedrock で Opus 4.6 以前を呼んでいるなら、その呼び出しは今のバージョンのままにする
temperature・top_p・top_kを探す。Claude 4.7 以降のモデルは外すだけでよい。他のモデルは、効果が消えてよいかを決めるdocumentとcitationsの置き場所を探すX-Api-Keyを読む場所を、プロキシ・ログ・テストの順に探す- API キーと認証トークンの両方を設定している環境を探す
- 型チェックとテストを通す
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 駆動開発 でお手伝いしています。個別のご相談は お問い合わせ から承っています。



