Claude AIを長時間使っていると、突然会話の文脈が失われることがあります。
この現象に遭遇した方は多いのではないでしょうか。
原因は、Anthropicが実装している「コンテキスト圧縮(compacting)」機能です。
本記事では、海外コミュニティで議論されている圧縮問題の実態と解決策を紹介します。
コンテキスト圧縮とは何か
Claude AIには、会話が長くなると自動で圧縮を行う機能が備わっています。
この機能は、過去の会話を要約して短縮するものです。
そうすることで、新しい情報を処理する余地を確保しています。
理論上は便利な機能に思えます。
しかし、実際の運用では深刻な問題を引き起こすケースが報告されているのです。
自動圧縮が引き起こす問題
海外コミュニティでは、自動圧縮機能に対する不満の声が多く上がっています。
主な問題点を見ていきましょう。
重要なコンテキストの喪失
圧縮後、Claudeは会話の核心部分を忘れてしまうことがあります。
なぜその作業をしているのか。
どのような方針で進めていたのか。
こうした情報が失われてしまうのです。
アップロードファイルへのアクセス喪失
圧縮前にアップロードしたファイルに、圧縮後はアクセスできなくなるケースも報告されています。
ファイルの特定行を読むよう指示しても、Claudeはプロジェクトファイル内を探し始めるとのこと。
意思決定の経緯の消失
なぜその設計を選んだのか。
どのような課題があってどう解決したのか。
この「なぜ」の部分が失われると、同じ議論を繰り返すことになってしまいます。
解決策1:手動でサマリーを作成する
最もシンプルな解決策は、圧縮に頼らず自分でサマリーを作成することです。
以下のようなプロンプトを使うと、新しいチャットに引き継ぐための要約を生成できます。
このチャットを要約してください。新しいチャットで作業を継続できるように、 以下の情報を保持してください。 - 何をしているのか、なぜそれをしているのかの文脈 - 直面した課題とその解決方法 - 重要な決定事項とその理由 - 作業の進捗状況と次のステップ できるだけ簡潔に、しかしコンテキストが豊富な要約にしてください。
このプロンプトを使えば、自動圧縮よりも質の高い要約が得られます。
ブックマークレットとして登録しておくと便利でしょう。
ワンクリックで入力欄に追加できるようになります。
解決策2:ファイルに状態を保存してから圧縮する
より高度な方法として、圧縮前にファイルへ状態を書き出すアプローチがあります。
あるユーザーは「スマート圧縮」コマンドを作成しました。
このコマンドは2段階で処理を行います。
第1段階では、ファイルへの永続化を実行します。
セッションメモリファイルに、作業内容や重要な決定事項、ファイルパス、ブロッカーなどを書き出すのです。
第2段階では、チャット内要約を生成します。
圧縮のアンカーとなる要約をチャット内に出力する仕組みです。
ここで重要なポイントがあります。
ファイルは圧縮の影響を受けません。
そのため、ファイルに状態を保存しておけば、圧縮後も完全な情報を参照できるわけです。
具体的なプロンプト例は以下の通りです。
スマート圧縮コマンドを作成してください。 【フェーズ1 - ファイルへの永続化】 .claude/session-memory.md を作成・更新し、以下を記録: - 最終チェックポイントのタイムスタンプ - 作業内容とその目的 - 重要な決定事項と根拠 - 関連ファイルのパス - 現在のブロッカーや未解決の質問 - 次に取るべき具体的なアクション 【フェーズ2 - チャット内要約の生成】 - 現在のミッション(目標と次のステップ) - 決定事項とその理由 - 重要なファイルパス(フルパス) - タスクの状態(完了/進行中/保留/ブロック) - 圧縮後の再開手順(2〜3文) 最後に /compact を実行するよう促してください。
この方法なら、圧縮によってニュアンスが失われても大丈夫です。
メモリファイルから詳細を復元できます。
解決策3:エクスポート機能を活用する
もう一つのアプローチがあります。
/export コマンドでチャットをファイルに書き出し、新しいチャットでそのファイルを参照する方法です。
エクスポートされるファイルには、ターミナルに出力された内容が含まれます。
ただし、読み込まれたコンテキストや思考トークンは含まれません。
そのため、比較的軽量なファイルとなります。
この方法には注意点があります。
エクスポートファイルをそのまま新しいチャットに読み込ませると、コンテキストウィンドウを圧迫する可能性があるのです。
必要に応じてファイルを編集してください。
本当に必要な部分だけを抽出することも検討しましょう。
解決策4:構造化された計画ファイルを活用する
長期的なプロジェクトに取り組む場合、構造化された計画ファイルを作成しておく方法も有効です。
設計フェーズで docs/plans/YYYY-MM-DD-feature-name.md のような形式でプランファイルを生成しておきます。
新しいセッションを開始するときは「docs/plans を読んで続きを進めて」と指示するだけ。
Claudeはアーキテクチャのコンテキストを完全に把握した状態で作業を再開できます。
このプランファイルは「外部メモリ」として機能します。
圧縮やセッション境界を超えて生き残るため、非常に頼もしい存在です。
自動圧縮をオフにする方法
そもそも自動圧縮を無効にしたいという方もいるでしょう。
コミュニティの報告によると、Settings → Capabilities から「Code execution and file creation」をオフにすると、自動圧縮も無効になるとのこと。
ただし、この設定ではコード実行やファイル作成機能自体も使えなくなってしまいます。
また、スキル機能を無効にすることで圧縮が止まるという報告もあります。
設定の組み合わせは環境によって異なる可能性があるため、試行錯誤が必要かもしれません。
RAGの限界を理解する
プロジェクト内で新しいチャットを開始し、過去のチャットを参照させる方法もあります。
しかし、この方法にも限界があります。
Claude が過去のチャットやプロジェクトファイルを読む際は、RAG(Retrieval-Augmented Generation)を使用しています。
RAGは最も関連性が高いと思われる情報を抽出する仕組みです。
しかし、会話のニュアンスや文脈の細部を見落とす可能性があります。
「選択的な記憶」のようなものだと考えてください。
重要な情報が抜け落ちるリスクがあります。
そのため、完全に信頼するのは危険です。
まとめ
Claude AIのコンテキスト圧縮機能は、便利である反面、重要な情報を失うリスクを伴います。
海外コミュニティで共有されている対策をまとめましょう。
手動サマリーの活用
最もシンプルな解決策です。
自分でプロンプトを用意し、質の高い要約を生成してください。
自動圧縮よりも確実にコンテキストを保持できます。
ファイルへの状態保存
より堅牢なアプローチです。
ファイルは圧縮の影響を受けません。
セッションメモリファイルに状態を書き出しておけば、情報が失われる心配がなくなります。
計画ファイルの活用
長期プロジェクトに最適です。
構造化されたドキュメントを外部メモリとして利用することで、セッションを跨いでも一貫した作業を継続できるでしょう。
これらの手法を組み合わせてみてください。
Claudeとの長時間の作業でも文脈を維持し、効率的に開発を進められるはずです。
圧縮機能に振り回されるのではなく、自分でコンテキスト管理を行う。
このマインドセットが、AIとの協働をより実りあるものにする鍵となります。
