Anthropicが変更したこと
Claude Code はすでに、会話がコンテキスト制限に近づくと会話を圧縮し、履歴を要約して作業を継続できるようにしていました。この処理は、あなたが作業している間に実行されます。
アイドル時圧縮は、2つ目のトリガーを追加するものです。Anthropic の設定リファレンスでは、次のように説明されています。「アイドル時圧縮は、席を外した長い会話を、そのプロンプトキャッシュが期限切れになる直前に圧縮します。」さらに、「これにより、次のメッセージでは会話全体ではなく要約が送信されます」と続いています。
戻ってきたとき、会話には Compacted while idle, before the prompt cache expired(アイドル中に圧縮されました。プロンプトキャッシュの期限が切れる前です)と表示されます。
Lydia Hallie 氏のアナウンスでは、その理由が次のように述べられています。「プロンプトキャッシュが期限切れになる直前(約1時間)に、長いアイドルセッションを圧縮するようになりました。」後で戻ってきたとき、Claude は会話全体ではなく要約だけを再処理すればよいため、彼女はこれが「使用量の節約になる」と述べています。同じスレッドで、彼女は2つの制御方法を提示しました。settings.json の "idleCompaction": false でオフにする方法と、環境変数 CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS でカスタムしきい値を設定する方法です。
アイドル時圧縮が適用される条件
ドキュメントには5つの条件がリストされています。これらすべてが満たされる必要があります。
- Session. インタラクティブなターミナルセッション中であること。
- Prompt cache. 会話が1時間のプロンプトキャッシュTTL(有効期限)上にあること。
- Feature flags. Claude Code が Anthropic から機能フラグを取得できること。
- Size. 会話のコンテキストがトークンのしきい値(デフォルトは200,000)に達していること。
- Idle time. 最後のリクエストから約54分が経過しており、その時点でコンピュータがスリープ状態になっていないこと。
これらのうち2つは、一見するよりも対象となるユーザーを絞り込むことになります。
1時間のキャッシュは支払い方法に依存します。 Anthropic のプロンプトキャッシュに関するページには、「ご自身でTTLを選択しない限り、Claude Code はプランに含まれる使用量の範囲内での Claude サブスクリプションにおいてのみ、1時間のTTLをリクエストします」とあります。APIキーやクラウドプロバイダーを使用している場合、メインの会話はデフォルトで5分間のキャッシュになります。サブスクライバーがプランの使用制限を超えて使用クレジットを消費し始めると、Claude Code はメインの会話を5分間のTTLに引き下げます。そのため、デフォルトでは、アイドル時圧縮は主にプランの範囲内で作業しているサブスクライバーに影響します。
デフォルトのしきい値は、主に1Mトークンのセッションに関係します。 設定リファレンスには、「デフォルトでは、200Kのコンテキストウィンドウでの会話は、200,000トークンに達する前に自動圧縮されます」と記載されています。言い換えれば、200Kウィンドウのセッションは通常、アイドル時圧縮が適用される前に通常の自動圧縮が実行されます。デフォルト設定において、この条件に該当するセッションは、主に100万トークンのウィンドウで実行されているものです。
より小さなセッションでアイドル時圧縮を有効にしたい場合は、しきい値を下げることができます。ドキュメントには「100000 未満の値は、最小しきい値である 100000 に引き上げられます」とあります。
Anthropicがこれを追加した理由:プロンプトキャッシュ
プロンプトキャッシュは、Claude Code がリクエストごとに会話の変更されていないプレフィックスを再処理するのを防ぎますが、その有効期限は限られています。Anthropic のドキュメントでは、キャッシュが切れたときに何が起こるかを次のように説明しています。「十分な時間が経過した後、次のリクエストは入力全体を再計算してキャッシュを再構築します。そのため、席を外した後の最初のターンは著しく遅くなることがあります。」
数十万トークンに及ぶセッションの場合、戻ってからの最初のリクエストはコストが高くなります。アイドル時圧縮は、キャッシュがまだ有効な(ウォームな)うちに履歴を要約するため、次のメッセージには代わりに要約が含まれるようになります。
Claude Code は、再開されたセッションに対して、すでにこの選択肢のバリエーションを提供していました。Pro または Max プランでは、約1時間以上非アクティブで、かつ100,000トークンを超えるセッションを再開するとき、Claude Code は要約から再開するか、元のままの完全なセッションを再開するかを尋ねるダイアログを表示します。ドキュメントはこのトレードオフを明確に説明しています。「そのまま再開すると、会話のすべての詳細が保持されますが、リクエストごとのコストは会話のサイズに応じてスケールします。」要約から再開すると、その後のリクエストのコストは低くなりますが、「要約から除外されたものは、Claude のコンテキストには残りません」。
アイドル時圧縮は、開いたままにしておいたターミナルセッションに対して、事前にコストの低い選択を自動的に行います。ドキュメントには、戻ったときに表示される通知と、動作を変更する設定について記載されています。圧縮が実行される前にプロンプト(確認)が表示されるとは書かれていません。別の選択を望む場合は、事前設定しておく必要があります。
要約に残るもの、残らないもの
圧縮されたセッションは空になるわけではありません。Claude Code はディスクからコンテキストの一部を再構築します。Anthropic のコンテキストウィンドウに関するドキュメントには、各コンテンツの種類に何が起こるかがリストされています。
ディスクから再注入されるもの: プロジェクトルートの CLAUDE.md、スコープ指定のないルール、自動メモリ(auto memory)、および Claude がプランモードで作成したプラン。
オンデマンドで再ロードされるもの: paths: フロントマターを持つルールや、サブディレクトリ内のネストされた CLAUDE.md ファイル。これらは Claude が一致するファイルにアクセスしたときに復元され、即座には復元されません。
再読み込みされるもの: Claude が読み込んだ、または編集したファイルのうち、最終更新日時が新しい順に最大5つ。「5,000トークンを超えるファイルは、コンテンツなしのパス参照として復元される」ため、大きなファイルは Claude がその内容を使用する前に再度読み込む必要があります。
上限付きで再注入されるもの: 呼び出されたスキル本体。1スキルあたり最大5,000トークン、合計で最大25,000トークンまで。古いものから順に破棄されます。
要約されるもの: 会話内のその他すべて。これには、以前にフックによって追加されたコンテキストも含まれます。
リスクが存在するのは、この最後のカテゴリです。チャットで指定した制約、あるアプローチを却下した理由、対応中だった正確なエラー出力、40分前に下した決定などは、すべて会話の中にしか存在しません。圧縮後、これらは要約がどれだけ正確に捉えられたかというレベルでしか残りません。Claude Code の仕組みに関する Anthropic の概要でも、一般的な圧縮について同様のことが述べられています。リクエストや主要なコードスニペットは保持されますが、「会話の初期の段階での詳細な指示は失われる可能性があります」。
パススコープのルールについては、別途注意が必要です。ドキュメントには、「パススコープのルールやネストされた CLAUDE.md ファイルは、Claude がトリガーファイルを読み込み、書き込み、または編集するときにメッセージ履歴にロードされるため、圧縮によって他のすべてと一緒に要約されて消えてしまいます」と説明されています。これらは Claude が次に一致するファイルにアクセスしたときに戻ってきますが、それまではルールとしてではなく、要約の一部として扱われます。
よくある誤解
アイドル時圧縮をバグだと思い込む。 これはドキュメント化されたデフォルトの挙動です。設定リファレンスに記載されており、リリースノートで発表され、フックのドキュメントでは PreCompact および PostCompact フックの auto トリガーに含まれています。
1時間前に言ったことを要約が保持していると思い込む。 要約は、要約処理が重要と判断したものを保持します。プロジェクトルートの CLAUDE.md、スコープ指定のないルール、自動メモリはディスクから復元されます。チャット内だけで交わされた発言は、保持されることもあれば、されないこともあります。
自動圧縮(auto-compact)をオフにしても、アイドル時圧縮はオンのままだと思い込む。 環境変数 DISABLE_AUTO_COMPACT は両方をオフにします。ドキュメントには「手動の /compact コマンドは引き続き利用可能です」と補足されています。
対策:プロジェクトごとに決定し、重要な情報をチャット外に移動し、戻ったときに要約を確認する
Step 1: この作業でアイドル時圧縮を実行すべきか判断する
アイドル時圧縮は、発言の正確な文言よりも長いセッションのコストが重要となる、探索的な作業には適したデフォルト設定です。しかし、詳細こそが重要となるデバッグセッションにはあまり適していません。
オフにするには、設定ファイルで "idleCompaction": false を設定します。このキーはどの設定ファイルにも配置できるため、特定のプロジェクトの設定でのみオフにし、他の場所ではオンのままにすることができます。このキーを使用するには、Claude Code v2.1.290 以降が必要です。「このキーを無視する古いバージョンでは、autoCompactEnabled をオフにしてアイドル時圧縮を停止してください。」
機能を維持しつつ適用タイミングを変更するには、設定の env ブロックで CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS を設定します。数値を大きくすると、最大のセッションのみに制限されます。数値を小さく(最小 100,000 まで)すると、200Kウィンドウのセッションにも適用されるようになります。
単一のセッションの場合、DISABLE_AUTO_COMPACT を使用すると、自動圧縮と同時にアイドル時圧縮もオフになります。
フックを使用している場合、auto マッチャーを持つ PreCompact フックはアイドル時圧縮に対しても起動します。また、コンテキスト制限の手前でトリガーされる圧縮に対しても起動し、これをブロックすると「Claude Code は圧縮をスキップし、会話は圧縮されないまま継続されます」。同じマッチャーが通常の自動圧縮もカバーするため、依存する前にテストしてください。
Step 2: 席を外す前に、残すべき情報を圧縮が再読み込みする場所に配置する
圧縮を乗り越えて情報を確実に保持する最善の方法は、その情報を会話の外に置いておくことです。Anthropic のアドバイスは明確です。「会話の履歴に頼るのではなく、永続的なルールは CLAUDE.md に記述してください。」
長いセッションの途中で休憩に入る前に、次の2つの作業に2分を費やしてください。
- 常時適用するルールをプロジェクトルートの
CLAUDE.mdに移動する。 タスク全体に適用される制約はここに記述します。ファイルは短く保ちましょう。Anthropic のメモリに関するガイダンスでは、1ファイルあたり200行未満に抑えることを推奨しています。 - セッションでの決定事項をメモファイルに書き出す。 1つの決定につき1行で、理由も添えます。Claude がその存在を認識できるように、
CLAUDE.mdからそのファイルを参照させます。 - 自分のタイミングで圧縮する。 要約の内容を自分でコントロールしたい場合は、席を外す前にフォーカスを指定して
/compactを実行します(例:/compact focus on the auth bug fix)。ドキュメントにおけるこのオプションの説明は、まさにその点を突いています。「要約は、自動処理が重要と推測したものではなく、あなたが選択したものを保持します。」
Anthropic は、圧縮時に何を保持するかを制御するための CLAUDE.md 内の「Compact Instructions」セクションについてもドキュメント化しています。この記事の冒頭でリンクした自動圧縮ガイドで、その書き方を解説しています。
Step 3: アイドル通知が表示されたら、作業を再開する前に要約を確認する
Compacted while idle, before the prompt cache expired という表示に戻ったとき、考えの途中からそのまま再開しないでください。まずは確認しましょう。
- Claude にメモファイルを再読させ、作業状況を再説明させる。 ゴールは何か、何が決定され、何が除外されたか、次に何をすべきか。その回答をステップ2のメモと比較します。
- チャットだけでなく、ファイルから失われたものを復元する。 制約が残っていなかった場合は、チャットで再説明するだけでなく、
CLAUDE.mdやメモファイルにも追加して、次の圧縮で再び失われないようにします。Claude Codeが修正を忘れてしまう問題に関するガイドで、このパターンについて詳しく解説しています。 - Claude に大きなファイルを再読させる。 5,000トークンを超えるファイルは、内容ではなく参照として復元されます。
- 要約のコピーを保存する。
PostCompactフックは、生成された要約をcompact_summaryフィールドで受け取ります。これをファイルに書き出すことで、Claude が何をベースに作業しているかを正確に把握できます。
キャッシュに何が起こったかを確認するために、最近のバージョンでは /usage の Session ブロックに Prompt cache (main) 行が含まれています。キャッシュがウォームであるかどうかを報告し、圧縮を想定された再構築としてカウントします。
MemoryLakeでの設定方法
ステップ2のメモは、単一の圧縮や単一のセッションを超えて保持する価値のある、長いセッションの一部です。MemoryLake は、そうした記録をあなたが管理する1つのリストに保持し、Claude Code や他のアシスタントから利用できるようにするためのメモリレイヤーです。
エントリはあなた自身の言葉で記述します。Claude Code のセッション、文字起こし、要約、自動メモリ、またはベンダーのストレージから何かが読み取られたり、書き込まれたり、削除されたりすることはありません。プロジェクトの詳細をリポジトリの外部に保存する前に、組織のポリシーを確認してください。
Step 1: APIキーを作成する
サインインし、ダッシュボードからキーを生成します。このキーはあなたの MemoryLake ワークスペースに属し、Anthropic アカウントとは異なります。

Step 2: 最初のメモリをアップロードする
何度も説明したくない決定事項から始めましょう。何度も無視される制約、却下したアプローチとその理由、プロジェクトが依存している規約などです。1つのエントリにつき1つの決定事項を、日付付きで登録します。

Step 3: AIとエージェントを接続する
Claude Code や、その他に使用しているアシスタントを接続します。これにより、前回のセッションが正常に終了したか、離席中に圧縮されたか、あるいは別のツールで実行されたかに関わらず、新しいセッションごとに同じ決定事項を利用できるようになります。

実務における変化
第1の違いはコストです。昼食後に戻ってきた長いセッションにおいて、最初のメッセージで全体を再処理する必要がなくなります。これが、Anthropic がこの機能を構築した理由です。
第2に、大きなセッションを開いたままにしておくことが、もはや「何の影響もない行為」ではなくなった点です。条件を満たす場合、戻ったときには要約が適用されています。多くのタスクでは問題ありませんが、一部のタスクでは、Claude が修正案を却下された理由を覚えているか、それとも同じ提案を繰り返してくるかの違いにつながります。
第3に、ファイルの重要性が増した点です。圧縮によってディスクから再読される内容はそのまま復元され、メモファイルは1回のリクエストでアクセスできます。一方で、チャット内にしか存在しない内容は、要約がどれだけ正確に捉えられたかに依存します。このルールは、Claude Codeがプロジェクトのコンテキストを忘れてしまう問題に関するガイドで説明されているように、通常の圧縮や新しいセッションにもすでに適用されていました。アイドル時圧縮は、これを休憩時間にも適用します。
第4に、習慣の変化です。休憩前に決定事項を書き留めておくことは、アイドル時圧縮、通常の圧縮、そしてターミナルが閉じられた場合への対策になります。これは、Claude Codeセッション間でコンテキストを共有するためのガイドの背景にある考え方と同じです。
長いClaude Codeセッションのベストプラクティス
1時間のキャッシュが適用されているか確認する。 APIキーとデフォルト設定を使用している場合、メインの会話は5分間のキャッシュを使用するため、アイドル時圧縮の条件は満たされません。
すべてではなく、プロジェクトごとにオフにする。 デバッグ作業の多いリポジトリではプロジェクト設定を使用し、それ以外ではデフォルトのままにしておきます。
休憩前に決定事項を書き留める。 日付付きのメモファイルを作成する手間はわずか数分であり、あらゆる種類の圧縮が行われてもディスク上に残り続けます。
アイドル通知の後に確認する。 作業を再開する前に、状況を再説明させてください。
作業と一緒にメモファイルを移動する。 別のマシンで作業を継続する場合、Claude Codeセッションを別のマシンにエクスポートするためのガイドで説明されているように、ファイルも一緒に移動します。
結論
アイドル時圧縮は合理的なトレードオフであり、Anthropic もこれについてオープンに説明しています。1時間のキャッシュ上で約54分間アイドル状態のまま放置された長いセッションは、キャッシュが期限切れになる前に要約されるため、戻ってからの最初のメッセージのコストが安くなります。その代償は、Claude が完全なコンテキストではなく要約から処理を継続することです。
この機能をオフにすることも、しきい値を変更することも、そのまま維持することもできます。維持する場合の対策は、通常の圧縮にすでに適用されているものと同じです。すなわち、常時適用するルールは CLAUDE.md に記述し、席を外す前に決定事項をファイルに書き出し、再開する前に Claude が何を覚えているかを確認することです。
他のツールも、CodexによるGPT-6.1 Sol向けのより大きなデフォルトウィンドウなど、コンテキスト制限に関して同様の動きを見せています。ウィンドウの拡大やよりスマートな圧縮により、問題に直面する頻度は減少します。しかし、永続的なコンテキストをどこに置くべきかという本質は変わりません。