Claude Codeの自動コンパクトは、会話の量が上限に近づくと、それまでの会話を短い要約に置き換える仕組みです。直近の会話をそのまま大量に残しておく仕組みではありません。要約が始まる大きさは/autocompactで変えられ、早めに要約させると、長い会話で毎回読み込む量を抑えられます。

Claude CodeチームのLydia Hallieさんが日本時間2026年10月10日3時22分、「自動コンパクトは要約する。直近の100万トークンを残すわけではない」とXで説明しました。本記事はこの投稿と公式資料を10月11日に確認し、設定の方法を整理します。編集部でも、要約が始まる大きさを--autocompact 100kで10万トークンにして長いファイルを読ませ、要約が3回起きた後に「Autocompact is thrashing」で止まるところまでを録画しました。要約が始まる大きさを小さくしすぎた時に起きる失敗の例として、そのまま載せています。

元資料:Lydia Hallieさんの投稿(自動コンパクトは要約する)。2026年10月11日確認。

自動コンパクトで何が起きるか

Lydiaさんの投稿の要点は次の4つです。3つ目は、@rohit3aさんが気づいた点としてLydiaさんが紹介したものです。

  • 自動コンパクトが動くと、会話全体が短い要約に置き換わる。直近の100万トークンを手元に残す仕組みではない
  • 「約96万7,000トークン」は、100万トークンを扱えるモデルで使うときの、要約が始まる目安。要約そのものは1回のリクエストで、読む量は直前に送ったメッセージとほぼ同じ。キャッシュが残っていれば大半はキャッシュからの読み込みになる
  • 96万7,000まで待つと、それまではメッセージを送るたびに会話全体が読み込まれる。大半はキャッシュから読むので安く済むが、使用量には数えられ、会話が伸びるほど積み上がる
  • /autocompact 400kにすると40万で要約するので、1回のメッセージがそこまで大きくならない
会話が育つ、窓の大きさに届く、要約に置き換わる、の3段階を矢印でつないだ図。例として/autocompact 400kなら40万トークン
自動コンパクトの流れ公式資料とLydia Hallieさんの説明を図にしたものです。会話は送るたびに全体が読み込まれ、大きくなると短い要約に置き換わります。今回の実験では、設定した大きさより手前で要約が始まりました。
編集部の説明図(Image 2.5生成)。画像はタップで原寸表示。

公式資料によると、要約の後もシステムプロンプト、プロジェクト直下のCLAUDE.md、自動メモリは読み直されます。会話の中で読んだり編集したりしたファイルは、新しく変更されたものから最大5つまで読み直されます。ただし5,000トークンを超えるファイルは、中身は戻らず、ファイルのパスだけが戻ります。フックが会話に足した内容は、ほかの会話と一緒に要約されます。

ここからは編集部の実験で見えたことです。実験の記録では、要約の後に、要約の直前の数件のやり取りがそのまま残っていました。Claude Code自身が要約の末尾に「この後のメッセージは要約直前のものをそのまま残した」と書いています。「直近の100万トークンを残すわけではない」というLydiaさんの説明と合わせると、古い部分は要約になり、直前の少しだけがそのまま残る、と理解するのが実態に近いようです。

何もしない時の要約のタイミング

公式資料では、要約が始まる大きさを設定しない場合、基本はモデルの扱える上限に近づいたところで要約されます。主な例外は次のとおりです。

場合要約が始まるところ
100万トークンを扱えるモデル(Fable、Sonnet 5以降、Haiku 5.5、Opus 4.7以降)約96万7,000トークン
CLAUDE_CODE_DISABLE_1M_CONTEXT=1で100万トークンを使わない場合20万トークン
クラウドで動かすセッションモデルの上限に近づいたところ

要約が始まる大きさを決める4つの方法

要約が始まる大きさを、公式資料は「自動コンパクトの窓」と呼んでいます。以下では「窓」と書きます。設定できる場所は4つです。

方法効く範囲例
/autocompact今使っているモデルだけ。このセッションと次回以降/autocompact 400k
autoCompactWindowの設定すべてのモデル"autoCompactWindow": 200000
--autocompactを付けて起動その起動だけ。保存した設定は変えないclaude --autocompact 400k
CLAUDE_CODE_AUTO_COMPACT_WINDOW設定されている間すべて。ほかの3つより優先CLAUDE_CODE_AUTO_COMPACT_WINDOW=400000
  • /autocompactは、ユーザー設定のmodelSettingsにモデルごとに保存されます。v2.1.288より前は、すべてのモデルで共通のautoCompactWindowとして保存されていました。
  • 書ける値は10万〜100万トークンです。/autocompactと--autocompactでは、200000のような数字、500kや1M、100〜1000の数字のどれでも書けます。100〜1000の数字は千の単位として読まれ、200なら20万です。環境変数は400000のような数字だけで、500kと書くと500と読まれて最小の10万になります。
  • 元に戻すときは/autocompact autoを実行します。

Haiku 5.5については、Lydiaさんが10月8日に「API課金なら/model haikuのあと/autocompact 100kにすると安い料金帯にとどまれる。モデルごとに保存されるのでHaikuにしか効かない」と投稿しています。@ClaudeDevsの発表では、Haiku 5.5は10万トークン未満のプロンプトなら100万トークンあたり入力0.10ドル・出力0.50ドル、それを超えると入力0.50ドル・出力2.50ドルです。

編集部で試した:窓を10万にして長いファイルを読ませる

2026年10月11日、要約で会話がどう置き換わるかを見るため、9,001行の架空のログを作りました。1行目と最終行にだけ合言葉を書いてあります。--autocompact 100kを付けて起動したので、ふだんの設定は変えていません。モデルはHaiku 5.5で、確認なしで使えるツールはファイルを読むReadだけにしました。

画面は、Claude Code CLIをclaude -pで実際に動かし、その出力をそのまま映した編集部の確認用の画面です。Claude Codeのターミナル画面そのものではありません。

検証コンソールの最初の画面。claude --versionの結果と、9001行のlog.txtの先頭部分
①起動確認と準備した教材①claude --versionで2.1.296を確認。②教材は9,001行・約70万バイトのログで、1行目と最終行にだけ合言葉を書いています。
実操作のスクリーンショット(赤枠・番号のみ後付け)。画像はタップで原寸表示。
依頼文を入力欄に入れた画面
②依頼文を入力①400行ずつ最後まで読み、1行目と最終行の合言葉を答える依頼を入力。②「Claude Codeを実行する」を押すと、--autocompact 100kを付けたclaude -pが起動します。この指定はこの起動だけに効き、ふだんの設定は変わりません。
実操作のスクリーンショット(赤枠・番号のみ後付け)。画像はタップで原寸表示。
実行中のログ。Claude Code 2.1.296とHaiku 5.5で開始し、log.txtの先頭400行を読んでいる
③実行中:読むたびに入力が増える①実行中の表示。②Haiku 5.5が400行ずつ読み始めました。最初の読み込みを頼んだ時点の入力は約1.75万トークンで、読むたびにこの数字が増えていきます。
実操作のスクリーンショット(赤枠・番号のみ後付け)。画像はタップで原寸表示。
結果の画面。Autocompact is thrashingのメッセージと、自動コンパクト3回・要約前トークン数の確認結果
④結果:要約を3回くり返して止まった①Claude Codeは「Autocompact is thrashing」と表示して止まり、最後の行までは読めませんでした。②確認欄:自動コンパクトは3回、記録上の要約前のトークン数は67,304・74,259・74,045。終了コードは1です。
実操作のスクリーンショット(赤枠・番号のみ後付け)。画像はタップで原寸表示。
実操作の記録:自動コンパクトが3回起きて止まるまで2026年10月11日、Studio/JのChromeで検証コンソールを操作し、依頼の入力から停止までを連続で撮影しました。Claude Code本体の処理は約46秒です。
実操作の連続画面収録(約4.0fps・実際の取得間隔で再生)。再生ボタンで操作の流れを確認できます。

起きたことを順に書きます。数字は、Claude Codeが出力した実行記録から取りました。

回記録された要約前の大きさ要約の後に最初に送った入力
1回目67,304トークン46,899トークン
2回目74,259トークン49,717トークン
3回目74,045トークン50,084トークン
  • 依頼では「400行ずつ読んで」と頼みました。1回読むたびに、入力は約1.6万〜2.0万トークンずつ増えました。
  • 要約の後、会話の先頭には「前の会話が上限に達したので、ここからは要約で続ける」という文と要約が入りました。その後ろには、要約直前のやり取りがそのまま残っていました。最後に読んだ400行の結果もこの中に入っていたため、要約の後も入力は5万トークン前後ありました。
  • 3回目の要約の後もすぐにいっぱいになり、Claude Codeは「Autocompact is thrashing」と表示して止まりました。3,600行目あたりまでしか読めず、最終行の合言葉を答えるところまでは進めませんでした。終了コードは1です。
  • 要約が始まったのは、設定した10万トークンより手前でした。公式の環境変数の一覧には、要約を窓の何パーセントで始めるかを変えるCLAUDE_AUTOCOMPACT_PCT_OVERRIDEがあります。このことから、既定でも窓の100%より手前で要約が始まると考えられます。ただし既定の割合は公式資料に書かれていないため、ここでは観測した数字だけを載せています。

録画の前にも、依頼文が違う試行を1回しています。起動の条件がログに残っていないため、比較には使っていません。ログは参考としてZIPに入れています。

編集部で試した入力と結果

使用環境:Claude Code CLI(claude -p、編集部の検証用コンソールから起動) / 2.1.296 (Claude Code)

Claude Codeを実際に動かした手順(CLI)

  1. 起動した画面:検証コンソールを開き、claude --versionが2.1.296を返すことと、9,001行の教材ログを確認した
  2. 実際の依頼を入力:400行ずつ全行を読んで合言葉を答える依頼を入力。モデルはHaiku 5.5、--autocompact 100kで起動する設定
  3. 実行中の様子:Claude Code 2.1.296がHaiku 5.5で起動し、log.txtを400行ずつ読み始めた。最初の読み込みを頼んだ時点の入力は約17,545トークン
  4. 完了後の結果を確認:自動コンパクトが3回起き、3回目の後に「Autocompact is thrashing」で停止(終了コード1)。最後の行と合言葉までは届かなかった

成果物の確認:stream-jsonのcompact_boundaryを数える確認コマンドで、自動コンパクト3回と要約前のトークン数を照合。最終出力のthrashingメッセージと終了コード1も記録。

今回、実際に入力した内容
data/log.txt を Read ツールで offset と limit を使って400行ずつ、先頭から最後の行まで順番にすべて読んでください。読み終えたら、1行目と最後の行に書かれている合言葉をそれぞれ答えてください。
実際に得られた結果
Autocompact is thrashing: the context refilled to the limit within 3 turns of the previous compact, 3 times in a row. A file being read or a tool output is likely too large for the context window. Try reading in smaller chunks, or use /clear to start fresh.

教材・実行ログ・事前試行のZIPを保存 ↓登録不要。教材のログ、Claude Codeの出力(stream-json)、確認結果、参考として録画前の試行のログが入っています。

「Autocompact is thrashing」が出たら

公式のトラブル対応の資料によると、このエラーは、要約は成功したのに、ファイルやツールの出力ですぐまた窓がいっぱいになることが何回も続いた時に出ます。進まないまま要約を繰り返して使用量を無駄にしないよう、Claude Codeが止めています。公式資料が挙げる対処は次の4つです。

  1. 大きいファイルは、行の範囲や関数を指定して小さく分けて読ませる
  2. 大きな出力を捨てる指示を付けて/compactする。例:/compact keep only the plan and the diff
  3. 大きいファイルの作業をサブエージェントに任せ、別の窓で読ませる
  4. それまでの会話が要らなければ/clearで始め直す

今回の実験に当てはめると、10万トークンの窓に対して、1回で約1.8万トークンを読む進め方は大きすぎました。窓を小さくするなら、1回に読む量も一緒に減らすのが安全です。

どの大きさにするか:編集部の目安

ここからは編集部の提案です。

  • 長い会話を続けることが多い人:Lydiaさんの例の/autocompact 400kから試します。要約までの1回1回のメッセージが大きくなりすぎるのを防げます。
  • APIの料金でHaiku 5.5を使う人:Lydiaさんの例どおり/autocompact 100kで安い料金帯にとどめる方法があります。ただし今回の実験のように、大きなファイルを読む作業では止まりやすくなるので、読む量を小さく分けて使います。
  • まず1回だけ試したい人:claude --autocompact 400kのように起動時に付けると、保存した設定を変えずに試せます。
  • 勝手に要約されたくない人:/configの「Auto-compact」をオフにするか、1回だけならDISABLE_AUTO_COMPACT=1を付けて起動します。手動の/compactは使えます。Claude CodeチームのCat Wuさんも返信で同じ方法を案内しています。自動の要約を切ると、上限に達した時に会話が長すぎるというエラーで止まるので、区切りのよい所で自分で/compactします。手動の/compactまで止めるDISABLE_COMPACT=1もありますが、通常は使いません。
  • 今どれくらい使っているかを見たい人:/contextで、会話やファイルがどれだけ場所を取っているかを確認できます。

手動で区切りたい場合の/clear・/compact・巻き戻しの使い分けは、コンテキスト管理の記事にまとめています。

よくある質問

要約されると、前の会話の内容は全部消えますか?

古い部分は要約になり、元の文面は残りません。今回の記録では、要約の直前の数件のやり取りだけがそのまま残っていました。要約に何が残るかは毎回同じとは限らないので、必ず残したい決まりは、プロジェクト直下のCLAUDE.mdに書いておきます。プロジェクト直下のCLAUDE.mdは要約の後も読み直されます。サブフォルダーのCLAUDE.mdは要約に含まれて消え、その後は関係するファイルを再び読んだ時に読み込み直されます。

窓を小さくすれば、使用量は必ず減りますか?

Lydiaさんの投稿では、窓が大きいまま長い会話を続けると、毎回会話全体を読み込む分が積み上がると説明されています。一方、今回の実験のように小さくしすぎると、要約を繰り返して止まることもあります。作業の進め方と合わせて決めてください。

/autocompactの設定は、ほかのモデルにも効きますか?

v2.1.288以降の/autocompactは、今使っているモデルにだけ保存されます。すべてのモデルにそろえたい場合は、設定ファイルのautoCompactWindowを使います。

まとめ:窓の大きさと、1回に読む量をセットで決める

自動コンパクトは古い会話を要約に置き換える仕組みで、/autocompactで要約が始まる大きさを決められます。長い会話を続けるなら、要約が始まる大きさを40万トークン前後に下げると、1回ごとの読み込みを抑えられます。ただし小さくしすぎて、1回に大きなファイルを読むと、編集部の実験のように要約を繰り返して止まります。まずは--autocompactを付けた起動で試し、作業の進め方に合う大きさを見つけてから保存するのがおすすめです。