結論:Fable 5.1 の400エラーは「仕様で消えた機能」を呼んでいるサイン
Claude Fable 5 で動いていたコードをモデルIDだけ claude-fable-5-1 に差し替えると、多くの現場で 400 invalid_request_error が出ます。原因はバグではなく仕様です。Anthropic の公式ドキュメントは、Fable 5 からの移行で破壊的変更は3つ、そのうち即座にエラーとして跳ね返るのが tool_choice の強制ツール実行だと明記しています。
実務で踏みやすい400の原因は次の5つです。いずれもリクエストの書き方を直せば解決し、モデルを戻す必要はありません。
エラーになる書き方 | 正しい直し方 |
|---|---|
|
|
|
|
| 思考をオフにはできない。同上 |
assistant メッセージのプリフィル | プリフィルをやめ、指示文で出力形式を指定する |
| いずれも送らない(既定値のみ許容) |
1. 強制ツール実行(tool_choice)は非対応になった
Fable 5.1 と Mythos 5.1 では tool_choice の any と tool が使えません。送ると次のメッセージが返ります。
tool_choice: type "tool" and "any" are not supported for this model.
同じ検証はトークンカウント用のエンドポイントにも効くため、「本番呼び出しの手前で見積もりだけ取る」実装も同時に落ちます。ここを見落として「本番だけ直したのに直らない」と悩む例が多いところです。
理由も公式に説明されています。これらのモデルは思考(adaptive thinking)が常時オンで、ツール呼び出しを強制すると思考が飛ばされ、モデルが考えた内容をツール引数の中に書き込んでしまう。結果として引数の品質が落ちるので、そもそも許可しないという設計です。
JSONを必ず守らせたい場合の代替
- strict tool use:
tool_choice: {"type":"auto"}のまま、ツール定義にstrict: trueを付ける。 - structured outputs:スキーマ自体を構造化出力側へ移す。
- プロンプトで明示:「この質問には
get_weatherツールを使って答えること」と条件を書く。公式は Fable 5.1 が明示的なツール指示に確実に従うとしています。
実務では3つ目を軽視しがちですが、強制フラグを外して指示文を1行足すだけで期待どおり呼ばれるケースがほとんどです。まず指示文、それでも揺れるなら strict tool use、という順で試すのが手戻りが少ない進め方です。
2. 思考ブロックまわりの400(残り2つの破壊的変更)
エラーメッセージに The block is bound to a different conversation と出る場合は、会話履歴の作り方が原因です。Fable 5.1 の思考ブロックはそれを生成したモデルと会話に紐づいており、(1) 旧モデルに読ませる、(2) 過去のターンを編集してから送り直す、のどちらでも無効化されます。
対処は「履歴を追記のみ(append-only)にし、思考ブロックはそのまま返す」ことです。毎ターン差し込んで消していたような注意書きは、ベータの turn-scoped system messages 側へ寄せます。どうしても落として続行したい場合は thinking-binding-controls-2026-08-01 ベータヘッダーと prefix_mismatch_behavior: "drop_block" で「ブロックを捨てて続ける」挙動を選べます。
要点は、会話履歴を自前で組み立てているコードほど危ないということです。SDK 標準の積み方をしているなら踏みません。
私たちも社内の自動化ツールを新しいモデルへ寄せるとき、まずこの「履歴の組み立て方」から点検しています。AI導入支援や独自AI開発では、こうした移行時のつまずきを含めて伴走しています。記事の途中で恐縮ですが、よろしければあわせてご覧ください。
3. 料金は据え置き、キャッシュ読み取りだけ4分の1
移行の判断材料として、Fable 5.1 の価格は Fable 5 と同じです(1Mトークンあたり、USD)。
項目 | Fable 5.1 / Mythos 5.1 |
|---|---|
入力 | $10 |
出力 | $50 |
キャッシュ書き込み(5分 / 1時間) | $12.50 / $20 |
キャッシュ読み取り | $0.25(他モデルの入力比0.1倍に対し0.025倍) |
バッチ処理 | 入力 $5 / 出力 $25 |
コンテキストは既定で100万トークン、最大出力は12.8万トークン。キャッシュ可能な最小プロンプト長512トークンは変わりません。同じ前置きを何度も読み直す長時間のエージェント運用では、キャッシュ読み取りが4分の1になる分だけ実コストが下がります。
4. エラーは出ないが変わっている挙動
400にはならないものの、コードを変えなくても体感が変わる点が公式に列挙されています。移行後に「遅くなった」「説明が減った」と感じたら、たいていここです。
- 並列ツール呼び出しが減る:1ターン1ツールになりがちで、往復とトークンが増える。プロンプトに「独立した読み取りはまとめて呼ぶ」と1行足すのが公式の対処。
- 途中経過の文章が減る:
thinking.displayを"updates"(ベータ)にするか、冒頭・途中・まとめを明示的に求める。 - effort が low だと記憶で答えがち:最新情報が要るターンだけ effort を上げる。
- 文章が密になり、装飾が減る:旧モデル向けに書いた「箇条書き禁止」等のルールが効きすぎることがある。
- 小さな修正でもファイル全体を書き直しがち:出力トークンが膨らむので、部分編集を明示する。
5. 移行チェックリスト
- モデルIDを
claude-fable-5-1に変更する。 tool_choiceのany/toolを全削除する(トークンカウント側も)。- 思考ブロックはそのまま返し、履歴は追記のみにする。
- effort は既定の
highから自社ワークロードに合わせて再調整する。 - 評価(evals)を回し直す。拒否時のフォールバック先は Opus 4.8 と Opus 5。
なお Fable 5.1 と Mythos 5.1 は30日間のデータ保持が前提で、明示的な許可がない限りゼロデータ保持(ZDR)の対象外です。医療・金融など保持期間に制約がある案件では、ここが技術要件より先に効いてきます。
関連して、Claude Mythos 5.1が使えない理由とFable 5.1との違い、提供開始日と料金の全体像はClaude Fable 5.1の提供開始と変更点のまとめで整理しています。モデル選定そのものに迷う場合はChatGPT・Gemini・Claudeの比較もあわせてどうぞ。
導入・移行でつまずいたら
モデルの世代交代は、性能よりも「動いていたコードが静かに壊れる」ことのほうが実害になります。社内の自動化やAI活用の設計・移行でお困りでしたら、お気軽にご相談ください。
よくある質問
Claude Fable 5.1でtool_choiceのanyやtoolを使うとどうなりますか?
400 invalid_request_errorが返り、tool_choice: type "tool" and "any" are not supported for this model. というメッセージが表示されます。トークンカウントのエンドポイントでも同じ検証が働きます。
強制ツール実行が使えないと、JSONの形式を守らせられないのでは?
tool_choiceはautoのままにして、strict tool useでtrueを指定するか、構造化出力(structured outputs)へスキーマを移します。プロンプトで「この場合はこのツールを使う」と明示する方法も公式が推奨しています。
Fable 5.1の料金はFable 5から上がりましたか?
入力$10・出力$50(1Mトークンあたり)で据え置きです。キャッシュ読み取りだけが$0.25に下がり、他モデルの0.1倍に対して0.025倍になっています。
thinkingでbudget_tokensを指定すると400になります。
Fable 5.1は適応的思考が常時オンで、enabled+budget_tokensもdisabledも400になります。thinkingを省略するか、type adaptiveを指定してください。
移行後に動作が遅くなったのはなぜですか?
並列ツール呼び出しが減り1ターン1ツールになりやすいためです。独立した読み取りはまとめて呼ぶよう、プロンプトに1行加えるのが公式の対処です。