NEW

Claude Codeのセッション管理|コンテキスト腐敗を防ぐ5つの選択肢

「セッションが長くなると、なぜかバカになる」——Claude Codeを使っていると感じる典型的な現象です。

これはモデルの問題ではなく、コンテキスト管理の問題です。Anthropic社員のThariq氏が発信した内容(54万ビュー)をもとに、正しいセッション管理を解説します。


コンテキスト腐敗(Context Rot)とは

Claude Codeのコンテキストウィンドウは100万トークンですが、約30〜40万トークン付近から注意が分散し始め、古い・無関係な情報がノイズになります。これがコンテキスト腐敗です。

コンテキストはハードカットオフ(上限到達で強制終了)なので、上限に近づく前に対処が必要です。


1ターン終了後の5択

Claudeが1つのタスクを終えたとき、次に何をするかが最も重要な判断ポイントです。

1. Continue(続行)

同じセッションでそのまま次のメッセージを送る。関連するタスクが続く場合はこれが最も効率的。

2. /rewind(Escキー×2)

過去の任意のメッセージまで巻き戻し、それ以降のメッセージをコンテキストから完全削除します。

❌ 普通の反応:「それじゃダメだった。代わりにXを試して」
   → 失敗したアプローチのログがコンテキストに残り続ける

✅ rewindの使い方:ファイル読み込み直後まで巻き戻して再指示
   → 「アプローチAは失敗。fooモジュールはそれを公開していない。Bで直接行って」
   → 失敗した試行のトークンが消え、クリーンな状態で再挑戦できる

Thariq氏が「良いコンテキスト管理を示す最大の習慣」として挙げた機能です。

3. /clear(新規セッション)

自分で重要な情報を書き出し、まっさらなセッションを開始します。

例:「リファクタ対象はauth middleware、制約はX、
    関連ファイルはAとB、アプローチYは除外済み」

手間はかかりますが、コンテキストの内容を自分で完全にコントロールできます。

4. /compact(圧縮)

Claudeにこれまでの会話を要約させ、その要約の上に会話を続けます。

/compact auth周りのリファクタに集中して、テストのデバッグは削除して

重要:方向性を添えると精度が上がります。 また、コンテキストが苦しくなってから実行すると品質が下がります(コンテキスト腐敗が進んだ状態のモデルが要約するため)。余裕があるうちに実行するのが正解です。

5. サブエージェント

次の作業チャンクを独自のクリーンなコンテキストを持つエージェントに委任し、結果だけを親セッションに返します。

判断基準: 「この出力、後でまた必要か?結論だけでいいか?」→ 結論だけなら委任。

指示例:
「サブエージェントで別コードベースのauth flowを読んで要約して、
 それを参考に同じ実装をして」

「サブエージェントでgitの差分からドキュメントを生成して」

判断フロー早見表

状況 対処
タスクが変わった /clear — 自分でコンテキストをまとめて新規開始
アプローチが失敗した Esc×2(rewind)— 失敗ログを削除して再挑戦
セッションが長くなった /compact 方向性を添えて — 余裕があるうちに
中間出力が大量に出る作業 サブエージェントに委任
関連タスクで流用できる そのまま続行

新しいセッションを始めるべきタイミング

Thariq氏の経験則:「新しいタスクを始めるなら、新しいセッションも始めるべき」

ただし例外あり。機能を実装した直後にドキュメントを書く場合など、コンテキストを共有できる関連タスクは続行した方が効率的です。


参考資料