0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【2026年9月】Claude Sonnet 5.5がリリース!Sonnet 5と同価格で30%高速・API破壊的変更5つまとめ

0
Posted at

はじめに

2026年9月28日、Anthropic が Claude Sonnet 5.5 を公開しました。Sonnet 5 の後継で、Opus 5.5 と並ぶ5.5世代の Sonnet です。Haiku 5.5 も「今後数週間以内」に出ると、発表ページで予告されています。

押さえておきたい点は次の3つです。

  • 価格は Sonnet 5 と同じ入力 $2 / 出力 $10 per 1M tokens。Anthropic によると、出力速度は Sonnet 5 より30%以上速く、1タスクあたりのコストは最大30%下がる。単価が下がったわけではなく、同じ仕事に使うトークンが減ることによる差
  • Terminal-Bench 4.0 のスコアは 70.6%。Sonnet 5(10.3%)を大きく上回り、Opus 5.5(66.4%)も超えた。ほかの評価項目では Opus 5.5 のほうが上
  • Sonnet 5 から API の破壊的変更が5つある。thinking: {"type": "disabled"} が 400 になるので、モデルIDを差し替えるだけでは動かないコードがある

Sonnet 5 を API や Claude Code で使っているチーム向けに、移行で引っかかりやすい箇所を中心にまとめます。数値と仕様は、2026年10月7日時点の Anthropic 公式ドキュメントに基づいています。


モデルスペック

項目 Claude Sonnet 5.5
モデルID Claude API・Google Cloud・Microsoft Foundry・Claude Platform on AWS は claude-sonnet-5-5、Amazon Bedrock は anthropic.claude-sonnet-5-5
リリース日 2026年9月28日
入力価格 $2 / 1M tokens
出力価格 $10 / 1M tokens
キャッシュ書き込み 5分 $2.50 / 1時間 $4
キャッシュ読み取り $0.20 / 1M tokens
Batch API 入力・出力とも50%引き(入力 $1 / 出力 $5)
米国内限定の推論(inference_geo: "us") 全トークン料金が1.1倍
コンテキストウィンドウ 1M tokens(標準料金のまま)
最大出力 128K tokens(Batch API はベータヘッダ output-300k-2026-03-24 で300K)
入力 → 出力 テキスト・画像 → テキスト
知識カットオフ 2026年6月
thinking adaptive(デフォルトでオン)
デフォルト effort Claude API は high
トークナイザー Sonnet 5 と同一(同じ文章なら同じトークン数)
最小キャッシュ可能プロンプト 512 tokens(Sonnet 5 は1,024 tokens)
提供プラットフォーム Claude API / Amazon Bedrock / Google Cloud / Microsoft Foundry / Claude Platform on AWS
提供終了 2027年9月28日より前には行わない

Claude Code と Claude のアプリでは、effort のデフォルトが medium です(Claude API は high)。

temperature・top_p・top_k に既定値以外を指定すると 400 になります。

Sonnet 5 の価格は、公式の価格ページに「導入価格だった $2 / $10 が標準価格になった。9月1日に予定されていた $3 / $15 への値上げは行わない」と注記されています。


主要な新機能・変更点

1. 速度とトークン効率

Anthropic は、Sonnet 5 比で出力速度が30%以上速く、タスクあたりのコストが最大30%下がると説明しています。後者は値下げではなく、同じ作業を終えるまでのトークン数が減ることによるものです。請求額は1リクエストの単価より、タスクが何ターン・何トークンで終わるかで決まります。

2. effort の目盛りが変わった

low / medium / high / xhigh / max の5段階は同じですが、同じレベル名でも思考量が Sonnet 5 とは違います。公式ドキュメントは、Sonnet 5 の設定を持ち込まず、自分の評価セットで effort を振り直すよう案内しています。出発点の目安は次のとおりです。

  • 基本は high(API のデフォルト)から
  • エージェント系コーディングやマルチステップのツール利用は、仕様が固まったタスクなら medium、難しいタスクや長いタスクなら high
  • チャットなどレイテンシが効く用途は medium か low
  • xhigh と max は、品質向上を測定できた処理にだけ使う。この2つでは between_tools が使えず、up-front thinking を切れない

medium 以上では、挨拶のような短い返答でもモデルが短く考えてから答えます。最初のトークンが出るまでの時間が延び、システムプロンプトで「あまり考えるな」と書いても確実には減りません。考える量を減らしたいときは effort を下げます。

max_tokens は thinking の分も含めた上限です。公式は、エージェント系コーディングでは最大値の128,000を指定し、ストリーミングで受け取るよう案内しています。

effort をリクエストごとに変えるとプロンプトキャッシュが無効になります。キャッシュを保ったまま変えたい場合は、ベータの per-message effort(ベータヘッダ mid-conversation-output-config-2026-07-01)を使います。ただし adaptive thinking が前提で、between_tools とは併用できません。

3. ツール呼び出しの合間のテキストが thinking ブロックで返る

Sonnet 5 では、ツール呼び出しの合間にモデルが書くテキストは text ブロックでした。Sonnet 5.5 では、1〜2文を超える長さのメモが進捗アップデート用の thinking ブロックとして返ります。既定の display: "omitted" では中身が空文字列です。短いひとことは従来どおり text です。

リクエストは失敗しませんが、text ブロックだけを画面に出しているクライアントは、ツール実行中に表示が止まったように見えます。adaptive thinking なら、display: "updates"(ベータヘッダ thinking-display-updates-2026-08-18)で進捗メモだけを、"summarized" で推論の要約と混ぜて受け取れます。

response = client.beta.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=16000,
    betas=["thinking-display-updates-2026-08-18"],
    # 進捗メモだけを thinking ブロックで受け取る
    thinking={"type": "adaptive", "display": "updates"},
    messages=[{"role": "user", "content": "このリポジトリのテストが落ちる原因を調べて直して"}],
    tools=[...],
)

for block in response.content:
    # 空でない thinking ブロックは、直後の tool_use の前に画面へ出す
    if block.type == "thinking" and block.thinking:
        print(block.thinking)

「最終回答までは何も書かせない」といった古い指示がプロンプトに残っていたら外します。公式のプロンプトガイドは、進捗を出したい箇所があるなら「最初のツール呼び出しの前に何をするか一行で言う」のように、システムプロンプトで書くよう勧めています。

4. Sonnet 5 になかった機能

次の機能が Sonnet 5.5 から使えます。

  • mid-conversation system messages(messages に role: "system" を足して、キャッシュ済みの履歴を壊さずに指示を追加する。ベータヘッダ不要)
  • mid-conversation tool changes(ベータ)と、ツール定義をメッセージ内に持たせる inline-tools-2026-09-15(ベータ)
  • per-message effort(ベータ)
  • compact on demand(ベータ compact-2026-09-04)。好きなタイミングで会話全体を要約した compaction ブロックを受け取れる

5. Claude Code での扱い

Claude Code の公式ドキュメント(model-config)には、次の記述があります。

  • sonnet エイリアスが Sonnet 5.5 に解決されるのは、Anthropic API を使うときだけ。Claude Platform on AWS では Sonnet 4.6、Amazon Bedrock と Google Cloud では Sonnet 4.5、Microsoft Foundry では Sonnet 4.5 のまま
  • Sonnet 5.5 では thinking をオフにできない(設定画面に「Thinking can't be turned off」と出る)
  • Sonnet 5.5 は常に1Mコンテキストで動く。200K版や [1m] サフィックスはなく、既定では約967Kトークンで自動コンパクトが走る

fast mode は Opus 5.5・Opus 5・Opus 4.8 だけが対象で、Sonnet 5.5 では使えません(価格ページ)。


ベンチマーク

Anthropic の発表ページに載っている表です。

ベンチマーク Sonnet 5.5 Sonnet 5 Opus 5.5
Terminal-Bench 4.0 70.6% 10.3% 66.4%
FrontierCode 1.1(Main) 46.2%(Max) 42.4% 54.4%
CursorBench 4.0 55.5% 34.1% 57.8%
GDPval-AA v2.1 1844 1449 1846
AA-Briefcase v1.1 1811 1359 1822
Humanity's Last Exam(ツールあり) 64.5% 54.9% 67.7%
OSWorld 2.1(partial) 80.1% 57.0% 81.8%
Chartography(ツールなし) 61.6% 15.6% 64.4%

Sonnet 5.5 は、全項目で Sonnet 5 を上回りました。Opus 5.5 を上回ったのは Terminal-Bench 4.0 だけです。ほかの項目では Opus 5.5 が上ですが、GDPval-AA v2.1 は1844対1846とほぼ並んでいます。料金は Opus 5.5($4 / $20)の半分です。

Terminal-Bench 4.0 の Sonnet 5 が 10.3% という数字は差が極端です。評価条件(effort など)は発表ページの脚注に書かれているので、自分の用途で使うなら、そちらも読んでください。

公式のプロンプトガイドは、既存の Sonnet 5 のプロンプトはそのままで十分に動くはずとしたうえで、最難関の長時間タスクには Opus のほうが向くとしています。


API移行時の注意点(Breaking Changes)

公式ドキュメントが挙げる、Sonnet 5 からの破壊的変更は5つです。

⚠️ 1. thinking: {"type": "disabled"} が 400 になる

Sonnet 5 では thinking が既定でオンで、{"type": "disabled"} で切れました。Sonnet 5.5 では 400 invalid_request_error になり、次のメッセージが返ります。

To turn thinking off on this model, send "thinking": {"type": "between_tools"} instead of {"type": "disabled"}. The model does not think before responding. The short updates it writes between tool calls come back as thinking blocks.

between_tools は「一番低い thinking 設定」で、完全なオフではありません。ベータヘッダは不要で、Sonnet 5.5 を提供するすべてのプラットフォームで使えます。ツールを使わないリクエストでは、レスポンスは text だけになります。制約は次のとおりです。

  • effort は low・medium・high のみ。xhigh / max では 400
  • thinking の中に display・budget_tokens・block_binding を併記すると 400
  • 会話の途中で effort を変えられない。リクエストごとの output_config.effort が現在の値と違うと 400
  • server-side fallback で Sonnet 5 に落ちた場合、between_tools のリクエストは Sonnet 5 上で disabled として動く

disabled を使っていた経路を置き換える手順は、公式のプロンプトガイドに沿うと次のとおりです。

  1. between_tools に切り替える。ツールを使わず、数ステップの考え事が要るタスクは、adaptive thinking のほうが向く
  2. 「考えるな」という指示は消す。内部の XML タグが出力に出やすくなる
  3. レスポンスは位置ではなく type で読む。adaptive thinking では先頭に空の thinking ブロックが来ることがあり、between_tools では先頭が進捗メモの thinking ブロックのことがある
  4. thinking ブロックは、アシスタントのターンの他のブロックと一緒に、変更せずそのまま次のリクエストへ返す
  5. max_tokens は thinking 分も含めて見積もる
# Before: Sonnet 5 では通るが、Sonnet 5.5 では 400 になる
client.messages.create(
    model="claude-sonnet-5",
    max_tokens=16000,
    thinking={"type": "disabled"},
    messages=[{"role": "user", "content": "..."}],
)

# After: thinking を切ったままにしたい経路は between_tools(effort high 以下)
client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=16000,
    thinking={"type": "between_tools"},
    output_config={"effort": "high"},
    messages=[{"role": "user", "content": "..."}],
)

between_tools にこだわらず、adaptive thinking のまま low effort に下げる手もあります。low なら簡単な依頼ではほとんど考えずに答えるので、応答時間と品質を自分のトラフィックで比べて決めてください。

⚠️ 2. 強制ツール使用の廃止

tool_choice に {"type": "any"} または {"type": "tool", "name": "..."} を指定すると 400 になります。

tool_choice: type "tool" and "any" are not supported for this model.

トークン数を数える count_tokens でも同じ検査が走ります。auto(既定)と none は使えます。公式の代替案は次のとおりです。

  • ツール入力をスキーマどおりにしたい: auto のまま、ツール定義に strict: true を付ける。または structured outputs に移す
  • ツールを呼んでほしい: プロンプトに「どんなときにそのツールを使うか」を書く
response = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=16000,
    system="天気を聞かれたら、必ず get_weather ツールで調べてから答えてください。",
    tools=[{
        "name": "get_weather",
        "description": "指定した都市の天気を返す",
        "strict": True,  # 引数がスキーマどおりになる
        "input_schema": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
            "additionalProperties": False,
        },
    }],
    tool_choice={"type": "auto"},  # {"type": "tool", ...} は 400
    messages=[{"role": "user", "content": "東京の明日の天気は?"}],
)

# auto は呼び出しを保証しないので、tool_use が返ったかを確認する
called = any(block.type == "tool_use" for block in response.content)

⚠️ 3. thinking ブロックがモデルと会話に紐づく

すべての thinking ブロックには、生成したモデルが記録されます。縛りは3つあります。

モデルの縛り: Sonnet 5.5 は、Sonnet 5・Opus 4.8・Haiku 4.5 以前のモデルが出したブロックを読めます。Opus 5・Opus 5.5・Fable・Mythos のブロックは読めません。逆に、Sonnet 5.5 のブロックを読めるのは、Claude API と Google Cloud 上の Opus 5.5 だけで、ほかのモデルは読めません。Sonnet 5 から Sonnet 5.5 へ、または Claude API と Google Cloud 上で Sonnet 5.5 から Opus 5.5 へ移った会話は推論の履歴が引き継がれ、それ以外の切り替えでは、切り替え後のターンが推論の履歴なしで進みます。読めないブロックは API が落とし、リクエストは成功し、落とされた分は課金されません。ベータヘッダ thinking-binding-controls-2026-08-01 を付けると、落とされたブロックがトップレベルの input_transformations に載ります。

会話の縛り: ブロックを生成した時点から、system・tools・過去のメッセージが変わっていないかを API が検査します。2026年8月31日 0:00 UTC 以降に作ったアカウントでは、Claude API・Amazon Bedrock・Google Cloud で既定で有効です。履歴を編集してから古いブロックを送り直すと 400 になります。

対処は、履歴を追記のみにすることです。指示やツールの変更は、履歴の書き換えではなく mid-conversation system messages で行います。どうしても編集が要るなら、ベータヘッダ thinking-binding-controls-2026-08-01 を付けて thinking.block_binding.prefix_mismatch_behavior を "drop_block" にすると、該当ブロックだけ落として通せます。ただし block_binding は adaptive thinking でしか使えません。between_tools のときは、履歴を追記のみに保つか、編集したターン以降の thinking ブロックを取り除きます。

アカウントの縛り: Sonnet 5.5 が出したブロックは、生成したアカウント(またはリンクされたアカウント)でしか使えません。別のアカウントから送られると、API は落として、リクエストは成功します。以前のモデルのブロックは対象外です。

履歴の圧縮、ツール一覧の動的な変更、古いスクリーンショットの間引きなどを自前でやっているハーネスは、ここで一番踏みやすいです。

⚠️ 4. computer use は toolset 経由のみ(Claude API と Google Cloud)

Claude API と Google Cloud では、computer use は computer_toolset_20260801 でしか使えません。computer_20251124 を宣言すると 400 になり、Claude API ではメッセージが 'claude-sonnet-5-5' does not support tool types: computer_20251124. で始まります。Amazon Bedrock では、Sonnet 5.5 でも computer_20251124 が通ります。

移行では、tools の宣言を {"type": "computer_toolset_20260801"} に変え(ベータヘッダは不要)、computer 操作に答える tool_result に "toolset_name": "computer" を必ず入れます。

スクリーンショットの扱いにも注意が要ります。古いスクリーンショットをクライアント側で間引くと、その後に生成された thinking ブロックがすべて無効になります。公式は、スクリーンショットを長辺2000px以下に縮小して、古いものはサーバー側の tool result clearing に任せるよう案内しています。クライアントで間引くなら、そのときから prefix_mismatch_behavior: "drop_block" を指定し続けます。

⚠️ 5. advisor ツールで使える相手が減った

advisor ツール(ベータ)で Sonnet 5.5 を executor にする場合、advisor には Opus 5・Opus 5.5・Sonnet 5.5・Fable 5・Fable 5.1・Mythos 5・Mythos 5.1 のいずれかが必要です。Opus 4.8・4.7・4.6、Sonnet 5、Sonnet 4.6 を advisor にすると 400 になります。どの advisor も助言は暗号化された advisor_redacted_result ブロックで返るので、クライアントでテキストを読むことはできません。

⚠️ refusal のカテゴリが5つに増えた

Sonnet 5.5 は、Sonnet 5 より広い範囲で応答を拒否します。拒否は HTTP 200 で返り、stop_reason が "refusal"、理由は stop_details.category に入ります。

category 内容
cyber マルウェアやエクスプロイト開発など、サイバー被害につながる内容。ソースコードの脆弱性調査は対象外
bio 生物学的な危害につながる内容。日常的な健康・教育の質問は対象外
frontier_llm 競合する AI モデルの開発を助ける内容
reasoning_extraction モデル内部の推論を応答文に書き出させる依頼
general_harms その他の利用ポリシー領域。無害な作業でも当たることがある

content を読む前に必ず stop_reason を確認します。server-side fallback(fallbacks: "default"、ベータ、Claude API のみ)は、cyber と frontier_llm の拒否だけを Sonnet 5 で再試行します。それ以外の3カテゴリは再試行されません。SDK のミドルウェアや自前のリトライも使えます。

「推論を書き出してから答えて」というプロンプトは reasoning_extraction に当たりやすいので、外します。推論を読みたいときは、adaptive thinking で display: "summarized" の thinking ブロックを読みます。正当なセキュリティ業務は Cyber Verification Program、bio の誤検知が業務に支障を出すなら Life Sciences Verification Program に申請できます。

if response.stop_reason == "refusal":
    # stop_details は refusal のときだけ入る
    category = response.stop_details.category if response.stop_details else None
    ...  # カテゴリに応じて、再試行・別モデルへの退避・ユーザーへの通知を決める

✅ そのまま動くもの

  • 価格、トークナイザー、1Mコンテキスト、128K出力は Sonnet 5 と同じ
  • prompt caching、Batch API、Files API、PDF、ビジョン、サーバー側・クライアント側のツールは引き続き使える
  • 公式のモデルページによると、Claude API・Bedrock・Google Cloud・Microsoft Foundry・Claude Platform on AWS で使える

Claude Code が使える環境なら、/claude-api migrate this project to claude-sonnet-5-5 のように頼むと、移行作業を任せられます。公式の移行ガイドで案内されている方法です。


まとめ

Sonnet 5.5 は、価格を据え置いたまま速度とトークン効率を上げた更新です。Terminal-Bench 4.0 では Opus 5.5 を上回りましたが、コード側の対応が必要な更新でもあります。Sonnet 5 を使っているなら、次の順で確認すると漏れにくいです。

  1. thinking: {"type": "disabled"} を使っている箇所を洗い出す。between_tools(effort high 以下)か、adaptive thinking の low effort に置き換える
  2. tool_choice が any / tool の箇所を、auto + strict: true、または structured outputs に置き換える。count_tokens も対象
  3. messages を自分で組み立てているなら、履歴が追記のみになっているか確認する。モデルの切り替えやリトライで、推論の履歴が落ちることも把握しておく
  4. computer use を使っているなら、computer_toolset_20260801 に移る(Bedrock は computer_20251124 のまま通る)
  5. advisor ツールを使っているなら、組み合わせを確認する
  6. stop_reason == "refusal" の分岐を入れる。server-side fallback の対象は cyber と frontier_llm のみ
  7. effort を振り直し、タスク単位のコストとレイテンシを測り直す
  8. UI がツール実行中に止まって見えないか確認する。必要なら display: "updates" を使う
  9. Claude Code を Bedrock・Google Cloud・Foundry 経由で使っているなら、sonnet エイリアスが Sonnet 5.5 を指さないので、モデルを明示する

最難関のエージェント作業や、複雑な判断が要る処理は Opus 5.5 のほうが向いています。それ以外なら、半額の Sonnet 5.5 を先に試す価値があります。


参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?