Claude Code の自動コンパクトを早める・止める設定:/autocompact と CLAUDE_AUTOCOMPACT_PCT_OVERRIDE
Claude Code が会話を自動要約するタイミングを変える方法。/autocompact と autoCompactWindow、--autocompact、CLAUDE_AUTOCOMPACT_PCT_OVERRIDE の違いと優先順位、autoCompactEnabled での無効化を解説します。
長いセッションで「気づいたら会話が要約されていて、直前の指示が薄れた」という経験は多いはずです。逆に、コンテキストが埋まりきる前に早めに要約させて、性能の低下を避けたい場面もあります。
結論として、自動コンパクトが走る「ウィンドウの大きさ」は /autocompact、--autocompact フラグ、CLAUDE_CODE_AUTO_COMPACT_WINDOW の 3 か所で設定でき、そのウィンドウの何 % で走らせるかは CLAUDE_AUTOCOMPACT_PCT_OVERRIDE で早められます。完全に止めるなら autoCompactEnabled: false です。
KEY POINT
この記事で分かること
- 既定で自動コンパクトが走るタイミング(モデルによって違う)
- ウィンドウを変える 3 つの手段と、その優先順位
- しきい値を「早める」専用の環境変数と、無効化の方法
既定のタイミング
ウィンドウを設定していない場合、Claude Code は会話が モデルのコンテキスト上限に達したとき にコンパクトします。ただし例外があります。
| セッション | コンパクトの境界 |
|---|---|
| ネイティブ 1M ウィンドウのモデル(Anthropic API 上の Sonnet 5、Fable、Opus 4.7 以降) | 上限より手前、既定で約 967K トークン |
| 200K で動くモデル(Sonnet 4.6 / Opus 4.6 の拡張コンテキストなし、Bedrock などの Opus 4.8 / 5) | 200K の境界 |
CLAUDE_CODE_DISABLE_1M_CONTEXT=1 を設定した 1M モデル | 200K の境界 |
| クラウドセッション | 上限に近づいた時点 |
| LLM ゲートウェイの別名など Claude Code が知らないモデル ID | Claude Code が仮定するウィンドウ |
用語解説
コンパクト(compaction): コンテキストが埋まったときに会話履歴を要約して置き換える処理です。v2.1.198 以降、要約のリクエストはセッションの拡張思考の設定を引き継ぎます。手動で行うのが /compact、自動で行うのが auto-compact です。
ウィンドウの大きさを変える
「どこまで埋まったらコンパクトするか」のウィンドウは、3 つの場所で設定できます。
| 手段 | 効く範囲 | 備考 |
|---|---|---|
/autocompact 500k | このセッションと以後 | ユーザー設定の autoCompactWindow に保存される。管理設定など上位の層が同じキーを設定していると、値は保存されるがセッションはその層のウィンドウのまま |
claude --autocompact 500k | その起動だけ | 保存設定を変えずに上書き。管理設定にも先取りされない |
CLAUDE_CODE_AUTO_COMPACT_WINDOW=500000 | 設定されている間 | コマンド・フラグ・設定のすべてより優先。/autocompact は上書き中である旨を表示する |
コマンドとフラグが受け付ける値は 100K〜1M トークンで、次のどの形でも書けます。
- そのままのトークン数:
200000 k/M付き:500k、1M- 100〜1000 の数だけ:
200は 200,000 の意味
環境変数はそのままのトークン数だけを受け付けます。どの方法でも、モデルのコンテキストウィンドウを超える値はそこで頭打ちになります。/autocompact auto または claude --autocompact auto でモデルに合わせた既定に戻せます。
{
"autoCompactWindow": 500000
}
しきい値を早める・止める
ウィンドウそのものではなく「ウィンドウの何 % で走らせるか」を変えるのが CLAUDE_AUTOCOMPACT_PCT_OVERRIDE です。1〜100 のパーセントを指定し、50 なら半分埋まった時点でコンパクトします。この変数は 早める方向にしか効かず、既定より大きい値は無視されます。メインの会話とサブエージェントの両方に適用され、「上限より手前でコンパクトする」セッションだけが対象です。
{
"env": {
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "60"
}
}
自動コンパクトを完全に止めるには autoCompactEnabled を false にします。
{
"autoCompactEnabled": false
}
止めるなら手動の /compact を習慣にする
自動コンパクトを止めても、コンテキストが埋まれば会話は続けられません。止める場合は、区切りのよいところで /compact 認証まわりの変更に集中して のように焦点を指定して手動で要約するか、/clear で切り替える運用が前提になります。
コンパクト後に何が残り、何が消えるかは コンテキスト管理:/compact・/clear の使い分け で整理しています。コストへの影響は 料金と使用量の確認方法 を参照してください。
まとめ
- 既定では会話がモデルの上限に達したときにコンパクトする。1M モデルは約 967K、200K モデルは 200K が境界
- ウィンドウは
/autocompact(保存)、--autocompact(1 回)、CLAUDE_CODE_AUTO_COMPACT_WINDOW(最優先)で変える。100K〜1M CLAUDE_AUTOCOMPACT_PCT_OVERRIDEはウィンドウの何 % で走らせるかを指定し、早める方向にしか効かないautoCompactEnabled: falseで自動コンパクトを無効化。手動の/compactは使える- 止めるなら焦点付きの
/compactと/clearを習慣にする
よくある質問
- 自動コンパクトは既定でいつ実行されますか?
- ウィンドウを設定していなければ、会話がモデルのコンテキスト上限に達したときです。ネイティブ 1M のモデルは約 967K トークンで、200K で動くモデルは 200K の境界で実行されます。
- /autocompact に指定できる値は?
- 100K〜1M トークンです。200000、500k、1M のほか、100〜1000 の数だけ書くと千単位として扱われます。
- 自動コンパクトを完全に止められますか?
- settings.json の autoCompactEnabled を false にします。手動の /compact は引き続き使えます。
参考にした一次情報
この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合は お問い合わせからお知らせください。