Claude Codeの応答品質が落ちたときの確認手順
Claude Codeの応答が急に鈍く感じたときに疑う原因を、新しい会話で直るかどうかで切り分け、/model・/effort・/context・/rewindで確かめる手順です。
Claude Codeの応答が急に鈍く感じても、エラーは何も出ていない。そういうときは、モデルそのものの劣化より会話の状態に原因があることがほとんどです。Claude Codeはモデルのバージョンをこっそり替えません。ただしフォールバックモデルへの切り替えは起こり得るので、疑う順番を決めておくと早く片づきます。
最初の分かれ目は1つです。新しい会話を始めると直るかで、原因が会話の中にあるのか、外にあるのかが分かれます。
新しい会話で直るかどうかの分かれ道
- 1
新しい会話で直る
会話の状態が原因です。コンテキストの圧迫、訂正の積み重ね、肥大化したCLAUDE.mdが候補になります。手順2と手順3へ進みます。
- 2
新しい会話でも同じ
セッションの外に原因があります。モデルの取り違え、思考の深さ、フォールバックの切り替わりを手順1で確かめ、それでも説明がつかなければサービス側の障害も疑います。
- 3
どちらでもない・再現が不安定
/feedbackで報告します。手順は末尾の節にあります。
手元のv2.1.287で確かめた--fallback-modelの仕様
Claude Codeのフォールバックは、--helpの説明を読むと挙動が分かります。v2.1.287で出力を確認しました。長い--helpのうち、この記事に関わる2つのオプションだけを抜き出しています。
$ claude --version
2.1.287 (Claude Code)
$ claude --help
--fallback-model <model> Enable automatic fallback to specified
model(s) when the default model is
overloaded or not available. Accepts a
comma-separated list to try each in
order. Re-tries the primary at the start
of each user turn.
--safe-mode Start with all customizations
(CLAUDE.md, skills, installed plugins,
hooks, MCP servers, custom commands and
agents, output styles, workflows, custom
themes, keybindings, and more) disabled
— useful for troubleshooting a broken
configuration. Admin-managed (policy)
settings still apply. Auth, model
selection, built-in tools and plugins,
and permissions work normally. Sets
CLAUDE_CODE_SAFE_MODE=1.要点は2つあります。複数のモデルをカンマ区切りで並べると順に試され、ユーザーのターンが始まるたびに最初のモデルへ戻ります。つまり--fallback-modelによる切り替えは1ターンで終わり、次のメッセージは元のモデルで処理されます。もう1つの--safe-modeは、CLAUDE.mdやフック、MCPサーバーなどのカスタマイズをすべて無効にして起動するフラグで、後述の切り分けに使います。認証・モデル選択・組み込みツール・権限は通常どおり働きます。
モデルが切り替わる3つのケースと、気づき方の違い
フォールバックには3つの経路があり、気づく手がかりがそれぞれ違います。
フォールバックの3経路
--fallback-modelの指定
可用性エラーのあと、そのターンだけ代替モデルが応答します。トランスクリプトに通知が出る一方、
/modelの表示は変わりません。最大3モデルの連鎖を指定でき、fallbackModel設定にも書けます。BedrockやGoogle Cloudの起動チェック
既定モデルが使えないと、起動時に別のモデルへ替わります。アカウントがモデルへのアクセスを途中で失った場合も同じで、
/modelで気づけます。ただしバージョンを固定したモデルは代替されず、失敗します。自動モデルフォールバック
安全分類器にフラグを立てられたリクエストが、カテゴリー別の代替モデルで再実行されます。通知はトランスクリプトに出て、以降のセッションは代替モデルのまま続きます。
元のモデルへ戻すには/modelで選び直します。--fallback-modelの連鎖には、起動時の確認画面も/statusの表示もありません。
どのモデルがどこへ落ちるか
自動モデルフォールバックの行き先は、元のモデルとフラグの種類で決まります。
| 元のモデル | サイバーセキュリティ | 生物学 |
|---|---|---|
| Fable 5.1・Fable 5・Opus 5.5 | サイバーセキュリティOpus 4.8で再実行 | 生物学Opus 5で再実行 |
| Sonnet 5.5 | サイバーセキュリティSonnet 5で再実行 | 生物学拒否で終了 |
| Opus 5 | サイバーセキュリティOpus 4.8で再実行 | 生物学拒否で終了 |
カテゴリー別のフォールバックはv2.1.219以降の挙動です。それより古いバージョンでは、フラグの立ったFable 5のリクエストはすべて利用中プロバイダーの既定Opusモデルへ再実行されており、Opus 5はフォールバック元ではありませんでした。古い解説と手元の挙動が食い違うときは、claude updateでバージョンを揃えてから比べます。
最初のメッセージから起きる理由
自動フォールバックは、危うい文面を送った直後とは限りません。セッション最初のリクエストにはCLAUDE.mdの内容やgitステータスなどの作業環境が含まれるため、セキュリティやバイオ関連のリポジトリを開いただけで、その文脈が分類器に引っかかることがあります。
カスタマイズが原因かどうかは、claude --safe-modeで起動して試せます。CLAUDE.md・skills・MCPサーバー・hooksは読み込まれませんが、gitステータスとディレクトリー名は残ります。この状態で再現するなら、原因はプロンプトの文面かリポジトリ自体にあります。カスタマイズを1つずつ疑う進め方はsafe modeでの切り分けに詳しくまとめています。
claude --safe-mode切り替えを毎回自分で決めたいときは、/configで「Switch models when a message is flagged」をオフにするか、設定ファイルのswitchModelsOnFlagをfalseにします。フラグが立つとセッションが一時停止し、フォールバックモデルへ切り替えるか、プロンプトを直して同じモデルで再試行するかを選べます。Opus 5とSonnet 5.5の生物学フラグは代替先がないため、この設定でも確認画面は出ず、拒否で終わります。非対話モードでも、確認できないので拒否でターンが終わります。
フォールバック後の思考の深さ
自動フォールバックで代替モデルへ移るとき、フラグが立ったリクエストの思考の深さ(effort)がそのまま引き継がれます。たとえば既定のmediumで動いていたOpus 5.5がOpus 4.8へ落ちてもmediumのままです。Opus 4.8の既定はhighなので、「落ちた先のほうが深く考えているはず」と思い込むと判断を誤ります。自分で/effortを操作したり、/modelでモデルを選んだり、セッションを再開したりすると、この引き継ぎは外れます。
手順1: /modelと/effortで使用中の設定を確認する
/modelは引数なしで開くとモデルの選択画面が出て、現在のモデルが分かります。選んだモデルは新しいセッションの既定として保存されます。今のセッションだけで切り替えたいときは、行の上でsキーを押します。以前に選んだ結果や、シェルに残ったANTHROPIC_MODEL環境変数のせいで、意図より小さいモデルのまま作業していることがあります。
/modelANTHROPIC_MODELは.zshrcなどに残ったまま忘れられやすく、取り違えの典型です。固定方法と優先順位はANTHROPIC_MODEL環境変数でモデルを固定する方法に、環境変数全体の一覧はClaude Code環境変数リファレンスにあります。モデル名自体が誤っていれば、最初のリクエストで別のエラーとして表れます。詳しくは「is not a recognized model id」の意味と対処を参照してください。
思考の深さも見逃されがちです。/effortで現在の推論レベルを確認し、難しいデバッグや設計作業なら上げます。
/effort既定値はモデルごとに違います。
| モデル | 既定のeffort |
|---|---|
| Opus 5.5・Sonnet 5.5 | 既定のeffortmedium |
| Opus 4.7 | 既定のeffortxhigh |
| 上記以外のeffort対応モデル | 既定のefforthigh |
Opus 5.5には落とし穴があります。ユーザー設定ファイルの最上位にある旧形式のeffortLevelは、Opus 5.5には効きません。以前の設定でhighを保存していても、Opus 5.5に替えた直後はmediumで始まります。/effortか/modelの選択画面でそのモデル用に選び直すと、モデルごとに保存されます。この「モデルを替えたら浅くなった」は、品質低下に見える代表的な原因です。Enterで保存、sでこのセッションだけという使い分けは、effortレベルの使い方にまとめました。
手順2: /contextと/doctorでコンテキストの圧迫を確認する
会話が長くなってコンテキストウィンドウが埋まると、応答の質が落ちたように感じられます。/contextでウィンドウの使用状況が分かり、起動前後に何が積まれるかはコンテキストウィンドウを可視化する方法でたどれます。埋まっていれば、区切りのよいところで/compactを実行するか、/clearで会話をリセットします。
/context会話の長さだけが原因ではありません。肥大化したCLAUDE.mdや大量のMCPツール定義もコンテキストを消費し、応答の方向を左右します。/contextはMCPツールが使うトークン量も示します。全体の考え方はClaude Codeのコンテキスト管理にあります。
/doctorは、いまは検出だけで終わりません。使われていないスキルやMCPサーバー、プラグインをコンテキストへの負荷と照らして洗い出し、チェックインされたCLAUDE.mdから不要な記述を削る案まで出します。変更の前には必ず確認が入ります。CLAUDE.mdの削減チェックはv2.1.206以降の機能で、それ以前の/doctorは診断画面を開くだけでした。仕組みは/doctorのチェックアップ解説に詳しく書いています。シェルからclaude doctorを実行すると、セッションを開始せずに読み取り専用でインストールの診断だけを出します。
/doctor手順3: 訂正よりも/rewindでやり直す
応答が的外れだったとき、スレッド内で訂正を重ねると、間違った応答が会話に残り続けます。以降の応答がその間違いに引っ張られ、質がさらに落ちたように感じられます。
訂正し続ける場合と、巻き戻す場合
スレッド内で訂正
間違った試行が文脈に居座り、後続の応答がそれに引きずられます。
/rewindして聞き直す
悪いターンの手前へ戻り、具体的な指示を足して言い直します。間違いが文脈から消えます。
Escを2回押すか/rewindを実行すると、セッションで送ったプロンプトの一覧が出ます。Escの2回押しが効くのは入力欄が空のときだけで、文字が入っていると入力が消え、履歴の↑で呼び戻せます。戻す時点を選んだあとの選択肢は次のとおりです。
- コードと会話をまとめて戻す
- 会話だけ戻す(コードは現状維持)
- コードだけ戻す(会話は現状維持)
- ここから先を要約する
- ここまでを要約する
- 変更せず一覧に戻る(Never mind)
応答の質だけを立て直したいなら、「会話だけ戻す」を選べばファイルの変更は残ります。コードの変更が1つも記録されていない時点では、コードを戻す2つの選択肢は表示されません。チェックポイントはプロンプトごとに作られ、保存されるのは直近100件です。同じプロセス内で/clearを実行していれば、一覧の最上段に/resume <session-id> (previous session)の項目が加わり、そこから/clear前の会話へ戻れます。使い方の詳細はClaude Code rewindコマンドで/clear前まで戻るで扱っています。
新しい会話でも直らないとき、ローカルの外を疑う
手順1〜3で説明がつかないとき、GitHubのanthropics/claude-codeには同じ違和感の報告が並びます。たとえば2026年4月に立ったissue(#43286)の起票者は、Opus 4.6で「新しい会話でも直らない」「ステータスページは問題なしの表示」と書いていました。ローカルの設定を疑い尽くしたあとは、status.claude.comで進行中の障害を見る手があります。
2026年8月のissue(#83510)では、別の起票者が第5世代モデルについて、同じ入力に対する出力量の増加と、意味の通らない依頼への反応の違いを報告しています。測定は、API経由でベンチマークを叩いたものです。Claude Codeの中での計測ではありません。
同じissueには、自動モデルフォールバックの通知が実際には目に入りにくいという報告も引かれています。二次報告の引用です。自動フォールバックならセッションは代替モデルに残るので、/modelの表示に出ます。ただしどちらも利用者側の報告で、公式の回答が付いた結論ではありません。
それでも改善しないときは/feedbackで報告する
ここまでで原因が見当たらないなら、/feedbackで期待した応答と実際の応答の違いを具体的に書きます。この方法で送る報告にはトランスクリプトが含まれるため、Anthropicが実際の回帰を診断する手がかりとして最も速く届きます。Amazon BedrockやGoogle Cloudなど外部プロバイダー経由で認証情報が無い環境では、/feedbackは送信せずローカルにアーカイブを保存します。それを担当者へ渡す形になります。
/feedbackよくあるつまずき
プロンプトインジェクション警告を品質低下と取り違える。Claude Codeが自動で会話に足した文脈(ファイルやWeb由来ではないもの)に警告や拒否が出たら、claude updateで最新版にして再試行します。繰り返すなら、警告の対象の文面を貼り直さずそのまま報告します。
フォールバックしたあとの/rewindを、元のモデルへ戻る操作と考える。巻き戻せるのは会話とコードで、モデルは変わりません。元のモデルに戻すのは/modelです。
まとめ
フォールバックの通知を見かけたら、その時点の/modelと/effortを控えてから作業を続けます。あとで「いつもと違う」と感じたときに、比べる材料が残ります。