Explore the context window
概要
Claude Code のコンテキストウィンドウに何が入るか、compaction で何が残るか、auto-compact window の設定方法。
仕様
セッション中にコンテキストへ入るもの
- 入力前に読み込まれるもの: CLAUDE.md、auto memory、MCP のツール名、skill の description。output style や
--append-system-promptのテキストも同様にシステムプロンプトへ入る - Claude の作業中: ファイル読み取りごとにコンテキストが増える。
paths:の付いた path-scoped rule は一致するファイルを読んだときに自動で読み込まれる。PostToolUsehook は各編集の後に発火する - subagent: 自分の別のコンテキストウィンドウで動くため、大きなファイル読み取りはメイン側に入らない。戻るのは要約と小さなメタデータのトレーラのみ
/compact: 会話を構造化された要約に置き換える。起動時のコンテンツの大半は自動で再読み込みされる
compaction で何が残るか
- v2.1.198 以降、要約リクエストはセッションの extended thinking 設定を継承する。セッションで有効なら thinking 有りで推論し、無効なら無効のまま。thinking は要約の作られ方にのみ影響し、セッション設定は後で変わらない
| 仕組み | compaction 後 |
|---|---|
| システムプロンプトと output style | 変わらない(メッセージ履歴の一部ではない) |
| プロジェクトルートの CLAUDE.md と scope 無しの rule | ディスクから再注入される |
| Auto memory | ディスクから再注入される |
paths: frontmatter を持つ rule | 一致するファイルを再度読むまで失われる |
| サブディレクトリのネストした CLAUDE.md | そのサブディレクトリのファイルを再度読むまで失われる |
| 呼び出した skill の本文 | 再注入される。1 skill あたり 5,000 トークン、合計 25,000 トークンで打ち切り、古いものから落とされる |
| Hooks | 該当しない(hook はコンテキストではなくコードとして動く) |
- path-scoped rule とネストした CLAUDE.md は、トリガーファイルを読んだときにメッセージ履歴へ入るため、compaction で他と一緒に要約される。compaction をまたいで保持したい rule は
paths:frontmatter を外すか、プロジェクトルートの CLAUDE.md へ移す - skill 本文の打ち切りはファイル先頭を残すため、重要な指示は
SKILL.mdの先頭近くに置く
コンテキストが埋まったとき
- 上限に近づくと自動で compact されるため、コンテキストが満杯になってもセッションは終わらない
- 自動処理の前に取れる手段
/compact focus on the auth bug fixのように focus 付きで実行する/autocompact 500kのようにトークン数を指定して自動処理が走る閾値を設定する- 無関係な作業に切り替えるときは
/clear - 大きな読み取りは subagent に委譲する
- より大きなウィンドウが必要な場合、Fable 5、Sonnet 5、Opus 4.6 以降、Sonnet 4.6 が 1 million token のコンテキストウィンドウに対応する。Sonnet 5 は選択する
[1m]variant なしで 1M で動く。compaction は大きい上限でも同じように働く
auto-compact window の設定
設定できる 3 箇所:
- このセッションと以降:
/autocompact <value>(例:/autocompact 500k)。user settings のautoCompactWindowに保存し、現在のセッションにも適用する。managed settings など優先度の高い settings スコープがこのキーを設定している場合、コマンドは値を保存するがセッションはそのスコープのウィンドウを使い、その旨を表示する。/autocompact autoでモデルに合わせたウィンドウへ戻す - 1 回の起動のみ:
--autocompact。保存された設定を変えずにその起動だけ上書きする。claude --autocompact autoは保存設定に値があっても調整済みウィンドウで動く。/autocompactと違い、managed settings など優先度の高いスコープに先取りされない - スクリプト・クラウド環境:
CLAUDE_CODE_AUTO_COMPACT_WINDOW。設定されている間はコマンド・フラグ・設定より優先され、/autocompactはウィンドウを変えずに override を報告する
受け付ける値(コマンドとフラグ、100K〜1M トークン):
-
素のトークン数(
200000) -
kまたはM接尾辞(500k、1M) -
100〜1000 の素の数値(千単位。
200は 200,000) -
環境変数は素のトークン数のみを受け付ける
-
ウィンドウはモデルのコンテキストウィンドウで上限が切られる
どこにもウィンドウサイズを設定していない場合、会話がモデルのコンテキスト上限に達したときに compact する。ただし次のセッションはより早く compact する。
- cloud session はモデルの上限に近づいた時点
- extended context 無しの Sonnet 4.6 と Opus 4.6 は 200K の境界。200K のコンテキストウィンドウで動く Opus 4.8 と Opus 5(Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry など)も同様
- Sonnet 5 はモデルの既定閾値
自分のセッションの確認
/contextでカテゴリ別のライブな内訳と最適化提案を表示する。読み込まれた CLAUDE.md と auto memory のファイルも分かる/memoryでそれらのファイルを開いて編集する
関連
facts/claude-code/memory.mdfacts/claude-code/skills.mdfacts/claude-code/sub-agents.mdfacts/claude-code/hooks.mdfacts/claude-code/model-config.mdfacts/claude-code/costs.mdfacts/claude-code/commands.mdfacts/claude-code/settings.mdfacts/claude-code/env-vars.mdfacts/claude-code/mcp.md