Claude Platform Docs
モデルと料金Claude Fable 5.1

Claude Fable 5.1 および Claude Mythos 5.1 への移行

Claude Fable 5、Claude Mythos 5、Claude Opus 5、またはClaude Opus 4.8からClaude Fable 5.1およびClaude Mythos 5.1へ移行するためのガイドです。モデルID、破壊的変更、移行チェックリストを説明します。

Claude Fable 5.1はClaude Fable 5の後継モデルです。入力と出力の価格は同じで、キャッシュ読み取りのコストは4分の1です。Claude API、Amazon BedrockClaude Platform on AWSGoogle CloudMicrosoft Foundryで利用できます。Claude Mythos 5.1は同じ機能を備えていますが、Project Glasswingの承認済み顧客にのみ提供されます。動作の違いとプロンプトのパターンについては、Claude Fable 5.1のプロンプトを参照してください。

claude-fable-5-1claude-mythos-5-1に共通する基本設定は次のとおりです。

  • 思考: 「adaptive thinking」(適応型思考)は常に有効です。これはClaude Fable 5から変わっていません。いつ、どの程度思考するかはモデルが判断するため、thinkingの設定は不要です。thinking: {type: "disabled"}と、手動の「extended thinking」(拡張思考)(thinking: {type: "enabled", budget_tokens: N})は、どちらも400エラーを返します。
  • プリフィル: アシスタントメッセージを「prefill」(プリフィル)すると400エラーが返されます。これもClaude Fable 5から変わっていません。代わりに「system prompt」(システムプロンプト)で指示してください。
  • ツール選択: {type: "auto"}(デフォルト)と{type: "none"}がサポートされています。{type: "any"}または{type: "tool", name: "..."}でツール呼び出しを強制すると、400エラーが返されます。破壊的変更を参照してください。
  • モデル間での思考の保持: Claude Fable 5.1は、Claude Opus 5、Claude Fable 5、Claude Mythos 5、およびそれ以前のClaudeモデルの思考ブロックを読み取れます。一方、これらのモデルはいずれもClaude Fable 5.1のブロックを読み取れません。破壊的変更を参照してください。
  • コンテキストウィンドウと出力: デフォルトで100万トークンの「context window」(コンテキストウィンドウ)を備え、1リクエストあたり最大128kの出力トークンに対応します。
  • 料金: 100万入力トークンあたり$10 USD、100万出力トークンあたり$50 USDで、Claude Fable 5と同じです。プロンプトキャッシングのキャッシュ読み取りは100万トークンあたり$0.25 USDで、Claude Fable 5の料金の4分の1です。Claudeの料金を参照してください。
  • データ保持: 両モデルとも30日間のデータ保持が必要です。Anthropicが明示的に許可しない限り、「zero data retention」(ゼロデータ保持)、すなわちZDRの取り決めの下では利用できません。また、Claude Fable 5およびClaude Mythos 5と同様に、Covered Models(対象モデル)に指定されています。Claude APIでは、30日間の保持が設定されていない組織またはワークスペースからのリクエストは、400 invalid_request_errorを返します。ZDRの取り決めがある組織は、Anthropicのアカウントチームに連絡するか、ワークスペースごとに保持を設定してください。プラットフォームごとの詳細については、モデル固有のデータ保持要件を参照してください。

2つのモデルの違いは次のとおりです。

  • 提供状況: Claude Fable 5.1はアクセス承認を必要としません。Claude Mythos 5.1は、Project Glasswingの承認済み顧客のみが利用できます。アクセスについては、Anthropicのアカウントチームにお問い合わせください。
  • 安全性分類器: Claude Fable 5.1は「safety classifiers」(安全性分類器)を実行します。対象となるstop_detailsカテゴリはClaude Fable 5と同じです。拒否されたリクエストは、stop_details.categoryとともにstop_reason: "refusal"を返します。このようなリクエストは、fallbacksパラメータまたはクライアント側の再試行によって、別のモデルにフォールバックできます。拒否とフォールバックを参照してください。
  • Priority Tier: どちらのモデルもPriority Tierではサポートされていません。Claude Fable 5はサポートされています。

Claude Fable 5からClaude Fable 5.1への移行

移行は、ほぼモデルを置き換えるだけで完了します(drop-in)。APIサーフェス、制限、トークンあたりの料金、トークナイザー、常時有効の適応型思考、拒否の処理、stop_detailsカテゴリは、すべてClaude Fable 5と同じです。変更点は次のとおりです。

  • 強制的なツール選択は400エラーを返します。
  • 思考ブロックが保持されるのは、それを生成したモデルまたはより新しいモデルに対してのみで、かつそれを生成した会話内に限られます。
  • キャッシュ読み取りのコストが下がります。
  • エージェントループの動作が3つの点で異なります。

これらの変更はClaude Mythos 5.1にも適用されます。ただし、思考ブロックに対する会話のチェックは例外で、Claude Mythos 5.1ではこのチェックは実行されません。

モデル名を更新する

model = "claude-fable-5"  # Before
model = "claude-fable-5-1"  # After

# または、同じ機能を持つ Project Glasswing のモデルの場合は次のとおりです:
model = "claude-mythos-5-1"  # After

破壊的変更

  1. 強制的なツール選択はサポートされていません: Claude Fable 5は、tool_choiceとしてautononeanytoolを受け付けます。claude-fable-5-1では、{type: "any"}{type: "tool", name: "..."}は400 invalid_request_errorを返します。

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

    このチェックは、Messages API、Message Batches API、およびトークンカウントエンドポイントに適用されます。

    変更前(Claude Fable 5):

    client = anthropic.Anthropic()
    
    record_summary_tool = {
        "name": "record_summary",
        "description": "Record the structured summary of the document.",
        "input_schema": {
            "type": "object",
            "properties": {"summary": {"type": "string"}},
            "required": ["summary"],
        },
    }
    
    response = client.messages.create(
        model="claude-fable-5",
        max_tokens=16000,
        tools=[record_summary_tool],
        tool_choice={"type": "tool", "name": "record_summary"},
        messages=[{"role": "user", "content": "Summarize: The meeting moved to Thursday."}],
    )
    print(response.content)

    変更後(Claude Fable 5.1):tool_choiceautoのままにして、指示の中でツール名を指定します。さらに、呼び出しがスキーマに一致するようにstrict: trueを設定します。(CMEK組織では、strict: trueを含む「structured outputs」(構造化出力)をClaude Fableモデルで利用できません。その場合は指示のみで対応してください。)例:

    client = anthropic.Anthropic()
    
    record_summary_tool = {
        "name": "record_summary",
        "description": "Record the structured summary of the document.",
        "strict": True,
        "input_schema": {
            "type": "object",
            "properties": {"summary": {"type": "string"}},
            "required": ["summary"],
            "additionalProperties": False,
        },
    }
    
    response = client.messages.create(
        model="claude-fable-5-1",
        max_tokens=16000,
        tools=[record_summary_tool],
        tool_choice={"type": "auto"},
        messages=[
            {
                "role": "user",
                "content": "Summarize: The meeting moved to Thursday. Call the record_summary tool with your result.",
            }
        ],
    )
    print(response.content)

    厳格なツール使用ツール使用の強制を参照してください。スキーマに準拠したJSONを得るためだけにツールを強制していた場合は、代わりにJSON出力output_config.format)を使用してください。

    マルチターン会話の現在のターンで、ユーザーではなくアプリケーションが特定のツール呼び出しを必要とする場合は、最新のuserターンの後に会話途中のシステムメッセージを追加します。このメッセージでは、ツール名を指定し、このターンではその呼び出しが必須であることを伝え、応答の冒頭でそのツールを呼び出すようClaudeに指示します。メッセージはトップレベルのsystemプロンプトに書き込むのではなく追加するため、以前のターンはバイト単位で同一のまま保たれ、プロンプトキャッシングのキャッシュヒットも維持されます。

    client = anthropic.Anthropic()
    
    search_help_center_tool = {
        "name": "search_help_center",
        "description": "Search the help center for policy and troubleshooting articles.",
        "strict": True,
        "input_schema": {
            "type": "object",
            "properties": {"query": {"type": "string"}},
            "required": ["query"],
            "additionalProperties": False,
        },
    }
    
    response = client.messages.create(
        model="claude-fable-5-1",
        max_tokens=16000,
        system="You are a customer support assistant for an online electronics store.",
        tools=[search_help_center_tool],
        messages=[
            {
                "role": "user",
                "content": "My headphones from order A1234 arrived yesterday.",
            },
            {
                "role": "assistant",
                "content": "Thanks for confirming. How can I help with order A1234?",
            },
            {"role": "user", "content": "I opened the box. Can I still return them?"},
            # このアプリケーションでは、ポリシーに関する回答を返す前に
            # ヘルプセンターの検索が必要です。この要件をシステムメッセージとして追加すると、
            # それ以前のターンは変更されないままになります。
            {
                "role": "system",
                "content": "Tool-use requirement for the current turn: the application requires a call to the search_help_center tool in your response to the user's latest message. Begin your response with the search_help_center tool call. Do not reply with text only.",
            },
        ],
    )
    print(response.content)

    以降のリクエストでも、他のターンと同様にrole: "system"メッセージを履歴に残してください。会話途中のシステムメッセージにベータヘッダーは不要です。ツールを呼び出してはならないターンでは、引き続きtool_choice: {"type": "none"}を使用できます。

  2. 思考ブロックが保持されるのは、それを生成したモデルまたはより新しいモデルに対してのみです: すべてのthinkingブロックには、それを生成したモデルが記録されます。Claude Fable 5.1は、自身のブロックに加えて、Claude Mythos 5.1、Claude Opus 5、Claude Fable 5、Claude Mythos 5、およびそれ以前のClaudeモデルのブロックを読み取れます。そのため、これらのいずれかからclaude-fable-5-1に移行した会話では、以前の推論が保持されます。ただし、この関係は一方向です。Claude Mythos 5.1を除き、これらのモデルはいずれもClaude Fable 5.1のブロックを読み取れません。

    Claude Fable 5.1で実行された会話が、古いモデルに移ることがあります。たとえば、ルーターの切り替え、クライアント側の再試行、分類器による拒否のフォールバックサーバー側フォールバックを含む)などです。この場合、APIは移行先のモデルが読み取れないブロックを、モデルに渡す前に削除します。リクエストは成功し、削除された入力トークンは課金されません。移行先のモデルはその推論なしで計画を立て直すため、切り替え後の最初のターンでコストと「latency」(レイテンシ)が増加する可能性があります。何が削除されたかを確認するには、thinking-binding-controls-2026-08-01 ベータヘッダーを送信します。すると、レスポンスにinput_transformations配列が含まれ、削除された各ブロックがreason: "model_binding_mismatch"とともに示されます。会話途中でのモデルの切り替えを参照してください。

  3. 以前のターンを編集すると思考ブロックが無効になります: Claude Fable 5.1の各thinkingブロックは、そのブロックより前にあるsystemプロンプト、tools、および会話履歴に対してのみ有効です。Claude Code、claude.ai、Claude Managed Agents、またはClaude Agent SDKが会話履歴を管理している場合、このプレフィックスはすでにそのまま保たれています。コードでmessages配列を自分で構築している場合は、この項目が該当します。完全な統合ガイドについては、思考の保持を参照してください。チェックが適用される場合、これらのいずれかが変更された後にブロックを送り返すリクエストは、400エラーで拒否されます。

    messages.5.content.0: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.prefix_mismatch_behavior` to "drop_block". That setting requires the `thinking-binding-controls-2026-08-01` value in the `anthropic-beta` header.

    APIは、2026年8月31日以降に作成された新しいアカウントに対してこのチェックを適用します。それより前に作成されたアカウントでは、APIは不一致を記録するだけで、それに基づく処理は行いません。ただし、リクエストでthinking.block_binding.prefix_mismatch_behaviorを設定すると、チェックの適用にオプトインできます。Anthropicは今後のモデルですべてのアカウントにチェックを適用する予定のため、今のうちにアプリケーションを対応させてください。対応に必要なパターンは、プロンプトキャッシングのキャッシュを有効に保つためのパターンと同じです。また、prefix_mismatch_behaviorを送信すれば、どのアカウントからでもチェックに対するテストができます。ユーザーが自分のAPIキーで実行するツールやフレームワークを提供している場合は、リリース前にこの方法でテストしてください。ご自身のキーはおそらく古いアカウントのものであり、新しいアカウントのユーザーのほうが先にチェックに引っかかるためです。ご自身のアカウントがデフォルトで適用対象かどうかを確認するには、ベータヘッダーなしで履歴を編集するリクエストを送信します。ヘッダー名を示す400エラーが返された場合は、適用対象です。

    このエラーは、そのリクエストボディに対しては恒久的なもので、自動再試行ループでは解消されません。失敗させずに、無効化された推論なしで処理を続行するには、次のいずれかを行います。

    • 履歴からthinkingブロックを取り除いて、一度だけ再試行する。
    • thinking-binding-controls-2026-08-01 ベータヘッダーを送信し、prefix_mismatch_behavior"drop_block"に設定する(デフォルトは"error")。

    "drop_block"を指定すると、APIは不一致のブロックと、会話内でそれ以降にあるすべての思考ブロックを削除します。削除された各ブロックは、レスポンスのinput_transformations配列でreason: "prefix_binding_mismatch"とともに報告されます。

    client = anthropic.Anthropic()
    
    response = client.beta.messages.create(
        model="claude-fable-5-1",
        max_tokens=16000,
        thinking={
            "type": "adaptive",
            "block_binding": {"prefix_mismatch_behavior": "drop_block"},
        },
        messages=[
            {
                "role": "user",
                "content": "What is the greatest common divisor of 1071 and 462?",
            }
        ],
        betas=["thinking-binding-controls-2026-08-01"],
    )
    
    for block in response.content:
        if block.type == "text":
            print(block.text)
    
    print(f"Input transformations: {len(response.input_transformations or [])}")

    トークンカウントエンドポイントも同じチェックを実行します。レスポンスの形式と、「streaming」(ストリーミング)での配置については、保持されないブロックの制御(ベータ)を参照してください。

    以降の思考ブロックを無効にするパターンと、その代替策は次のとおりです。

    • 以前のターンの編集、並べ替え、削除。これには、古いツール結果の削除、トランスクリプトの途中からのターンの切り取り、クライアント側のコンパクションが含まれます。ここでいうクライアント側のコンパクションとは、最近のターンとその思考ブロックを要約の後ろにそのまま残す方式のことで、数ターン後に要約を差し替えるバックグラウンドコンパクションも含みます。代わりに、サーバー側の「compaction」(コンパクション)または「context editing」(コンテキスト編集)を使用してください(古いツール結果にはツール結果のクリアを使用します)。または、サーバー側でコンテキストを削減するで説明しているクライアント側コンパクションの形式のいずれかを使用してください。
    • 永続化しないコンテンツの挿入。たとえば、tool_resultブロックの後に追加し、次のリクエストで削除するターンごとのリマインダーなどです。代わりに、リマインダーをターンスコープのシステムメッセージとして送信し、履歴に残してください。
    • 同じ会話内のリクエスト間での、トップレベルのsystemプロンプトやtools配列の再構築。たとえば、現在の日付を更新する場合や、ツールを追加または削除する場合です。代わりに、会話途中のシステムメッセージを追加してください。このメッセージには、新しい指示(「現在の日付は2026-09-14です。」)や、tool_additionおよびtool_removalブロックを含めます。
    • 後のリクエストで異なるバイトを返す画像またはドキュメントのURL。チェックの対象はURL文字列ではなくバイトです。そのため、同じファイルを指す署名付きURLがローテーションしても問題ありません。複数のターンにわたって参照するコンテンツは、Files APIで一度アップロードしてfile_idを送信するか、base64で送信してください。

    これらの代替策はいずれも、以前のターンをバイト単位で同一に保ちます。そのため、履歴、systemプロンプト、tools配列を編集した場合に失われるプロンプトキャッシングのキャッシュヒットも維持されます。

    引き続き問題なく機能するパターンは次のとおりです。

    • 追記のみの履歴:ターンを追加し、以前のターンを送受信したとおりに正確に渡し返すこと(追加したrole: "system"メッセージを含む)。
    • 以前のアシスタントターンから、古いものから順に思考ブロックを削除すること。
    • effortmax_tokensなど、systemtoolsmessages以外のリクエストパラメータを変更すること。また、cache_controlマーカーを追加または移動すること。
    • サーバー側のコンパクションとコンテキスト編集(思考ブロックのクリアを含む)。チェックは送信したとおりの会話を比較するため、これらは編集とはみなされません。

    既存の統合を確認する手順は次のとおりです。

    1. 通常の数ターンで送信される正確なリクエストボディを取得します。製品にコンパクションやツールの変更がある場合は、それも含めてください。連続する各リクエストのペアについて、systemプロンプト、tools配列、およびmessagesの共通プレフィックスを比較します。新たに追加されたターンの手前までは、バイト単位で同一である必要があります。ただし、オンデマンドコンパクションによる署名付きcompactionブロックを差し込むリクエストは、想定される例外です。このブロックはmessagesの先頭で要約対象のメッセージを置き換えます。ブロックより後の部分は、すべて一致している必要があります。

    2. thinking-binding-controls-2026-08-01ベータヘッダーとprefix_mismatch_behavior: "drop_block"を指定して、claude-fable-5-1で通常のマルチターンセッションを実行し、すべてのレスポンスのinput_transformationsをログに記録します。結果の見方は次のとおりです。

      • すべてのターンで配列が空の場合は、履歴が保たれています。
      • reason: "prefix_binding_mismatch"のエントリは、前回のリクエスト以降に、pathが示すブロックより前の何かが変更されたことを意味します。
      • reason: "model_binding_mismatch"のエントリは、会話でモデルが切り替わったことを意味します。これはコードのバグではありません。

      このフィールドを設定するとリクエストがチェックの適用にオプトインされるため、この方法はどのアカウントからでも使えます。CIでは、編集があった場合に実行が失敗するよう、代わりに"error"を設定してください。

    3. 本番環境の設定を選択します。プレフィックスの不一致がコードのバグ以外に起こり得ない場合は、デフォルトの"error"のままにします。失敗させずに影響を受けるブロックを削除したい場合は、"drop_block"を設定します。いずれの場合も、400エラーまたはinput_transformationsエントリを監視してください。

    コンパクションの境界などで思考ブロックを一度だけ削除しても、影響はほとんどありません。一方、リクエストのたびに以前の思考を無効にする統合では、プロンプトキャッシングのキャッシュが毎回最初からやり直しになり、タスクあたりのコストが増加する可能性があります(会話履歴を追記のみに保つを参照)。

動作の変更

  1. 長いエージェントループでの並列ツール呼び出しの減少: 長時間実行されるループでは、Claude Fable 5.1がターンごとに1つしかツール呼び出しを発行しないことがあります。これは、次に行うべき独立した読み取りがタスクから暗示されているだけの場合に起こります(カスタムコーディングエージェント、bashとエディタのハーネス、computer useなど)。ターンが1つ増えるごとに、トークン、往復通信、実時間のコストがかかります。対策として、各ユーザーメッセージの後に、バッチ処理を促す1文の指示を追加してください。追加方法は、ターンスコープのシステムメッセージclear_at: "next_user_message"、ベータ)として送信するか、ベータを使用しない場合はtool_resultブロックの後のテキストブロックに含めます。以降のリクエストでも、以前に追加した指示は履歴に残してください。エージェントループで独立したツール呼び出しをバッチ処理するを参照してください。

  2. ツール呼び出し間の進捗メッセージの減少: Claude Fable 5.1は、長いツールシーケンスの間に書くステータス更新がClaude Fable 5より少なく、エージェント型コーディングの要約も短くなっています。インターフェースでこれらの更新を表示する場合は、thinking.display"updates"(ベータ)または"summarized"に設定し、プロンプトで更新を明示的に求めてください。ツール呼び出し間の進捗更新ユーザー向けの進捗更新を求めるを参照してください。

  3. 低いeffortでの検索・取得呼び出しの減少: low effortでは、Claude Fable 5.1はClaude Fable 5よりも、検索ツールや取得ツールを呼び出さずに記憶から回答することが多くなります。製品が低いeffortでの取得に依存している場合は、該当するリクエストのeffortを上げるか、いつ検索すべきかをモデルに伝えてください。低いeffortでの検索のトリガーを参照してください。

文章の密度、チャットの書式、要約での引用、ファイル編集にも違いがありますが、これらはAPI統合には影響しません。詳細については、Claude Fable 5からの変更点を参照してください。

以下の変更は必須ではありません。ただし、いずれもコストやレイテンシを下げるか、障害の原因を取り除く効果があります。

  1. 会話途中でeffortを変更する(ベータ): Claude Fable 5では、output_config.effortはリクエスト単位の設定です。リクエスト間で変更すると、以前のターンのキャッシュされたプレフィックスが失われます。claude-fable-5-1では、output_configのみを含むrole: "system"メッセージを使用できます。これにより、プロンプトキャッシングのキャッシュを無効にすることなく、難しいステップではeffortを上げ、定型的なステップでは下げることができます。

    client = anthropic.Anthropic()
    
    response = client.beta.messages.create(
        model="claude-fable-5-1",
        max_tokens=4096,
        output_config={"effort": "high"},
        messages=[
            {
                "role": "user",
                "content": "Plan a migration from SQLite to PostgreSQL in three short steps.",
            },
            {
                "role": "assistant",
                "content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.",
            },
            # effort のみのシステムメッセージ:新しいレベルは次のユーザーターンから有効になります。
            {"role": "system", "content": [], "output_config": {"effort": "low"}},
            {"role": "user", "content": "Summarize the plan in one sentence."},
        ],
        betas=["mid-conversation-output-config-2026-07-01"],
    )
    
    for block in response.content:
        if block.type == "text":
            print(block.text)

    この値は、次のユーザーターンから、別のrole: "system"メッセージで変更されるまでのすべてのターンに適用されます。指定できるのは名前付きのレベル(lowmediumhighxhighmax)のみで、mid-conversation-output-config-2026-07-01ベータヘッダーが必要です。メッセージごとのeffortを参照してください。

  2. 会話途中のシステムメッセージで指示とツールを変更する: セッションの途中で指示やツールを変更するには、role: "system"メッセージを追加します。ツールを変更する場合は、tool_additionおよびtool_removalブロックを使用します(ベータヘッダーmid-conversation-tool-changes-2026-07-01が必要で、セッション開始時にtoolsで完全なツールセットを宣言しておく必要があります)。この方法では、以前のターンでのプロンプトキャッシングのキャッシュヒットが維持され、会話履歴も追記のみに保たれます。現在のターンで特定のツールを実行する必要がある場合も、強制的なtool_choiceの代わりに同じメッセージを使用できます(破壊的変更を参照)。

    1つのターンにのみ適用されるリマインダーは、clear_at: "next_user_message"を指定した、テキストのみの別のrole: "system"メッセージとして送信し、履歴に残してください(ターンスコープのシステムメッセージ、ベータヘッダーmid-conversation-system-clear-at-2026-08-21)。このメッセージは次のユーザーメッセージ以降はレンダリングされず、クリアされた後はトークンを消費しません。なお、tool_additionまたはtool_removalブロックを含むメッセージは、ターンスコープにできません。

  3. 拒否にはfallbacks: "default"を使用する: 引き続きstop_reason: "refusal"を処理し、レスポンスのコンテンツより先にstop_details.categoryを読み取ってください。拒否されたリクエストを別のモデルで自動的に再実行するには、fallbacks: "default"(ベータ、server-side-fallback-2026-07-01ヘッダー)を設定します。"default"を指定すると、拒否されたリクエストは、そのカテゴリに対してAnthropicが推奨するモデルで再試行されます。Claude Fable 5.1で許可されているフォールバック先は、Claude Opus 4.8(claude-opus-4-8)とClaude Opus 5(claude-opus-5)です。明示的なfallbacksリストでは、どちらも指定できます。フォールバック先のモデルには、Claude Fable 5.1の思考ブロックは渡されません。再試行を自分で実装する場合、フォールバッククレジットはClaude Fable 5と同じ条件で適用されます。拒否とフォールバックを参照してください。

  4. high effortから始めてスイープする: effortパラメータのデフォルトはhighで、5つのレベルすべてがサポートされています。Claude Fable 5のガイダンスは引き続き有効です。ほとんどの作業にはhighを使用し、コストを抑えたい場合はmediumを試す価値があります。Claude Fable 5.1のClaude Fable 5に対する性能向上は、xhighmaxで最も大きくなります。ただし、これらのレベルでは思考時間と最初の応答までの時間も増加します。そのため、これらのレベルは、最も高い能力が求められるタスクや、評価で向上が確認できた場合に使用してください。Claude Fable 5向けに調整した設定をそのまま引き継ぐのではなく、独自の評価で改めてスイープを実行してください。Claude Fable 5.1の推奨effortレベルを参照してください。

  5. サーバー側でコンテキストを削減するか、古い思考を含まない形式でコンパクションする: コードがクライアント側で古いターンを切り詰めたり要約したりしている場合、最も簡単な修正は、その処理をサーバー側のコンパクションまたはコンテキスト編集に移すことです。履歴チェックは送信したとおりの会話を比較するため、どちらも編集とはみなされません。したがって、これらの機能で削除された内容によって、以降の思考ブロックが無効になることはありません。また、コンパクションのinstructionsパラメータでは、独自の要約プロンプトを指定できます。

    最近のターンを要約の後ろにそのまま残す場合や、会話を続けながらバックグラウンドで要約する場合は、クライアントで作成した要約ではなく、オンデマンドコンパクション(ベータヘッダーcompact-2026-09-04、Claude API)を使用してください。APIが署名付きの要約ブロックを作成するので、それを要約対象のメッセージの代わりに配置します。残したターン内の思考ブロックは、そのセクションに記載されている条件を満たせば有効なまま保てます。

    クライアント側でコンパクションを続ける場合は、次の3つの形式のいずれかを選択してください。

    • シンプルなコンパクション(推奨): 履歴全体を、1つの要約メッセージと新しいユーザーターンに置き換え、それ以外は何も再送しません。思考ブロックは引き継がれないため、エラーは発生しません。Claudeモデルはこの方式で長期的なタスクについて訓練されており、ほとんどのワークロードで、より複雑な方式と同等のパフォーマンスを発揮します。
    • 末尾保持コンパクション: 最近のターンを要約の後ろにそのまま残す場合は、それらのターンからthinkingおよびredacted_thinkingブロックを取り除くか(テキストとツール呼び出しは残せます)、prefix_mismatch_behavior: "drop_block"を設定してください。それらの思考は完全な履歴に基づいて生成されたものなので、そのまま要約の後ろに置くとエラーになります。
    • バックグラウンドコンパクション: クリティカルパスの外で要約を作成して後から差し替える場合、その間に生成されたすべてのターンには、差し替え前の思考が含まれます。この場合は、次のいずれかを行ってください。
      • 差し替え前に生成された思考ブロックをまだ含むすべてのリクエストで、"drop_block"を送信する。
      • それらのブロックを自分で取り除く。差し替え後の最初のレスポンスのinput_transformationsに、該当するブロックが正確に示されます。
      • 同期的にコンパクションする。

    トランスクリプトの途中から個々のターンを切り取らないでください。切り取ると以降のすべての思考ブロックが無効になり、クライアント側のどの形式でも回避できません。指示を変更したい場合は会話途中のシステムメッセージを、特定の内容を選択的に削除したい場合はサーバー側のコンテキスト編集を使用してください。コンパクションブロックを渡し返すを参照してください。

移行チェックリスト

  • モデル名をclaude-fable-5からclaude-fable-5-1に(またはclaude-mythos-5からclaude-mythos-5-1に)更新します。
  • 強制的なtool_choice{type: "any"}または{type: "tool", ...})を置き換えます。これらは400エラーを返します。代わりに、{type: "auto"}に明示的な指示とstrict: trueのツールを組み合わせるか、JSON出力を使用します。指示はuserターンに含めます。アプリケーションが呼び出しを必要とする場合は、会話途中のrole: "system"メッセージに含めます。
  • 空のものも含め、すべてのターンでthinkingブロックを変更せずに渡し返し続けます。Claude Fable 5.1は、Claude Opus 5、Claude Fable 5、Claude Mythos 5、およびそれ以前のモデルのブロックを読み取れます。会話をClaude Fable 5.1から以前のモデルに移すと、Claude Fable 5.1のブロックは削除されます(Claude Mythos 5.1はこれらを読み取れます)。
  • コードでmessages配列を自分で構築している場合は、以前のターンを編集していないかを確認します。thinking-binding-controls-2026-08-01ベータヘッダーとprefix_mismatch_behavior: "drop_block"を指定してセッションを実行し、input_transformationsをログに記録して、すべてのprefix_binding_mismatchを修正します。モデル切り替え後のmodel_binding_mismatchエントリは想定どおりの動作です。
  • 会話履歴を追記のみに保ちます。具体的には次のとおりです。
    • セッション開始時にsystemtoolsを固定し、セッション途中の変更はrole: "system"メッセージとtool_addition / tool_removalブロックで行う。
    • ターンごとのリマインダーは、ターンスコープのシステムメッセージとして送信し、削除しない。
    • コンテキストはサーバー側で削減するか、クライアント側の要約の後ろに残すターンから思考ブロックを取り除く。
    • 複数のターンで使うファイルはfile_idで参照する。
  • 本番環境で使用するprefix_mismatch_behavior(デフォルトの"error"、または"drop_block")を選択し、監視します。他のユーザーが自分のAPIキーで実行するツールを保守している場合は、このフィールドを設定してテストしてください。ご自身のアカウントが適用対象でなくても、新しいアカウントはデフォルトで適用対象です。
  • エージェントループで、ターンごとに1つしかツールを呼び出さない動作がないかを確認し、バッチ処理の指示を追加します。
  • インターフェースでツール呼び出し間の進捗テキストを表示する場合は、thinking.display"updates"(ベータ)または"summarized"に設定し、プロンプトで更新を求めます。
  • リクエスト間でeffortを変更している場合は、キャッシュヒットを維持するために、その変更をメッセージごとのeffortrole: "system"メッセージ(ベータ)に移します。
  • stop_reason: "refusal"を処理し、stop_details.categoryを読み取ります。fallbacks: "default"(ベータ)の使用も検討します。
  • highから始めて改めてスイープを行い、effortを再評価します。また、独自のワークロードでコストとレイテンシのベースラインを取り直します。トークナイザーは変更されていません。プロンプトキャッシングのキャッシュ読み取りのコストは、Claude Fable 5の料金の4分の1です。

Claude Opus 5からClaude Fable 5.1への移行

Claude Fable 5.1は、Claude Opus 5と同じMessages APIおよび「tool use」(ツール使用)のパターンを使用します。また、次の点もClaude Opus 5から変わりません。

プリフィルの制限、サンプリングパラメータの制限、thinking.displayのデフォルト値"omitted"も引き継がれます。Claude Fable 5からClaude Fable 5.1への移行の内容をすべて適用したうえで、以下の変更にも対応してください。

モデル名を更新する

model = "claude-opus-5"  # Before
model = "claude-fable-5-1"  # After

# または、同じ機能を持つ Project Glasswing のモデルの場合は次のとおりです:
model = "claude-mythos-5-1"  # After

変更点

  1. 思考を無効にできなくなりました: Claude Opus 5では、effortレベルがhigh以下の場合にthinking: {type: "disabled"}を指定できます。claude-fable-5-1claude-mythos-5-1では、適応型思考は常に有効で、thinking: {type: "disabled"}はどのeffortレベルでも400エラーを返します。このフィールドを削除し、トークン消費はより低いeffortレベルで制御してください。思考を無効にして実行していたワークロードについては、max_tokensも見直してください。

  2. 強制的なツール選択はサポートされていません: Claude Opus 5では、tool_choiceanytoolを指定できます。claude-fable-5-1では、これらは400エラーを返します。破壊的変更を参照してください。

  3. モデル間での思考の保持: Claude Fable 5.1はClaude Opus 5の思考ブロックを読み取れるため、claude-opus-5からclaude-fable-5-1に移行した会話では推論が保持されます。一方、Claude Opus 5はClaude Fable 5.1のブロックを読み取れません。また、Claude Fable 5.1のブロックは、以前のターンが変更されると無効になります。コードがリクエスト間で以前のメッセージを編集したり、systemtoolsを再構築したり、クライアント側でコンパクションしたりしている場合、Claude Opus 5では問題になりませんでした。しかし、claude-fable-5-1では、以降のすべての思考ブロックが拒否または削除されます。トラフィックを切り替える前に、そのセクションにある3ステップのチェックを実行してください。破壊的変更を参照してください。

  4. ツール呼び出し間のテキストは思考ブロックで返されます: Claude Opus 5では、モデルがツール呼び出しの間に書いたテキストはtextブロックとして返されます。claude-fable-5-1では、Claude Fable 5と同様に、このナレーションは進捗更新のthinkingブロックとして、各ツール呼び出しの前に1つずつ返されます。thinking.displayがデフォルトの"omitted"の場合、これらのブロックには読み取り可能なテキストは含まれません。インターフェースでこのナレーションを表示する場合は、次のいずれかを設定します。

    • display: "updates"(ベータ):推論は非表示のまま、進捗更新をテキストとして受け取ります。
    • "summarized":進捗更新と推論の両方を受け取ります。

    そのうえで、tool_useブロックの間にある空でないthinkingブロックを表示します。ツール呼び出し間の進捗更新を参照してください。

  5. 安全性分類器とフォールバックのルーティング: Claude Fable 5.1は、Claude Fable 5と同じstop_detailsカテゴリを対象とする安全性分類器を実行します。これは、サイバーセキュリティのみを対象とするClaude Opus 5の分類器よりも広い範囲です。そのため、"cyber"以外のstop_details.category値("bio""reasoning_extraction"など)も返されることを想定してください。すべてのカテゴリについては、拒否カテゴリの表を参照してください。fallbacksの設定と許可されているフォールバック先については、拒否にはfallbacks: "default"を使用するを参照してください。

  6. 料金: 100万入力トークンあたり$10 USD、100万出力トークンあたり$50 USDです。Claude Opus 5はそれぞれ$5 USDと$25 USDです。プロンプトキャッシングのキャッシュ読み取りは100万トークンあたり$0.25 USDで、Claude Opus 5の料金の半分です。Claudeの料金を参照してください。

  7. データ保持: Claude Fable 5.1とClaude Mythos 5.1は30日間のデータ保持が必要です。Anthropicが明示的に許可しない限り、ゼロデータ保持(ZDR)の取り決めの下では利用できず、Covered Models(対象モデル)に指定されています。一方、Claude Opus 5はZDRの下で利用できます。モデル固有のデータ保持要件を参照してください。

移行チェックリスト

  • 組織が「zero data retention」(ゼロデータ保持)、すなわちZDRの契約を結んでいる場合は、まず利用資格を確認してください。これらのモデルは、Anthropicが明示的に許可しない限りZDRの下では利用できません。モデル固有のデータ保持要件を参照してください。
  • モデル名をclaude-opus-5からclaude-fable-5-1(またはclaude-mythos-5-1)に更新します。
  • thinking: {type: "disabled"}の設定をすべて削除します。この設定はclaude-fable-5-1では400エラーを返します。トークン消費は低いeffortレベルで制御し、max_tokensを見直してください。
  • 強制的なtool_choiceanyまたはtool)を、autoと明示的な指示(userターンまたは会話途中のシステムメッセージ)およびstrict: trueツールの組み合わせ、またはJSON出力に置き換えます。
  • インターフェースがツール呼び出しの間のテキストを表示する場合は、display: "updates"(ベータ)または"summarized"を設定し、空でないthinkingブロックを表示します。
  • Claude Fable 5のチェックリストにある、保持された思考、履歴の編集、動作、effort、フォールバックの項目を適用します。
  • 自社のワークロードでコストのベースラインを再設定します。トークナイザーは変更されていません。トークンあたりの料金は異なります。

Claude Opus 4.8以前からClaude Fable 5.1への移行

まず、Claude Opus 4.8からのAPIレベルの変更について、Claude Opus 4.8からClaude Mythos 5およびClaude Fable 5への移行を適用してください。このガイドでは、「adaptive thinking」(適応型思考)、思考出力、拒否、effort、キャッシングの最小トークン数、料金、データ保持について説明しています。次に、Claude Fable 5からClaude Fable 5.1への移行にある残りの差分を適用します。Claude Opus 4.7以前を使用している場合は、対応するClaude Opus 5への移行のセクションから始めてください。

モデル名を更新する

model = "claude-opus-4-8"  # Before
model = "claude-fable-5-1"  # After

# または、同じ機能を持つ Project Glasswing のモデルの場合は次のとおりです:
model = "claude-mythos-5-1"  # After

移行チェックリスト

  • 組織がゼロデータ保持(ZDR)の契約を結んでいる場合は、まず利用資格を確認してください。これらのモデルは、Anthropicが明示的に許可しない限りZDRの下では利用できません。Claude Opus 4.8はZDRの下で利用できます。
  • モデル名をclaude-opus-4-8からclaude-fable-5-1(またはclaude-mythos-5-1)に更新します。
  • thinking: {type: "disabled"}の設定をすべて削除し、max_tokensを見直します。thinkingフィールドのないリクエストは適応型思考で実行されます。
  • 強制的なtool_choiceanyまたはtool)を、autoと明示的な指示(userターンまたは会話途中のシステムメッセージ)およびstrict: trueツールの組み合わせ、またはJSON出力に置き換えます。
  • thinkingブロックは変更せずにそのまま返し、そのテキストは表示専用として扱います。Claude Fable 5.1はClaude Opus 4.8のthinkingブロックを読み取れるため、claude-fable-5-1に移行した会話はそれまでの推論を保持します。Claude Opus 4.8はClaude Fable 5.1のブロックを読み取れません。
  • コードでmessages配列を独自に構築している場合は、以前のターンを編集しているかどうかを確認してください。Claude Opus 4.8以前向けに書かれた統合では、古いターンを切り詰めたり、以前のメッセージを削除または再構築したり、リクエストごとにsystemプロンプトを更新したりすることがよくあり、Claude Opus 4.8ではそれが問題になりませんでした。claude-fable-5-1では、これらのいずれを行っても、それ以降のthinkingブロックが無効になります。
  • stop_reason: "refusal"を処理し、stop_details.categoryを読み取り、fallbacks: "default"(ベータ)の使用を検討します。
  • Claude Fable 5のチェックリストにある、保持された思考、履歴の編集、動作、メッセージごとのeffort、進捗更新の項目を適用します。
  • effortを再評価し(highから始めます)、キャッシングの最小トークン数である512トークンに近いプロンプトを見直し、コストとレイテンシのベースラインを再設定します。トークンあたりの料金は異なります。

Claude Mythos 5からClaude Mythos 5.1への移行

Claude Mythos 5.1は、Claude Fable 5.1に対応するアクセス制限付きのモデルです。モデルIDを切り替える前に、Anthropicのアカウントチームに組織のアクセス権を確認してください。

APIレベルの差分はClaude Fable 5からClaude Fable 5.1への移行と同じです。強制的なツール選択は400エラーを返し、thinkingブロックはそれを生成したモデルまたはより新しいモデルに対してのみ保持されます(Claude Mythos 5.1はClaude Mythos 5のブロックを読み取れますが、その逆はできません)。Claude Fable 5.1とは異なり、Claude Mythos 5.1は会話チェックを実行しないため、以前のターンを編集してもthinkingブロックが無効になることはありませんが、プロンプトキャッシングのキャッシュは再作成されます。

モデル名を更新する

model = "claude-mythos-5"  # Before
model = "claude-mythos-5-1"  # After

移行チェックリスト

  • モデル名をclaude-mythos-5からclaude-mythos-5-1に更新します。
  • 強制的なtool_choiceanyまたはtool)を、autoと明示的な指示(userターンまたは会話途中のシステムメッセージ)およびstrict: trueツールの組み合わせ、またはJSON出力に置き換えます。
  • stop_reason: "refusal"を処理し、レスポンスのコンテンツより先にstop_details.categoryを読み取ります。拒否とフォールバックを参照してください。
  • 空のものも含め、すべてのターンでthinkingブロックを変更せずにそのまま返し続けます。
  • コードでmessages配列を独自に構築している場合は、プロンプトキャッシングのキャッシュをウォームな状態に保つため、会話履歴を追記のみにしてください。Claude Mythos 5.1は会話チェックを実行しないため、編集によってthinkingブロックが無効になることはありません。
  • Claude Fable 5のセクションにある動作の変更と推奨される変更を適用します。ただし、Claude Mythos 5.1には該当しない履歴の編集に関する項目は除きます。
  • 新たにスイープを行ってeffortを再評価し、コストとレイテンシのベースラインを再設定します。プロンプトキャッシングの読み取りコストは、Claude Mythos 5の料金の4分の1です。

Was this page helpful?