Claude Code: コンテキスト管理

最終更新:2026-08-31

コンテキストは Claude Code の「作業記憶」です — コンテキストをうまく管理することは、Claude Code の理解能力と API 請求額の管理につながります。

💡 ヒント: Claude Sonnet のコンテキストウィンドウは200Kトークン(約15万語)です。プロジェクトが大きいほどコンテキスト管理が重要になります — すべてのファイルを同時に「作業記憶」に入れる必要はありません。

📋 前提条件: 第9章 - CLAUDE.md 使用ガイド

1. 学ぶ内容


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+になる場合があります。指示の正確性が最大の要因です。

📖 まとめ


📝 練習問題

  1. 基本 (⭐): プロジェクトで /cost を実行し、シンプルなタスクと複雑なタスクの Token 消費を記録してください。
  2. 応用 (⭐⭐): 曖昧な指示と正確な指示で同じタスクを完了し、Token 消費と品質を比較してください。
  3. 高度 (⭐⭐⭐): 50以上のファイルのプロジェクトのコンテキスト管理戦略を設計し、50%の Token 削減を達成してください。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%