Claude Codeの/compactは会話を要約してコンテキストを空けるコマンド。コンテキストは多いほど良いわけではなく、増えると精度・再現性が落ちうる(context rot)のが公式の説明です。使うタイミングは動作が影響し始めた時と長い作業の前。/clearとの違いも解説します。
本ページはアフィリエイトプログラムを利用しています。掲載の料金・条件は調査時点の情報で、変動する場合があります。最新は各公式サイトでご確認ください。
/compact は、これまでの会話を要約してコンテキストを空けるコマンドです。正しく使うべき理由はシンプルで、公式いわく「コンテキストは多いほど良いのではなく、トークンが増えるほど正確性と再現性が落ちうる(context rot)」から。使うタイミングは「動作がもたつき始めた時」と「長い新しい作業を始める前」の2つを覚えておけば十分です。
コマンド名・自動要約のしきい値・モデルのコンテキスト数値は版で変わります。細かい点は必ず公式ドキュメントで最新を確認してください。
Claude Codeで長い作業を続けていると、「だんだん噛み合わなくなる」「動作が重くなってくる」と感じることはないでしょうか。このもたつきに正面から効くのが /compact です。ただ「打てば軽くなる」だけの理解だと、いつ使うべきか・何が失われるのかが分からず、大事な指示ごと要約に流してしまうこともあります。この記事では、/compact を「コンテキストウィンドウ」という土台からきちんと理解して、正しいタイミングで使えるようにします。
想定読者は、Claude Codeで長い作業をすると「だんだん噛み合わなくなる/重くなる」のを何とかしたいあなたです。
実体験メモ
非プログラマーの私は、このサイト(くらべてナビ)をClaude Codeとの日本語の対話だけで作ってきました。長い作業をしていると、途中から返答がぼやけたり重くなったりするのを何度も経験しています。当サイトでたどり着いた運用は、長い作業では区切りで /compact、話題を変えるときは /clear、大事な前提は最初から CLAUDE.md に常駐させておく——というシンプルな3点セット。この使い分けにしてから、会話の安定感が明らかに上がりました。特に「大事な前提を会話の途中で口頭指示するのではなく、最初からファイルに書いておく」のが効きました。
まずコンテキストウィンドウとは(トークンの器)
/compact を理解する前に、土台になるコンテキストウィンドウを押さえます。ざっくり言うと、AIが一度に見渡せる「入力トークンの器」のことです。
ここで大事なのは、リクエストのあらゆる要素がこの器に計上されるという点です。公式によれば、システムプロンプト・これまでの全メッセージ・ツールの実行結果・画像・ツール定義まで、すべてがコンテキストに含まれます。会話を続けるほど、この器がだんだん埋まっていくイメージです。
器の大きさ(トークン数)はモデルによって違います。2026年7月時点の主なモデルは次のとおりです。
| モデル | コンテキストウィンドウ |
|---|---|
| Opus 4.8 / 4.7 / 4.6・Sonnet 5・Sonnet 4.6 | 1Mトークン |
| Sonnet 4.5 など | 200kトークン |
数値は版で変わります
上記は2026年7月時点の値です。モデルのコンテキストウィンドウ数は更新されるため、最新は公式の model comparison / context-windows で確認してください。また、Claude Codeが実際に使うデフォルトモデルはプランや版によって異なるため、ここでは断定しません。使っているモデルは /model、バージョンは claude --version で確認できます。
「1Mもあるなら、埋まるまで気にしなくていいのでは?」——ここが最大の誤解です。次の節で、なぜそうではないのかを見ていきます。
なぜ「多いほど良い」ではないのか=context rot
Claudeの公式ドキュメントは、コンテキストについてはっきりこう述べています。
more context isn’t automatically better.(コンテキストは多いほど自動的に良いわけではない)
そして、トークン数が増えるにつれ正確性(accuracy)と再現性(recall)が劣化する現象を、公式は context rot と呼んでいます。器が大きくても、そこにぎっしり詰め込むほど、AIが必要な情報を正しく拾い出す精度は落ちうる、ということです。
だからこそ公式は、「コンテキストに何を入れるかの取捨選択は、どれだけ容量が空いているかと同じくらい重要だ」という趣旨も述べています。
つまり、量ではなく中身。器をどれだけ使えるかより、そこに何を残し、何を捨てるかのほうが結果を左右する、という考え方です。
誇張しないための線引き
公式が言っているのは、あくまで「トークンが増えるほど劣化しうる(傾向)」です。「1Mを使い切ると必ず性能が落ちる」「長い会話は必ず壊れる」とは述べていません。この記事でも「必ず」「一律に」といった断定は使いません。傾向として理解し、対処しておく——それが正しい向き合い方です。
そして、この「増えすぎたコンテキストへの対処」として公式が位置づけているのが、compaction(会話の要約による圧縮)と context editing です。ここでようやく /compact の出番になります。
/compactとは(要約して置き換える)
/compact は、公式の説明では「これまでの会話を要約してコンテキストを空ける」コマンドです。ポイントは、単に履歴を消すのではなく、会話を構造化された要約に置き換えるところ。流れや決定事項の要点を残したまま、器を軽くします。
- 実行して完了すると、端末に 「Conversation compacted」 と表示されます。
- 会話がほとんど無い新規セッションで打つと、「Not enough messages to compact.」(要約するほどのメッセージが無い)と出ます。
フォーカス指示で「何を残すか」を伝える
/compact は、うしろに指示を付けられます。
/compact focus on the API changes
このように /compact [指示] と書くと、要約するときに何を優先して残すかを伝えられます。「この作業ではAPIの変更点だけは絶対に残したい」というときに有効です。要約は詳細を落とすものなので、落としたくない核を明示するこの一手間が効きます。
CLAUDE.mdで「毎回残すもの」を常設指定する
一時的なフォーカス指示だけでなく、恒久的に「要約時に優先して残す内容」を決めることもできます。プロジェクトの CLAUDE.md に # Compact instructions というセクションを書いておくと、コンパクションのたびにそこが優先されます。
「毎回このフォーカス指示を打つのは面倒」という定番の前提は、CLAUDE.md側に書いておくのが正解です。CLAUDE.mdそのものの書き方は CLAUDE.md(メモリ)の書き方 にまとめています。
/clearとの違いと使い分け
/compact とよく混同されるのが /clear です。似ているようで役割は正反対に近いので、ここでしっかり分けます。
/compact | /clear | |
|---|---|---|
| やること | 会話を要約して置き換え、コンテキストを空ける | 空のコンテキストで新しい会話を開始 |
| 会話の流れ | 引き継ぐ(要約として残る) | 引き継がない(リセット) |
| 前の会話 | 要約に集約される | 保存され /resume で戻れる |
| 向く場面 | 流れを残して同じ作業を続けたい | 無関係な作業に切り替えたい |
使い分けの結論はシンプルです。流れを要約して同じ会話を続けたいなら /compact、無関係な作業に切り替える全消去リセットなら /clear。他のコマンドとあわせた全体像は スラッシュコマンド完全ガイド を参照してください。
自動コンパクトと手動/compactの使い分け(使うタイミング)
/compact は手動で打つコマンドですが、公式には自動で要約する仕組みもあります。
auto-compaction(自動)
公式によると auto-compaction は、コンテキスト上限に近づくと会話履歴を要約する動作です。その順序は、まず古いツール出力を消去し、次に会話を要約するというもの。あくまで使用制限の警告ではなく、領域を空けるための動作と位置づけられています。
しきい値・オンオフは断定しません
auto-compactionが発動する具体的なしきい値(何%か)、デフォルトでオンかどうかの明文、無効化する設定名は、公式で確認できませんでした。ここでは「上限に近づくと自動で要約する」までにとどめます。詳細と最新は公式ドキュメント(code.claude.com/docs, platform.claude.com/docs)で確認してください。
手動/compactを打つべき2つのタイミング
自動があるとはいえ、公式は手動で /compact を実行するタイミングを明確に挙げています。
- コンテキストがパフォーマンスに影響し始めたとき(=動作がもたつく・噛み合わなくなってきた時)
- 長い新しいタスクを始める前(=これから重い作業に入るので、先に器を整えておく)
この2つを覚えておけば十分です。特に②は見落としがちですが、大きな作業の前にいったん要約して器を整えると、そのあとの精度が安定しやすくなります。当サイトでも、動作がもたついてきた区切りと、話題の大きな切れ目で手動 /compact を使っています。
/compactで失われるもの・残るもの
/compact は要約なので、万能ではありません。何が消えて何が残るかを知っておくと、事故を防げます。
失われうるもの
- 会話の細かい詳細(要約なので当然、細部は落ちます)
- 会話の中だけで口頭で与えた指示(「今回はこのルールで」と会話途中に伝えただけの内容は、要約で消えることがあります)
自動で再読込され、残るもの
- システムプロンプト
- プロジェクト直下の CLAUDE.md
- 自動メモリ(auto memory)
- MCPツール
公式によれば、CLAUDE.mdと自動メモリはコンパクションを生き延び、ディスクから再読込されます。ファイルに書いてある前提は、要約されても失われないということです。
スキルだけは例外
上記のうちスキルの一覧だけは例外で、コンパクション後は「実際に呼び出したスキルのみ」が保持されます。スキルを多用する運用では、この点を頭に入れておきましょう。スキルの仕組みは スキル(Skills)の作り方 にまとめています。
対策はこれまでの節どおりです。大事な情報は要約に流されないよう明示的に残す——具体的には、その場かぎりなら フォーカス指示 /compact [指示]、恒久的に残したいなら CLAUDE.mdの # Compact instructions、そもそも毎回効かせたい前提は最初から CLAUDE.md本体 に書いておく、の3段構えです。
コスト面と正しい理解(cachingとの切り分け)
コンテキストは精度だけでなくコストにも直結します。公式が明言しているのは次の点です。
- コンテキストが大きいほど、使うトークンが増える(=入力トークンとして計上される)。
- 古い(stale)コンテキストは、以降の全メッセージでトークンを浪費する。使わない過去の文脈を抱えたままにすると、その後ずっとコストがかかり続けるイメージです。
だから /compact で不要な文脈を要約・圧縮しておくことは、精度の安定とコストの節約の両方に効きます。
prompt cachingは「性能改善策」ではない
よくある誤解として、prompt caching(プロンプトキャッシュ)を「長い会話の性能対策」と捉える人がいますが、これは正しくありません。公式は「キャッシュしてもコンテキストウィンドウは占有する。支払い方を変えるだけで、トークンが計上されるか否かは変えない」と述べています。つまりcachingはコスト面の仕組みであり、長い会話への性能対処は compaction 側——この2つは層が別だと切り分けて理解してください。
料金の考え方そのものは Claude Codeの料金解説 にまとめています。金額は変動するため、この記事では単価を断定しません。使用量は /usage で確認できます。
API側の「server-side compaction」とは別物
紛らわしいですが、Claude API側にも会話を圧縮する server-side compaction という機能があります。これはAPIの機能であり、Claude Code CLIの /compact とは層が別です。この記事の主役はあくまでCLIの /compact なので、混同しないようにしてください。
実務Tips:/contextで見て、compactかclearを選ぶ
最後に、日々の運用に落とし込むためのTipsをまとめます。
- まず今の使用量を見る:
/contextを打つと、現在のコンテキスト使用量が色分けグリッドで可視化され、最適化の提案も出ます。「何が器を使っているか」を知りたいときはこれ。現在のトークン使用量は/usageで確認できます。 - 重い・もたつく →
/compact:流れを残したまま軽くしたいとき。落としたくない核があれば/compact [指示]でフォーカスを付ける。 - 話題を丸ごと転換 →
/clear:無関係な作業に切り替えるとき。前の会話は/resumeで戻れます。 - 大事な前提は会話でなくファイルへ:要約で消えないよう、CLAUDE.mdや
# Compact instructionsに書いておく。 - 要約の前後に処理を挟みたい上級者向け:コンパクション前後に処理を差し込む PreCompact / PostCompact フックがあります。PreCompactは matcher で「manual(ユーザーの/compact)」と「auto(自動)」を区別できます。詳しくは フック(hooks)の設定 へ。
/context で見て、/compact か /clear を選ぶ——この習慣がつくと、長い作業でもコンテキストに振り回されなくなります。動作がおかしいときの切り分け全般は Claude Codeのエラー対処法 も参考にしてください。
次の一歩
- Claude Codeの全体像から知りたい → Claude Codeとは?
- 手を動かして慣れたい → Claude Codeの使い方(30分で初ツール)
- 他のコマンドも整理したい → スラッシュコマンド完全ガイド
- 前提をファイルに常駐させたい → CLAUDE.mdの書き方
- 実行前に計画だけ出させたい → Plan mode(計画モード)の使い方
- 定型作業を任せたい → サブエージェントで自動化/サブエージェントの作り方/毎日のルーティンをAIに任せる
- AI活用全体を見渡したい → AI活用の完全ガイド。指示文づくりに迷ったら無料の AI指示文ビルダー も使えます
まとめ
/compactは会話を要約してコンテキストを空けるコマンド。会話を構造化された要約に置き換え、完了で「Conversation compacted」と表示。- 使うべき理由は「コンテキストは多いほど良いのではなく、増えると精度・再現性が落ちうる(context rot)」から。大事なのは量より中身の取捨選択。「必ず落ちる」わけではなく、あくまで傾向。
- 使うタイミングは「動作がもたつき始めた時」と「長い新しい作業の前」の2つ。上限に近づくと自動要約(auto-compaction)もあるが、しきい値などの詳細は公式で確認。
/clearはリセット(前会話は/resumeで復帰)、/compactは要約して継続。役割が違う。- 要約では詳細や会話中だけの指示は消えうる。CLAUDE.mdと自動メモリは残る(スキルは呼び出したものだけ)。大事な情報はフォーカス指示や
# Compact instructionsで残す。 - prompt cachingは性能改善策ではなくコストの仕組み。長い会話への性能対処はcompaction側、と切り分ける。
- コマンド名・しきい値・モデルのコンテキスト数値は版で変わる。最新は公式ドキュメント(code.claude.com/docs, platform.claude.com/docs)で確認、バージョンは
claude --versionで確認を。
関連記事:スラッシュコマンド完全ガイド/CLAUDE.mdの書き方/Claude Codeの使い方。カテゴリ一覧は AI活用・ノウハウ へ。
よくある質問(FAQ)
Claude Codeの/compactとは何ですか?
これまでの会話を要約してコンテキストを空けるコマンドです。会話履歴を構造化された要約に置き換え、完了すると端末に「Conversation compacted」と表示されます。/compact のあとに「/compact focus on the API changes」のようにフォーカス指示を渡すと、要約時に何を残すかを伝えられます。会話がほとんど無い新規セッションで実行すると「Not enough messages to compact.」と表示されます。
なぜ/compactを使ったほうがいいのですか?
コンテキストは多いほど良いわけではないからです。公式は「トークン数が増えるにつれ正確性(accuracy)と再現性(recall)が劣化する現象=context rot」と説明しています。大事なのは容量をどれだけ使うかではなく何を入れるかの取捨選択です。/compactで会話を要約して整理すると、長い作業でも文脈を引き継ぎつつ動作を安定させやすくなります。ただし公式は「必ず落ちる」とは述べておらず、増えるほど劣化しうる傾向として位置づけています。
/compactはいつ使うのが良いですか?
公式が挙げるタイミングは2つです。1つはコンテキストがパフォーマンスに影響し始めたとき、もう1つは長い新しいタスクを始める前です。当サイトでは、動作がもたついてきた区切りや話題の大きな切れ目で使っています。なお上限に近づくと自動で要約する動作(auto-compaction)もありますが、発動する割合などの具体値は公式で断定されていないため、最新は公式ドキュメントで確認してください。
/compactと/clearはどう違いますか?
/compactは会話を要約して置き換え、同じ会話の流れを引き継ぎつつコンテキストを空けます。/clearは空のコンテキストで新しい会話を始めるリセットで、前のセッションは保存され /resume で戻れます。使い分けは、流れを要約して続けたいなら/compact、無関係な作業に切り替えるなら/clearです。
コンテキストは自動で要約されますか?
公式にauto-compactionという仕組みがあり、コンテキスト上限に近づくと会話履歴を要約します。順序は先に古いツール出力を消去し、次に会話を要約する形で、使用制限の警告ではなく領域を空ける動作です。ただし発動しきい値の割合やデフォルトのオン・オフ、無効化の設定名は公式で確認できないため断定しません。最新は公式ドキュメントで確認してください。