Claude APIでSonnet 5やSonnet 4.6を使っているコードをClaude Sonnet 5.5に切り替えるとき、モデルIDをclaude-sonnet-5-5に書き換えるだけで済む場合もあれば、リクエストが400エラーで返ってくる場合もあります。Anthropicの公式の変更点ページは、Claude Sonnet 5で動いているコードに影響する破壊的変更を5つ挙げ、さらにエラーにはならないものの応答の形が変わる変更を1つ挙げています(Sonnet 5.5の変更点ページ)。結論から言うと、移行は「モデルIDの書き換え」「thinkingの指定」「tool_choiceの置き換え」「会話履歴を追記専用にすること」「computer useとadvisorの該当確認」「ツール呼び出しの間の文章の受け取り」「effortと費用の測り直し」の順に確認すれば、抜けを防げます。
この記事は、Sonnet 5.5の性能や位置づけを紹介するものではなく、すでにClaude APIを使っている開発者や業務担当者が、手元のコードを安全に切り替えるための手順と、切り替え前後に確認する項目をまとめたものです。モデルそのものの仕様や使い分けは、Claude Sonnet 5.5の仕様と料金を扱った記事にまとめているため、ここでは移行作業に必要な範囲に絞ります。
この記事の確認日は2026年10月13日です。公式ページの内容は更新されることがあるため、実際に作業する前に本文中の公式リンクで最新の表記を見直してください。「仮の例」と書いたコードや数字は、読み方を示すために私たちが置いた例であり、公式が示した実測値や推奨値ではありません。コードにAPIキーなどの実値は含めていません。
移行の全体像|Sonnet 5.5への切り替えで変わること
【完全無料】AI×SNSで成果を出す100大特典を受け取る
AIの使い方を、SNS運用の実務につなげたい方へ。LINEで特典の案内を受け取れます。
Claude Sonnet 5.5への移行とは、モデルIDをclaude-sonnet-5-5に切り替えたうえで、エラーになる設定と応答の形の変化を直す作業で、公式は破壊的変更5つと、エラーにならない応答の形の変更1つを挙げています。
公式のモデルページによると、Claude Sonnet 5.5は2026年9月28日に公開され、状態は最新の提供中モデル、提供終了の目安は2027年9月28日より前にはならないとされています(Sonnet 5.5のモデルページ)。料金は、変更点ページの記載によれば、Sonnet 5と同じ価格で、違いはプロンプトキャッシュの読み込みだけです(Sonnet 5.5の変更点ページ)。さらにトークナイザーはSonnet 5と同じなので、同じ文章なら同じトークン数になります。単価もトークン数も大きく変わらないため、Sonnet 5からの移行で費用の見積もりが崩れる心配は小さい一方、コード側で直す箇所は他のどの項目よりも多くなります。
Sonnet 5からの移行で直す箇所を、変更点ページの記載に沿って整理したのが次の表です。右端の列は、この記事のどの手順で扱うかを示しています。
| 破壊的変更 | 影響を受けるコード | 切り替え後の結果 | この記事の手順 |
|---|---|---|---|
| 思考の止め方が変わる | thinking: {"type": "disabled"}を送っているコード |
400のinvalid_request_error。メッセージはbetween_toolsを案内する | 手順2 |
| 強制的なツール呼び出しの廃止 | tool_choiceにanyやtoolを指定しているコード |
400のinvalid_request_error。トークン計数のエンドポイントでも同じ | 手順3 |
| thinkingブロックがモデルと会話に結びつく | 過去のターンのthinkingブロックを送り返しつつ、履歴を編集するコード | 編集後にブロックを再送すると400エラーになる場合がある | 手順4 |
| 旧computer useツールの不許可 | Claude APIとGoogle Cloudでcomputer_20251124を宣言しているコード |
400のinvalid_request_error | 手順5 |
| advisorツールの組み合わせの制限 | Opus 4.8、Opus 4.7、Sonnet 5、Haiku 5.5をadvisorにしているコード | 400のinvalid_request_error | 手順5 |
6つ目の変更は、リクエストを失敗させずに応答の形だけを変えるものです。ツール呼び出しの間にモデルが書く文章が、thinkingブロックの中に入って返ってきます。この文章をユーザーの画面にそのまま流している画面は、エラーも出ないまま、ツール呼び出しの間だけ無言になります。手順6で、受け取り方を直します(Sonnet 5.5の変更点ページ)。
Anthropicの発表ページは、Sonnet 5.5をSonnet 5より30%以上速く、多くの作業で最大30%低いコストで動くモデルとして紹介しています(Sonnet 5.5の発表ページ)。これらは発表時の速度とコストの説明であり、移行作業の手間を示すものではありません。実際のコストは、手順8で自分の使い方に当てて測り直します。なお、Sonnet 5のAPI料金の確認方法はSonnet 5の料金を扱った記事で整理しています。
移行前に決めること|開始モデルと動かす場所
移行前に決めるのは、いま使っているモデルIDと、APIを動かしているプラットフォームの2点で、公式の移行ガイドは開始モデルごとに追加でやることを分けています。
公式の移行ガイドは、Claude Sonnet 5、Sonnet 4.6、Sonnet 4.5、Sonnet 4、Claude 3.7 Sonnet、Claude Haiku 4.5のそれぞれからSonnet 5.5へ移る場合の変更を一覧にしています。読み方は「自分のモデルを名指ししたグループまで、上から順に当てはめる」というもので、Haiku 4.5から移る場合は、Sonnet 4以前の項目を除くすべてのグループを当てはめます(Sonnet 5.5の移行ガイド)。また、このガイドが扱うのはMessages APIのコードで、Claude Managed Agentsを使っている場合はモデル名の更新以外の変更は不要と書かれています。
次の表は、いま使われていることの多い4つの開始モデルについて、公式の提供終了ページでの状態と、移行ガイドで追加になるグループを並べたものです。提供終了ページの日付は、Anthropicが運営するプラットフォーム(Claude API、Claude Platform on AWS、Microsoft Foundry)に適用されます。Amazon BedrockとGoogle Cloudは各社が独自に終了時期を決めるため、状態や日付が異なる場合があります(モデルの提供終了ページ、2026年10月13日確認)。
| 開始モデルのID | 提供終了ページでの状態 | 提供終了の日付の表記 | 移行ガイドで追加になるグループ |
|---|---|---|---|
claude-sonnet-5 |
Active | Not sooner than June 30, 2027(2027年6月30日より前にはならない) | 共通の変更とSonnet 5向けの節だけ |
claude-sonnet-4-6 |
Active | Not sooner than February 17, 2027(2027年2月17日より前にはならない) | Sonnet 4.6以前向けのグループを追加 |
claude-sonnet-4-5-20250929 |
Deprecated(2026年9月30日に通知) | 2026年11月30日(推奨の置き換え先はclaude-sonnet-5-5) |
Sonnet 4.5以前向けのグループも追加 |
claude-haiku-4-5-20251001 |
Active | Not sooner than October 15, 2026(2026年10月15日より前にはならない) | Haiku 4.5だけのグループを含め、Sonnet 4以前の項目を除いて追加 |
表の中で最も急ぐ必要があるのはSonnet 4.5です。提供終了ページによれば、Claude Sonnet 4.5の提供終了は2026年11月30日と通知されており、推奨の置き換え先としてclaude-sonnet-5-5が示されています。同じページには、一般公開されたモデルの提供終了の前に、少なくとも60日前の通知をするという方針も書かれています。一方で「Not sooner than」という表記は、その日より前には終了しないという意味であり、その日に終了すると書かれているわけではありません。どの表記も、自分のプラットフォームのページで最新の日付を確かめてください。
自分のAPIキーがどのモデルを使っているか分からないときは、同じ提供終了ページが案内している方法が使えます。Claude ConsoleのUsageページでExportを押すと、APIキー別・モデル別の利用内訳をCSVで確認できます。仮の例として、CSVを開いてclaude-sonnet-4-5-20250929の行があるAPIキーを洗い出し、そのキーを使うサービスの一覧を作っておくと、手順1でモデルIDを書き換える場所を漏らさずに済みます。
手順1|モデルIDを claude-sonnet-5-5 に書き換える
Claude APIでのSonnet 5.5のモデルIDは日付のないclaude-sonnet-5-5で、別名(エイリアス)はなく、Amazon Bedrockなど他のプラットフォームでは表記が異なります。
公式のモデルページに載っているプラットフォーム別のIDは次のとおりです。自分が使っているプラットフォームの表記を使ってください(Sonnet 5.5のモデルページ、2026年10月13日確認)。
| プラットフォーム | Sonnet 5.5のモデルID | 書き換えのときの注意 |
|---|---|---|
| Claude API | claude-sonnet-5-5 |
日付の接尾辞はない |
| Amazon Bedrock | anthropic.claude-sonnet-5-5 |
先頭にanthropic.が付く |
| Google Cloud | claude-sonnet-5-5 |
Claude APIと同じ表記 |
| Microsoft Foundry | claude-sonnet-5-5 |
Claude APIと同じ表記 |
| Claude Platform on AWS | claude-sonnet-5-5 |
Claude APIと同じ表記 |
書き換えの本体は1行です。移行ガイドの例は、claude-sonnet-5をclaude-sonnet-5-5に置き換えるものです。仮の例として、設定ファイルや環境変数に書いてあるモデル名もまとめて検索し、コードに直接書かれたIDと設定側のIDの両方を置き換えてください。
model = "claude-sonnet-5" # 移行前
model = "claude-sonnet-5-5" # 移行後
モデルIDの性質についても、公式のモデルIDのページに書かれた内容を知っておくと安心です。4.6世代以降の日付なしのIDは、最新版に自動で向く別名ではなく、固定されたスナップショットそのものです。Anthropicは既存のモデルIDの重みや設定を更新せず、更新版が出るときは新しいIDで提供するとされています(モデルIDとバージョンのページ)。つまり、claude-sonnet-5-5に固定して使っている間は、ある日突然別のモデルに入れ替わることはないと理解できます。それぞれのIDには、独自の提供終了の予定があります。
Claude Codeを使っているなら、書き換えと次の手順の一部を自動で進める方法があります。移行ガイドによれば、Claude Codeで/claude-api migrateを実行すると、同梱のClaude APIスキルが呼び出され、モデルIDの置き換えと、必要に応じて破壊的なパラメータ変更の対応、プリフィルの置き換え、effortの調整をコードベース全体に適用し、手動で確認する項目のチェックリストを作ります。作業を始める前に、対象が作業ディレクトリ全体か、サブディレクトリか、特定のファイルかを確認してくるため、意図しない範囲を書き換えられる心配は小さくなります(Sonnet 5.5の移行ガイド)。スキルの仕組みそのものはClaude Codeのスキルの使い方を扱った記事で整理しています。
/claude-api migrate this project to claude-sonnet-5-5
Claude APIスキルのページにも、モデル移行のための手順案内が含まれていると書かれています(Claude APIスキルのページ)。ただし、スキルの出力はあくまで下書きです。この先の手順2から手順8は、スキルが出したチェックリストの中身を理解して、自分のコードに当てはまるかを判断するために読んでください。
手順2|thinkingの指定と応答の読み方を直す
Sonnet 5.5ではthinking: {"type": "disabled"}が400エラーになり、思考の前置きを止めたいときはbetween_toolsを指定します。thinkingの指定がない場合は、アダプティブシンキングが既定で動きます。
最初に、thinkingを指定しないリクエストの扱いが世代によって違う点を確認します。移行ガイドによれば、Sonnet 5.5ではthinkingの指定がないリクエストはアダプティブシンキングで動きます。Sonnet 4.6以前とHaiku 4.5では、同じリクエストが思考なしで動いていました。thinking.typeに指定できる値も、モデルによって異なります(Sonnet 5.5の移行ガイド)。
| モデル | thinkingを指定しないときの動き | 指定できるthinking.type | 既定のdisplay |
|---|---|---|---|
| Claude Sonnet 5.5 | 思考あり(オン) | adaptive、between_tools |
omitted |
| Claude Sonnet 5 | 思考あり(オン) | adaptive、disabled |
omitted |
| Claude Sonnet 4.6 | 思考なし(オフ) | adaptive、disabled、enabled(非推奨) |
summarized |
| Claude Sonnet 4.5・Claude Haiku 4.5 | 思考なし(オフ) | disabled、enabled |
summarized |
Sonnet 5でdisabledを使って思考を止めていたコードは、Sonnet 5.5では400エラーになります。公式の変更点ページによると、Sonnet 5.5で思考の前置きを止めるには、disabledの代わりにthinking: {"type": "between_tools"}を送ります。これは、このモデルでいちばん低いthinkingの設定で、ベータヘッダーなしに、Sonnet 5.5を提供するすべてのプラットフォームで使えます。ツール呼び出しの間の短い進捗メモはthinkingブロックとして返ってきますが、ツールを使わないリクエストなら、応答は従来のdisabledと同じくテキストだけになります(Sonnet 5.5の変更点ページ)。
仮の例として、Sonnet 5で次のように書いていた要約処理を、Sonnet 5.5に直します。移行ガイドのbefore/afterに沿った書き換えです。effortをxhighからhighに下げている点に注意してください。between_toolsはxhighやmaxでは使えないためです。
# 移行前(Claude Sonnet 5、仮の例)
client.messages.create(
model="claude-sonnet-5",
max_tokens=16000,
thinking={"type": "disabled"},
output_config={"effort": "xhigh"},
messages=[{"role": "user", "content": "次の議事録を3行で要約してください"}],
)
# 移行後(Claude Sonnet 5.5、仮の例)
client.messages.create(
model="claude-sonnet-5-5",
max_tokens=16000,
thinking={"type": "between_tools"},
output_config={"effort": "high"},
messages=[{"role": "user", "content": "次の議事録を3行で要約してください"}],
)
between_toolsには使い方の制約がいくつかあります。変更点ページには、次の点が書かれています。まず、low、medium、highのeffortでは使えますが、xhighやmaxでは400エラーになります。xhighかmaxで動かしたいときは、thinkingの項目を省くか、adaptiveを指定します。次に、between_toolsは他のフィールドを受け付けず、display、budget_tokens、block_bindingを一緒に送ると400エラーになります。さらに、between_toolsのあいだは会話の途中でeffortを変えられず、現在のレベルと異なるeffortをメッセージごとに指定すると400エラーです。ターンごとにeffortを変えたいなら、アダプティブシンキングを使います(Sonnet 5.5の変更点ページ)。
Sonnet 4.6以前から移る場合は、もう一段の確認が要ります。移行ガイドによれば、思考の予算を指定するthinking: {"type": "enabled", "budget_tokens": N}はSonnet 5.5では400エラーになるので、予算を外してeffortのレベルで指定します。予算とeffortには固定の対応表がないため、公式は2〜3段階のレベルで自分の評価を回すよう勧めています。また、temperature、top_p、top_kの既定値以外を指定しても400エラーになるので、削除します(Sonnet 5.5の移行ガイド)。
応答の読み取りも見直します。移行ガイドは、思考なしで動いていたコードに次の3点を求めています。1つ目は、コンテンツブロックを種類で読むことです。応答がthinkingブロックから始まる場合があり、content[0].textを読むコードは動かなくなります。2つ目は、ツール使用のループでは、thinkingブロックを空のものも含めて、そのまま送り返すことです。3つ目は、max_tokensを見直すことです。max_tokensは思考とテキストの合計に効き、思考のトークンは出力トークンとして課金されます。さらに、既定ではthinkingのテキストが省かれ、thinkingブロックは空のthinkingフィールドと署名だけで届きます。読める要約が必要なら、display: "summarized"を指定します。
# 応答をブロックの種類で読む例(仮の例)
for block in response.content:
if block.type == "text":
print(block.text)
elif block.type == "thinking":
pass # 履歴に積むときは、そのまま送り返す
プロンプト側の注意も1点あります。公式のプロンプトガイドは、between_toolsを使うときは、モデルに「考えないでください」と指示する文を取り除くよう案内しています。そうした指示があると、内部用のXMLタグが画面に見える出力に出やすくなるためです。また、ツールのないリクエストでbetween_toolsを指定すると、モデルは思考せずに答えるので、数段階の筋道を要する課題にはアダプティブシンキングを使うよう案内されています(Sonnet 5.5のプロンプトガイド)。
手順3|tool_choiceをautoとstrictに置き換える
Sonnet 5.5は強制的なツール呼び出しに対応しておらず、tool_choiceにanyやtoolを指定すると400エラーになります。autoとstrictなツールの組み合わせに置き換えます。
変更点ページによると、tool_choiceが{"type": "any"}または{"type": "tool", "name": "..."}のリクエストは、400のinvalid_request_errorを返します。エラーの文面は「このモデルではtypeが”tool”と”any”のものは対応していない」という趣旨です。使えるのは、既定の{"type": "auto"}と{"type": "none"}です。同じ確認はトークン計数のエンドポイントにも適用されます。つまり、費用の見積もり用に作ったトークン計数のスクリプトも、強制指定を残したままだと同じエラーで止まります(Sonnet 5.5の変更点ページ)。
置き換えの方法は、移行ガイドによれば、tool_choiceをautoにしたうえで、ツールにstrict: trueを付けて入力がスキーマに一致するようにする、というものです。strictなツールの仕様は、公式のstrict tool useのページに、ツール定義にstrict: trueを付けると、モデルのトークンのサンプリングをスキーマに合う出力に制約することで、入力がJSONスキーマに一致する、と書かれています(Strict tool useのページ)。autoではモデルがツールを呼ばずに文章で答えることもあるため、ツールを使うべき場面をプロンプトに書いておく必要があります。
# 移行前(Claude Sonnet 5、仮の例)
client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
tools=tools,
tool_choice={"type": "tool", "name": "lookup_order"},
messages=[{"role": "user", "content": "注文番号 A-1001 の状況を教えてください"}],
)
# 移行後(Claude Sonnet 5.5、仮の例)
client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
tools=[{**tool, "strict": True} for tool in tools],
tool_choice={"type": "auto"},
messages=[{"role": "user", "content": "注文番号 A-1001 の状況を、lookup_order ツールで調べて教えてください"}],
)
strictなツールには、移行ガイドが挙げる制約があります。1つのリクエストに含められるstrictなツールは最大20個で、MCP、computer use、browser useのツールセットのエントリはstrictを受け付けません。ツールの数が多い場合は、スキーマ通りの入力が欲しいものだけにstrictを付けます。strictなツールが対応するJSONスキーマは一部で、すべてのオブジェクトにadditionalProperties: falseが必要です。Amazon Bedrockでは、strictなツール使用を含む構造化出力がSonnet 5.5では使えません。Bedrockでは、strictを付けずにautoだけを送り、使うべき場面をプロンプトに書き、ツールへの入力は自分のコードで検証します(Sonnet 5.5の移行ガイド)。
仮の例として、「注文ツールを毎回呼ばせたい問い合わせボット」を作っていた場合を考えます。強制指定をやめると、モデルが「注文番号を教えてください」と聞き返す場面が出てきます。これは不具合ではなく、autoの通常の動きです。聞き返しを減らしたいなら、プロンプトに「注文番号が書かれているときはlookup_orderで調べる」と条件を書きます。強制の代わりに「いつ使うか」を言葉で渡す、というのが公式の案内する置き換えの考え方です。
AIの活用をSNS運用にも広げたい方へ。
手順4|会話履歴を追記専用にする
Sonnet 5.5のthinkingブロックは、作ったモデルと会話の内容に結びついているため、過去のメッセージ・システムプロンプト・ツール定義を編集した後で再送すると、400エラーになる場合があります。
変更点ページによると、すべてのthinkingブロックは、どのモデルが作ったかを記録しています。Sonnet 5.5は、Sonnet 5、Opus 4.8、Haiku 4.5およびそれ以前のモデルのブロックを読め、Claude APIとGoogle CloudではHaiku 5.5のブロックも読めます。一方、Opus 5、Opus 5.5、Fable系、Mythos系のモデルのブロックは読めません。読めないブロックが付いたリクエストでは、APIがモデルに見せる前にそのブロックを落とします。リクエストは成功し、落とされたブロックは課金されません(Sonnet 5.5の変更点ページ)。
モデルを切り替える向きごとの扱いを表にまとめます。書いてある内容は変更点ページの記載の範囲で、表にない組み合わせは公式ページで個別に確認してください。
| 切り替えの向き | 思考ブロックの扱い | 備考 |
|---|---|---|
| Sonnet 5 → Sonnet 5.5 | 引き継がれる | Sonnet 5.5はSonnet 5のブロックを読める |
| Haiku 4.5 → Sonnet 5.5 | 引き継がれる | Haiku 4.5のブロックを読める |
| Haiku 5.5 → Sonnet 5.5 | Claude APIとGoogle Cloudでは引き継がれる | 他のプラットフォームは変更点ページに記載がないため、公式で確認する |
| Opus 5.5 → Sonnet 5.5 | 引き継がれない | Sonnet 5.5はOpus 5.5のブロックを読めない |
| Sonnet 5.5 → Opus 5.5 | Claude APIとGoogle Cloudでは引き継がれる | Opus 5.5だけがSonnet 5.5のブロックを読める |
| Sonnet 5.5 → 上記以外のモデル | 切り替え後のターンは推論なしで動く | 落とされたブロックは課金されない |
つまり、Sonnet 5やHaiku 4.5から移るなら推論は保たれますが、Opus 5.5から移る場合は保たれません。また、Sonnet 5.5から別のモデルへ戻す場合は、Opus 5.5以外では切り戻した後のターンが推論なしで動きます。切り戻しを想定した移行計画では、この点を先に織り込んでおきます。
もう1つの結びつきは、会話の内容です。変更点ページによれば、APIは、Sonnet 5.5のthinkingブロックより前にある内容、つまりシステムプロンプト、ツール定義、それ以前のメッセージが、ブロックを作った後で変わっていないかも確認します。2026年8月31日0時(UTC)以降に作られたアカウントでは、Claude API、Amazon Bedrock、Google Cloudでこの確認が既定で強制され、編集の後でブロックを再送するリクエストは400エラーになります。回避するには、会話を追記専用に保ちます。指示やツールを変えたいときは、メッセージの書き換えではなく、会話途中のシステムメッセージを使います。
仮の例として、リクエストのたびにシステムプロンプトの先頭へ現在時刻を差し込んでいるコードを考えます。ブロックが作られた後でシステムプロンプトが変わるため、2回目以降のターンで、前のターンのthinkingブロックが条件に当てはまらなくなります。時刻はシステムプロンプトに入れず、そのターンのユーザーメッセージの末尾に追記する形にすれば、履歴の前の部分は変わりません。長い会話を途中で切り詰めて古いメッセージを削るコードも、同じ理由で見直しの対象になります。
この問題は、自分のAPIキーで動かして気づけるとは限りません。公式のpreserved thinkingのページによると、古いアカウントでは、リクエストがprefix_mismatch_behaviorを指定しない限りエラーにならず、自分のキーでエラーが出ないことは、コードが影響を受けないことを示しません。自分のコードを他の人が各自のキーで動かす場合、新しいアカウントの人は、あなたより先に400エラーに当たります。確認するには、thinking-binding-controls-2026-08-01のベータヘッダーを付けて送ります。リクエストの挙動を変えずに、新しいアカウントで起きる状況を確認できます(Preserved thinkingのページ)。
つなぎの対処として、変更点ページは、同じベータヘッダーを付けてthinking.block_binding.prefix_mismatch_behaviorを"drop_block"にする方法を挙げています。影響を受けるブロックを、エラーにせず落とす設定です。ただしblock_bindingはthinking: {"type": "adaptive"}のときだけ使えます。between_toolsを使う場合は、履歴を追記専用に保つか、編集したターン以降のthinkingブロックを取り除きます。もう1つ、Sonnet 5.5が作ったthinkingブロックは、作ったアカウントか、そのアカウントとリンクしたアカウントの中でしか使えません。別のアカウントから送られたブロックは、モデルに見せる前に落とされます。複数の組織のアカウントをまたいで会話を引き継ぐ仕組みを作っている場合は、この点も確認します。
履歴の編集箇所を探す作業そのものも、Claude APIスキルの/claude-api preserved-thinking-migrationというサブコマンドで進められると、公式のスキルのページに書かれています(Claude APIスキルのページ)。
手順5|computer useとadvisorを使っている場合の確認
Claude APIとGoogle Cloudでは、Sonnet 5.5のcomputer useはcomputer_toolset_20260801のツールセットだけで使えます。advisorツールは、組み合わせられるadvisorのモデルが限られます。
この手順は、computer useかadvisorツールを使っているコードだけが対象です。該当しない場合は読み飛ばして手順6へ進んでください。
computer useについて、変更点ページは、Claude APIとGoogle Cloudではcomputer_toolset_20260801のツールセットだけを受け付け、以前のcomputer_20251124を宣言したリクエストは400のinvalid_request_errorを返す、と書いています。移行するには、ベータヘッダーを外し、toolsのエントリを{"type": "computer_toolset_20260801"}に置き換え、エージェントのループをメンバーのtool_useブロック、バッチ操作、結果のtoolset_nameに対応させます。すでにツールセットを使っているコードは変更不要です。一方、Amazon Bedrockでは、Sonnet 5.5は以前のcomputer_20251124を受け付けます(Sonnet 5.5の変更点ページ)。
今送っているツールのバージョンごとに、何を送ればよいかは、移行ガイドの表が示しています。computer_20250124は、どのプラットフォームでもSonnet 5.5が受け付けません(Sonnet 5.5の移行ガイド)。
| いま送っているバージョン | Claude APIとGoogle Cloudで送るもの | Amazon Bedrockで送るもの |
|---|---|---|
computer_20251124 |
computer_toolset_20260801 |
computer_20251124(変更なし) |
computer_20250124 |
computer_toolset_20260801 |
computer_20251124 |
computer_toolset_20260801 |
変更なし | ツールセットはClaude APIとGoogle Cloudで提供される。他のプラットフォームは公式の互換性の項で確認する |
advisorツール(ベータ)は、Sonnet 5.5を実行役にするとき、組み合わせられるadvisorが決まっています。移行ガイドによれば、Sonnet 5.5の実行役に必要なadvisorは、Opus 5、Opus 5.5、Sonnet 5.5、Fable 5、Fable 5.1、Mythos 5、Mythos 5.1のいずれかです。Opus 4.8、Opus 4.7、Opus 4.6、Sonnet 5、Sonnet 4.6、Haiku 5.5をadvisorにすると400エラーになります。Sonnet 5の実行役では動いていた組み合わせが、実行役をSonnet 5.5に変えただけで止まる、ということです。また、助言は暗号化されたadvisor_redacted_resultブロックとして返るため、助言の文章そのものは読めません。
advisor候補になっているモデルの特徴は、それぞれ別の記事にまとめています。Haiku 5.5をadvisorに使っていたならHaiku 5.5の料金と仕様を扱った記事、代わりに高い推論力のモデルを選ぶならClaude Fable 5.1を扱った記事やOpus 4.8と現行のOpus 5.5の違いを扱った記事が参考になります。
手順6|ツール呼び出しの間の文章を受け取れるようにする
Sonnet 5.5では、ツール呼び出しの間にモデルが書く一文以上の進捗メモがthinkingブロックに入って返るため、画面に流す処理を直さないと、ツール実行中に画面が無言になります。
変更点ページの説明によると、ツール呼び出しの間に書かれたメモのうち、一文か二文を超える長さのものは、進捗更新のthinkingブロックとして返ります。短い一言はこれまでどおりテキストです。既定のdisplayはomittedなので、進捗更新ブロックのテキストは空になり、そのメモをユーザーに流しているアプリは、エラーなしでツール呼び出しの間だけ無言になります(Sonnet 5.5の変更点ページ)。
直し方は2通りあり、移行ガイドが説明しています。1つは、アダプティブシンキングのまま、displayを"updates"(ベータ、thinking-display-updates-2026-08-18ヘッダー)にして更新だけを受け取るか、"summarized"にして推論の要約と混ぜて受け取る方法です。もう1つは、手順2で出たbetween_toolsを使う方法で、この場合はdisplayなしでメモの文章が返ります。どちらの場合も、空でないthinkingブロックを、その直後のtool_useブロックより前に表示します(Sonnet 5.5の移行ガイド)。
# 進捗メモを画面に出す処理の例(仮の例。show_progress などは自社で用意する関数)
for block in response.content:
if block.type == "thinking" and block.thinking:
show_progress(block.thinking)
elif block.type == "text":
show_text(block.text)
elif block.type == "tool_use":
run_tool(block)
プロンプトガイドにも、この点に関する補足があります。between_toolsでは、メモが要約の文章つきで返るのでdisplayの指定は不要です。また、途中経過のメモを出させたい場合に「最終回答まで調査結果を溜めておく」といった古い指示が残っていれば、取り除くよう案内されています(Sonnet 5.5のプロンプトガイド)。プロンプトガイドは、この影響が特に大きいのは、ユーザーがモデルの作業をリアルタイムで見るチャットのような画面だと説明しています。利用者が途中経過を見ない処理では、この手順の優先度は下がります。
手順7|拒否応答とフォールバックを組み込む
Sonnet 5.5の安全分類器は、Sonnet 5より多い分類で依頼を断り、断った場合はHTTP 200でstop_reason: "refusal"が返るので、エラーとは別に処理を用意します。
移行ガイドによると、Sonnet 5.5はSonnet 5より多くのカテゴリで依頼を断ります。断られたリクエストは、エラーではなく通常の応答として返り、stop_reasonが"refusal"になり、stop_detailsにカテゴリ名が入ります(拒否とフォールバックのページ)。HTTPステータスは200のままなので、stop_reasonを見ない既存のコードは、空の応答や断りの文を、そのまま成功として扱ってしまいます。
| カテゴリ | 公式の説明 | サーバー側フォールバックでの扱い |
|---|---|---|
cyber |
サイバー被害につながりうる依頼 | Sonnet 5で再試行される |
bio |
生物学的な被害につながりうる依頼 | 再試行されない |
frontier_llm |
競合するAIモデルの開発を助けうる依頼 | Sonnet 5で再試行される |
reasoning_extraction |
モデルの内部の推論を応答の文章に再現させる依頼 | 再試行されない |
general_harms |
他の利用ポリシーの分野に当てはまる依頼 | 再試行されない |
表の内容は、変更点ページと移行ガイドの記載です。サーバー側のフォールバック(fallbacks: "default"、ベータ、Claude APIのみ)が再試行するのはcyberとfrontier_llmの断りで、移行先はSonnet 5と書かれています。使うには、fallbacksを"default"にして、server-side-fallback-2026-07-01のベータヘッダーを付けます。このパラメータはMessage Batches APIでは使えず、Amazon Bedrock、Google Cloud、Microsoft Foundryでも提供されないため、それらではSDKのミドルウェアを使うか、自分で再試行を書きます(拒否とフォールバックのページ)。
# 断られた応答を別のキューへ回す例(仮の例。retry_queue は自社で用意する)
if response.stop_reason == "refusal":
category = response.stop_details.category
retry_queue.append({"request_id": request_id, "category": category})
else:
save_result(request_id, response)
セキュリティ関連の正当な業務をしている場合の申請先も、移行ガイドに書かれています。リアルタイムのサイバー安全策は、Sonnet 4.6、Sonnet 4.5、Haiku 4.5からのコードにとっては新しいもので、正当なセキュリティ業務ではCyber Verification Programへの申請が案内されています。発表ページも、Sonnet 5.5を、サイバーの安全策とフォールバックつきで公開した最初のSonnetモデルと説明しています(Sonnet 5.5の発表ページ)。
手順8|effort・トークン数・費用を測り直す
移行後は、effortの設定を評価データで回し直し、トークン数と費用を数え直します。公式はeffortの水準が再調整されていること、Sonnet 4.6以前からは同じ文章が約30%多いトークンになることを案内しています。
effortから見ていきます。変更点ページは、Sonnet 5.5のeffortの水準が再調整されており、同じ水準でもSonnet 5と同じ量の思考にはならないので、設定を持ち越さずに評価を回し直すよう書いています。effortのページには、Sonnet 5.5が5段階すべてに対応し、Claude APIの既定はhighであること、xhighとmaxは評価で品質の向上が確認できた場面でだけ使うことが書かれています(effortのページ)。開始点の目安は、移行ガイドとプロンプトガイドに次のようにあります。
| ワークロード | 公式が示す開始点 |
|---|---|
| エージェント型のコーディングや複数ステップのツール使用(仕様が明確なもの) | medium |
| 同じ用途で、より難しい作業や長い作業 | high |
| チャットなどの応答の速さが大事な用途 | mediumまたはlow |
| 上記以外 | highから始める |
表の根拠は、移行ガイドの推奨変更の項(Sonnet 5.5の移行ガイド)と、プロンプトガイドの記載です。プロンプトガイドには、次の補足もあります。まず、thinkingのトークンは、内容が返らない場合でもmax_tokensに数えられるので、思考を見込んだ余裕が必要です。エージェント型のコーディングでは、モデルの上限である128,000に設定してストリーミングで受け取ることが勧められています。次に、トップレベルのeffortをリクエストの間で変えるとプロンプトキャッシュが無効になります。キャッシュを保ったまま途中で変えたいときは、メッセージごとのeffort(ベータ、mid-conversation-output-config-2026-07-01ヘッダー)を使いますが、between_toolsとは併用できません。最後に、公式は、既存のSonnet 5向けのプロンプトは変更なしでもうまく動くはずだと述べています(Sonnet 5.5のプロンプトガイド、effortのページ)。
次に費用です。Claude APIの標準料金を、入力と出力を分けて、100万トークンあたりの米ドルで並べます。Sonnet 5.5の欄は、公式の料金ページの表の値で、2026年10月13日に確認しました。
| モデル | 入力 | 出力 | 5分キャッシュ書き込み | 1時間キャッシュ書き込み | キャッシュ読み込み | 出典 |
|---|---|---|---|---|---|---|
| Claude Sonnet 5.5 | $2 | $10 | $2.50 | $4 | $0.10 | 料金ページ |
| Claude Sonnet 5 | $2 | $10 | $2.50 | $4 | $0.20 | 料金ページ |
| Claude Sonnet 4.6 | $3 | $15 | $3.75 | $6 | $0.30 | 料金ページ |
| Claude Sonnet 4.5 | $3 | $15 | $3.75 | $6 | $0.30 | 料金ページ |
| Claude Haiku 4.5 | $1 | $5 | $1.25 | $2 | $0.10 | 料金ページ |
Sonnet 5.5のキャッシュ読み込みの単価については、公式ページ同士で記載が分かれています。モデルページと料金ページは、Sonnet 5.5のキャッシュ読み込みを100万トークンあたり$0.10としています(Sonnet 5.5のモデルページ、料金ページ)。一方、発表ページは、Sonnet 5と同じ価格として、入力$2、出力$10、キャッシュ読み込み$0.20と書いています(Sonnet 5.5の発表ページ)。どちらか一方に断定せず、費用の試算は両方の値で上限と下限を出し、請求額は自分の利用内訳で突き合わせるのが安全です。キャッシュ読み込みを多く使う処理ほど、この差が効きます。
トークン数についても、移行ガイドに具体的な記載があります。Sonnet 5.5はSonnet 5のトークナイザーを使うため、Sonnet 5とは同じトークン数ですが、Sonnet 4.6、Sonnet 4.5、Haiku 4.5と比べると、同じ文章が内容によって約30%多いトークンになります。画像は、Sonnet 5.5が高解像度の区分で、長辺2576ピクセル、1枚あたり4,784の視覚トークンまで扱い、Sonnet 4.6、Sonnet 4.5、Haiku 4.5は1568ピクセル、1,568トークンが上限です。移行ガイドの例では、2000×1500の画像はSonnet 5.5で約2.5倍のトークンになります。キャッシュできる最小のプロンプト長は512トークンで、Sonnet 5やSonnet 4.6の1,024トークンより短くなっています(Sonnet 5.5の移行ガイド)。数え直しには、公式のトークン計数のエンドポイントが使えます。公式のページによれば、数えた値は推定値で、移行先のモデルで数え直すよう案内されています(トークン計数のページ)。
仮の例として、単価とトークン数の増え方を使って、同じ文章を処理する費用の変化を計算します。トークン数が増える割合を、約30%の目安のとおり1.3倍と仮定し、出力の中の思考トークンは含めない、単純な四則演算です。思考が既定でオンになる影響や、キャッシュ、バッチの割引は含んでいません。
| 開始モデル | 入力(旧モデルで100万トークンの文章を処理した費用 → 移行後) | 出力(同じ条件で換算) | 見方(仮の例) | 出典 |
|---|---|---|---|---|
| Sonnet 4.6またはSonnet 4.5 | $3 → $2×1.3=$2.60 | $15 → $10×1.3=$13 | どちらも約13%低くなる計算。トークン数の増え方は内容によるので、実測で確かめる | 料金ページ |
| Haiku 4.5 | $1 → $2×1.3=$2.60 | $5 → $10×1.3=$13 | どちらも2.6倍になる計算。移行後は費用が上がるので、用途の見直しが要る | 料金ページ |
| Sonnet 5 | $2 → $2(トークナイザーは同じ) | $10 → $10 | 単価もトークン数も同じ。キャッシュ読み込みの$0.10か$0.20の記載差だけを見る | 料金ページ |
Haiku 4.5からの移行は、費用が上がる方向になります。移行ガイドも、価格は高くなり、同じ文章が増えたトークンになるため、数え直して費用の基準を取り直すよう書いています。コスト優先でHaiku系を使っていた用途は、Sonnet 5.5に移さず、新しいHaikuを検討する選択肢もあります。Haiku 4.5の特徴はClaude Haiku 4.5を扱った記事に、API料金とプラン料金の違いはClaudeの料金プランを比較した記事にまとめています。
確認チェック表と切り替えの進め方|仮の例つき
移行の確認は、12の項目を公式の根拠つきで1つずつ見ていく形にすると、抜けが出にくくなります。ここでは、2026年10月13日時点の公式ページの記載に基づく12項目のチェック表を示します。
次の表は、手順1から手順8までの内容を、移行の前後に確認する12項目にまとめたものです。確認日は2026年10月13日で、「誤っていた場合」の列は、公式ページに書かれた挙動です。
| 番号 | 確認する項目 | 誤っていた場合に起こること | 公式の根拠 |
|---|---|---|---|
| 1 | モデルIDが日付のないclaude-sonnet-5-5(Bedrockは先頭にanthropic.)になっている |
旧モデルのまま動く、または存在しないIDで失敗する | モデルページ |
| 2 | thinking: {"type": "disabled"}が残っていない |
400のinvalid_request_error(メッセージがbetween_toolsを案内) |
変更点ページ |
| 3 | between_toolsはhigh以下のeffortで、他のフィールドを付けていない |
xhigh・maxや、display・budget_tokens・block_bindingの同時指定で400エラー |
変更点ページ |
| 4 | budget_tokensと、既定値以外のtemperature・top_p・top_kが残っていない |
400エラー | 移行ガイド |
| 5 | 最後のassistantターンのプリフィルがない | 400エラー(会話はユーザーメッセージで終わる必要がある) | 移行ガイド |
| 6 | tool_choiceがautoかnoneで、トークン計数のスクリプトも同様 |
400のinvalid_request_error | 変更点ページ |
| 7 | システムプロンプト、ツール定義、過去メッセージを編集せず追記専用になっている | 新しいアカウントでは400エラー。古いアカウントでは気づけないことがある | Preserved thinkingのページ |
| 8 | computer useが、Claude APIとGoogle Cloudではcomputer_toolset_20260801になっている |
旧ツール宣言で400エラー | 変更点ページ |
| 9 | advisorが対応するモデルの組み合わせになっている | Opus 4.8などのadvisorで400エラー。助言は暗号化されて読めない | 移行ガイド |
| 10 | 応答をブロックの種類で読み、thinkingを送り返し、ツール間の進捗メモを表示している | 最初のブロックがテキストと決めつけて破損する。ツール間で画面が無言になる | 移行ガイド |
| 11 | effortとmax_tokensを評価データで回し直し、トークン数と費用を数え直している |
思考が切れる、または想定外の費用になる | effortのページ |
| 12 | stop_reason: "refusal"の処理とフォールバックを用意している |
断られた応答が成功として保存される | 拒否とフォールバックのページ |
このチェック表を使って切り替えを進める流れを、仮の例で示します。想定は、社内の問い合わせ記録の要約を作る処理で、いまはClaude Sonnet 4.6を使い、思考は指定せず、要約の言い回しを揃えるためにtemperatureを下げ、要約用のツールを1つ強制的に呼ばせている、というものです。実在の会社や事例ではなく、順番を示すための例です。
| 段階 | やること(仮の例) | 確認する項目の番号 |
|---|---|---|
| 段階1|棚卸し | UsageページのCSVで、旧モデルのIDを使っているAPIキーとサービスを洗い出す | 1 |
| 段階2|コードの修正 | IDを書き換え、temperatureを削除し、強制のツール呼び出しをautoとstrictなツールに置き換える |
1、4、6 |
| 段階3|評価データでの比較 | 代表的な問い合わせ記録を、旧モデルと新モデルの両方に流し、要約の言い回しとトークン数を比べる。effortを2〜3段階で回す | 10、11 |
| 段階4|一部のリクエストでの先行運用 | 断られた応答の件数と、400エラーの内訳を見る | 7、12 |
| 段階5|全面切り替えと旧設定の整理 | 旧モデルのID・旧パラメータを設定ファイルから消し、チェック表の記入結果を残す | 1〜12 |
段階3で、旧モデルと新モデルを同じデータで比べる点が、このやり方の要です。公式のeffortの案内も、既存の設定を持ち越さずに自分の評価で回し直すというものです。段階4で、400エラーを種類ごとに分けて集計しておくと、手順2から手順5のどこが原因かをすぐに特定できます。上の表のうち、「誤っていた場合に起こること」の列は、そのまま切り分けの索引として使えます。
切り戻しの準備も、段階の中で決めておきます。Sonnet 5はActiveで、提供終了の目安は2027年6月30日より前にはならないと書かれています(モデルの提供終了ページ)。つまり、戻し先の候補としては残っています。ただし、Sonnet 5ではdisabledが使え、Sonnet 5.5では使えません。モデルごとに別のパラメータの組を持てるように設定を分けておくと、切り戻しのたびに書き換えずに済みます。これは公式の記載ではなく、私たちの整理です。
よくある質問(FAQ)
- Q1. モデルIDを書き換えるだけで動きますか?
- Sonnet 5からの移行で、thinkingを止める指定、強制的なツール呼び出し、旧computer useツール、特定のadvisor、履歴の編集のどれも使っていなければ、IDの書き換えだけで動く可能性があります。ただし、ツール呼び出しの間の文章がthinkingブロックに入る変更は、エラーなしで画面の見え方に影響します。変更点ページが挙げる5つの破壊的変更を一つずつ確認してください(Sonnet 5.5の変更点ページ)。
- Q2. いま
thinking: {"type": "disabled"}を使っています。どう直しますか? {"type": "between_tools"}に置き換え、effortをhigh以下にします。xhighやmaxで動かしたい場合は、thinkingの項目を省くかadaptiveを指定します(Sonnet 5.5の移行ガイド)。- Q3. Claude Sonnet 4.5を使っています。いつまでに移行すればよいですか?
- 提供終了ページでは、Claude Sonnet 4.5は2026年9月30日に提供終了の通知が出ており、Claude APIでの提供終了は2026年11月30日とされ、推奨の置き換え先は
claude-sonnet-5-5です。Amazon BedrockとGoogle Cloudは各社が日付を決めるため、利用先のページで確認してください(モデルの提供終了ページ)。 - Q4. temperatureやtop_pは指定できますか?
- 既定値以外を指定すると400エラーになるため、リクエストから外します(Sonnet 5.5のモデルページ)。出力の言い回しを揃えたい場合は、プロンプトでの指示で調整します。
- Q5. 費用は上がりますか?
- Sonnet 5からは、入力$2・出力$10(100万トークンあたり、USD)のまま変わらず、キャッシュ読み込みだけが、料金ページでは$0.10、発表ページでは$0.20と公式ページの記載が分かれています。Sonnet 4.6やSonnet 4.5からは単価が下がりますが、同じ文章が約30%多いトークンになります。Haiku 4.5からは単価が上がります(Claude Platformの料金ページ、2026年10月13日確認)。
- Q6. Claude Managed Agentsを使っている場合はどうなりますか?
- 移行ガイドによれば、Managed Agentsを使っている場合は、モデル名の更新以外に必要な変更はありません。この記事の手順2から手順8は、Messages APIを自分で呼び出しているコードが対象です(Sonnet 5.5の移行ガイド)。
- Q7. 自分のキーではエラーが出ないのに、他の人の環境で400が出るのはなぜですか?
- 2026年8月31日0時(UTC)以降に作られたアカウントでは、履歴の編集後のthinkingブロックの再送が既定で400エラーになりますが、古いアカウントでは
prefix_mismatch_behaviorを指定しない限りエラーになりません。thinking-binding-controls-2026-08-01のベータヘッダーを付けると、新しいアカウントで起きる状況を自分のキーで確認できます(Preserved thinkingのページ)。 - Q8. Claude Codeで移行作業を自動化できますか?
- Claude Codeで
/claude-api migrateを実行すると、同梱のClaude APIスキルが、モデルIDの置き換えなどをコードベースに適用し、手動で確認する項目のチェックリストを作ります。範囲を確認してから編集するため、作業の対象を事前に決めておいてください(Sonnet 5.5の移行ガイド)。
まとめ|Sonnet 5.5への移行は、エラーになる設定を先に洗い出す作業
Claude Sonnet 5.5への移行は、モデルIDをclaude-sonnet-5-5に書き換える作業に見えて、実際には、エラーになる設定と応答の形の変化を洗い出す作業です。Sonnet 5からの破壊的変更は、thinkingの止め方、強制的なツール呼び出し、thinkingブロックと履歴の結びつき、旧computer useツール、advisorの組み合わせの5つで、そのほかにツール間の文章がthinkingブロックに入る変更があります。Sonnet 4.6以前やHaiku 4.5からは、思考の予算、サンプリングパラメータ、プリフィル、トークン数の増加など、さらに確認する項目が加わります(Sonnet 5.5の移行ガイド)。
進め方の順番は、まず自分の開始モデルとプラットフォームを決め、手順1から順に直し、最後にeffort・トークン数・費用を評価データで測り直す、というものです。12項目のチェック表に確認結果を記入しておけば、切り戻しが必要になったときにも、どこを変えたかをたどれます。Claude Sonnet 4.5を使っている場合は、2026年11月30日という提供終了の日付が示されているため、優先して進めてください。モデル選びやプランの全体像は、Claudeの料金・モデル・始め方を解説した記事も合わせて参考にしてください。
AIの活用をSNS運用にも広げたい方へ。
あわせて読みたい・姉妹メディア
