Claude Codeを使っていると「コンテキスト」という言葉をよく耳にします。この記事では、コンテキストの仕組みと効率的な使い方を解説します。
コンテキストとは
基本概念
コンテキスト(Context)とは、Claude Codeが「覚えている」情報のことです。会話の履歴、読み込んだファイル、実行結果など、現在のセッションで扱ったすべての情報がコンテキストに含まれます。
コンテキストウィンドウ
コンテキストウィンドウは、Claudeが一度に処理できる情報量の上限です。
プラン | コンテキストウィンドウ |
|---|---|
Pro | 約200,000トークン |
Max | 約200,000トークン |
API | モデルにより異なる |
トークンとは: テキストを処理するための単位。日本語の場合、1文字≒1〜2トークン程度。
コンテキスト残量の確認
ステータスバーで確認
Claude Codeの画面下部に表示されるステータスバーで、おおよその使用状況が確認できます。
コマンドで確認
/status
または:
/context
表示例
Context: 45,000 / 200,000 tokens (22.5%)
コンテキストが増える要因
1. 会話の履歴
あなた: 「この関数を修正してください」
Claude: [長い回答]
あなた: 「もう少し詳しく説明してください」
Claude: [さらに長い回答]
...
→ 会話が長くなるほどコンテキストが増加
2. ファイルの読み込み
ファイルを読み込むたびにコンテキストが消費される:
- 小さなファイル(〜100行): 〜500トークン
- 中程度のファイル(〜500行): 〜2,500トークン
- 大きなファイル(〜2000行): 〜10,000トークン
3. コマンド実行結果
# 出力が長いコマンドはコンテキストを大量消費
npm install → 長いログ出力
git log → 大量のコミット履歴
コンテキストの圧縮(Compact)
自動圧縮
コンテキストが上限に近づくと、Claude Codeは自動的に圧縮を行います。
手動圧縮
/compact
圧縮で何が起きるか
- 要約: 過去の会話を要約
- 不要情報の削除: 重複や冗長な情報を削除
- 重要情報の保持: ファイル変更、決定事項は保持
圧縮後の注意点
- 細かい会話の詳細は失われる可能性がある
- 重要な決定事項は保持される
- 必要に応じて情報を再度伝える
コンテキストを効率的に使う
1. 必要なファイルだけを読み込む
❌ 悪い例:
「プロジェクト全体を読み込んでください」
✅ 良い例:
「src/components/Button.tsx を読み込んでください」
2. 明確な指示を出す
❌ 悪い例:
「このコードをなんとかして」
✅ 良い例:
「src/utils/date.ts の formatDate 関数に
ISO 8601形式への変換機能を追加してください」
3. 長いログ出力を避ける
# 出力を制限
git log -10 # 最新10件のみ
npm install 2>&1 | tail -20 # 最後の20行のみ
4. 新しいセッションを開始
長いセッションでコンテキストが圧迫される場合:
/clear
または新しいターミナルでClaude Codeを起動。
5. CLAUDE.mdを活用
繰り返し伝える情報はCLAUDE.mdに記載:
# CLAUDE.md
## プロジェクト概要
Next.js + TypeScriptのECサイト
## コーディング規約
- 関数コンポーネント使用
- Tailwind CSS でスタイリング
コンテキスト超過時の対処
症状
- 応答が遅くなる
- 「コンテキストの上限に達しました」というメッセージ
- 以前の会話を忘れている
対処法
方法1: 圧縮を実行
/compact
方法2: 新しいセッションを開始
# 終了
Ctrl + C
# 新しく開始
claude
方法3: 必要な情報だけ再度伝える
新しいセッションを開始しました。
以下のタスクの続きをお願いします:
目的: ユーザー認証機能の実装
進捗: ログイン画面は完成、次はセッション管理
参照ファイル: src/auth/login.ts
プラン別のコンテキスト管理
Proプラン
- コンテキストウィンドウ: 200,000トークン
- 推奨: 定期的な圧縮、セッションの分割
Maxプラン
- コンテキストウィンドウ: 200,000トークン
- 使用量が多い場合でも余裕がある
APIプラン
- モデルによりコンテキストサイズが異なる
- Claude 3.5 Sonnet: 200,000トークン
- 従量課金なので効率的な使用が重要
大規模プロジェクトでの戦略
1. タスクを分割
1セッション = 1つの機能
例:
- セッション1: ユーザー認証
- セッション2: 商品一覧
- セッション3: カート機能
2. サブエージェントを活用
/task "src/components/ 配下のファイルを調査してください"
メインのコンテキストを消費せずに調査ができます。
3. 要約を作成
長い作業の区切りで:
今日の作業内容を要約してCLAUDE.mdに追加してください
コンテキストのモニタリング
使用状況を定期確認
開発中は定期的に確認:
/status
警告レベル
使用率 | 状態 | 推奨アクション |
|---|---|---|
〜50% | 余裕あり | そのまま継続 |
50〜75% | 注意 | 不要な情報を避ける |
75〜90% | 警告 | /compact を検討 |
90%〜 | 危険 | 新セッション推奨 |
よくある質問
Q: コンテキストがリセットされるタイミングは?
A: 以下の場合にリセットされます:
- Claude Codeを終了したとき
/clearコマンドを実行したとき- 新しいセッションを開始したとき
Q: コンテキストを増やす方法はありますか?
A: プラン自体のコンテキストウィンドウは固定です。効率的に使うことで、実質的により多くの作業ができます。
Q: 圧縮しても重要な情報は保持されますか?
A: はい、ファイルの変更内容や重要な決定事項は保持されます。ただし、細かい会話のニュアンスは失われる可能性があります。
Q: 大きなファイルを扱うコツは?
A:
- 必要な部分だけを指定して読み込む
- ファイルを分割する
- 要約してから詳細に入る
Q: コンテキストとトークンの違いは?
A: トークンはテキストの処理単位で、コンテキストはそのトークンが収まる「入れ物」です。コンテキストウィンドウ = 最大トークン数です。
まとめ
Claude Codeのコンテキスト管理:
項目 | 内容 |
|---|---|
確認コマンド |
|
圧縮コマンド |
|
クリア |
|
上限 | 約200,000トークン |
効率的な使い方:
- 必要なファイルだけ読み込む
- 明確な指示を出す
- 定期的に圧縮する
- 長いセッションは分割する
- CLAUDE.mdを活用する
コンテキストを意識して使うことで、Claude Codeをより効果的に活用できます。