コンテキスト管理
初心者向けClaude の「記憶の容量」を理解して、性能低下を防ぐ
コンテキストって何?(日常の例で理解する)
人間にたとえると、「会議中に頭の中に保持できる情報量」です。
1時間の会議の最初に話した内容、覚えていますか?
会議が長くなると、最初に話した重要なことを忘れてしまいますよね。
Claude も同じです。会話が長くなると、最初の指示を忘れてしまうことがあります。
これが「コンテキストが埋まる」という状態です。
┌────────────────────────────────────────────────┐ │ 🟢 余裕あり 🟠 そろそろ危険 🔴 性能低下! │ │ ████████████████████████████████████████████ │ └────────────────────────────────────────────────┘ 会話が増えるほど右に進む →→→
なぜ重要なの?
コンテキストが埋まると、Claude は:
- 最初に伝えたルールを忘れる
- 関係ない変更を勝手にする
- 同じミスを繰り返す
- 回答の品質が全体的に低下する
覚えておくべき5つのテクニック
1. /clear — リセットする 初心者必須
タスク(やること)が変わったら、/clear で会話をリセットします。
> /clear
これは最も重要で最も簡単なテクニックです。
たとえると、会議が終わったらホワイトボードを消すようなものです。次の議題にきれいな状態で臨めます。
2. 2回ルール — やり直す
同じ修正を2回試してうまくいかなかったら、/clear して最初から別の言い方で頼みましょう。
3. /compact — 圧縮する
同じタスクを続けたいけど容量が心配なとき。会話を要約して圧縮します。
> /compact
たとえると、長い議事録を要点だけにまとめるようなものです。
4. /context — 残量を確認する
> /context
今どれくらいコンテキストを使っているか確認できます。60%以下に保つのが理想です。
5. サブエージェントに調査を任せる 中級者向け
サブエージェント(別のAI)に調査を任せると、メインの Claude のコンテキストを節約できます。 詳しくはサブエージェントのページで解説します。
/clear と /compact の違い
| /clear | /compact | |
|---|---|---|
| 何をする? | 会話を完全リセット | 会話を要約して圧縮 |
| たとえると | ホワイトボードを全部消す | 議事録を要点だけにまとめる |
| 使う場面 | タスクが変わったとき | 同じタスクを続けたいとき |
| 記憶 | すべて消える | 要点だけ残る |
上級テクニック: Document & Clear パターン
1. 「ここまでの進捗を progress.md ファイルに書き出して」
2.
/clear でリセット3. 「progress.md を読んで続きをやって」
こうすると、コンテキストをリフレッシュしつつ作業を続けられます。
Miles Deutscher氏のX投稿 で紹介されたテクニック
Auto-Dream — AIが寝ている間にメモリを整理(2026年新機能)
Auto-Dream とは?
「レム睡眠」の比喩が意味すること:
人間の脳はレム睡眠中に、その日の記憶を整理し、重要な情報を長期記憶に移し、不要な情報を忘れます。Auto-Dream はこれと同じことを Claude のメモリファイル(CLAUDE.md や memory ファイル)に対して行います。セッションが終了した後、次のセッションが始まる前に、バックグラウンドでメモリの「整理整頓」が実行されます。
メモリ統合(古い情報を整理して最新の状態に保つこと)の仕組み:
Auto-Dream は以下の4つの「お掃除」を自動で行います:
1. 陳腐化した情報の削除
例: 「現在は users テーブルにカラムがない」というメモが、その後カラムが追加された場合に自動削除されます。コードの実態と矛盾するメモを検出して除去します。
2. 重複メモの統合
複数セッションで同じような内容が書き込まれた場合(例: 「TypeScript を使用」が3箇所に記録)、1つに統合します。これにより、メモリファイルを読み込むたびに消費されるトークンが削減されます。
3. 相対日付の絶対日付への変換
「明日までにリリース」「来週のミーティングで確認」などの相対的な日付表現を、「2026年3月29日までにリリース」のように具体的な日付に変換します。時間が経っても意味が変わらないメモになります。
4. 矛盾する情報の検出と修正
「データベースは PostgreSQL を使用」と「データベースは MySQL を使用」のような矛盾を検出し、最新のセッション情報を基に修正します。
効果: たとえると、机の上に積み上がった書類を毎晩誰かが整理してくれるようなもの。10回使った後にメモが500行に膨れ上がっていたものが、Auto-Dream により約300行に圧縮されます(約40%削減)。メモが短くなるぶん、Claude が毎回読み込む量が減り、実際の作業に使える記憶容量が増えて、回答の品質が維持されます。
X投稿: Rohan Paul氏 | X投稿: Jeremy Nguyen氏
トークン節約の実践テクニック
Claude Code を使い続けると「すぐに上限に達してしまう」という悩みが出てきます。ここでは、トークン(テキストの量を測る単位。日本語1文字がだいたい1〜2トークン)を節約して、より長く・安く Claude Code を使い続けるための実践的なテクニックを紹介します。
たとえると
コンテキスト80%で /compact を実行する
/context コマンドで現在のコンテキスト使用量をモニタリング(監視)できます。使用量が80%を超えたら、/compact を実行して会話を圧縮するのが目安です。
> /context # → 現在のコンテキスト使用量が表示される # → 80%を超えていたら↓を実行 > /compact コードのサンプルとAPIの使い方だけ残して # → 会話が要約され、指定した内容が優先的に保持される
予算上限を設定する
API(従量課金)で利用している場合、1セッションあたりの予算上限を設定できます。予想外のコスト発生を防ぐ「安全弁」です。
# 1セッションの上限を5ドルに設定 # --max-budget-usd = 最大予算(ドル)を指定するフラグ(オプション) claude --max-budget-usd 5
8つの節約戦略
複数のQiita/Zenn記事やX投稿から集約した、実証済みの節約テクニックです:
1. こまめに /clear する
タスクが変わったら必ず /clear でリセット。前のタスクの会話が残っていると、関係ない情報にトークンが消費され続けます。たとえると、会議が終わったらホワイトボードを消すのと同じです。
2. @で必要なファイルだけ指定する
「このプロジェクトを見て」ではなく @src/api/users.py を修正して のように、対象ファイルを明示的に指定します。Claude が不要なファイルまで読み込むのを防げます。
3. /compact を活用する
同じタスクを続けるが会話が長くなってきたとき、 /compact で要約。何を残すか指定すると、重要な情報が優先的に保持されます。
4. サブエージェントに調査を委任する
大量のファイルを調査する必要があるとき、メインのClaude にやらせるとコンテキストが膨らみます。サブエージェント(部下AI)に調査を任せて、結果の要約だけ受け取るのが最も効果的な節約テクニックです。
5. --bare モードで軽量起動する
claude --bare "簡単な質問" で、CLAUDE.md の読み込みやMCPサーバーの接続をスキップ。ちょっとした質問やコミットメッセージの生成など、軽い作業に最適です。
6. MCPサーバーを必要最小限にする
MCPサーバー(外部ツールとの接続)を入れすぎると、コンテキストが大幅に消費されます。ある事例では、MCPサーバーの入れすぎにより使用可能なコンテキストが200kトークンから70kトークンに縮小したケースも。/mcp で不要なサーバーを無効化しましょう。
7. Sonnetモデルで軽い作業をこなす
すべての作業にOpus(最高性能モデル)を使う必要はありません。日常的なコーディングはSonnet(バランス型モデル)で十分。/model sonnet で切り替えられます。
8. effortレベルを調整する
Extended Thinking(拡張思考=Claudeが深く考える機能)はトークンを多く消費します。簡単なタスクには /effort low や /effort medium で思考量を抑えられます。
settings.json での節約設定例
~/.claude/settings.json(Claude Codeのグローバル設定ファイル)に以下の設定を書いておくと、デフォルトで節約モードになります:
{
// model: デフォルトで使うモデルを指定
// "sonnet" = バランス型モデル(Opusより安くて十分な性能)
"model": "sonnet",
// outputStyle: 出力スタイルを指定
// "Concise" = 簡潔な出力(冗長な説明を省略してトークン節約)
"outputStyle": "Concise",
// permissions: ファイルアクセスの許可/拒否設定
"permissions": {
// deny: 以下のファイル/コマンドへのアクセスを禁止
"deny": [
"Read(./.env)", // 環境変数ファイル(秘密情報)の読み取りを禁止
"Read(./.env.*)", // .env.local等も禁止
"Bash(curl:*)", // curlコマンド(外部通信)を禁止
"Bash(wget:*)" // wgetコマンド(外部通信)を禁止
]
}
}節約の本質
出典: @ai_jitan | Qiita: トークン節約Tips | Zenn: 5フェーズ節約法 | Zenn: コンテキスト最適化