DEV Community

Cover image for クロード ソネット 5 vs ソネット 4.6: 変更点とアップグレードは必要か
Akira
Akira

Posted on • Originally published at apidog.com

クロード ソネット 5 vs ソネット 4.6: 変更点とアップグレードは必要か

Anthropicは2026年6月30日にClaude Sonnet 5をリリースしました。Sonnet 5はSonnet 4.6のドロップイン代替として使えますが、モデルIDを変えるだけで安全に移行できるとは限りません。新しいトークナイザー、デフォルトで有効なアダプティブシンキング、400エラーになるリクエストパラメーターがあるため、本番投入前に確認すべき変更点があります。

今すぐApidogを試す

要点は次の通りです。

  • トークンあたりの標準価格はSonnet 4.6と同じ
  • コーディングとエージェントタスクのベンチマークは向上
  • 移行時に確認すべきコード変更は主に3つ
  • 新トークナイザーにより、同じテキストでもトークン数が約30%増える可能性がある
  • max_tokens、コスト見積もり、回帰テストは再確認が必要

アップグレードの概要

Sonnet 5は、Sonnet 4.6と同じトークンごとの標準価格を維持しています。そのため、トークン単価だけを見ると請求額は変わりません。

ただし、実装上は以下を確認してください。

属性 Sonnet 4.6 (claude-sonnet-4-6) Sonnet 5 (claude-sonnet-5)
リリース 前モデル 2026年6月30日
コンテキストウィンドウ 最大1Mトークン 1Mトークン(デフォルトおよび最大)
最大出力 128Kトークン 128Kトークン
思考のデフォルト thinking フィールドがない場合はオフ アダプティブシンキングがデフォルトでオン
拡張思考(budget_tokens 非推奨 400エラーを返す
サンプリングパラメーター(temperature, top_p, top_k 受け入れられる 非デフォルト値は400エラーを返す
トークナイザー 古いトークナイザー 新しいトークナイザー(テキストあたりのトークン数が約30%増加)
標準価格 入力1Mあたり3ドル / 出力1Mあたり15ドル 入力1Mあたり3ドル / 出力1Mあたり15ドル
導入価格 該当なし 2026年8月31日まで入力1Mあたり2ドル / 出力1Mあたり10ドル

構造化出力、ビジョン、プロンプトキャッシュ、ツール使用、バッチ処理など、Sonnet 4.6で使っていた多くの機能はSonnet 5でも継続して使えます。

注意点として、Sonnet 5ではプライオリティティアは利用できません。

向上した点:ベンチマーク

Sonnet 5は、ツール使用やエージェント型ワークロード向けに改善されています。以下はAnthropicがリリース時に報告したベンチマークです。独立検証ではなく、公開された数値として扱ってください。

ベンチマーク Sonnet 4.6 Sonnet 5
SWE-bench Pro(エージェント的コーディング) 58.1% 63.2%
OSWorld-Verified(コンピュータ使用) 78.5% 81.2%

特に効果が出やすいのは、次のような処理です。

  • コード生成
  • 既存コードの修正
  • CLIやターミナル操作を含むエージェント
  • 外部ツールを呼び出すワークフロー
  • API仕様やテストコードの生成

Anthropicは、ツールが関与するタスクではSonnet 5がOpus 4.8に近い性能を発揮すると報告しています。プレミアムモデルとの比較は、Sonnet 5 vs Opus 4.8を参照してください。

安全性の面でも、Sonnet 5はSonnet 4.6より改善されています。報告されている改善点は、望ましくない振る舞い、幻覚、過度な従順性、プロンプトインジェクション耐性などです。

実装上の注意点として、禁止されたリクエストの拒否はHTTPエラーではなく、HTTP 200の成功レスポンスとして返る場合があります。その場合、stop_reason: "refusal"を確認してください。

if response.stop_reason == "refusal":
    # 拒否レスポンスとして処理する
    handle_refusal(response)
else:
    handle_success(response)
Enter fullscreen mode Exit fullscreen mode

移行時に必要な3つのコード変更

ほとんどの移行では、確認すべき変更は次の3つです。

  1. アダプティブシンキングがデフォルトでオン
  2. budget_tokensによる手動の拡張思考が利用不可
  3. 非デフォルトのサンプリングパラメーターが400エラーになる

1. アダプティブシンキングがデフォルトでオンになる

Sonnet 4.6では、thinkingフィールドを指定しない場合、思考は無効でした。

Sonnet 5では、thinkingフィールドを省略するとアダプティブシンキングが有効になります。モデルはタスクに応じて思考量を調整し、必要に応じて思考トークンを消費します。

ここで重要なのは、max_tokensが次の合計上限になることです。

max_tokens = 思考トークン + 最終応答テキスト
Enter fullscreen mode Exit fullscreen mode

Sonnet 4.6で応答テキスト用に設定していたmax_tokensをそのまま使うと、Sonnet 5では思考トークンが同じ予算を消費し、回答が途中で切れる可能性があります。

以前と同じく思考なしで実行したい場合は、明示的に無効化します。

from anthropic import Anthropic

client = Anthropic()

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    thinking={"type": "disabled"},
    messages=[
        {
            "role": "user",
            "content": "Return the OpenAPI 3.1 path object for GET /invoices/{id}."
        }
    ],
)

print(response.content[0].text)
Enter fullscreen mode Exit fullscreen mode

アダプティブシンキングを使う場合は、effortで深さを制御します。

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=8192,
    thinking={"type": "adaptive"},
    effort="medium",
    messages=[
        {
            "role": "user",
            "content": "Draft integration tests for the POST /orders endpoint."
        }
    ],
)
Enter fullscreen mode Exit fullscreen mode

指定できるeffortは次の通りです。

  • low
  • medium
  • high
  • xhigh

ポイントは、Sonnet 5ではbudget_tokensではなく、thinking={"type": "adaptive"}effortで制御することです。

2. 手動の拡張思考が削除された

Sonnet 4.6以前で使われていた次の形式は、Sonnet 5では400エラーになります。

{
  "thinking": {
    "type": "enabled",
    "budget_tokens": 4096
  }
}
Enter fullscreen mode Exit fullscreen mode

移行時は、次のように置き換えてください。

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=8192,
    thinking={"type": "adaptive"},
    effort="high",
    messages=[
        {
            "role": "user",
            "content": "Analyze this failing CI pipeline and propose fixes."
        }
    ],
)
Enter fullscreen mode Exit fullscreen mode

移行チェックでは、コードベース全体で以下を検索してください。

grep -R "budget_tokens" .
grep -R '"type": "enabled"' .
grep -R "'type': 'enabled'" .
Enter fullscreen mode Exit fullscreen mode

難しいタスク向けに大きなbudget_tokensを使っていた場合は、effort="high"またはeffort="xhigh"を検討します。

3. サンプリングパラメーターが400を返す

Sonnet 5では、次のパラメーターに非デフォルト値を設定すると400エラーになります。

  • temperature
  • top_p
  • top_k

たとえば、以下のようなリクエストは移行対象です。

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    temperature=0,
    messages=[
        {"role": "user", "content": "Generate a JSON schema."}
    ],
)
Enter fullscreen mode Exit fullscreen mode

Sonnet 5では、サンプリング設定ではなく、プロンプトで出力を制御します。

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[
        {
            "role": "system",
            "content": (
                "Return only valid JSON. Do not include Markdown. "
                "Use deterministic field names and keep property order stable."
            )
        },
        {
            "role": "user",
            "content": "Generate a JSON schema for a customer profile."
        }
    ],
)
Enter fullscreen mode Exit fullscreen mode

移行前に、次のように検索しておくと本番環境での400エラーを避けやすくなります。

grep -R "temperature" .
grep -R "top_p" .
grep -R "top_k" .
Enter fullscreen mode Exit fullscreen mode

また、Sonnet 4.6から変わらない点として、アシスタントメッセージのプリフィルは引き続きサポートされません。プリフィルで応答開始を強制していた場合は、構造化出力、output_config.format、またはシステムプロンプトで代替してください。

トークナイザー変更で再測定すべきもの

Sonnet 5は新しいトークナイザーを使用します。同じ入力テキストでも、Sonnet 4.6と比べて約30%、つまり約1.3倍のトークンになる可能性があります。

これはAPI形式の変更ではありません。リクエスト、レスポンス、ストリーミング形式は同じです。

ただし、トークン単位で管理しているものは再測定が必要です。

再測定する項目

  • usageフィールドのトークン数
  • 代表プロンプトごとの入力トークン数
  • 応答に必要なmax_tokens
  • 1Mコンテキストに収まる実際の文字量
  • リクエストあたりのコスト見積もり
  • バッチ処理やプロンプトキャッシュ使用時のコスト

たとえば、Sonnet 4.6で合計10,000トークンだったプロンプトと応答が、Sonnet 5では約13,000トークンになる可能性があります。

トークン単価が同じでも、同じテキストに対するリクエストコストは増える可能性があります。料金の詳細はSonnet 5の料金内訳を参照してください。

トークン数は、Anthropicのトークンカウントエンドポイントで確認できます。

curl https://api.anthropic.com/v1/messages/count_tokens \
  --header "x-api-key: $ANTHROPIC_API_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --header "content-type: application/json" \
  --data '{
    "model": "claude-sonnet-5",
    "messages": [
      {
        "role": "user",
        "content": "Summarize the changelog for our billing API v3 release."
      }
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

同じ入力でclaude-sonnet-4-6も実行し、差分を比較してください。

curl https://api.anthropic.com/v1/messages/count_tokens \
  --header "x-api-key: $ANTHROPIC_API_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --header "content-type: application/json" \
  --data '{
    "model": "claude-sonnet-4-6",
    "messages": [
      {
        "role": "user",
        "content": "Summarize the changelog for our billing API v3 release."
      }
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

この差分が、あなたの実ワークロードにおけるトークナイザー変更の影響です。

アップグレードにかかる費用

Sonnet 5の標準料金はSonnet 4.6と同じです。

項目 標準料金
入力 100万トークンあたり3ドル
出力 100万トークンあたり15ドル

2026年8月31日までは導入価格が適用されます。

項目 導入価格
入力 100万トークンあたり2ドル
出力 100万トークンあたり10ドル

導入期間中は、トークン単価の割引により、新トークナイザーによるトークン増加の一部を相殺できます。

ただし、2026年8月31日以降は標準料金に戻ります。トークンあたりの料金はSonnet 4.6と同じでも、同じテキストでトークン数が増える場合、リクエスト単位のコストは増える可能性があります。

バッチ処理やプロンプトキャッシュの料金は固定割引を仮定せず、Anthropicの料金ページを確認してください。

比較用のベースラインとして、Sonnet 4.6の料金Claude APIのコストも参考になります。

アップグレード判断

モデルIDの変更自体は簡単です。

- model="claude-sonnet-4-6"
+ model="claude-sonnet-5"
Enter fullscreen mode Exit fullscreen mode

ただし、実際に切り替えるかどうかはワークロードで判断してください。

エージェント、コーディングツール、ツール多用ワークフロー

今すぐアップグレードを検討できます。

SWE-bench ProとOSWorldの改善は、エージェント型アプリケーションが使う領域と一致しています。安全性の改善も、自律ループを含むアプリケーションでは重要です。

移行時は以下を行います。

  1. temperaturetop_ptop_kを削除
  2. budget_tokensthinkingeffortに置き換え
  3. max_tokensを再設定
  4. 代表プロンプトでトークン数を再測定
  5. 回帰テストを実行

大量の運用ワークロード

アップグレードは可能ですが、必ずテストしてください。

理由は次の2つです。

  • 新トークナイザーにより総トークン数が変わる
  • アダプティブシンキングによりmax_tokensの消費配分が変わる

本番トラフィックを流す前に、実際のプロンプトでトークンカウントとレスポンス品質を比較してください。導入価格期間中に検証すると、コストを抑えて確認できます。

temperaturebudget_tokens、プリフィルに依存している場合

そのまま切り替えないでください。

移行前に以下を修正します。

  • temperature=0などの非デフォルトサンプリングを削除
  • budget_tokenseffortへ置き換え
  • アシスタントプリフィルを構造化出力やプロンプト指示へ移行

プライオリティティアが必須の場合

現状維持してください。

Sonnet 5ではプライオリティティアが利用できません。SLAや運用要件がそれに依存している場合は、そのパスではSonnet 4.6を継続利用する必要があります。

移行前のインターフェース確認には、Sonnet 4.6 APIガイドも参照できます。

Apidogで回帰テストを作る

Sonnet 5への移行で最も安全なのは、ベンチマーク表だけを見ることではなく、自分のプロンプトでSonnet 4.6とSonnet 5を比較することです。

Apidogは、API開発、テスト、モックをまとめて扱えるツールです。Claude APIはHTTPエンドポイントとして呼び出すため、認証ヘッダー、JSONリクエストボディ、JSONレスポンスをApidog上で保存し、再実行できます。

実用的な移行フローは次の通りです。

  1. 本番で使っている代表的なMessages APIリクエストをApidogコレクションとして保存する
  2. ANTHROPIC_API_KEYを環境変数に保存する
  3. modelだけが異なる2つの環境を作る
    • claude-sonnet-4-6
    • claude-sonnet-5
  4. レスポンス形式、stop_reasonusageトークン数にアサーションを追加する
  5. 両方の環境でコレクションを実行する
  6. 出力、トークン数、失敗したアサーションを比較する

たとえば、チェック項目は次のようになります。

- HTTPステータスが200である
- response.content が存在する
- stop_reason が想定値である
- usage.input_tokens が記録されている
- usage.output_tokens が記録されている
- JSON出力がスキーマに一致する
Enter fullscreen mode Exit fullscreen mode

stop_reason: "refusal"のようなパスも、Apidogでモックして周辺統合をテストできます。エージェントが他のAPIを呼び出す場合は、それらの下流APIも同じワークスペースでテストまたはモックできます。

比較スイートを作るには、Apidogをダウンロードするか、ブラウザでApidogを開いてリクエストから始めてください。Postmanから移行する場合は、PostmanなしでのAPIテストも参考になります。

移行チェックリスト

Sonnet 5へ切り替える前に、最低限これを確認してください。

[ ] model を claude-sonnet-5 に変更した
[ ] temperature / top_p / top_k を削除した
[ ] budget_tokens を削除した
[ ] thinking の指定を見直した
[ ] effort を必要に応じて設定した
[ ] max_tokens を再調整した
[ ] 代表プロンプトでトークン数を再測定した
[ ] stop_reason: "refusal" を処理できる
[ ] 既存のレスポンスパーサーが壊れていない
[ ] 本番相当の回帰テストを実行した
[ ] コスト見積もりをSonnet 5のトークン数で更新した
Enter fullscreen mode Exit fullscreen mode

よくある質問

Claude Sonnet 5はSonnet 4.6のドロップイン代替品ですか?

ほとんどの場合そうです。モデルIDをclaude-sonnet-4-6からclaude-sonnet-5へ変更すれば動作するケースが多いです。

ただし、次の3点は確認してください。

  • アダプティブシンキングがデフォルトでオン
  • budget_tokens拡張思考が400エラー
  • 非デフォルトのtemperaturetop_ptop_kが400エラー

完全なリクエスト設定はSonnet 5 APIガイドを参照してください。

Sonnet 5はSonnet 4.6よりもコストがかかりますか?

トークンあたりでは同じです。標準料金では、どちらも入力100万トークンあたり3ドル、出力100万トークンあたり15ドルです。

ただし、Sonnet 5の新しいトークナイザーは、同じテキストで約30%多くのトークンを生成する可能性があります。そのため、リクエスト単位ではコストが増える場合があります。

2026年8月31日までは、入力100万あたり2ドル、出力100万あたり10ドルの導入価格が適用されます。

アップグレード後に応答が途中で切れるのはなぜですか?

Sonnet 5では、アダプティブシンキングがデフォルトでオンです。思考トークンと最終応答テキストが同じmax_tokens予算を共有します。

対策は次のどちらかです。

# 思考が不要な場合
thinking={"type": "disabled"}
Enter fullscreen mode Exit fullscreen mode

または、

# 思考を使う場合は max_tokens を増やす
max_tokens=8192
thinking={"type": "adaptive"}
effort="medium"
Enter fullscreen mode Exit fullscreen mode

新しいトークナイザーのためにコード変更は必要ですか?

API形式は同じなので、トークナイザー変更だけでコード変更は不要です。

ただし、次は再測定してください。

  • 入力トークン数
  • 出力トークン数
  • max_tokens
  • 1リクエストあたりのコスト
  • コンテキスト上限に近いプロンプト

Sonnet 4.6のトークン数をそのまま使わないでください。

temperaturebudget_tokensはどうなりましたか?

Sonnet 5では、非デフォルトのtemperaturetop_ptop_kは400エラーになります。budget_tokensを使った拡張思考も400エラーになります。

移行方法は次の通りです。

  • サンプリング制御は削除する
  • 出力制御はシステムプロンプトに移す
  • budget_tokensthinking={"type": "adaptive"}effortに置き換える

上位ティアでも同様の変更パターンがあり、詳細はFable 5およびMythos API変更ガイドで確認できます。

Top comments (0)