Claude Code: コンテキスト管理
最終更新:2026-08-31
コンテキストは Claude Code の「作業記憶」です — コンテキストをうまく管理することは、Claude Code の理解能力と API 請求額の管理につながります。
💡 ヒント: Claude Sonnet のコンテキストウィンドウは200Kトークン(約15万語)です。プロジェクトが大きいほどコンテキスト管理が重要になります — すべてのファイルを同時に「作業記憶」に入れる必要はありません。
📋 前提条件: 第9章 - CLAUDE.md 使用ガイド
1. 学ぶ内容
- コンテキストウィンドウメカニズム
- Token 消費分析と最適化
- 大規模プロジェクトのコンテキスト戦略
- 手動コンテキスト制御方法
- コストと品質のバランス
2. コンテキストウィンドウメカニズム
(1) コンテキストの構成
| コンポーネント | 典型的な割合 | 説明 |
|---|---|---|
| システムプロンプト | 2-3% | Claude Code 内蔵の指示 |
| CLAUDE.md | 1-2% | プロジェクトの規約 |
| プロジェクトファイル | 40-60% | 読み取ったソースコードファイル |
| 会話履歴 | 30-40% | 過去の Q&A 記録 |
| コード出力 | 5-10% | 生成されたコード |
(2) コンテキストのライフサイクル
TEXT
📖 参照専用
セッション開始 → CLAUDE.md + システムプロンプトを読み込み
→ 指示に基づいて関連ファイルを読み取り
→ 各ターンで履歴が蓄積
→ 上限に近づくと古い内容を切り捨て
→ 長いセッションは品質が低下する可能性
▶ 例1:コンテキスト使用量の確認
TEXT
📖 参照専用
> /cost
Token usage:
System prompt: 4,230 tokens
CLAUDE.md: 1,850 tokens
Project files: 52,400 tokens (12 files)
Conversation: 28,600 tokens (8 turns)
Code output: 8,920 tokens
─────────────────────────────────
Total: 96,000 / 200,000 tokens (48%)
Estimated cost: $1.82
3. Token 最適化戦略
(1) 不要なファイル読み取りの削減
| 戦略 | 効果 | 方法 |
|---|---|---|
| 正確な指示 | 30-50%削減 | 「プロジェクトを見て」ではなく正確なファイルを指定 |
| 範囲の制限 | 20-40%削減 | CLAUDE.md で作業ディレクトリを定義 |
| タイムリーにクリア | 10-30%削減 | 長いセッションで /clear を使用 |
| 小さなステップ | 15-25%削減 | 一度に一つのこと |
(2) 指示の正確性の比較
TEXT
📖 参照専用
# 高消費(プロジェクト全体を読み取り)
> Help me refactor this project
# 中消費(範囲を限定)
> Refactor all services under src/services/
# 低消費(正確なファイルを指定)
> Refactor src/services/user.service.ts, extract validation logic to separate file
▶ 例2:Token 消費の比較
TEXT
📖 参照専用
# 曖昧な指示:~80K tokens、$1.60
> Add a user search endpoint to the project
# 正確な指示:~25K tokens、$0.50(70%節約)
> In src/routes/user.ts, add GET /api/users/search endpoint,
> using searchUsers method from src/services/user.service.ts,
> following the search endpoint format in src/routes/product.ts
4. 大規模プロジェクトのコンテキスト戦略
(1) 分割作業
MARKDOWN
<!-- CLAUDE.md で作業範囲を制限 -->
## Current Work Scope
- Primary: src/api/ ディレクトリ
- Models: src/models/ ディレクトリ
- Current task: ユーザー権限モジュール
## Not Currently Relevant
- src/frontend/(独立したフロントエンド開発)
- src/migrations/(DB マイグレーション完了)
- docs/(ドキュメントは別管理)
(2) オンデマンド読み込み
TEXT
📖 参照専用
# すべてのファイルを一度に読み込まない
> ❌ "Read all route files and refactor"
> ✅ "Read src/routes/user.ts and add pagination support"
# 完了後に続行
> "Now read src/routes/order.ts and add same pagination"
(3) セッションの分割
TEXT
📖 参照専用
# 長いタスクを短いセッションに分割
# セッション1:モデル設計
claude "Design user permission DB model, only read prisma/schema.prisma"
# Ctrl+D で終了
# セッション2:ミドルウェア
claude "Based on the permission model, implement RBAC middleware"
# セッション3:ルート統合
claude "Integrate RBAC middleware into all routes needing permission checks"
5. 手動コンテキスト制御
(1) セッション内コマンド
| コマンド | 目的 | シナリオ |
|---|---|---|
/clear |
会話履歴をクリア | トピック変更 |
/compact |
会話履歴を圧縮 | 長いセッションの最適化 |
/cost |
Token 使用量を確認 | コスト監視 |
/files |
読み込まれたファイルを確認 | コンテキストの確認 |
▶ 例3:最適化の前後
TEXT
📖 参照専用
# 最適化前:曖昧な指示 — 156K tokens($3.12)
> Fix all test failures
# 最適化後:正確な指示 — 32K tokens($0.64)
> Run npm test, only fix 3 failing tests in auth module,
> don't read frontend files
節約率:80%
❓ よくある質問
Q 200K tokens でも足りない場合は?
A
/clear で会話をリセットするか、複数の短いセッションに分割してください。200K は単一タスクには通常十分ですが、長いセッションでのみ超過する場合があります。Q
/compact は品質を低下させますか?A わずかに。圧縮は主要な情報を保持しますが、会話の詳細は失われます。トピック変更時には
/compact より /clear を推奨します。Q Claude Code がどのファイルを読み取ったかを知るには?
A Claude Code は各操作でファイルパスを表示します。また
/files で現在読み込まれているファイルを確認できます。Q Claude Code が特定のファイルを読み取らないようにできますか?
A CLAUDE.md に「xxx ディレクトリを読み取らない」と書けますが、100%の遵守は保証されません。機密ファイルには
.claudeignore を使用してください。Q コンテキストがほぼ一杯になるとどうなりますか?
A Claude Code が以前の会話内容を忘れ始める可能性があります。回答品質が低下します。
/clear または新しいセッションを開始するタイミングです。Q Token 消費の大きな変動は正常ですか?
A はい。シンプルなクエリは5Kトークン、複雑なリファクタリングは100K+になる場合があります。指示の正確性が最大の要因です。
📖 まとめ
- コンテキストウィンドウは200Kトークン。プロジェクトファイルと会話履歴が主な消費源
- 正確な指示で30-70%の Token 消費を削減可能
- 大規模プロジェクトは CLAUDE.md で作業範囲を制限し、分割処理
- 短いセッション + git チェックポイントが超長セッションより優れている
/clear、/compact、/costが3つの主要コンテキスト管理コマンド
📝 練習問題
- 基本 (⭐): プロジェクトで
/costを実行し、シンプルなタスクと複雑なタスクの Token 消費を記録してください。 - 応用 (⭐⭐): 曖昧な指示と正確な指示で同じタスクを完了し、Token 消費と品質を比較してください。
- 高度 (⭐⭐⭐): 50以上のファイルのプロジェクトのコンテキスト管理戦略を設計し、50%の Token 削減を達成してください。