/compactって何?長い会話を圧縮する方法
Claude Codeの `/compact` コマンドを使ったことはありますか?
長い作業セッションでコンテキストが重くなってきたとき、この1コマンドで会話を圧縮して作業を続けられるようになります。
使い始めた頃、ある日突然こんな警告が出ました。
「コンテキストウィンドウが上限に近づいています」
最初は何のことか全くわかりませんでした。せっかく作業の途中なのに、会話を終わらせないといけないのかと焦りました。
この記事では、`/compact` がどんな仕組みで何をしてくれるのか、そして実際にどのタイミングで使えばいいのかを、失敗談を交えて解説します。
—
/compactは「会話の要約」コマンド
結論から言うと、`/compact` は 今まで積み上げてきた会話の履歴を、要点だけにギュッと圧縮してくれる コマンドです。
Claude Codeにはコンテキストウィンドウという「短期記憶」があります。この記憶には容量の上限があって、会話が長くなればなるほど少しずつ埋まっていきます。
上限に近づいてしまうと、Claude Codeの動作が重くなったり、古い会話内容を忘れてしまったりします。最終的には作業が止まってしまいます。
`/compact` を使うと、これまでの会話が「大事な部分だけを残した要約」に置き換えられます。トークン数がぐっと下がり、作業を継続できるようになります。
—
/clearとは何が違うのか
似たようなコマンドに `/clear` があります。この2つの違いをよく理解していなかったせいで、私は一度やらかしました。
| コマンド | 何をするか | 文脈は残るか |
|---|---|---|
| `/compact` | 会話履歴を要約して圧縮 | 残る(要約として) |
| `/clear` | 会話履歴をすべて削除 | 残らない |
作業の途中で「コンテキストが重くなってきたな」と感じたときに、迷って `/clear` を使ったことがあります。そうしたら、それまで積み上げてきた「このファイルをこうして」「ここはこの方針で」という文脈がぜんぶ消えてしまい、また最初から説明し直す羽目になりました。
文脈を保ちながらスリム化したいときは `/compact` 、完全に別のタスクを始めるときは `/clear` 、という使い分けが正解です。
—
どのタイミングで使えばいいのか
私が最初にやってしまったのは、「警告が出てから使う」というパターンでした。
でも実はこれ、手遅れに近い状況で使っていることが多かったです。コンテキストが90%を超えてから圧縮しても、すでに出力の品質が落ち始めていることがあります。
いま調べてわかったことですが、コンテキストが60〜70%あたりで使うのが理想的 だそうです。まだ余裕があるうちに圧縮しておくことで、品質を保ったまま作業を続けられます。
ではどうやってコンテキストの使用量を確認するかというと、`/cost` コマンドを使います。
/cost
このコマンドを打つと、現在のトークン使用量が表示されます。20〜30分に一度確認する習慣をつけると、上限ギリギリで焦ることが減ります。
もっと楽な方法として、Claude Codeには 自動圧縮 機能もあります。デフォルトでは95%に達したときに自動的に圧縮が走ります。ただし手動で `/compact` を使った方が、何を残すかを自分でコントロールできるので品質が高い場合が多いです。
—
「何を重点的に残すか」を指示できる
`/compact` の便利な点として、引数に指示を追加できます。
/compact 今のPythonスクリプトのファイル構成と処理フローを重点的に残してください
こうすることで、圧縮後もその要素がしっかり要約に含まれるようになります。
ブログ記事を書いているときなら「記事の構成と主張の核心を残してください」、コードを書いているときなら「実装した関数の仕様と設計方針を残してください」という具合に指示できます。
—
試してわかった正直な感想
`/compact` を使った後、要約の精度にはバラつきがあると感じています。
細かい議論の経緯や「この判断をした理由」は要約から抜け落ちることがあります。重要な決定をした直後はメモとして残しておいたり、CLAUDE.mdに書き出したりするのが安全です。
また、自動圧縮が入ったとき(自分でタイミングを選べないとき)は、たまに「あれ、さっき話した前提が消えてる?」となることがあります。まだそのあたりの使いこなしは試行中です。
—
実際に使えるプロンプト
Claude Codeのチャット欄に貼るだけで使えます。
基本の圧縮:
/compact
重要な情報を指定して圧縮:
/compact 今まで作成したファイルの一覧、各ファイルの役割、次に実装する予定の機能を必ず要約に残してください
現在のコンテキスト使用量の確認:
/cost
圧縮すべきか迷ったときの確認:
今のコンテキストの使用率を教えてください。/compactを使うべきタイミングですか?
—
まとめ
`/compact` についてまとめると:
- **会話履歴を要約して圧縮するコマンド**。作業の文脈を保ちながらトークンを節約できる
- **`/clear` との違い**:`/clear` は全削除、`/compact` は要約して保持
- **理想のタイミング**:コンテキスト60〜70%で使うと品質を保ちやすい
- **引数で指示できる**:`/compact [残したいものの説明]` で圧縮後の要約を制御できる
- **自動圧縮もある**:デフォルトでは95%で自動実行されるが、手動の方がコントロールしやすい
最初のうちは「警告が出てから慌てて使う」になりがちです。私もそうでした。
でも `/cost` で定期確認して、余裕のあるうちに `/compact` を使う習慣がつくと、長い作業セッションでも安定してClaude Codeを使えるようになります。
まずは次の作業セッションで、一度 `/cost` を打ってみるところから始めてみてください。
—
関連記事
- [Claude Codeのメモリ機能──AIに覚えさせる方法](https://maahsachi.com/claude-code-memory/)
- [計画モードを使うとAIが暴走しなくなった話](https://maahsachi.com/claude-code-plan-mode/)
- [Worktreeで2つの作業を同時にAIに任せた話](https://maahsachi.com/claude-code-worktree/)