Claude Code は Anthropic の自律型コーディングアシスタントで、コードベースの読み取り、ファイル編集、コマンド実行、ツール連携をターミナル、IDE、デスクトップアプリ、ブラウザの各ワークフローで行えます。共有コンテキストウィンドウ内で動作するため、長いセッションではチャット履歴、ファイル出力、ツールのノイズで最終的に埋まっていきます。Claude Code は上限に近づくと会話履歴を自動的に圧縮して管理するため、初期の指示がチャット履歴にのみ存在する場合は失われる可能性があります。
この点は 2026 年にはさらに重要です。Anthropic は Claude Code をより長時間・より自律的な作業へと継続的に推し進めています。2026 年 3 月 25 日に Anthropic は “Claude Code auto mode: a safer way to skip permissions” を公開し、ユーザーが権限承認プロンプトの 93% を承認していること、そして auto mode が手動承認と安全でない権限スキップの中間に位置する分類器ベースのアプローチであると説明しました。さらに 2026 年 2 月 5 日には Claude Opus 4.6 をローンチし、より強力なコーディング、改善されたデバッグ、より長い自律的セッションを強調しました。これらのアップデートは auto compact と同一ではありませんが、製品の方向性を明確に示しています。すなわち、割り込みの減少、セッションの長期化、そして信頼できる継続性です。
CometAPI は現在、公式 API より低価格で Claude API へのアクセスを提供しています。例: Claude Sonnet 4.6、 Claude Opus 4.6、そして Claude 5。
Claude Code における Auto Compact の実際の意味
Auto Compact は、Anthropic の CLI/デスクトップツールである Claude Code と、より広範な Claude API エコシステムにおける組み込みのコンテキスト最適化メカニズムです。会話がモデルのコンテキストウィンドウ上限に近づいたとき—フラッグシップモデルである Opus 4 や Sonnet 4 では一般に約 200,000 トークン—に自動的に介入します。hooks ドキュメントでは、PreCompact は圧縮操作の前に発火し、auto マッチャーは「コンテキストウィンドウが満杯になったら自動圧縮」を意味すると明記されています。対応する PostCompact フックは圧縮完了後に発火し、生成された compact_summary を受け取ります。
重要なのは、コンパクションが「メモリ」とは別物であるという点です。Auto memory は Claude 独自のノート取りシステムであり、コンパクションはライブの会話状態を圧縮するセッション管理メカニズムです。メモリのドキュメントは、CLAUDE.md が永続的であること、auto memory は Claude によって書き込まれること、そしてコンパクションがセッションの会話履歴を縮約してモデルが作業を続行できるようにする瞬間であることを明確にしています。
新しいチャットを強いて(履歴を失う)しまうことや、モデルが重要な詳細を「忘れる」ことを許す代わりに、Auto Compact は以下を行います。
- 履歴全体を分析 — 保持すべき中核要素を特定する。
- 簡潔な要約を生成 — 決定事項、コードアーキテクチャ、解決済みのバグ、ファイルの状態、次のステップを含む。
- 古いメッセージを置換 — この要約(API 用語では「コンパクションブロック」)で置き換える。
- シームレスに再開 — 保持されたコンテキストで続行する。
主要データポイント(2026):
- トリガー閾値: デフォルトは約 95%(または残り約 25%)。一部ユーザーは、コンパクション自体のために 20–45k トークン(コンテキストの約 22.5%)を内部バッファとして確保していると報告。
- 性能改善: Claude Code v2.0.64 以降、コンパクションは「瞬時」になり、数分かかることがなくなった。
- トークン削減例(Claude Agent SDK のベンチマークより): 5 チケットのワークフローで、入力トークンが 204k から 82k に低下(58.6% 削減)。コンパクションは 2 回発生。
Auto Compact は /clear(全消去)や単純な切り捨てとは異なります。重要な事項—最新のコード差分、アーキテクチャ上の選択、命名規則—を賢く保持しつつ、解決済みのデバッグループや探索的な枝葉を凝縮します。
なぜ Claude Code で Auto Compact を使うのか?
長時間のコーディングセッションが標準です。 ひとつの機能実装だけでも、計画、デバッグ、リファクタリング、テストにわたって 50+ ターンに及ぶことがあります。コンパクションがない場合、トークン使用量は線形に増え、応答品質は低下し、コストは急増します。
開発者にとっての利点は「再スタート疲れ」の軽減です。要約を新しいセッションに手動でコピーする代わりに、Claude にセッションをコンパクト化させてそのまま進められます。これは、バグ修正、複数ファイルのリファクタ、テスト駆動の変更、レビュー中心のワークフローのように会話が非常に長くなる場面で特に有用です。Claude Code のセッションは新しいコンテキストウィンドウで始まるため、コンパクションは長時間の作業を実用的にする主要メカニズムのひとつです。
主なメリット
- セッション長の事実上の無制限化: やり直すことなく継続できる。
- コストと性能の効率化: 入力トークンを劇的に削減。現場報告では、段階的ワークフローで 50–60% の節約。
- 集中と安定の向上: モデルが幻覚したり、初期の制約を忘れる「コンテキスト過負荷」を防止。
- 組織的知見の保持: 何百メッセージ後でも重要な決定がコンテキストに残る。
- エージェント的ワークフローにシームレス: Claude Code でツール、MCP サーバ、マルチエージェントを使う際に重要。
Auto Compact に頼るべき場面
タスクが本質的に長時間にわたる場合に使います。複数ファイルのリファクタ、ログとソースを行き来するデバッグ、検証を繰り返す機能実装、ツール呼び出しの多い調査などです。Anthropic のドキュメントは、会話、ファイル内容、コマンドでコンテキストウィンドウが不要な情報で満たされる長いセッションを明示的に指し示しており、Auto Compact が重要なコードと決定事項を保持しながら空きスペースを作ると述べています。
短く孤立したタスク、または精密で永続的な指示が必要なタスクにはあまり適しません。会話の初期に出した指示はコンパクション後に失われる可能性があるため、プロジェクトのルールは CLAUDE.md に置くべきであり、後で圧縮されてしまう可能性のある使い捨てのプロンプトに含めるべきではありません。
使う(または有効化する)タイミング
- ほとんどのユーザーでデフォルトが常時オン — 日常のコーディング、大規模リファクタ、探索的プロジェクトに最適。
- 長時間タスク — キュー処理、データパイプライン、複数ファイルのコードベース。
- チーム/エンタープライズ環境 — セッションをまたいだコンテキスト継続性が重要な場合。
- 高リスクのプロジェクト — 単一のアーキテクチャ上の決定を失うことが数時間の損失になり得る場合。
無効化を検討すべき場合(/config 経由)
- あらゆるコンテキストトークンを超精密に制御したい。
- 完全に手動管理を好む(計画をファイルで保存/復元するパワーユーザー)。
最新情報(2025–2026): 2025 年 3 月に、Anthropic は Auto Compact の保持ロジックを改善し、「重要情報を保ちながらトークン使用量を削減」する要約をより賢くしました。2025 年末にはトリガーが洗練され(失敗するコンパクションを避けるため、64–75% 使用時に早めに発火することも)、2026 年初頭には Web/デスクトップのインターフェイスに一時的なバグが発生(1 月中旬に修正とされたが、若干の報告が残存)し、CLI は安定していました。2026 年 2 月のバージョン 2.0.64 ではコンパクションが瞬時になり、開発者体験における大きな前進となりました。
Claude Code の Auto Compact の使い方:ステップバイステップガイド
Claude Code では各セッションが新しいコンテキストウィンドウで始まります。これは新しいタスクがクリーンに始められる利点に加え、セッションがノイズで溜まってきたときを見つけやすくしてくれます。無関係なタスクの間では /clear を推奨し、古いコンテキストがスペースを消費し続けないようにします。
Step 1: 現在のコンテキスト状況を確認
/context を使って現在のコンテキスト負荷を可視化します。Claude Code の組み込みコマンド一覧では、/context がカラープロットとともにメモリ膨張、最適化提案、容量警告を表示するとしています。Auto Compact が発動しそうかどうかを知る最速の方法です。
Claude Code のセッションで次を入力します:
/context
これにより “Context left until auto-compact: XX%” が表示されます—実時間の進捗バーです。
Step 2: Auto-Compact の設定(任意)
コンテキストウィンドウがいっぱいになると、Claude Code は会話を自動的にコンパクト化します。hooks リファレンスではこのイベントに auto のラベルが付けられ、コンテキストウィンドウが満杯になったときに発火します。実際には、Auto Compact を「オンにする」というより、必要に応じて Claude Code に任せる形です。
/config
“Auto-compact enabled” に移動し、true/false を切り替えます。デフォルトは enabled です。MCP サーバの使用など、関連設定を調整して事前にトークンを解放することもできます。
Step 3: Auto-Compact を自動で走らせる
約 95% に達したら:
- Claude が “Compacting our conversation so we can keep chatting…”(または同様の)メッセージを表示。
- バックグラウンドで実行し、再開。
- 新しい要約がコンテキストの先頭に表示されます。
プロのコツ: 0% まで待たない こと。ベストプラクティス(後述)に従い、より良い結果のために手動で早めにコンパクト化しましょう。
Step 4: コンパクション前後に何を行うかを自動化したい場合は hooks を使用
Claude Code は PreCompact と PostCompact の両方を公開しています。hooks リファレンスによれば、PreCompact はコンパクションが手動か自動かを検出でき、PostCompact は生成された compact_summary を受け取ります。したがって hooks は、ログ記録、監査トレイル、コンパクション後のノート、外部自動化に適しています。
シンプルな hook パターンは次のようになります:
{ "hooks": { "PostCompact": [ { "matcher": "auto", "hooks": [ { "type": "command", "command": "./scripts/save-compact-summary.sh" } ] } ] }}
対応するシェルスクリプトは stdin から JSON 入力を読み取れます。Claude Code の command フックは JSON をそのように受け取ります:
#!/usr/bin/env bashset -euo pipefailjq -r '.compact_summary // empty' \ | sed 's/^/[compact] /' \ >> .claude/compact-log.txt
ドキュメントは command フックが stdin 経由で JSON を受け取り、PostCompact に compact_summary が含まれることを確認しています。したがってこのパターンは現行のフックモデルに適合しています。
Step 5: 精密な手動コンパクト(推奨)
今すぐスレッドを圧縮したい場合は /compact を使用します。保持したい要約の形を含む指示を含めることができます。Anthropic の組み込みコマンドページでは、/compact [instructions] が “Compact conversation with optional focus instructions,” と記載されています。
/compact keep the auth flow decisions, the current test plan, and the open TODOs
このパターンは引き継ぎの直前、ブランチ切り替えの前、あるいは Claude に作業の新しいフェーズを開始させる前に有用です。
実際の使用例:
- After debugging: /compact keep the solution we found, remove debugging steps
- Project milestone: /compact focus on the new feature requirements
API レベルのコンパクション(上級者向け – Python SDK と Messages API)
カスタムエージェントやスクリプトでは、公式のコンパクションツールを使用します。
Claude Agent Python SDK の例(ツール使用ワークフローでは自動):
from anthropic import Anthropic
client = Anthropic()
runner = client.beta.messages.tool_runner(
model="claude-opus-4-6",
max_tokens=4096,
tools=your_tools,
messages=messages,
compaction_control={
"enabled": True,
"context_token_threshold": 100000, # or lower for aggressive compaction
"model": "claude-haiku-4-5", # cheaper summarizer
"summary_prompt": """Create a focused summary preserving:
1. COMPLETED TASKS and key outcomes
2. CURRENT STATE and open items
3. NEXT STEPS
Wrap in <summary></summary> tags."""
}
)
コンパクションイベントを検出:
if curr_msg_count < prev_msg_count:
print(f"Compaction occurred! Messages reduced from {prev_msg_count} to {curr_msg_count}")
```<grok-card data-id="f4afb5" data-type="citation_card" data-plain-type="render_inline_citation" ></grok-card>
**Full Messages API (beta, 2026)** – requires header:
```bash
curl https://api.anthropic.com/v1/messages \
--header "anthropic-beta: compact-2026-01-12" \
--data '{
"model": "claude-opus-4-6",
"messages": [...],
"context_management": {
"edits": [{
"type": "compact_20260112",
"trigger": {"type": "input_tokens", "value": 150000},
"pause_after_compaction": true
}]
}
}'
API は、今後の呼び出しで返送する必要があるコンパクションブロックを返します。カスタム指示と一時停止により、予算管理を完全に制御(例: セッションをまたいで合計 3M トークン上限を強制)できます。
If you are using the Claude API of CometAPI, change the message header to "https://api.cometapi.com/v1/messages\\".
Auto-Compact と Manual Compact と Clear の比較表
| Feature | Auto-Compact | Manual /compact | /clear |
|---|---|---|---|
| Trigger | 自動(約 95% のコンテキスト) | ユーザー操作 | ユーザー操作 |
| Control | 低(システムが判断) | 高(要約内容を細かく指定可能) | なし(完全リセット) |
| Context Preservation | 良(最新+重要項目) | 優秀(ユーザーが正確に誘導) | なし |
| Token Savings | 高(ベンチマークで 58%+) | 高+予測可能 | 最大(ただし履歴喪失) |
| Workflow Disruption | 最小(瞬時なら)/唐突な場合あり | なし(タイミングを選べる) | 完全な中断 |
| Best For | ハンズオフな長時間セッション | 節目の整理&パワーユーザー | 新規プロジェクトの開始 |
| Risk | ニュアンスの損失が稀にあり(初期バグ) | なし | 既存作業の全喪失 |
| 2026 Maturity | 安定&瞬時(v2.0.64+) | コミュニティ推奨 | 常時利用可能 |
Claude Code Auto Compact のベストプラクティス(開発者のプロ・ヒント)
先回りしてコンパクト化する
スレッドが袋小路だらけなら、コンパクト化を「支え」ではなく「リセット」として使います。Claude にコンパクト化させる直前に、重要事項(現行の目的、選択したアプローチ、失敗中のテスト、未解決の質問)を明確に指示しましょう。実際には、盲目的な自動コンパクションに任せるより、要約が遥かに役立つものになります。
永続的な指示は短く保つ
Anthropic は、200 行を超えるファイルは遵守率を低下させる場合があると述べています。大きなポリシーの塊よりも、簡潔で適切に範囲を絞ったルールの方が一般に有効です。ファイルタイプやパス固有の挙動には .claude/rules/ を使用し、詳細な補助情報が必要なときは @path インポートを使ってメイン指示ファイルを膨らませないようにします。
Free tokens first — コンパクト化の前に、未使用の MCP サーバを /mcp や @server-name disable で無効化してトークンを解放。
CLAUDE.md と組み合わせる
CLAUDE.md を、長いセッションを生き残らせたい事項のソース・オブ・トゥルースとして扱います。CLAUDE.md は /compact 後に再読み込みされるため、ビルドコマンド、コーディング規約、決して失いたくない永続ルールを置く適切な場所です。Auto memory も有用ですが、目的が異なる別のシステムです。
その他のヒント
/context で監視 — 可能なら使用率を 70–80% 未満に維持。
API ユーザー向け — しきい値を低め(例: 50k–100k)に設定し、Haiku のような安価な要約モデルを使用。
必要時のみ無効化 — 2025 年以降の改善を踏まえ、Auto-Compact をオンに保つことが多くの開発者に推奨されています。
コンパクションをテスト — 重要でないセッションで、あなたの特定のワークフローがどのように要約されるかを確認。
実世界の効果: 生産的なセッション長が 2–3 倍になり、「Claude が何をしていたか忘れた」瞬間が減ったと開発者は報告しています。
よくある問題とトラブルシューティング(2026 年版)
- Auto-compact が発火しない: Web/デスクトップと CLI を確認。2026 年 1 月のバグは修正済みだが、バージョンを要確認。
- コンパクション後にコンテキストを失った: 次回は明示的な指示付きの手動
/compactを使用。 - 無限ループや 102% 使用: 稀。セッションを再起動するか、最終手段として
/clear。 - コンパクションが遅い: v2.0.64 以前の問題—Claude Code を更新。
- API のコンパクションブロックに関するエラー: フォローアップ呼び出しでは、コンパクションブロックの全文を常に付加。
結論
Auto compact は、コンテキストウィンドウが満杯になっても毎回再スタートせずに長いコーディングセッションを維持するための、Claude Code における最も重要な隠れたメカニズムのひとつです。実務的なルールはシンプルです。あふれた分は Auto compact に任せ、制御したいときは /compact を使い、永続的なガイダンスは CLAUDE.md に保存し、セッション構造が変わるときは /clear または /rewind を使う。この組み合わせにより、長い Claude Code ワークフローで継続性、制御、速度の最適なバランスが得られます。
Claude Code の Auto Compact は、実用的な AI 支援開発における飛躍です。200k トークンのコンテキストウィンドウを賢く管理することで、長期コーディングの最大の摩擦点である「メモリ不足」を解消します。瞬時の性能(2026)、豊富な設定オプション、強力な API 拡張により、今や何千もの開発者が日々使う成熟した実戦投入済みの機能です。
今日のアクションステップ:
- Claude Code を開いて
/configを実行 — Auto-Compact が有効であることを確認。 - 手動の
/compactを試し、現在のプロジェクトについての指示を含める。 - CometAPI. の Python SDK または Messages API を使って自動エージェントを検討。
