本文へ移動
技術を、自社の仕事に。
判断と実行を助けるメディア

記事を検索

Claudeのモデル切替前にModels APIで見る項目

目次 · 6項目

社内システムで使っている Claude のモデルを新しいものに替えたら、これまで通っていたリクエストが 400 エラーで返ってきた。2026年9月から10月にかけて、Claude Sonnet 5.5(9月28日)と Claude Haiku 5.5(10月7日)が公開され、Claude Sonnet 4.5 は2026年11月30日に Claude API での提供を終える予定と告知されました。モデルIDを書き換える機会が続いています。

Haiku 5.5 の移行ガイドには、思考の量を指定する budget_tokens や、temperature などのサンプリングの指定(決められた値以外)が 400 エラーになると書かれています。こうした違いは、モデルごとの移行ガイドを読めば分かりますが、使っている機能が多いと見落とすおそれがあります。

10月1日・5日・6日のリリースノートで、Claude の Models API(GET /v1/models)に、モデルの対応状況を返す項目が3つ加わりました。本記事では、公式ドキュメントの記述と、編集部の検証環境で TypeScript SDK を使って確かめた結果から、切り替えの前に2つのモデルを突き合わせる方法を整理します。

加わった3つの項目

リリースノートとドキュメント(Models overview の「Using the Models API」)の記述をまとめると、次のとおりです。

  • line(10月1日):モデルの系列。Claude Opus 4.5 と 4.6 はどちらも opus。系列に属さないモデルは null。ドキュメントは、モデルIDの文字列から系列を推測せず、この項目を読むよう書いている。値の種類は今後増えうる
  • capabilities.thinking.types.disabled(10月5日):thinking: {type: "disabled"}(思考をオフにする指定)を受け付けるか。false なら 400 エラーになる。思考に対応しないモデルでは true
  • capabilities.server_tools(10月6日):Web検索(web_search)とコード実行(code_execution)のツールに対応するか

Models API はこれまでも、入力の上限(max_input_tokens)、出力の上限(max_tokens)と、capabilities のオブジェクト(バッチ、構造化出力、画像・PDFの入力、effort の段階、思考の種類など)を返していました。今回の3つで、モデルの切り替えで 400 エラーの原因になりうる項目が、さらに API から確かめられるようになりました。

「対応している」の意味に注意

Claude Models APIのcapabilitiesで、切り替え前に確かめる項目を整理した図。thinking.types.enabledはbudget_tokensの指定、disabledは思考をオフにする指定、server_toolsはWeb検索とコード実行、structured_outputsは構造化出力。trueでも組織の設定やeffortの組み合わせで拒否される場合がある

ドキュメントは、いくつかの項目について、true でも必ず成功するわけではないと注意しています。

  • server_tools:対象はWeb検索とコード実行だけで、Web fetch など他のサーバーツールは含まない。supported は、そのツールの少なくとも1つの版に対応していれば true で、すべての版に対応するとは限らない。対応していても、管理者がWeb検索をオフにしているなど、組織の設定で失敗することがある
  • thinking.types.disabled:true でも、思考をオフにしたときに許されない effort の段階と組み合わせると拒否されることがある
  • 最上位の code_execution:server_tools.code_execution とは別物。コード実行のツールの中から、リクエストのほかのツールを呼べるか(programmatic tool calling)を示す。ドキュメントの例では、Claude Haiku 4.5 は server_tools.code_execution が true、最上位の code_execution が false

つまり Models API は、「明らかに通らない組み合わせを先に見つける」ための確認で、通ることの保証ではありません。最終的には、検証用の環境で実際のリクエストを送って確かめます。

切り替え前に突き合わせるスクリプト

編集部では、2つのモデルの capabilities を取得し、違いだけを表示する TypeScript のスクリプトを書きました。

import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic();
const [fromId, toId] = process.argv.slice(2);

const from = await client.models.retrieve(fromId);
const to = await client.models.retrieve(toId);

const checks: Array<[string, (m: Anthropic.ModelInfo) => unknown]> = [
  ['line', (m) => m.line],
  ['max_input_tokens', (m) => m.max_input_tokens],
  ['max_tokens', (m) => m.max_tokens],
  ['thinking: enabled (budget_tokens)', (m) => m.capabilities?.thinking.types.enabled.supported],
  ['thinking: disabled', (m) => m.capabilities?.thinking.types.disabled.supported],
  ['structured_outputs', (m) => m.capabilities?.structured_outputs.supported],
  ['batch', (m) => m.capabilities?.batch.supported],
  ['server_tools.web_search', (m) => m.capabilities?.server_tools.web_search.supported],
  ['server_tools.code_execution', (m) => m.capabilities?.server_tools.code_execution.supported],
  ['effort: low', (m) => m.capabilities?.effort.low.supported],
];

for (const [name, read] of checks) {
  const a = read(from);
  const b = read(to);
  if (a !== b) console.log(`${name}: ${fromId}=${a} -> ${toId}=${b}`);
}

使い方は、現在のモデルIDと切り替え先のモデルIDを渡すだけです。表示された項目のうち、true から false に変わったものが、今のコードで使っていないかを確認します。例えば thinking: enabled が false に変わるなら、budget_tokens を指定しているリクエストを effort の指定に書き換える必要があります。

検証環境で確かめたこと

編集部の検証環境(Node.js v22.22.0、@anthropic-ai/sdk 0.135.0、TypeScript 5.9.3)で、次を確認しました。

  1. 上のスクリプトは、strict の設定で型チェックが通る
  2. SDK の型定義に line・server_tools・thinking.types.disabled が入ったのは 0.132.0(npm の公開日は2026年10月7日)からで、0.131.0 までは無い。古い SDK のままだと、型の上では読めない
  3. 0.135.0(10月15日公開)の型定義には、thinking.types.between_tools も加わっている。一方、server_tools.web_fetch は無く、上のドキュメントの説明と一致する
  4. ローカルに立てたスタブのサーバー(Models API の形の応答を返すもの。値は検証用の架空のもの)に向けて実行し、2つのモデルの取得と、違いだけを表示する動きを確認した

実際の Claude API への問い合わせはしていないため、各モデルが実際に返す値は確認していません。

運用に組み込むなら

編集部の提案として、Models API の確認を次の場面に組み込むと、切り替えの見落としを減らせます。

  • モデルIDを変える PR のチェック:CI で上のスクリプトを実行し、差分を PR のコメントに残す
  • 系列での分岐:「Opus 系なら〜」のようにモデルIDの文字列で判定している箇所を、line を読む形に直す
  • 機能の出し分け:Web検索やコード実行を使う機能は、server_tools が false のモデルでは無効にする(ただし組織の設定でも失敗しうるので、エラー時の扱いも残す)

モデルの廃止の予定は、Models API ではなく Model deprecations のページで告知されます。切り替えの計画には、両方を使います。

最近のモデルの切り替えの注意点は、Claude Sonnet 5.5 へ替える前に、費用の観点は安い新モデルが出ても、請求額は自動では下がらない、複数のモデルを使い分ける設計はマルチモデルのルーティングの記事で扱っています。

確認した範囲

2026年10月16日に、Claude Platform のリリースノート(September 28・30、October 1・5・6・7, 2026)、Models overview の「Using the Models API」、API リファレンスの List Models を直接取得して確認しました(資料調査)。あわせて、npm に公開された @anthropic-ai/sdk 0.128.0〜0.135.0 の型定義を比べ、0.135.0 で上のスクリプトの型チェックとローカルのスタブでの実行を行いました(実機検証。実際の Claude API への送信ではありません)。各モデルが実際に返す値、Amazon Bedrock・Google Cloud など他の経路での Models API の扱いは確認していません。

Claude API を組み込んだシステムのモデルの切り替えや、保守の計画づくりは、開発・AI・自動化のご相談からお問い合わせください。

参考資料

この記事を共有XFacebook
鈴木 翔

技術の可能性に魅了され、学生時代からプログラミングとデジタルアートの分野に深い関心を持つ

この記事のテーマを、自社の次の一歩へ

AIを任せる仕事から、一緒に考える。

いまの業務と使うデータを整理し、AIに任せる範囲、人が確認すること、試し方を考えます。

  • 対象にする業務
  • 利用するデータ
  • 効果の確かめ方
業務でのAI活用を相談する

構想段階からご相談いただけます。この記事の情報を相談フォームに引き継ぎます。

最新記事をメールで受け取る