創刊準備号 · 2026年秋English · RSS
AgentKoji

/compactでコンテキストを保つ

1Mのコンテキストのモデルは、既定で約967Kトークンで自動要約が走ります。/compactの使い方と、要約で残るものが分かります。

要点(TL;DR)

  • コンテキストが上限に近づくと、Claude Code は会話を要約(compaction)して空きを作ります。使用量は /context で見られます。
  • 長い作業の前に自分で /compact を実行し、引数で残すものを指定できます。毎回残したいものは CLAUDE.md に書いておきます。
  • 自動要約の閾値は /autocompact、autoCompactWindow、CLAUDE_CODE_AUTO_COMPACT_WINDOW で変えられ、autoCompactEnabled: false で止められます。

Claude Code のコンテキストウィンドウには上限があります。上限に近づくと、Claude Code は会話の履歴を要約して空きを作ります。これが compaction です。要約のあとに、さっきまで守られていた指示が抜け落ちたように見えることがあります。この記事では、使用量の見方、/compact の使い方、自動の compaction、/clear との使い分け、要約に頼らない工夫、コストとの関係を順に説明します。編集部の検証環境(macOS、Claude Code 2.1.305、2026年10月21日)では claude --version と claude --help を確かめただけで、対話のセッションでの要約は試していません(未実行)。

いまの使用量を見る

コマンド分かること
/contextコンテキストの使用量を色分けのグリッドで表示する。容量を食っているツールや、メモリの肥大化への提案も出る
/usageセッションのコスト、プランの利用上限、活動の統計。/cost と /stats は別名
/memory読み込まれた CLAUDE.md と自動メモリのファイルを開いて編集する

出典:https://code.claude.com/docs/en/commands 、https://code.claude.com/docs/en/context-window 、2026-10-21確認

使用量は statusline に常に表示することもできます(Claude Codeのstatusline設定)。

/compact の使い方

/compact は、それまでの会話を要約してコンテキストの空きを作ります。引数に指示を書くと、要約で何を残すかを決められます。

/compact テストの方針と、まだ直していないバグの一覧を残して

自動の要約は、何が大事かを Claude Code が推測して決めます。長い作業を始める前に自分で /compact を実行すれば、残したいものを指定できます。

会話の一部だけを要約することもできます。/rewind(または Esc を2回)でメッセージを選び、Summarize from here か Summarize up to here を選びます。前者はその地点から後ろを、後者はその地点より前を要約します。

出典:https://code.claude.com/docs/en/context-window 、https://code.claude.com/docs/en/best-practices 、2026-10-21確認

毎回残したいものがあるなら、プロジェクトの CLAUDE.md に要約のときの指示を書いておきます。公式の例は次のとおりです。

# Compact instructions

When you are using compact, please focus on test output and code changes

出典:https://code.claude.com/docs/en/costs 、2026-10-21確認

自動の compaction

Claude Code は、上限に近づくと自動で要約します。コンテキストがいっぱいになっても、セッションは終わりません。

いつ要約するかは、モデルと設定で決まります。 公式によると、何も設定しないと、モデルのコンテキストの上限に達したときに要約します。1M トークンのコンテキストを持つモデルは、いっぱいになる前の、既定で約 967K トークンで要約します。

要約の閾値は次の方法で変えられます。

/autocompact と --autocompact に渡せる値は 100K から 1M トークンまでです。claude --help にも --autocompact <auto|tokens> と出ていました。自動の要約そのものを止めるには、settings.json で "autoCompactEnabled": false にします。既定は true です。

出典:https://code.claude.com/docs/en/model-config 、https://code.claude.com/docs/en/settings-reference 、2026-10-21確認

要約で残るもの・消えるもの

公式の表から、よく関わるものを抜き出しました。

中身要約のあと
プロジェクトのルートの CLAUDE.md、paths: の無いルールディスクから読み直される
自動メモリディスクから読み直される
plan mode で書いた計画ディスクから読み直される
paths: 付きのルール、サブディレクトリの CLAUDE.md要約で消え、該当するファイルを触ったときに読み直される
Claude が読んだり編集したりしたファイル最近変更されたものから最大5つを読み直す
使った skill の本文読み直されるが、大きいものは先頭だけになり、古いものから落ちる
hook があとから足した文脈ほかの会話と一緒に要約される

出典:https://code.claude.com/docs/en/context-window 、2026-10-21確認

要約のあとも必ず守らせたいルールは、paths: を外すか、プロジェクトのルートの CLAUDE.md に移します。

/compact と /clear の使い分け

場面使うもの
同じ作業を続けるが、会話が長くなった/compact(残したいものを指示する)
関係のない作業に移る/clear

公式のベストプラクティスは、関係のない作業の間では /clear で文脈をリセットするよう勧めています。無関係な文脈が長く残ると、性能が落ちることがあるからです。/compact は要約する会話を読むので、それ自体が大きなリクエストになります。続きが要らないなら /clear のほうが軽く済みます。

出典:https://code.claude.com/docs/en/best-practices 、https://code.claude.com/docs/en/costs 、2026-10-21確認

同じ訂正を何度もしているときの立て直し方は同じ修正を3回させないにまとめています。

要約に頼らない工夫

要約は便利ですが、何が残るかを完全には決められません。大事なものは、要約の外に置きます。

サブエージェントの作り方はClaude Codeのサブエージェントの作り方にあります。

コストとの関係

公式によると、トークンのコストはコンテキストの大きさに比例します。Claude Code はリクエストのたびに会話全体を送るので、文脈が大きいほど1ターンの入力が増えます。プロンプトキャッシュがあっても、長く開いたままのセッションでは、短い質問でも会話全体のぶんを使います。

出典:https://code.claude.com/docs/en/costs 、2026-10-21確認

プランの利用上限に当たったときの対処は利用上限に当たったらを読んでください。

まとめ