メインコンテンツにスキップ
株式会社ゼットリンカー - Next.js システム開発専門
AI開発

Claude Fable 5.1移行|tool_choice廃止など3つの注意点とNext.js実装

Conclusion

Fable 5.1移行は基本モデルID差し替えのみ。ただしtool_choice強制指定は400になるため事前修正が必要。キャッシュ読み取りは4分の1に値下げ。

結論、Claude Fable 5.1への移行はモデルID差し替えが基本ですが、tool_choiceの強制指定(any/tool)が400エラーになる・会話履歴の編集でthinkingブロックが無効化されるなど3つの注意点があります。キャッシュ読み取り4分の1の恩恵を取るNext.js実装パターンとあわせて整理します。

12分で読めます
Next.jsNext.jsClaude Fable 5.1AnthropicAnthropicAI駆動開発PoC

「Fable 5をやっと本番に載せたばかりなのに、もう5.1が出た。また移行検証からやり直しか」——AIモデルの更新サイクルが月単位になった2026年、Next.jsアプリにClaude APIを組み込んでいる開発チームからよく聞く悩みです。

2026年9月1日(米国時間)、AnthropicはClaude最上位モデルの改良版「Claude Fable 5.1」を発表しました(公式発表)。本記事では、Next.jsアプリケーションにClaude APIを組み込む立場から、claude-fable-5 からの移行で押さえるべき仕様変更と実装パターンを整理します。モデルの位置づけや料金の全体像は、経営者向けの解説記事(zetlinker.com)にまとめているので、本記事は実装の話に絞ります。

先に要点を3つにまとめます。

  • 基本はモデルIDを claude-fable-5-1 に差し替えるだけ。APIの形式・基本料金(入力10ドル/出力50ドル)・トークナイザーはFable 5と同じで、キャッシュ読み取りは1ドル→0.25ドルの4分の1に値下げ
  • ただしbreaking changeが実質3つある:①tool_choice の強制指定(any/tool)が400エラー、②thinkingブロックが生成モデルに紐づく、③会話履歴を編集するとthinkingブロックが無効化(2026年8月31日以降に作成したアカウントでは400エラーが強制
  • エージェント実装では並列ツールコールが減る・進捗テキストがthinkingブロック側に寄るなど挙動変化があり、プロンプトと thinking.display の調整で対処する

何が変わったのか?──実装者向けの変更点サマリー

Fable 5.1は「同じ料金・同じAPI・性能向上+キャッシュ値下げ」の改良版で、既存のMessages API呼び出しコードの大半はそのまま動きます。

項目Fable 5Fable 5.1
モデルIDclaude-fable-5claude-fable-5-1
料金(入力/出力)$10 / $50$10 / $50(据え置き)
キャッシュ読み取り$1.00$0.25(4分の1)
コンテキストウィンドウ100万トークン100万トークン
最大出力12.8万トークン12.8万トークン
知識カットオフ2026年1月2026年6月
thinking常時ON(変更不可)常時ON(変更不可)
tool_choiceauto / none / any / toolauto / none のみ(any・toolは400)

(2026年9月2日時点。出典:公式ドキュメント移行ガイド

トークナイザーも同一なので、トークン数の再見積もりは基本的に不要です。Anthropicの説明では、キャッシュ読み取りの値下げにより一般的なワークロードで約25%、キャッシュ依存度の高いエージェント型ワークロードで最大45%のコスト削減になります。システムプロンプトや参照資料をキャッシュして毎ターン読ませるNext.jsのチャット実装・エージェント実装ほど、恩恵が大きい変更です。

移行3つの注意点──400エラーを踏む前に洗い出す

Claude Fable 5.1移行の3つの確認ポイント:①tool_choiceのtype any/tool(強制呼び出し)が廃止され400エラーになるためauto+明示指示とstrict:trueツールへ置き換える、②5.1が生成したthinkingブロックは旧モデルでは読めずAPI側で自動削除される、③過去ターンやsystem/toolsを書き換えると以降のthinkingブロックが無効化され2026年8月31日以降作成のアカウントでは400エラーが強制される

tool_choice の強制指定が400エラーになる

Fable 5.1では tool_choice: { type: "tool", name: "..." }{ type: "any" } がサポート外になり、400エラーが返ります(Fable 5では使えていた指定です)。Messages APIだけでなく、Batches APIとトークンカウントAPIでも同じチェックが入ります。

構造化データの抽出でツール強制を使っていた実装は、auto + 明示的な指示 + strict: true に置き換えます。

// NG:Fable 5.1では400エラー
await client.messages.create({
  model: "claude-fable-5-1",
  max_tokens: 16000,
  tools: [recordSummaryTool],
  tool_choice: { type: "tool", name: "record_summary" }, // any / tool は不可
  messages: [{ role: "user", content: doc }],
});

// OK:auto + 指示文 + strict: true で同等の確実性を得る
await client.messages.create({
  model: "claude-fable-5-1",
  max_tokens: 16000,
  tools: [{ ...recordSummaryTool, strict: true }],
  tool_choice: { type: "auto" },
  messages: [
    { role: "user", content: `次の文書を record_summary ツールで必ず記録してください。\n\n${doc}` },
  ],
});

そもそも「JSONを確実に受け取りたい」だけであれば、ツール強制ではなく構造化出力(output_config.format のJSONスキーマ指定)への置き換えが正攻法です。スキーマ通りの出力が保証されるため、Zodでのバリデーションとも相性が良い方法です。

② thinkingブロックが「生成したモデル」に紐づく

Fable 5.1が生成したthinkingブロックは、旧モデル(Fable 5・Opus 5など)では読めなくなりました。 逆方向は問題なく、旧モデルの会話をFable 5.1に引き継ぐことはできます(一方通行)。

実害が出るのは、リトライやフォールバックで会話が旧モデルに切り替わるケースです。API側が読めないブロックを自動的に削除してくれるため(削除分の課金なし)、リクエスト自体は成功しますが、切り替え直後のターンは推論の文脈を失って再計画が走るため、コストとレイテンシが一時的に増えます。従来通り「thinkingブロックは受信したまま毎ターン送り返す」実装にしておけば、コード変更は不要です。

③ 会話履歴の編集でthinkingブロックが無効化される

Fable 5.1のthinkingブロックは、そのブロックより前の systemtools・会話履歴に対して有効性が検証されるようになりました。 過去ターンの書き換え・システムプロンプトの再構築・クライアント側での履歴圧縮などを行うと、以降のthinkingブロックが無効になります。

注意すべきはアカウントによって挙動が違う点です。2026年8月31日以降に作成されたAPIアカウントではこのチェックが強制され、履歴を編集したリクエストは400エラーで拒否されます。 それ以前のアカウントでは記録のみで動作は変わりませんが、Anthropicは将来のモデルで全アカウントに強制する方針を明言しています。自社ツールを顧客のAPIキーで動かすSaaSの場合、「自分のアカウントでは動くのに、新規顧客のアカウントでは400になる」という形で先に顧客側が踏むため、いま対応しておくべき項目です。

// エラーで落とさず「無効ブロックを自動削除して続行」する設定(ベータ)
await client.beta.messages.create({
  model: "claude-fable-5-1",
  max_tokens: 16000,
  betas: ["thinking-binding-controls-2026-08-01"],
  thinking: {
    type: "adaptive",
    block_binding: { prefix_mismatch_behavior: "drop_block" }, // 既定は "error"
  },
  messages,
});

根本対応は、会話履歴を追記専用(append-only)に保つことです。途中で指示やツールを変えたい場合は、履歴を書き換えるのではなく role: "system" のメッセージ追加(ツール変更は tool_addition / tool_removal ブロック)で行います。これはプロンプトキャッシュのヒット率を保つ実装パターンとも一致するので、キャッシュ読み取りが4分の1になった今回、二重に効きます。

ここで一度お知らせ

15分のカジュアル相談

事例・要件未定でもOK/営業はしません/所要時間15分

カジュアルに相談する

Next.jsではどう組み込むか?──モデルIDの環境変数化が最初の一歩

モデル更新が3ヶ月ごとに来る前提で、モデルIDはコードに直書きせず環境変数へ逃がしておくのが実務的です。

Next.js 16のApp Router+公式TypeScript SDK(@anthropic-ai/sdk)での最小構成です。

// app/api/ai/route.ts
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();
const MODEL = process.env.CLAUDE_MODEL ?? "claude-fable-5-1";

export async function POST(req: Request) {
  const { prompt } = await req.json();

  const stream = client.messages.stream({
    model: MODEL,
    max_tokens: 64000,
    system: [
      {
        type: "text",
        text: SYSTEM_PROMPT, // 固定文言はキャッシュ対象に(読み取り$0.25で効く)
        cache_control: { type: "ephemeral" },
      },
    ],
    messages: [{ role: "user", content: prompt }],
  });

  return new Response(stream.toReadableStream());
}

ポイントは2つです。まず、Fableラインはthinkingが常時ONで単一リクエストが数分に及ぶことがあるため、ストリーミングを標準にすること(Vercelのタイムアウト対策としても必須です)。次に、システムプロンプトに cache_control を付けてキャッシュ読み取り値下げの恩恵を確実に取ることです。

また、Fableラインは安全分類器によるリクエスト拒否(stop_reason: "refusal")があり得ます。Fable 5.1では誤検知が大幅に減りましたが、ハンドリング自体は引き続き必要です。fallbacks: "default"(ベータ)を指定すると、拒否時にAnthropic推奨のモデル(Opus 5またはOpus 4.8)へサーバー側で自動リトライされるため、自前のリトライ実装より簡潔に済みます。

エージェント実装での挙動変化──プロンプト側で調整する3点

breaking changeではありませんが、Fable 5から挙動が変わる点が3つ公表されています。

  • 並列ツールコールが減る:長いエージェントループで1ターン1ツールコールになりやすく、ターン数(=コストとレイテンシ)が増えることがある。独立した読み取り処理をまとめて実行するよう、バッチ実行を促す指示文を追加する
  • ツールコール間の進捗テキストが減る:進捗表示をUIに出している場合は、thinking.display"updates"(ベータ)または "summarized" にして、thinkingブロック側から進捗を拾う
  • 低effortでは検索ツールを呼ばず記憶で答えやすい:RAG・検索前提の実装では、該当リクエストのeffortを上げるか「必ず検索してから答える」指示を明示する

effortのデフォルトは high のままで、5段階(low〜max)すべて使えます。公式は「Fable 5用にチューニングした設定を持ち越さず、改めて計測し直す」ことを推奨しています。5.1の伸びしろは xhighmax で最大になる一方、思考時間も延びるため、品質が要る処理だけ引き上げるのが定石です。

まとめ

  • Claude Fable 5.1は2026年9月1日発表。基本料金・API形式・トークナイザーはFable 5と同じで、キャッシュ読み取りが4分の1($0.25)になった
  • 移行の要点は3つ:tool_choice の強制指定が400エラー、thinkingブロックのモデル紐づけ、履歴編集による無効化(新規アカウントは400が強制)
  • 会話履歴を追記専用に保つ設計は、エラー回避とキャッシュヒット率の両方に効く。モデルIDの環境変数化とストリーミング標準化とあわせて、モデル更新に強い土台になる
  • エージェント実装の挙動変化(並列コール減・進捗テキスト減・低effortの検索減)は、プロンプトと thinking.display で調整する

私たちは、Next.js構成でのClaude API組み込みを、モデル選定からPoC実装・本番移行まで一貫してお手伝いしています。「既存実装をFable 5.1に安全に移行したい」「エージェント実装のコストを見直したい」という段階からのご相談を歓迎します。Next.js × AIでのPoC開発について、15分のカジュアルな相談も受け付けています(事例・要件が固まっていなくても大丈夫です/営業はしません)。

※本記事に記載したモデルの仕様・料金・提供条件は、2026年9月2日時点の公開情報(Anthropic公式発表公式ドキュメント)に基づく整理です。AI関連の状況は変化が速いため、実装・導入の判断にあたっては必ず公式情報で最新の内容をご確認ください。本記事はNext.js 16.x時点の情報です。

本記事は Next.js 16.x 時点の情報です

最終更新:2026年9月2日

Share this article

15分のカジュアル相談

事例・要件未定でもOK/営業はしません/所要時間15分

カジュアルに相談する

次に読む記事

ALL ARTICLES →

プライバシーポリシー

株式会社ゼットリンカー(以下、「当社」といいます。)は、お客様の個人情報の重要性を認識し、 その保護の徹底を図るため、以下のプライバシーポリシー(以下、「本ポリシー」といいます。)を定めます。

1. 個人情報の定義

本ポリシーにおいて「個人情報」とは、生存する個人に関する情報であって、 当該情報に含まれる氏名、生年月日その他の記述等により特定の個人を識別することができるもの、 及び他の情報と容易に照合することができ、それにより特定の個人を識別することができることとなるものを指します。

2. 個人情報の収集

当社は、お客様が当社のサービスをご利用になる際、お客様の個人情報を収集することがあります。収集する個人情報は以下の通りです:

  • 氏名
  • メールアドレス
  • 電話番号
  • 会社名・組織名
  • 住所
  • その他当社が定める入力フォームにお客様が入力する情報

3. 個人情報の利用目的

当社は、お客様からご提供いただいた個人情報を、以下の目的で利用します:

  • お客様への連絡やサービスの提供
  • お客様からのお問い合わせへの対応
  • 当社サービスの改善や新サービスの開発
  • メールマガジンの配信(お客様の同意がある場合)
  • 契約や法令等に基づく権利の行使や義務の履行
  • その他、上記利用目的に付随する目的

4. 個人情報の第三者提供

当社は、以下の場合を除き、お客様の同意なく個人情報を第三者に提供することはありません:

  • 法令に基づく場合
  • 人の生命、身体または財産の保護のために必要がある場合であって、本人の同意を得ることが困難である場合
  • 公衆衛生の向上または児童の健全な育成の推進のために特に必要がある場合
  • 国の機関もしくは地方公共団体またはその委託を受けた者が法令の定める事務を遂行することに対して協力する必要がある場合

5. 個人情報の管理

当社は、お客様の個人情報を正確かつ最新の状態に保ち、個人情報への不正アクセス、 個人情報の紛失、破損、改ざん及び漏洩などを防止するため、 セキュリティシステムの維持・管理体制の整備等の必要な措置を講じ、安全対策を実施し個人情報の厳重な管理を行います。

6. 個人情報の開示・訂正・削除

お客様は、当社に対してご自身の個人情報の開示を求めることができます。 また、開示の結果、個人情報の内容が事実でないことが判明した場合には、 速やかに訂正または削除に応じます。

7. 導入事例の公開について

当社は、お客様から依頼いただいたプロジェクトを導入事例として記事にさせていただく場合があります。導入事例として公開する場合は、以下の点に配慮いたします:

  • 機密情報や個人情報は公開いたしません
  • 社名を公開する場合は、公開内容について事前にお客様に確認いただきます
  • 社名を非公開とする場合でも、お客様のご要望に応じて公開内容を確認いただくことが可能です

8. Cookie(クッキー)の使用について

当社のウェブサイトでは、お客様により良いサービスを提供するため、Cookie を使用することがあります。 Cookie により個人を識別できる情報を収集することはありません。 お客様はブラウザの設定により Cookie の受信を拒否することができます。

9. SSL(Secure Socket Layer)について

当社のウェブサイトはSSLに対応しており、ウェブブラウザとウェブサーバーとの通信を暗号化しています。 お客様が入力する個人情報は自動的に暗号化されて送受信されるため、 万が一、第三者が傍受した場合でも内容を解読することは困難です。

10. プライバシーポリシーの変更

当社は、必要に応じて、本ポリシーの内容を変更することがあります。 変更後のプライバシーポリシーについては、当社ウェブサイトに掲載したときから効力を生じるものとします。

11. お問い合わせ

本ポリシーに関するお問い合わせは、以下の窓口までお願いいたします。

株式会社ゼットリンカー

〒160-0023

東京都新宿区西新宿3丁目3番13号西新宿水間ビル2F

代表取締役: 金原隆利

お問い合わせ先: info@zetlinker.com

制定日:2024年1月1日

最終改訂日:2026/9/2

利用規約

この利用規約(以下、「本規約」といいます。)は、株式会社ゼットリンカー(以下、「当社」といいます。)が 提供するウェブサイトおよびサービス(以下、「本サービス」といいます。)の利用条件を定めるものです。 お客様は、本規約に同意した上で、本サービスをご利用ください。

第1条(適用)

1. 本規約は、お客様と当社との間の本サービスの利用に関わる一切の関係に適用されるものとします。

2. 当社は本サービスに関し、本規約のほか、ご利用にあたってのルール等、各種の定め(以下、「個別規定」といいます。)を することがあります。これら個別規定はその名称のいかんに関わらず、本規約の一部を構成するものとします。

3. 本規約の規定と個別規定の規定が異なる場合は、個別規定において特段の定めなき限り、個別規定の規定が優先されるものとします。

第2条(定義)

本規約において使用する以下の用語は、各々以下に定める意味を有するものとします。

  • 「利用契約」とは、本規約を契約条件として当社とお客様との間で締結される、本サービスの利用契約
  • 「知的財産権」とは、著作権、特許権、実用新案権、意匠権、商標権その他の知的財産権(それらの権利を取得し、またはそれらの権利につき登録等を出願する権利を含みます。)
  • 「投稿データ」とは、お客様が本サービスを利用して投稿その他送信するコンテンツ(文章、画像、動画その他のデータを含みますがこれらに限りません。)

第3条(本サービスの提供)

1. お客様は、本規約に同意の上、当社の定める方法によって利用登録を申請し、当社がこれを承認することによって、本サービスを利用することができるようになります。

2. 当社は、お客様に以下のいずれかの事由があると判断した場合、利用登録の申請を承認しないことがあり、その理由については一切の開示義務を負わないものとします。

  • 利用登録の申請に際して虚偽の事項を届け出た場合
  • 本規約に違反したことがある者からの申請である場合
  • その他、当社が利用登録を相当でないと判断した場合

第4条(ユーザーIDおよびパスワードの管理)

1. お客様は、自己の責任において、本サービスのユーザーIDおよびパスワードを適切に管理するものとします。

2. お客様は、いかなる場合にも、ユーザーIDおよびパスワードを第三者に譲渡または貸与し、もしくは第三者と共用することはできません。

3. 当社は、ユーザーIDとパスワードの組み合わせが登録情報と一致してログインされた場合には、そのユーザーIDを登録しているお客様自身による利用とみなします。

第5条(禁止事項)

お客様は、本サービスの利用にあたり、以下の行為をしてはなりません。

  • 法令または公序良俗に違反する行為
  • 犯罪行為に関連する行為
  • 本サービスの内容等、本サービスに含まれる著作権、商標権ほか知的財産権を侵害する行為
  • 当社、ほかのお客様、またはその他第三者のサーバーまたはネットワークの機能を破壊したり、妨害したりする行為
  • 本サービスによって得られた情報を商業的に利用する行為
  • 当社のサービスの運営を妨害するおそれのある行為
  • 不正アクセスをし、またはこれを試みる行為
  • 他のお客様に関する個人情報等を収集または蓄積する行為
  • 不正な目的を持って本サービスを利用する行為
  • 本サービスの他のお客様またはその他の第三者に不利益、損害、不快感を与える行為
  • 他のお客様に成りすます行為
  • 当社が許諾しない本サービス上での宣伝、広告、勧誘、または営業行為
  • 面識のない異性との出会いを目的とした行為
  • 当社のサービスに関連して、反社会的勢力に対して直接または間接に利益を供与する行為
  • その他、当社が不適切と判断する行為

制定日:2024年1月1日

最終改訂日:2026/9/2