💭

Claude Codeのcompactコマンドについて

に公開

/compactコマンドとは

Claude Codeの/compactコマンドは、現在の会話をコンパクトにまとめるためのスラッシュコマンドです。会話を要約・圧縮し、必要に応じて特定の焦点に絞って整理することができます。

なぜcompactが必要なのか

コンテキストウィンドウの制限

  • Claude Codeでは、1つのセッション(会話)あたり約200,000トークンがコンテキストウィンドウの上限
  • この制限を超えると、古い会話から順に自動的にデータが削除される
  • 累計消費量がコンテキストウィンドウを上回った時点で、最も古い部分から切り捨てられる

パフォーマンスへの影響

  • 会話が長くなるにつれて、コンテキストウィンドウが満杯になる
  • 古い情報が削除されたり、パフォーマンスが低下する可能性がある

compactの使用タイミング

推奨される使用場面

  • 長い会話を継続する場合
  • 複雑なタスクを実行する場合
  • 長時間の作業セッション
  • 重要な情報を保持しながらコンテキストを整理したい場合

自動compactと手動compact

自動compact機能

  • Claude Codeはコンテキスト使用量が95%に達すると自動的にcompactを実行
  • /configで「Auto-compact enabled」設定をオン/オフ切り替え可能
  • CLAUDE.mdにcompact指示を追加することで自動処理をカスタマイズできる

手動compactの利点

  • カスタマイズされた圧縮:作業に応じて必要な情報を明示的に指定可能
    • 例:/compact Focus on code samples and API usage
    • 例:/compact Keep only test results and error messages
    • 例:/compact Preserve function definitions and interfaces
  • 作業文脈に応じた判断
    • バグ修正中:「エラーメッセージとデバッグ情報を重視」
    • 新機能開発中:「API定義と設計仕様を重視」
    • テスト作業中:「テスト結果と失敗ケースを重視」
  • 自動compactとの違い
    • 自動:モデルが一般的な重要度で判断(汎用的な基準)
    • 手動:ユーザーが現在の作業に必要な情報を具体的に指定

初期化時のコンテキスト使用量

  • 通常、initで200Kトークンを使い切ることはない
  • Claude Codeは効率的にコンテキストを管理
  • ただし、非常に大きなコードベースや多数のファイルを一度に読み込む場合は注意が必要
  • そのような場合は/compactで整理するか、段階的にファイルを読み込むことを推奨

まとめ

Claude Codeには95%での自動compact機能がありますが、手動/compactコマンドも重要な役割を果たします。自動compactは基本的なコンテキスト管理を行い、手動compactは特定のニーズに応じたカスタマイズされた圧縮を提供します。両方を適切に活用することで、効率的なコンテキスト管理が可能になります。

Discussion