Claude Code のコンテキストとセッション管理を理解する
Claude Code をしばらく使っていると、気づくことがあるだろう。セッションが長くなるほど、レスポンスが遅くなるのだ。AI が劣化しているわけではない -- 真の問題は コンテキストの肥大化 だ。内部で何が起きているのか、そしてどう対処すべきかを解説する。
1. 「コンテキスト」の実際の意味
AI の文脈では、コンテキストとはモデルがリクエストに回答するときに参照する情報セットのことだ。現在の LLM は ステートレスな共有サービス であり、呼び出しをまたいでユーザーやプロジェクトの記憶を維持しない。
これが実際の場面で意味すること:メッセージを送るたびに、Claude Code は現在のリクエストと 会話履歴全体 をまとめてモデルに送信しなければならない。履歴が長くなるほど、各ペイロードは重くなる。
ブリーフィングフォルダに例えてみよう。 メッセージを送るたびに、スペシャリストに背景資料が詰まったフォルダを手渡しているようなものだ。セッション序盤は薄くて読みやすい。だが、関係のないトピックを飛び回る -- バックエンドをリファクタリングし、フロントエンドをいじり、CSS の癖をデバッグする -- と、フォルダは散らかった山になる。スペシャリストは速度を落とし、ミスを始める。有能でないからではない、ゴミ箱のようなファイルを手渡されたからだ。
2. 圧縮だけでは救われない理由
Claude Code には 自動コンテキスト圧縮 が搭載されている。履歴がある閾値を超えると、システムが要点を要約し、ファイル参照の重複を解消する。有用だが、明確な限界がある。
- コストが高い。 圧縮パス自体が 入力トークン予算の20%以上 を消費することが多い。大規模なコードベースでは、実際の作業ではなく要約にかなりの時間とコストを費やすことになる。
- 方向転換に弱い。 圧縮はこれまでの内容に基づいて何が関連するかを予測する -- 真のコンテキストスイッチではない。セッション中に突然まったく異なるタスクに飛び乗った場合(たとえば、API ルートの書き換えからボタンの位置合わせに移った場合)、圧縮された要約はまだ古い前提を引きずり、モデルは混乱する。
3. 解決策: 1タスク1セッション
原則は極めてシンプルだ。一度に AI に1つの仕事だけ与える。 Deep Code はこれを2つのコマンドで簡単に実現できる。

/clear-- リセットしてやり直し。 現在の会話を消去し、クリーンなセッションを開始する。残存する履歴も古いファイル参照もない -- AI は目の前のことに集中する。

/resume-- 中断した場所から再開。 昨日のリファクタリングセッションに戻りたい?/resumeはプロジェクトの過去のセッションをすべて一覧表示し、それぞれに1行の要約が付く。矢印キーでリストを移動し、目的のセッションで Enter を押すか、ESCで戻る。
まとめ
ここまで解説した内容:
- コンテキストとは会話履歴 であり、メッセージのたびにモデルに送信される。セッションが長いほど、ペイロードは重くなり、レスポンスは遅くなる。
- 自動圧縮は役立つが万能ではない。 要約にトークンを消費し、セッション途中のタスク切り替えには弱い。
- 解決策はシンプル: 1タスク1セッション。
/clearで白紙に戻してやり直す。/resumeで中断したセッションに戻る。
ただし、/resume には粗削りな点もある -- セッションごとの要約は1行だけ、復元前に会話内容を閲覧する方法がなく、セッション間の切り替えも煩雑だ。これらの制限に苦しんでいる場合は、タスク履歴パネルを試してほしい。完全な会話履歴を閲覧し、メッセージをコピーし、ワンクリックでタスクを切り替えられるビジュアルインターフェースだ。