CARLOS LASTRES お問い合わせ

Claude Code のコンテキスト劣化を防ぐリセット術

長いセッションほど Claude の精度は落ちます。劣化のサインの見分け方と、/compact、/clear、引き継ぎ書、サブエージェントを使った整理の方法を紹介します。

長時間の会議で、冒頭に決めたことが終盤には誰の頭からも抜けている。そんな経験はないでしょうか。Claude Code でも同じことが起きます。セッションが長くなるほど、最初に伝えたルールが無視されたり、直したはずのバグが戻ってきたりします。これが「コンテキストの劣化(context rot)」です。仕組みを知っておけば、対処はそれほど難しくありません。

なぜ長いセッションほど精度が落ちるのか

セッション中のやり取り、読み込んだファイル、コマンドの出力は、すべてひとつのコンテキストウィンドウに積み重なります。Anthropic は、ウィンドウ内のトークンが増えるほどモデルが情報を正確に思い出す力が下がる現象を context rot と呼んでいます。Claude Code の公式ドキュメントにも、コンテキストが埋まるにつれて性能が落ち、以前の指示を忘れたりミスが増えたりすることがあると書かれています。

コンテキストウィンドウが大きいモデルを使えば解決する、というわけでもありません。容量は増えても、途中の試行錯誤や古いログが残ったままなら、それが注意を奪い続けます。

劣化のサイン

  • 最初は守れていたルールを破り始める
  • 一緒に直したバグを再び入れてしまう
  • すでに名前を変えたファイルや関数を参照する
  • 同じ指摘を2回しても直らない
  • 回答が長く、ぼんやりしてくる

このうち2つ当てはまったら、私は粘らずにリセットします。劣化したセッションで修正を重ねるより、要点をまとめて新しく始めた方が早く、結果も良くなります。

まず /context で中身を確認する

/context を実行すると、システムプロンプト、ツール、CLAUDE.md などのメモリファイル、スキル、会話が、それぞれどれだけ場所を取っているかが表示されます。会話が大半を占めているなら整理のタイミングです。何も入力していない段階ですでに大きいなら、CLAUDE.md や常時読み込まれる設定を見直しましょう。

状況に合わせてリセット方法を選ぶ

  • /clear:別の作業に移るとき、または修正が2回うまくいかなかったとき。会話を完全に消します。
  • /compact と指示:同じ作業を続けたいが会話が長いとき。残す内容を自分で指定できます。
  • 部分的な要約:Esc を2回押すか /rewind でメッセージを選び、その前後だけを要約できます。
  • /btw:ちょっとした確認。回答が会話履歴に残らないので、セッションが膨らみません。
/compact 目的と完了条件、決定事項とその理由、変更したファイル、未解決のエラー、実行したテストと結果、次にやることを残して。調査の過程は削除してよい。

リセットの前に「引き継ぎ書」を作る

日本の職場では、異動や休暇の前に引き継ぎ書を作りますよね。Claude Code でも同じことをします。会話の中の要約は消えますが、ファイルは消えません。

プロジェクト直下に HANDOFF.md を作成して。内容は、目的、完了したこと、決定事項と理由、変更したファイル、未解決の問題、次の3ステップ。40行以内で、git log で分かることは書かないで。

そのあと /clear し、新しいセッションで「HANDOFF.md を読んで、次のステップから続けて」と伝えるだけです。必要な情報だけが入った、きれいな状態で再開できます。

要約で消えるもの、残るもの

要約(compaction)が走ると、会話は構造化された要約に置き換わります。プロジェクト直下の CLAUDE.md、自動メモリ、プランモードで作った計画はディスクから読み込み直されます。一方、チャットで口頭のように伝えただけの指示は消えることがあります。

だからこそ、必ず守ってほしいことはメッセージではなく CLAUDE.md に書きます。要約時に残してほしい項目も書いておけます。

# Compact instructions
要約するときは、変更したファイルの一覧、使っているテストコマンド、未解決のエラーを必ず残すこと。

調査はサブエージェントに任せる

劣化の一番の原因は、関係するファイルを探すために大量のファイルを読むことです。この作業をサブエージェントに任せれば、読み込みは別のコンテキストで行われ、結果だけが戻ってきます。

サブエージェントを使って、このコードベースでセッションのタイムアウトをどう処理しているか調べて。関係するファイルのパス、主要な関数、未解決の疑問だけを返して。ファイルの中身は貼らないで。

自動要約のタイミングを早める

Claude Code はコンテキストがほぼ埋まると自動で要約しますが、その時点ではすでに劣化が進んでいることもあります。/autocompact を実行すると、どのくらい埋まったら自動で要約するかを確認したり変更したりできます。長期のプロジェクトでは、少し早めに、自分で区切りの良いタイミングを選んで要約した方が、要約の質も安定します。

次にセッションの調子がおかしいと感じたら、/context で確認し、引き継ぎ書を作って /clear。まずはこの流れを一度試してみてください。何がいつ読み込まれるのかは、公式ドキュメントのコンテキストウィンドウ解説で詳しく確認できます。

関連ガイド

← AIガイド一覧へ