Claudeモデルの移行ガイド

Claude Code エンジニアリング 5分で読めます

Claude のモデルを新しい世代へ切り替えるとき、モデル名を書き換えるだけでは済まないことがあります。ここでは Anthropic の公式ドキュメント「Migration guide」の内容にもとづき、Claude Opus 5 / Claude Fable 5 / Claude Mythos 5 へ移行する際の破壊的変更と、実際に何を直せばよいかを整理します。

概要

移行ガイドが対象にしているのは大きく2系統です。1つは claude-mythos-preview から claude-mythos-5 / claude-fable-5 への移行、もう1つは claude-opus-4-8claude-opus-4-6 から claude-opus-5 への移行です。

提供状況にも差があります。claude-fable-5 は Claude API・Amazon Bedrock・AWS 上の Claude Platform・Google Cloud・Microsoft Foundry で一般提供されています。claude-mythos-5 は限定提供(Project Glasswing の承認済み顧客のみ)です。

価格は、Claude Fable 5 / Mythos 5 が入力100万トークンあたり10ドル・出力100万トークンあたり50ドル、Claude Opus 5 が入力100万トークンあたり5ドル・出力100万トークンあたり25ドル(Claude Opus 4.8 と同額)です。

コンテキストウィンドウは、Claude Fable 5 / Mythos 5 が既定で100万トークン・最大出力12万8千トークン。Claude Opus 5 も100万トークンのコンテキストウィンドウをベータヘッダなしで既定利用でき、最大出力は12万8千トークンです。

基本概念

移行で引っかかりやすいのは、思考(thinking)まわりの仕様が世代ごとに変わっている点です。

Claude Fable 5 / Mythos 5 ではアダプティブ思考が常時オンで、thinking: {type: "disabled"} を渡すと 400 エラーになります。また prefill(アシスタント側の書き出しをあらかじめ与える方法)も 400 エラーになるため、代わりにシステムプロンプトで指示します。

Claude Opus 5 でも思考は既定でオンになります。thinking: {type: "disabled"} 自体は使えますが、output_config.effortxhighmax にした状態で併用すると 400 エラーになります。思考を切りたい場合は effort を high 以下にします。

Claude Opus 4.6 以前から Opus 5 へ移る場合は、さらに2点あります。1つは thinking: {type: "enabled", budget_tokens: N} という手動の拡張思考が廃止され、thinking: {type: "adaptive"}output_config.effort の組み合わせに置き換わったこと。もう1つは temperature / top_p / top_k といったサンプリングパラメータが廃止され、渡すと 400 エラーになることです。

安全性の扱いにも差があります。Claude Fable 5 には安全性分類器があり、stop_reason: "refusal" で応答を断ることがあります。Claude Mythos 5 にはこの分類器がありません。Priority Tier は Claude Fable 5 では利用でき、Claude Mythos 5 では利用できません。

データ保持の条件も確認が必要です。Claude Fable 5 / Mythos 5 は 30 日間のデータ保持が必須(Covered Models)で、ZDR(ゼロデータ保持)では利用できません。

使い方

実際のコード変更は次のようになります。まず Claude Mythos Preview からの移行では、モデル名を変え、手動の拡張思考の設定を取り除きます。

# 変更前
model = "claude-mythos-preview"
# 変更後
model = "claude-mythos-5"
# または一般提供のモデルへ
model = "claude-fable-5"
# 変更前(Claude Mythos Preview)
client.messages.create(
    model="claude-mythos-preview",
    max_tokens=16000,
    thinking={"type": "enabled", "budget_tokens": 10000},
    messages=[{"role": "user", "content": "..."}],
)

# 変更後(Claude Mythos 5)
client.messages.create(
    model="claude-mythos-5",
    max_tokens=16000,
    messages=[{"role": "user", "content": "..."}],
)

次に Claude Opus 4.8 から Claude Opus 5 への移行です。モデル名の変更に加えて、思考を切る設定と effort の組み合わせを見直します。

# 変更前(Claude Opus 4.8)— 受け付けられていた
client.messages.create(
    model="claude-opus-4-8",
    max_tokens=16000,
    thinking={"type": "disabled"},
    output_config={"effort": "xhigh"},
    messages=[{"role": "user", "content": "..."}],
)

# 変更後(Claude Opus 5)— xhigh / max との併用は 400 エラー
# 方法1: thinking の設定を外す(アダプティブ思考が有効になる)
client.messages.create(
    model="claude-opus-5",
    max_tokens=16000,
    output_config={"effort": "xhigh"},
    messages=[{"role": "user", "content": "..."}],
)

# 方法2: 思考を切ったまま effort を下げる
client.messages.create(
    model="claude-opus-5",
    max_tokens=16000,
    thinking={"type": "disabled"},
    output_config={"effort": "high"},
    messages=[{"role": "user", "content": "..."}],
)

Claude Opus 4.6 以前からの移行では、拡張思考の書き換えとサンプリングパラメータの削除が加わります。

# 変更前(Claude Opus 4.6)
client.messages.create(
    model="claude-opus-4-6",
    max_tokens=16000,
    thinking={"type": "enabled", "budget_tokens": 10000},
    messages=[{"role": "user", "content": "..."}],
)

# 変更後(Claude Opus 5)— アダプティブ思考を使う
client.messages.create(
    model="claude-opus-5",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    output_config={"effort": "high"},
    messages=[{"role": "user", "content": "..."}],
)
# 変更前(Claude Opus 4.6)— 受け付けられていた
client.messages.create(
    model="claude-opus-4-6",
    temperature=0.7,
    top_p=0.9,
    messages=[...]
)

# 変更後(Claude Opus 5)— 渡すと 400 エラー。まるごと削除する
client.messages.create(
    model="claude-opus-5",
    messages=[...]
)

トークン数とコストの再計測も必要です。Claude Opus 5 は Opus 4.7 で導入された新しいトークナイザを使っており、同じ内容でも Opus 4.7 より前のモデルと比べておよそ 30% 多いトークン数になります。トークン化のされ方は内容やワークロードによって変わるため、/v1/messages/count_tokens で実測して見積もり直すのが確実です。Claude Mythos Preview から Mythos 5 / Fable 5 への移行では、トークナイザが同じなのでトークン数はおおむね変わりません。

Claude Opus 5 で追加で検討できることも挙げられています。最も要求の厳しいタスク向けに output_config={"effort": "max"} を試すこと、プロンプトキャッシュの最小トークン数が Opus 4.8 の 1,024 から 512 に下がったこと、ベータヘッダ server-side-fallback-2026-07-01 による自動フォールバック、ベータヘッダ mid-conversation-tool-changes-2026-07-01 による会話途中のツール変更です。

拒否の扱いも実装しておきます。

if response.stop_reason == "refusal":
    category = response.stop_details.category  # 例: "cyber", "bio"

まとめ

移行時に確認する項目を、公式のチェックリストに沿って整理します。

Claude Mythos Preview から Mythos 5 / Fable 5 へ: モデル名を更新する。手動の拡張思考の設定と budget_tokens を削除する。Claude Fable 5 では stop_reason: "refusal" を処理する。30 日間のデータ保持が可能かを確認する。トークン数とコストを取り直す。

Claude Opus 4.8 から Opus 5 へ: モデル名を更新する。thinking: {type: "disabled"}xhigh / max の組み合わせを洗い出して直す。思考が既定で有効になるため max_tokens を見直す。能力が要る作業では max effort を検討する。拒否を処理する。自動フォールバック(ベータ)を検討する。長さや冗長さに関するプロンプトを調整し直す。

Claude Opus 4.6 から Opus 5 へ: 上に加えて、temperature / top_p / top_k を削除する。拡張思考をアダプティブ思考と effort の組み合わせに置き換える。effort の設定を一から振り直して評価する。検証や自己チェックを促す指示は過剰な検証を招くため取り除く。不要に高解像度な画像はダウンサンプルする。コストとレイテンシを取り直す。

なお Claude Opus 5 では、Web fetch ツールと Priority Tier が利用できません。これらに依存している実装がある場合は、移行前に代替を決めておく必要があります。

この記事は公式ドキュメントの非公式な日本語まとめです。仕様は変わることがあるため、実装前に公式の Migration guide をご確認ください。