Claude Fable 5.1への移行は、ほとんどがモデルIDの変更です。APIサーフェス、制限、トークンごとの料金、トークナイザー、常時オンのアダプティブ思考、拒否処理はすべてFable 5と一致します。しかし、Fable 5では発生しなかった3つの変更がエラーを返し、そのうちの1つである履歴編集チェックは、1年間正常に機能していたエージェントハーネスを静かに劣化させる可能性があります。Opus 5からの移行では、さらに4つの項目が追加されます。
このガイドは、Anthropicの移行ガイドとClaude Fable 5.1の新機能に基づいて作成された、各項目の正確なエラーテキストと修正方法を、発生順に記したチェックリストです。すべてのスニペットはApidogに貼り付けて、本番環境に到達する前に実際のエンドポイントで実行できます。モデルの概要については、Claude Fable 5.1とは何かから始めてください。

ステップ0: そもそも移行すべきかを確認する
Anthropicのドキュメントによると、Opus 5から始め、Fable 5.1は「高度な推論や長期間にわたるエージェント作業、またはClaude Opus 5での評価で高い労力を費やしてもまだ不十分な場合」に使用すべきだとされています。Opus 5が評価をパスする場合、移行するとトークンごとの料金が2倍になりますが、測定可能な利点はありません。Fable 5を使用している場合、キャッシュ読み取りが安価で、主張されている数値が改善されているため、料金は同じです。したがって、問題はハーネス作業にどれだけの労力がかかるかだけです。Fable 5.1とFable 5の比較およびFable 5.1とOpus 5の比較で、決定について説明されています。
まず、3つの適格性チェック:
- データ保持。 Fable 5.1は30日間の保持期間を必要とし、Anthropicが明示的に許可しない限り、ゼロデータ保持では利用できません。ZDR組織は、他のヒントなしにすべてのリクエストで
400 invalid_request_errorを受け取ります。Opus 5はZDRで利用可能です。 - 優先ティア。 Fable 5.1ではサポートされていません。Fable 5はサポートしています。
- レート制限。 Fable 5.1はFable 5と「Fable 5.x」プールを共有するため、段階的な切り替えは同じヘッドルームから引き出されます。
ステップ1: モデル名を更新する
model = "claude-fable-5" # 変更前
model = "claude-opus-5" # または変更前
model = "claude-fable-5-1" # 変更後
Amazon BedrockではIDはanthropic.claude-fable-5-1です。Google Cloud、Microsoft Foundry、およびAWS上のClaude Platformではclaude-fable-5-1を使用します。Claude Managed Agentsを使用している場合、これだけが唯一必要な変更です。
破壊的変更1: ツール使用の強制は400を返す
Fable 5はtool_choiceの値としてauto、none、any、toolを受け入れました。Fable 5.1は、Messages API、Batches API、およびトークンカウントエンドポイントで最後の2つを拒否します。
tool_choice: type "tool" and "any" are not supported for this model.
Anthropicの理由:思考は常にオンであり、強制的な呼び出しはそれをスキップするため、モデルはその作業結果をツール引数に書き込むことになります。
変更前 (Fable 5):
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."}],
)
変更後 (Fable 5.1): tool_choiceをautoのままにし、指示でツール名を指定し、引数がスキーマと一致するようにstrict: true(厳格なツール使用)を設定します。
record_summary_tool["strict"] = True
record_summary_tool["input_schema"]["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."}],
)
意図によって移行します。JSONを取得するためにツールを強制していた場合は、構造化出力(output_config.format)に置き換えます。アプリケーションがこのターンで呼び出しを要求する場合は、最新のユーザーターンの後にツール名を指定し、呼び出しが必須であることを示すrole: "system"メッセージを追加し、その後も履歴に残します。「正確に1つのツール」のためにanyに依存していた場合、disable_parallel_tool_use: trueはautoでも機能しますが、現在は最大1回の呼び出しを意味します。ツールが見つからない場合の再試行ループはすべて削除してください。Anthropicによると、Fable 5.1は明示的なツール指示に確実に従います。CMEK組織では、Fableモデルではstrict: trueと構造化出力が利用できないため、指示のみに頼ってください。
破壊的変更2: 以前のモデルはFable 5.1の思考ブロックを読み取れない
すべての思考ブロックは、それを生成したモデルを記録します。Fable 5.1はOpus 5、Fable 5、Mythos 5、およびそれ以前のモデルからのブロックを読み取るため、Fable 5.1に移行する会話は推論を保持します。Mythos 5.1を除いて、他のどのモデルもFable 5.1ブロックを読み取ることはできません。
Fable 5.1の会話が以前のモデルに到達するのは、ルータースイッチ、クライアントサイドの再試行、または分類器拒否のフォールバックによるものです。どの場合でも、APIはモデルが読み取れないブロックを、それらを見る前に破棄します。リクエストは成功し、破棄されたトークンは課金されず、ターゲットモデルは推論なしで再計画するため、切り替え後の最初のターンでコストとレイテンシーが増加します。
コードで修正すべき点はありません。思考ブロックは変更せずに渡し続けてください。自分でブロックを削除すると、署名400がトリガーされる可能性があります。可視性のために、thinking-binding-controls-2026-08-01ベータヘッダーを送信すると、レスポンスにはreason: "model_binding_mismatch"で各破棄されたブロックを名指しするinput_transformations配列が含まれます。
破壊的変更3: 以前のターンを編集すると思考ブロックが無効になる
これは時間を割くべき項目です。Fable 5.1の思考ブロックは、それに先行する正確なsystemプロンプト、tools配列、およびメッセージ履歴に対してのみ有効です(思考の保持)。このチェックが強制される場合、これらのいずれかが変更された後にブロックをリプレイするリクエストは拒否されます。
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.
強制される対象。 2026年8月31日以降に作成されたアカウント。以前のアカウントは不一致を記録しますが、リクエストがthinking.block_binding.prefix_mismatch_behaviorを設定した場合にのみそれに基づいて動作します。Anthropicは将来のモデルがすべてのアカウントに対してこれを強制すると述べています。他のユーザーが自身のAPIキーで実行するツールを出荷する場合、フィールドを設定してテストしてください。新しいアカウントのユーザーは、あなたよりも早く強制されます。Claude Code、claude.ai、Managed Agents、およびAgent SDKはプレフィックスをそのまま保持します。Mythos 5.1は全くチェックを実行しません。
後続のすべてのブロックを無効にするもの: 以前のターンを編集、並べ替え、または削除すること(古いツール結果の削除を含む)。次のリクエストで削除するリクエストごとのテキストを挿入すること。リクエスト間でsystemまたはtoolsを再構築すること。後で異なるバイトを配信する画像URL。ブロックを有効に保つもの: 追加のみの履歴、古い思考ブロックから順に先頭の一連の思考ブロックを削除すること、system、tools、messages以外のパラメータを変更すること、cache_controlマーカーを移動すること、およびサーバーサイドの圧縮またはコンテキスト編集。
緊急回避策。 ベータヘッダーを送信し、フィールドを"drop_block"に設定します。
response = client.beta.messages.create(
model="claude-fable-5-1",
max_tokens=16000,
thinking={"type": "adaptive", "block_binding": {"prefix_mismatch_behavior": "drop_block"}},
betas=["thinking-binding-controls-2026-08-01"],
messages=history,
)
for t in response.input_transformations or []:
print(t.path, t.reason) # prefix_binding_mismatch or model_binding_mismatch
APIは最初の一致しないブロックとそれ以降のすべての思考ブロックを削除し、処理を進め、各削除を報告します。これはそのリクエストにのみ適用されるため、フィールドを送信し続けてください。CIで明示的に"error"を設定し、履歴編集が実行を失敗させるようにします。思考保持ガイドには、3段階の監査と、機能しなくなる圧縮の形態が記載されています。修正テーブル:
| あなたが行っていたこと | 代わりにこれを行うこと |
|---|---|
セッション中にsystemを編集する |
セッション開始時に固定する。変更が有効になる箇所でrole: "system"メッセージを追加する |
セッション中にtoolsを編集する |
全てのセットを事前に宣言する。システムメッセージでtool_addition / tool_removalブロックを送信する(ベータ版 mid-conversation-tool-changes-2026-07-01) |
| ターンごとのリマインダーを挿入して削除する | 履歴に残る、clear_at: "next_user_message"を持つターンごとのシステムメッセージ(ベータ版 mid-conversation-system-clear-at-2026-08-21) |
| クライアントサイドで古いツール結果を削除する | サーバーサイドのコンテキスト編集 |
| クライアントサイドで最近のターンをそのまま保持する圧縮 | サーバーサイドの圧縮、または1つの要約メッセージと新しいユーザーターンのみを再生し、他は何も再生しない |
| ターンをまたいでURLで画像を参照する | Files APIに一度アップロードし、file_idを送信する |
Opus 5からの移行:さらに4つの項目
- 1. 思考はどのような努力レベルでも無効にできない。 Opus 5は
thinking: {"type": "disabled"}をhigh以下のレベルで受け入れました。Fable 5.1はどのような努力レベルでも400を返します。このフィールドを削除し、より低い努力レベルで費用を制御し、思考なしで実行されていたルートのmax_tokensを見直してください。 - 2. ツール間のナレーションが思考ブロックに移動する。 Opus 5では、ツール呼び出し間のテキストは
textブロックとして返されました。Fable 5.1では、デフォルトのdisplay: "omitted"の下で空である進捗更新のthinkingブロックとして返されます。UIがそのナレーションをレンダリングしていた場合は、thinking-display-updates-2026-08-18ヘッダーと共にthinking: {"type": "adaptive", "display": "updates"}を設定してください。 - 3. 分類器のセットが広範囲になる。 Opus 5はサイバーのみの分類器を実行します。Fable 5.1は
cyber、bio、frontier_llm、reasoning_extraction、general_harmsをカバーします。contentを読み取る前にstop_reason: "refusal"を処理し、server-side-fallback-2026-07-01ヘッダーと共にfallbacks: "default"をオプトインしてください。許可されるターゲットはOpus 4.8とOpus 5なので、拒否されたリクエストは移行元のモデルにフォールバックできます。 - 4. 料金と保持。 キャッシュ読み取りが$0.50から$0.25になることで、$5と$25から$10と$50になります。ZDRは失われます。料金の内訳で計算が示されています。
Opus 4.8以前からの移行の場合、まずOpus 4.8からOpus 5への移行を適用し、次にこのガイドに従ってください。Opus 4.8用に書かれた統合では、古いターンを切り捨てたり、リクエストごとにシステムプロンプトを再構築したりすることがよくありましたが、Opus 4.8はこれに異議を唱えませんでした。
テストすべき動作変更点
エラーを返すものはなく、それぞれプロンプティングガイドに1行の修正が記載されています。長いループでは、Fable 5が複数のツール呼び出しをバッチ処理していたのに対し、Fable 5.1はターンごとに1つのツール呼び出しを発行する場合があります。複数呼び出しターンの割合を測定し、減少した場合はバッチ処理を促す記述を追加してください。進行状況メッセージの記述が少なくなるため、display: "updates"を設定し、結果を保持するように指示するプロンプト行を削除してください。low努力レベルでは検索ツールの呼び出し頻度が低くなるため、新しいデータが必要なターンでは努力レベルを上げてください。
推奨される変更点
- メッセージごとの努力レベル(ベータ版
mid-conversation-output-config-2026-07-01)。 キャッシュをリセットするトップレベルの値を変更する代わりに、output_configを持つ空のコンテンツのrole: "system"メッセージで努力レベルを変更します。 highから始めてスイープする。 Fable 5に対するメリットはxhighとmaxで最大になります。Anthropicによると、mediumはFable 5とほぼ同等の性能をより低コストで提供します。レベル名はモデル間で引き継がれません。- サーバー側でコンテキストをトリミングする。 サーバーサイドの圧縮(ベータ版
compact-2026-01-12)とコンテキスト編集は、履歴編集とはみなされません。
移行チェックリスト
- [ ] 30日間のデータ保持と優先ティアへの非依存を確認する。
- [ ] モデル名を
claude-fable-5-1に更新する。 - [ ] タイプ
anyまたはtoolのすべてのtool_choiceを、autoに加えて指示とstrict: true、または構造化出力で置き換える。 - [ ] Opus 5からの場合:
thinking: {"type": "disabled"}を削除し、max_tokensを見直す。 - [ ] 空の思考ブロックも含め、すべてのターンで思考ブロックを変更せずに返す。
- [ ] コードが
messagesを構築する場合、prefix_mismatch_behavior: "drop_block"でセッションを実行し、input_transformationsをログに記録し、すべてのprefix_mismatch_behaviorを修正する。 - [ ]
systemとtoolsをセッション開始時に固定する。ターンごとのリマインダーは、決して削除しないターン限定のシステムメッセージに移動する。 - [ ] 本番環境の
prefix_mismatch_behaviorを選択し、監視する。 - [ ]
stop_reason: "refusal"を処理する。fallbacks: "default"を追加する。 - [ ] UIがツール間のテキストをレンダリングする場合、
display: "updates"を設定する。 - [ ]
highから努力レベルのスイープを再実行し、コストを再基準化する。トークン数はFable 5から変更なし。キャッシュ読み取りは価格の4分の1。
Apidogでチェックリストを実行する
破壊的変更ごとに1つのリクエストを含むコレクションを構築します。強制的なtool_choice呼び出し(上記の400を予期)、thinking: disabled呼び出し(400を予期)、および思考バインディングヘッダーが設定されたターン間でシステムプロンプトを編集する2つのリクエストシーケンス(prefix_binding_mismatchエントリを予期)です。stop_reasonと空のinput_transformations配列に対するアサーションを含む合格バージョンをそれらの隣に追加し、すべてのハーネス変更時にApidog CLIを通じてCIで実行します。構築にはApidogをダウンロードしてください。APIウォークスルーにはリクエストボディが含まれています。

FAQ
- Fable 5からFable 5.1への移行はドロップイン変更ですか? ほとんどの場合そうです。強制された
tool_choiceは400を返し、以前のモデルはFable 5.1の思考ブロックを読み取れず、以前のターンを編集すると、強制適用されるアカウントで後続の思考ブロックが無効になります。その他はすべて引き継がれます。 - 「別の会話にバインドされている」とはどういう意味ですか? コードがFable 5.1の思考ブロックの前に何かを変更し、そのブロックを再利用したことを意味します。履歴の編集をやめるか、
prefix_mismatch_behavior: "drop_block"と共にthinking-binding-controls-2026-08-01ヘッダーを送信してください。 - 私のアカウントは履歴編集チェックを強制しますか? 2026年8月31日以降に作成された場合、強制されます。以前のアカウントは、
prefix_mismatch_behaviorを設定した場合にのみ強制されます。 - Fable 5のプロンプトを維持できますか? はい、できます。Anthropicによると、変更なしで良好なパフォーマンスを発揮するはずです。努力レベルのスイープを再実行し、長いループでの並列ツール呼び出しが少なくなることを期待してください。
- Opus 5から移行すると何が壊れますか? Fable 5のリストにあるすべてに加え、
thinking: disabledはどのような努力レベルでも400を返し、ツール間のナレーションが思考ブロックに移動し、分類器のセットが広範囲になり、価格が2倍になり、ZDRが失われます。 - BedrockとGoogle Cloudにも同じ破壊的変更がありますか? モデルの変更については、はい、同じです。思考バインディングコントロールは、リリース当初はAWS上のClaude APIおよびClaude Platformにありましたが、BedrockおよびGoogle Cloudではモデルごとに導入が進んでいます。コントロールがない場合、リカバリは思考ブロックを削除して一度再試行することです。
