8月1日、RuntimeWireが「Claude Code reverse engineering alleges hidden Fable 5 model switches」と題した記事を公開した。Anthropicは「モデル切り替えは必ずユーザーに通知する」と公式ドキュメントで明言しているが、あるユーザーがClaude Codeのクライアントコードをリバースエンジニアリングした結果、その約束を無視するフォールバック経路がコード内に存在すると主張した。開発者がFable 5を指定して実行したつもりのセッションが、通知なしに別モデルへ切り替わっているとすれば、再現性・監査可能性・課金の三面で実害が生じる。
前提:Claude Fable 5とOpus 4.8の位置づけ
Claude Fable 5(以下「Fable 5」)は、2026年時点でAnthropicが提供する最上位モデルとして位置づけられている。Claude Opus 4.8(以下「Opus 4.8」)はその一世代前のフラッグシップモデルであり、料金・性能ともに異なる。Anthropicは、Fable 5への一部リクエストをセキュリティ分類器が検知した場合にOpus 4.8へルーティングする機構を公式に認めており、その際は必ず通知ダイアログを表示し、ユーザーが設定(Switch models when a message is flagged)で無効化できると説明している。今回の疑惑は、この「必ず通知する」という保証が実装レベルで守られていない経路が存在するという主張だ。
「通知なし」のモデル切り替えが疑われる仕組み
7月30日、Lonというユーザーが27投稿にわたるスレッドを公開し、Claude CodeクライアントがFable 5のリクエストをOpus 4.8へユーザーへの通知なしにサイレント切り替えする経路を持つと主張した。
Lonは、Claude Codeのコンパイル済みバイナリに含まれる難読化されたクライアントコードをリバースエンジニアリングし、npmで配布されているバージョン間の差分を比較することでこの経路を特定したとしている。なお、RuntimeWireはAI・開発ツール分野を専門とする独立系テックメディアであり、今回の記事はLonのスレッドを一次情報として報じたものだ。リバースエンジニアリングによる推論という性質上、Anthropicによる公式確認が得られていない主張を含む点は留意が必要である。
スレッドに添付されたスクリーンショットでは、3つの動作パスが説明されている:
- 可視フォールバック:ダイアログを表示し、
switchModelsOnFlag設定を参照する - サイレントなクライアントサイドリトライ:設定を参照しない
- サーバーから指示されるモデル変更
さらにLonは、tengu_convolute_arcades_retryというテレメトリイベントの存在を特定しており、これをフォールバック機構が通知なしに動作している証拠として提示している。このイベント名は通常の「可視フォールバック」パスとは別のコードブランチに紐づいており、ユーザー設定(switchModelsOnFlag)を参照せずにリトライが完結していることを示唆するという。すなわち、このイベントが記録された場合、ユーザーが切り替え無効化を設定していても、その設定を読まずに別モデルへの再実行が行われた可能性があるとLonは主張している。
Lonによれば、このサイレントフォールバックのコードはバージョン2.1.157に存在し、refusal_fallbackという機能は7月20日リリースのバージョン2.1.216でFable 5のモデルレジストリに追加されたという。
ドキュメントと実装の乖離
Anthropicは7月1日付のヘルプセンター記事で、自動フォールバック時の挙動を次のように説明している:
- 切り替えが発生した場合は通知を表示し、回答したモデル名をラベルとして明示する
- モデルセレクターはOpus 4.8を示したまま維持され、ユーザーが手動で戻すまでその状態を保つ
- 自動切り替えを無効化した場合、Fable 5でブロックされたリクエストは別モデルで再実行されるのではなく、会話がポーズされる
Lonの主張通りであれば、クライアントコード内のある経路はこれらの制御を完全に無視することになる。ただしクライアントコードの存在のみでは、Anthropicのサーバーがそのパスを実際にどれほどの頻度で呼び出しているかは証明できない。コードが対応する能力を持つことは示されても、それが現在の本番環境で動作しているかどうかは別問題だ。
開発者への実害:再現性と課金
この問題が単なる透明性の話にとどまらない理由として、記事は2点を挙げている。
モデル能力の差:AnthropicはFable 5を最も高性能なモデルと位置付けており、Opus 4.8との間には明確な性能差がある。開発者がFable 5を選択した場合、通知なしに切り替えが発生すれば、長時間のコーディングセッション中にリポジトリ全体を操作しているモデルが変わり、推論の一貫性が失われる可能性がある。
課金への影響:Fable 5は入力100万トークンあたり$10・出力$50、Opus 4.8は$5・$25と料金が異なる。Anthropicによれば、入力段階でブロックされたリクエストはOpus料金で全額課金され、処理途中の切り替えは両モデルの料金が按分されるという。課金の調整が正しく行われたとしても、サイレント切り替えはタスクの再現性と監査可能性を損なう。
他のユーザーからも同様の報告
Anthropicの公開Issueトラッカーには、同種の問題報告が複数存在する。6月10日に開かれたIssueでは、通常のRustシステムプログラミング作業がFable 5の分類器に引っかかり、Opus 4.8へセッションが移行したと報告されている(この例では切り替えバナーは表示されていた)。6月9日の別報告では、スタートアップコードの脆弱性チェック中にFable 5からOpusへの切り替えが発生したとされている。
Anthropicはこれらについて、サイバーセキュリティや生物・化学・モデル蒸留などのトピックに関連するリクエストをリダイレクトする分類器が「意図的に保守的」に設計されており、無害なリクエストが誤検知される可能性があると説明している。
今回の問題の核心は、Anthropicが「ユーザーに必ず通知する」と約束した挙動と、クライアントコードが潜在的にサポートする挙動との間のギャップだ。Lonの発見はリバースエンジニアリングによる推論の範囲を超えるものではなく、本番サーバーがそのパスを実際に使用しているかどうかはAnthropicによる公式説明が必要な問題である。RuntimeWireおよびTechFeed編集部はAnthropicに対して問い合わせを試みているが、本稿執筆時点で公式コメントは得られていない。
詳細はClaude Code reverse engineering alleges hidden Fable 5 model switchesを参照していただきたい。