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に切り替えます。Claude Fable 5.1およびClaude Mythos 5.1を有効にするためのガイダンスには、モデルID、破壊的変更、移行チェックリストが含まれます。
Claude Fable 5.1は、Claude Fable 5の後継モデルであり、入力および出力の価格は同じで、キャッシュ読み取りのコストは4分の1です。Claude API、Amazon Bedrock、Claude Platform on AWS、Google Cloud、およびMicrosoft Foundryで利用できます。Claude Mythos 5.1は同じ機能を備えており、Cyber Verification ProgramなどのAnthropicの検証プログラムを通じて検証された組織のみが利用できます。動作の違いとプロンプトのパターンについては、Claude Fable 5.1へのプロンプトを参照してください。
claude-fable-5-1とclaude-mythos-5-1に共通する基本設定は次のとおりです。
- 思考: Adaptive thinking(適応型思考)は常に有効で、Claude Fable 5から変更はありません。モデルがいつ、どの程度思考するかを判断します。
thinkingの設定は不要です。thinking: {type: "disabled"}と手動の拡張思考(thinking: {type: "enabled", budget_tokens: N})はどちらも400エラーを返します。 - プリフィル: アシスタントメッセージのプリフィルは400エラーを返し、Claude Fable 5から変更はありません。代わりにシステムプロンプトの指示を使用してください。
- ツール選択:
{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万トークンのコンテキストウィンドウを備え、リクエストあたり最大128kの出力トークンに対応します。
- 料金: 入力トークン100万あたり10米ドル、出力トークン100万あたり50米ドルで、Claude Fable 5と同じです。プロンプトキャッシングのキャッシュ読み取りはトークン100万あたり0.25米ドルで、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は、Cyber Verification ProgramなどのAnthropicの検証プログラムを通じて検証された組織のみが利用できます。アクセスをリクエストするには、ユースケースに対応するプログラムに申請するか、Anthropicのアカウントチームに連絡してください。
- Priority Tier: どちらのモデルもPriority Tierではサポートされていません。Claude Fable 5はサポートされています。
Claude Fable 5からClaude Fable 5.1への移行
移行はほぼそのまま置き換えるだけで済みます。APIサーフェス、制限、トークンあたりの料金、トークナイザー、常時有効の適応型思考、拒否の処理、およびstop_detailsのカテゴリはすべてClaude Fable 5と同じです。変更点は次のとおりです。強制的なツール選択は400エラーを返します。Claude Fable 5.1の思考ブロックを読み取れるのはClaude Fable 5.1とClaude Mythos 5.1のみで、それもブロックを生成した会話内に限られます。キャッシュ読み取りのコストが下がります。そしてエージェントループの動作が3つの点で異なります。同じ変更はClaude Mythos 5.1にも適用されますが、思考ブロックに対する会話チェックは例外で、Claude Mythos 5.1はこのチェックを実行しません。
モデル名を更新する
model = "claude-fable-5" # Before
model = "claude-fable-5-1" # After
# または、検証済みの組織に同じ機能を提供する Claude Mythos 5.1 の場合:
model = "claude-mythos-5-1" # After破壊的変更
-
強制的なツール選択はサポートされていません: Claude Fable 5は
tool_choiceのauto、none、any、toolを受け付けます。claude-fable-5-1では、{type: "any"}と{type: "tool", name: "..."}は400invalid_request_errorを返します:tool_choice: type "tool" and "any" are not supported for this model.このチェックは、Messages API、Message Batches API、およびトークンカウントエンドポイントに適用されます。
変更前(Claude Fable 5):
Pythonclient = 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_choiceはautoのままにし、指示の中でツール名を指定し、呼び出しがスキーマに一致するようにstrict: trueを設定します。(CMEK組織では、strict: trueを含む構造化出力がClaude Fableモデルで利用できないため、指示のみに頼ってください。)例:Pythonclient = 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プロンプトに書き込むのではなく追加されるため、以前のターンはバイト単位で同一のまま保たれ、プロンプトキャッシングのキャッシュヒットが維持されます:Pythonclient = 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"}が機能します。 -
Claude Fable 5.1の思考ブロックを読み取れるのはClaude Fable 5.1とClaude Mythos 5.1のみです: すべての
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は、そのモデルが読み取れないブロックをモデルに渡す前に削除し、リクエストは成功し、削除された入力トークンは課金されません。移行先のモデルはその推論なしで計画を立て直すため、切り替え後の最初のターンでコストとレイテンシが増加する可能性があります。何が削除されたかを確認するには、
thinking-binding-controls-2026-08-01ベータヘッダーを送信します。すると応答にinput_transformations配列が含まれ、削除された各ブロックがreason: "model_binding_mismatch"とともに示されます。会話の途中でのモデルの切り替えを参照してください。 -
以前のターンを編集すると思考ブロックが無効になります: 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を設定して適用をオプトインしない限り、それに基づく処理は行いません。これらのアカウントで、thinking-binding-controls-2026-08-01ベータヘッダーを送信し、そのフィールドを未設定のままにすると、応答のinput_transformationsに、チェックに失敗した各ブロックがthinking_mismatch_allowedエントリとして一覧表示されます。アカウントの作成時期にかかわらず、アプリケーションをこのチェックに対応させてください。対応に使うパターンは、プロンプトキャッシングのキャッシュをウォームな状態に保つのにも役立ちます。また、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"とともに報告します:Pythonclient = 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 [])}")トークンカウントエンドポイントも同じチェックを実行します。応答の形式とストリーミングでの配置については、保持されないブロックの制御(ベータ)を参照してください。
以降の思考ブロックを無効にするパターンと、その代わりに行うべきことは次のとおりです。
- 以前のターンの編集、並べ替え、または削除。これには、古いツール結果の削除、トランスクリプトの途中からのターンの切り取り、および最近のターンとその思考ブロックを要約の後ろにそのまま残すクライアント側のコンパクション(数ターン後に要約を差し替えるバックグラウンドコンパクションを含む)が含まれます。代わりに、サーバー側のコンパクションまたはコンテキスト編集(古いツール結果にはツール結果のクリア)を使用するか、サーバー上でコンテキストを削減するにあるクライアント側コンパクションの形式のいずれかを使用してください。
- 永続化しないコンテンツの挿入。たとえば、
tool_resultブロックの後に追加され、次のリクエストで削除されるターンごとのリマインダーなどです。代わりに、リマインダーをターンスコープのシステムメッセージとして送信し、履歴に残してください。 - 同じ会話内のリクエスト間でトップレベルの
systemプロンプトまたはtools配列を再構築すること。たとえば、現在の日付を更新したり、ツールを追加または削除したりする場合です。代わりに、新しい指示(「現在の日付は2026-09-14です。」)またはtool_additionおよびtool_removalブロックを含む会話途中のシステムメッセージを追加してください。開始時にtoolsで宣言されていなかったツールは、tool_additionブロック内で定義できます(ベータヘッダーinline-tools-2026-09-15)。 - 後のリクエストで異なるバイトを返す画像またはドキュメントのURL。チェックはURL文字列ではなくバイトを対象とするため、同じファイルを指す署名付きURLがローテーションしても問題ありません。ターンをまたいで参照するコンテンツについては、Files APIで一度アップロードして
file_idを送信するか、base64で送信してください。
これらの代替手段はいずれも、以前のターンをバイト単位で同一に保ち、履歴、
systemプロンプト、またはtools配列を編集すると失われるプロンプトキャッシングのキャッシュヒットを維持します。引き続き問題なく機能するパターンは次のとおりです。
- 追記のみの履歴:ターンを追加し、以前のターンを送受信したとおりに正確に渡し返すこと(追加された
role: "system"メッセージを含む)。 - 以前のアシスタントターンから、古いものから順に思考ブロックを削除すること。
effort、max_tokens、またはsystem、tools、messages以外のリクエストパラメータを変更すること、およびcache_controlマーカーを追加または移動すること。- 思考ブロックのクリアを含む、サーバー側のコンパクションとコンテキスト編集。チェックは送信したとおりの会話を比較するため、これらは編集とはみなされません。
既存の統合を確認する手順は次のとおりです。
- 通常の数ターンにわたって送信される正確なリクエストボディを取得します。製品にコンパクションやツールの変更がある場合はそれも含めます。連続する各リクエストのペアについて、
systemプロンプト、tools配列、およびmessagesの共通プレフィックスを比較します。新たに追加されたターンまでは、バイト単位で同一である必要があります。想定される例外は、オンデマンドコンパクションによる署名付きcompactionブロックを差し込むリクエストです。このブロックはmessagesの先頭で要約対象のメッセージを置き換え、それ以降はすべて一致している必要があります。 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"を設定してください。- 本番環境の設定を選択します。プレフィックスの不一致がコードのバグしか意味しない場合はデフォルトの
"error"のままにするか、失敗させる代わりに影響を受けるブロックを削除するには"drop_block"を設定し、いずれの場合も400エラーまたはinput_transformationsエントリを監視してください。
たとえばコンパクションの境界で一度だけ思考ブロックを削除しても、影響はほとんどありません。リクエストのたびに以前の思考を無効にする統合では、プロンプトキャッシングのキャッシュが毎回最初から作り直されるため、タスクあたりのコストが増加する可能性があります(会話履歴を追記専用に保つを参照)。
動作の変更
-
長いエージェントループでの並列ツール呼び出しの減少: 長時間実行されるループでは、Claude Fable 5.1がターンごとに1つしかツール呼び出しを発行しないことがあります。これは、次に行うべき独立した読み取りがタスクから暗示されているだけの場合に起こります(カスタムコーディングエージェント、bashとエディタのハーネス、computer useなど)。ターンが1つ増えるごとに、トークン、往復通信、実時間のコストがかかります。対策として、各ユーザーメッセージの後に、バッチ処理を促す1文の指示を追加してください。追加方法は、ターンスコープのシステムメッセージ(
clear_at: "next_user_message"、ベータ)として送信するか、ベータを使用しない場合はtool_resultブロックの後のテキストブロックに含めます。以降のリクエストでも、以前に追加した指示は履歴に残してください。エージェントループで独立したツール呼び出しをバッチ処理するを参照してください。 -
ツール呼び出し間の進捗メッセージの減少: Claude Fable 5.1は、長いツールシーケンスの間に書くステータス更新がClaude Fable 5より少なく、エージェント型コーディングの要約も短くなっています。インターフェースでこれらの更新を表示する場合は、
thinking.displayを"updates"(ベータ)または"summarized"に設定し、プロンプトで更新を明示的に求めてください。ツール呼び出し間の進捗更新とユーザー向けの進捗更新を求めるを参照してください。 -
低いeffortでの検索・取得呼び出しの減少:
loweffortでは、Claude Fable 5.1はClaude Fable 5よりも、検索ツールや取得ツールを呼び出さずに記憶から回答することが多くなります。製品が低いeffortでの取得に依存している場合は、該当するリクエストのeffortを上げるか、いつ検索すべきかをモデルに伝えてください。低いeffortでの検索のトリガーを参照してください。
文章の密度、チャットの書式、要約での引用、ファイル編集にも違いがありますが、これらはAPI統合には影響しません。詳細については、Claude Fable 5からの変更点を参照してください。
推奨される変更
これらの変更は必須ではありませんが、それぞれがコストやレイテンシを下げるか、障害モードを取り除きます:
-
会話途中でeffortを変更する(ベータ): Claude Fable 5では、
output_config.effortはリクエストレベルであり、リクエスト間で変更すると以前のターンのキャッシュされたプレフィックスが失われます。claude-fable-5-1では、output_configのみを含むrole: "system"メッセージにより、プロンプトキャッシングのキャッシュを無効にすることなく、難しいステップではeffortを上げ、定型的なステップでは下げることができます:Pythonclient = 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)この例のように
assistantターンと次のuserターンの間に配置すると、メッセージはそのuserターンから有効になります。新しい入力を含むuserターンの直後に配置すると、そのターンに対するClaudeの応答のレベルを設定します。ツール結果のみを含むuserターンは新しい入力とはみなされないため、変更は新しい入力を含む次のuserターンまで待機します。その後、別のrole: "system"メッセージで変更されるまでそのレベルが維持されます。名前付きのレベル(low、medium、high、xhigh、max)のみが受け付けられ、mid-conversation-output-config-2026-07-01ベータヘッダーが必要です。メッセージごとのeffortを参照してください。 -
会話途中のシステムメッセージで指示とツールを変更する: セッションの途中で指示やツールを変更するには、
role: "system"メッセージを追加し、ツールの変更にはtool_additionおよびtool_removalブロックを使用します(Claude APIではベータヘッダーinline-tools-2026-09-15)。tool_additionブロックは、セッション開始時にtoolsで宣言されたツールを名前で指定するか、ツールの完全な定義を含めることができるため、セッション開始時に不明なツールをtoolsに含める必要はありません。これにより、以前のターンのプロンプトキャッシングのキャッシュヒットが維持され、会話履歴が追記のみに保たれます。古いmid-conversation-tool-changes-2026-07-01ヘッダーは、Claude API、Amazon Bedrock、およびGoogle Cloudで、ツールを参照によって指定する変更に対して引き続き機能します。現在のターンで特定のツールを実行する必要がある場合、同じメッセージが強制的なtool_choiceの代わりになります(破壊的変更を参照)。1つのターンにのみ適用されるリマインダーについては、clear_at: "next_user_message"を指定した別のテキストのみのrole: "system"メッセージとして送信し(ターンスコープのシステムメッセージ、ベータヘッダーmid-conversation-system-clear-at-2026-08-21)、履歴に残してください。このメッセージは次のユーザーメッセージの後はレンダリングされなくなり、クリアされた後はトークンを消費しません。tool_additionまたはtool_removalブロックを含むメッセージはターンスコープにできません。 -
拒否には
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の思考ブロックを受け取りません。fallbacksパラメータはAmazon Bedrock、Google Cloud、またはMicrosoft Foundryでは利用できません。これらのプラットフォームでは、代わりにクライアント側フォールバックを使用してください。再試行を自分で構築する場合、フォールバッククレジットはClaude Fable 5と同じ条件で適用されます。拒否とフォールバックを参照してください。 -
higheffortから始めてスイープする: effortパラメータのデフォルトはhighで、5つのレベルすべてがサポートされています。Claude Fable 5のガイダンスはそのまま適用されます。ほとんどの作業にはhighを使用し、mediumはテストする価値のあるコスト管理手段です。Claude Fable 5.1のClaude Fable 5に対する向上はxhighとmaxで最も大きくなりますが、これらのレベルでは思考時間と最初の応答までの時間も増加するため、最も能力が求められるタスクや、評価で向上が示される場合にこれらのレベルに引き上げてください。Claude Fable 5向けに調整された設定を引き継ぐのではなく、独自の評価で新たにスイープを実行してください。Claude Fable 5.1の推奨エフォートレベルを参照してください。 -
サーバー上でコンテキストを削減するか、古い思考を含まない形式でコンパクションする: コードがクライアント上で古いターンを切り詰めたり要約したりしている場合、最も簡単な修正は、その処理をサーバー側のコンパクションまたはコンテキスト編集に移すことです。履歴チェックは送信したとおりの会話を比較するため、どちらも編集とはみなされず、それらが削除したものによって以降の思考ブロックが無効になることはありません。また、コンパクションの
instructionsパラメータは独自の要約プロンプトを受け付けます。最近のターンを要約の後ろにそのまま残す場合や、会話を続けながらバックグラウンドで要約する場合は、クライアントが書いた要約ではなくオンデマンドコンパクション(ベータヘッダーcompact-2026-09-04)を使用してください。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 Mythos 5.1以外のモデルに移すと、そのブロックは削除されます。 - コードが
messages配列を自ら構築している場合は、以前のターンを編集しているかどうかを確認します。thinking-binding-controls-2026-08-01ベータヘッダーとprefix_mismatch_behavior: "drop_block"を指定してセッションを実行し、input_transformationsをログに記録して、すべてのprefix_binding_mismatchを修正します。モデル切り替え後のmodel_binding_mismatchエントリは想定どおりです。 - 会話履歴を追記のみに保ちます。セッション開始時に
systemとtoolsを固定し、セッション途中の変更はrole: "system"メッセージとtool_addition/tool_removalブロックに移し、ターンごとのリマインダーは削除しないターンスコープのシステムメッセージとして送信し、コンテキストはサーバー側で削減するか、クライアント側の要約をまたいで引き継ぐターンから思考ブロックを取り除き、ターンをまたぐファイルはfile_idで参照します。 - 本番環境の
prefix_mismatch_behavior(デフォルトは"error"、または"drop_block")を選択して監視します。他のユーザーが自分のAPIキーで実行するツールを保守している場合は、フィールドを設定してテストしてください。あなたのアカウントが適用対象でなくても、新しいアカウントはデフォルトで適用対象です。 - エージェントループでターンごとに1つのツール呼び出しになる動作がないか確認し、バッチ処理の指示を追加します。
- インターフェースでツール呼び出し間の進捗テキストを表示している場合は、
thinking.displayを"updates"(ベータ)または"summarized"に設定し、更新をプロンプトで要求します。 - リクエスト間でeffortを変更している場合は、キャッシュのヒットを維持するために、その変更をメッセージごとのeffortの
role: "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から変わりません。
- デフォルトで100万トークンのコンテキストウィンドウ
- 最大128kの出力トークン
- プロンプトキャッシングの最小トークン数(512トークン)
- 会話途中のシステムメッセージのサポート
プリフィルの制限、サンプリングパラメータの制限、thinking.displayのデフォルト値"omitted"も引き継がれます。Claude Fable 5からClaude Fable 5.1への移行の内容をすべて適用したうえで、以下の変更にも対応してください。
モデル名を更新する
model = "claude-opus-5" # Before
model = "claude-fable-5-1" # After
# または、検証済みの組織に同じ機能を提供する Claude Mythos 5.1 の場合:
model = "claude-mythos-5-1" # After変更点
-
思考を無効にできなくなりました: Claude Opus 5は、effortレベルが
high以下の場合にthinking: {type: "disabled"}を受け付けます。claude-fable-5-1とclaude-mythos-5-1では、適応型思考は常に有効であり、thinking: {type: "disabled"}はどのeffortレベルでも400エラーを返します。このフィールドを削除し、より低いeffortレベルでトークン消費を制御し、思考を無効にして実行していたワークロードについてはmax_tokensを見直してください。 -
強制的なツール選択はサポートされていません: Claude Opus 5は
tool_choiceのanyとtoolを受け付けます。claude-fable-5-1は400エラーを返します。破壊的変更を参照してください。 -
モデル間での思考の保持: 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のブロックは、以前のターンが変更されると無効になります。コードがリクエスト間で以前のメッセージを編集したり、systemやtoolsを再構築したり、クライアント上でコンパクションしたりする場合、Claude Opus 5では問題になりませんでしたが、claude-fable-5-1は以降のすべての思考ブロックを拒否または削除します。トラフィックを切り替える前に、そのセクションの3ステップのチェックを実行してください。破壊的変更を参照してください。 -
ツール呼び出し間のテキストは思考ブロックで返されます: Claude Opus 5では、モデルがツール呼び出し間に書くテキストは
textブロックとして返されます。claude-fable-5-1では、Claude Fable 5と同様に、そのナレーションは各ツール呼び出しの前に1つずつ、進捗更新のthinkingブロックとして返されます。thinking.displayのデフォルトである"omitted"では、これらには読み取り可能なテキストが含まれません。インターフェースでそのナレーションを表示する場合は、推論を非表示にしたまま進捗更新をテキストとして受け取るにはdisplay: "updates"(ベータ)を、両方を受け取るには"summarized"を設定してください。その後、tool_useブロック間の空でないthinkingブロックを表示します。ツール呼び出し間の進捗更新を参照してください。 -
安全性分類器とフォールバックルーティング: Claude Fable 5.1は、Claude Fable 5と同じ
stop_detailsカテゴリをカバーする安全性分類器を実行します。これはClaude Opus 5の分類器よりも広い範囲です。"bio"などの追加のstop_details.category値が返されることを想定してください。完全なセットについては拒否カテゴリの表を参照してください。fallbacksの設定と許可されるフォールバック先については、拒否にはfallbacks: "default"を使用するを参照してください。 -
料金: 入力トークン100万あたり10米ドル、出力トークン100万あたり50米ドルです。Claude Opus 5はそれぞれ5米ドルと25米ドルです。プロンプトキャッシングのキャッシュ読み取りはトークン100万あたり0.25米ドルで、Claude Opus 5の料金の半分です。Claudeの料金を参照してください。
-
データ保持: 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_choice(anyまたは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.7以前を使用している場合は、対応するClaude Opus 5.5移行ガイドのセクションから始めてください。
モデル名を更新する
model = "claude-opus-4-8" # Before
model = "claude-fable-5-1" # After
# または、検証済みの組織に同じ機能を提供する Claude Mythos 5.1 の場合:
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フィールドのないリクエストは適応型思考で実行されます。content[0].textのように位置でコンテンツを読み取るレスポンス解析を更新します。レスポンスがthinkingブロックで始まる場合があるため、代わりにtypeでコンテンツブロックを選択してください。- 強制的な
tool_choice(anyまたは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 Opus 4.8では1,024トークン)に近いプロンプトを見直し、コストとレイテンシのベースラインを再設定します。トークンあたりの料金は異なり、思考トークンは出力トークンとして課金されるため、Claude Opus 4.8で思考なしで実行していたワークロードでは、リクエストあたりの出力トークンが増える可能性があります。
Claude Mythos 5からClaude Mythos 5.1への移行
Claude Mythos 5.1は、Cyber Verification ProgramなどのAnthropicの検証プログラムを通じて検証された組織向けの、Claude Fable 5.1に相当するモデルです。モデルIDを切り替える前に、組織がClaude Mythos 5.1にアクセスできることを確認してください。
APIレベルの差分はClaude Fable 5からClaude Fable 5.1への移行と同じです。強制的なツール選択は400エラーを返し、Claude Mythos 5.1の思考ブロックを読み取れるのはClaude Mythos 5.1とClaude Fable 5.1のみです(Claude Mythos 5.1はClaude Mythos 5のブロックを読み取れますが、その逆はできません)。Claude Fable 5.1とは異なり、Claude Mythos 5.1は会話チェックを実行しないため、以前のターンを編集しても思考ブロックが無効になることはありませんが、プロンプトキャッシングのキャッシュは再作成されます。
モデル名を更新する
model = "claude-mythos-5" # Before
model = "claude-mythos-5-1" # After移行チェックリスト
- モデル名を
claude-mythos-5からclaude-mythos-5-1に更新します。 - 強制的な
tool_choice(anyまたは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?