待機中の自動圧縮で重要なコンテキストを失うことはあるか?
リスクはある。圧縮は詳細を要約に置き換えるため、正確なコード片、エラーメッセージ、初期の意思決定が簡略化されうる。実際に起きるかどうか、どれだけ失われるかは要約の品質次第で、公式の定量データは見つけられなかった。
細部に敏感な長いタスクなら、CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS を上げるか無効にし、席を離れる前に何を残すかを指定して自分で /compact を実行するとよい。
API キーでキャッシュが5分しかない場合、待機中の自動圧縮は役に立つか?
不明だ。changelog の説明は1時間のキャッシュが切れる前に圧縮するというもので、5分のキャッシュでの挙動についての説明は見つけられなかった。
/usage の Prompt cache の行でミスの回数とキャッシュの温冷を観察してから、この機能に頼るかを判断し、必要なら圧縮のタイミングは自分で制御する。
20万トークンというしきい値は上げるべきか下げるべきか?
標準的な答えはない。下げるとより多くの会話が自動で圧縮され、再計算コストの節約は増えるが情報損失の可能性も増える。上げればその逆になる。
堅実なのは、まず既定値のまま1週間 /usage に表示されるミスと再キャッシュ量を観察し、タスクが細部にどれだけ敏感かに応じて微調整することだ。
待機中の自動圧縮と、自分で /compact を実行することの違いは何か?
最大の違いは制御できるかどうかだ。手動の /compact なら何を残すかを書けるが、待機中の自動圧縮は席を離れている間に自動で行われ、指定する機会がない。
重要な作業の途中で離れるなら、離れる前に残すべき要点を明記して手動で圧縮するほうが、自動圧縮に頼るより制御しやすい。
Claude Code v2.1.299(2026年10月14日)はターミナルに待機中の自動圧縮(idle compaction)を追加した。20万トークン以上の会話が約54分放置されると、1時間のプロンプトキャッシュが切れる前に圧縮されるため、戻って次のメッセージを送ったときに会話全体を再処理せずに済む。v2.1.302 では /config に Idle compaction の項目が加わり、圧縮後の通知にも無効化の方法が表示されるようになった。
公式のコスト関連ドキュメントは明確だ。キャッシュの有効期間を超える休憩のあとの最初のメッセージはキャッシュにミスし、コンテキスト全体が再処理される。有効期間はサブスクリプションでは1時間で、usage credits を使い始めると5分に下がる。API キーやクラウドプロバイダーでは既定で5分だ。つまり、昼休みや会議から長い会話を開いたまま戻ったとき、最初の1通が最も高くつくことが多い。待機中の自動圧縮は、キャッシュがまだ温かいうちに会話を小さくするので、戻ったときに再処理されるのは20万トークンの原文ではなく圧縮後の要約になる。
既定の最小しきい値は20万トークンで、環境変数 CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS で変更できる。完全に無効にするには settings.json に "idleCompaction": false と書く。どちらも v2.1.290 以降が必要だ。もう1つ、v2.1.296 から Sonnet 5.5 のキャッシュ読み取り価格が百万トークンあたり $0.10(以前は $0.20)になり、温かいキャッシュ20万トークンの読み取りは約 $0.02 になる。圧縮自体も大きなリクエストで(公式ドキュメントも大きなコンテキストの圧縮は大きなリクエストだと注意している)、キャッシュが温かいうちに行うことが得になる条件だ。
最大の代償は情報の損失だ。圧縮は詳細を要約に置き換えるため、作業が会話中の正確なコード片、エラーメッセージ、初期の意思決定の文脈に依存している場合、戻った後のモデルが見るのは原文ではなく要約になる。また changelog は1時間のキャッシュが切れる前に圧縮すると説明しているが、5分のキャッシュ(API キーや usage credits)のときにどう動くかは確認できなかった。これは /usage の Prompt cache の行で自分で確認してほしい。そこにはキャッシュが温かいか冷たいか、何回ミスしたかが表示される。
長い会話を夜通しや昼休みの間開いたままにする習慣があるなら、キャッシュの有効期間が1時間であることを条件に、戻ったときの最初の1通の再計算コストを待機中の自動圧縮が減らしてくれる可能性がある。まず /usage でミスの回数と再キャッシュされたトークン量を確認し、しきい値を上げるか、重要な長いタスクでは無効にして何を残すかを明記したうえで自分で /compact を実行するかを決める。本当にお金を節約する習慣は、関係のないタスクの間で /clear を使うことで、これは何のコストもかからない。