💻 Claude Code入門 📖 約18分で読めます

Claude Codeのコンテキスト節約術 ― トークンを無駄にしない10の方法

コンテキストウィンドウを理解し、トークン消費を最適化するテクニック集

クロガイド

クロガイド|Claude&Claude Codeを無料で学ぼう

AI基礎からプロンプト術、Claude Codeの使い方まで。知識レッスンとクイズ式トレーニングで、AIスキルを段階的にアップ。ユーザー登録不要、すべて無料で今すぐ始められます。

はじめに

Claude Codeを使っていて「急にレスポンスの質が落ちた」「セッションが重くなった」と感じたことはありませんか?その原因の多くはコンテキストウィンドウの枯渇です。コンテキストを賢く管理すれば、コストを抑えながら高品質な出力を維持できます。

この記事では、コンテキストウィンドウの仕組みから、トークンを無駄にしない10の実践テクニックまでを徹底解説します。

コンテキストウィンドウとは?

コンテキストウィンドウとは、AIモデルが一度に「記憶」できる情報量の上限です。人間の短期記憶のようなもので、会話の履歴、読み込んだファイルの内容、AIの応答すべてがこの枠内に収まる必要があります。

コンテキストウィンドウの基本

  • Claude Sonnet 4:約200Kトークン(約15万〜20万語相当)
  • Claude Opus 4:約200Kトークン
  • 入力(プロンプト+履歴+ファイル)と出力の合計がこの枠に収まる必要がある
  • 枠を超えると古い情報から「忘れて」いく(または処理できなくなる)

Claude Codeでは、ファイルの読み書きやコマンド実行の結果もコンテキストに含まれます。大きなファイルを読んだり、長いログ出力を受け取ったりすると、コンテキストが急速に消費されます。

コンテキストの構成要素

要素消費トークン目安備考
ユーザーのプロンプト数十〜数百短い指示なら少ない
会話の履歴蓄積で増大長いセッションほど増える
読み込んだファイル数百〜数万大きなファイルは要注意
ツール実行結果数百〜数千コマンド出力やエラーログ
CLAUDE.md等の設定数百〜数千毎回読み込まれる
AIの応答数百〜数千長い応答も消費する

トークンの仕組みを理解する

トークンはAIがテキストを処理する最小単位です。英語では1単語がおよそ1トークンですが、日本語は1文字が1〜3トークンになるため、同じ内容でも英語より多くのトークンを消費します。

トークン数の目安

テキスト概算トークン数
英語100単語約100トークン
日本語100文字約50〜150トークン
一般的なPHPファイル(200行)約1,000〜2,000トークン
package.json(中規模プロジェクト)約500〜1,000トークン
npmの長いエラーログ数千〜数万トークン

トークンとコストの関係

Claude CodeはAPIベースで動作するため、トークン消費量が直接コストに影響します。入力トークン・出力トークンそれぞれに料金がかかり、無駄な消費を減らすことはコスト削減に直結します。

コスト意識を持つべき理由

  • 入力トークン:会話履歴が長くなるほど毎回のリクエストで消費が増大
  • 出力トークン:入力より単価が高い(約3〜5倍)
  • コンテキストが埋まると品質が低下し、やり直しが増えてさらにコスト増

なぜコンテキスト管理が重要なのか

コンテキスト管理は「コスト」と「品質」の2つの観点で重要です。

1. コストへの影響

セッションが長くなると、過去の会話履歴すべてが毎回のリクエストに含まれます。つまり10回目のメッセージを送るとき、過去9回分の会話もすべて入力トークンとして課金されます。コンテキストを効率的に使えば、同じ作業でもコストを大幅に削減できます。

2. 出力品質への影響

コンテキストウィンドウが埋まってくると、AIの「注意力」が分散します。重要な情報が大量の無関係な情報に埋もれ、指示を見落としたり、不正確な応答が増えたりします。適切なコンテキスト管理は、出力品質の維持に不可欠です。

コンテキスト管理は「部屋の整理整頓」と同じです。散らかった部屋(大量の無関係な情報)では必要なもの(重要な指示)を見つけにくくなります。

トークンを無駄にしない10の方法

方法1: 新しいタスクは新しいセッションで始める

最もシンプルかつ効果的な方法です。タスクが変わったら、新しいClaude Codeセッションを開始しましょう。

実践例

# タスクA: バグ修正が完了 → セッション終了
# タスクB: 新機能追加 → 新しいセッションを開始
claude

# 前のセッションの文脈を引きずらず、クリーンな状態で開始
> src/auth/login.phpにOAuth2認証を追加してください

なぜ効果的か

  • 前のタスクの会話履歴(不要な情報)がリセットされる
  • AIが新しいタスクに100%集中できる
  • コンテキストの大半を現在のタスクに使える

方法2: /compactコマンドを定期的に使う

/compactは会話履歴を圧縮して、重要な情報だけを残すコマンドです。長いセッションでは定期的に使いましょう。

# コンテキストが増えてきたと感じたら
/compact

# カスタム指示を添えて圧縮することも可能
/compact 現在のタスクはログイン機能の実装。完了した部分と残りのTODOを保持して

方法3: 明確で簡潔なプロンプトを書く

曖昧で長いプロンプトはトークンを消費するだけでなく、AIの理解も妨げます。要件を明確に、簡潔に伝えましょう。

悪い例 vs 良い例

悪い例(冗長)良い例(簡潔)
えーっと、今ログイン機能を作っているんですけど、なんかうまくいかなくて、PHPでセッションを使ったログイン処理を書きたいんですが、データベースはSQLiteを使っていて、パスワードはハッシュ化したいなと思っているんですけど、どうすればいいですか? PHPでセッションベースのログイン機能を実装してください。要件:SQLite3使用、パスワードはpassword_hash()でハッシュ化、CSRF対策込み。対象ファイル:src/auth/login.php

方法4: CLAUDE.mdに繰り返す情報をまとめる

プロジェクトのルール、コーディング規約、技術スタックなどを毎回プロンプトで伝えるのは無駄です。CLAUDE.mdに書いておけば、自動的に読み込まれます。

# CLAUDE.md に記載しておく例
## コーディング規約
- PHPはPSR-12に従う
- SQLは必ずプリペアドステートメントを使用
- 出力はhtmlspecialchars()でエスケープ
- インデントはスペース4つ

方法5: ファイルパスで参照し、内容を貼り付けない

Claude Codeはファイルを自分で読めます。プロンプトにコードを貼り付けるのではなく、ファイルパスを伝えましょう。

比較

# 悪い例:コードを貼り付ける(トークン大量消費)
このコードを修正して:
<?php
function login($user, $pass) {
  // ... 100行のコード ...
}

# 良い例:ファイルパスで参照(最小限のトークン消費)
src/auth/login.phpのlogin()関数にCSRF対策を追加してください

方法6: --printフラグでワンショット実行する

単発の質問やファイル生成には--print-p)フラグを使います。対話セッションを開始せずに結果を得られるため、無駄なコンテキスト消費がありません。

# ワンショットで質問
claude -p "PHPでCSRFトークンを生成する関数を書いて"

# パイプで入力を渡す
cat error.log | claude -p "このエラーの原因と対策を教えて"

方法7: 大きなタスクを小さなセッションに分割する

「アプリ全体を作って」のような巨大なタスクは、コンテキストを使い果たします。自然な区切りで分割しましょう。

タスク分割の例

  1. セッション1:データベーススキーマの設計とマイグレーションファイル作成
  2. セッション2:認証機能(ログイン・ログアウト・セッション管理)の実装
  3. セッション3:CRUD APIエンドポイントの実装
  4. セッション4:フロントエンドのUI実装
  5. セッション5:テスト作成と全体の統合テスト

方法8: .gitignoreで不要なファイルの読み込みを防ぐ

Claude Codeはプロジェクト内のファイルをスキャンします。.gitignoreに適切なパターンを設定し、不要なファイルの読み込みを防ぎましょう。

# .gitignore に追加すべきパターン
node_modules/
vendor/
.git/
*.log
dist/
build/
*.sqlite
*.db

方法9: 不必要なやり取りを避ける

「ありがとう」「了解です」のような応答もトークンを消費します。効率的な作業のためには、指示を一度にまとめて伝えましょう。

非効率なやり取り(6回のやり取り)

User: ログイン機能を作って
AI: (応答)
User: バリデーションも追加して
AI: (応答)
User: エラーメッセージも表示して
AI: (応答)

効率的なやり取り(2回のやり取り)

User: ログイン機能を実装してください。要件:
1. メール/パスワードでのログイン
2. 入力バリデーション(空チェック、メール形式)
3. エラーメッセージの表示(日本語)
AI: (すべてを含む応答)

方法10: 簡単なタスクにはHaikuモデルを使う

Claude Codeでは使用モデルを切り替えられます。単純な質問やフォーマット変換などにはHaikuモデルを使えば、高速かつ低コストです。

# モデルを指定して実行
claude --model claude-haiku-4-5-20251001 -p "このJSONをCSVに変換して"

# 設定でデフォルトモデルを変更
claude config set model claude-haiku-4-5-20251001

トークン使用量のモニタリング

自分がどのくらいトークンを消費しているか把握することが、効率化の第一歩です。

モニタリング方法

  • セッション内の表示:Claude Codeはセッション中にコンテキスト使用率を表示します。ステータスバーの表示を確認しましょう
  • /costコマンド:現在のセッションのトークン消費量とコストを確認できます
  • Anthropicダッシュボード:APIの使用量とコストを管理画面で確認できます
# セッション中のコスト確認
/cost

# 出力例:
# Session cost: $0.42
# Input tokens: 45,230
# Output tokens: 12,180

コンテキスト使用率の目安

使用率状態推奨アクション
0〜30%余裕あり通常通り作業を継続
30〜60%中程度タスクの区切りで/compactを検討
60〜80%注意/compactを実行、または新セッションを検討
80%以上危険新セッションを開始すべき

まとめ

コンテキスト節約の10の方法を振り返りましょう。

#方法効果難易度
1新タスクは新セッション★★★簡単
2/compactの定期的な使用★★★簡単
3明確で簡潔なプロンプト★★☆中程度
4CLAUDE.mdの活用★★★簡単
5ファイルパスで参照★★☆簡単
6--printでワンショット実行★★☆簡単
7タスクの分割★★★中程度
8.gitignoreの整備★★☆簡単
9やり取りの最小化★☆☆簡単
10Haikuモデルの活用★★☆簡単

これらのテクニックを組み合わせることで、コストを50%以上削減しながら、出力品質を維持・向上できます。まずは「新タスクは新セッション」と「/compactの活用」から始めてみましょう。

Claude Code入門の他のガイド

Claude Code導入ガイド ― Windows/Mac完全対応
Claude Codeのインストールから初回起動まで、OS別に完全対応 ・ 約30分
Claude Codeの主要スラッシュコマンドと活用法
16個のスラッシュコマンドを完全網羅。使い方・実行例・組み合わせテクニックまで ・ 約15分
Claude Codeの権限設定(パーミッション)完全ガイド
セキュリティと利便性を両立する権限管理の全知識 ・ 約18分
Claude Codeのモデル切り替え活用術 ― Opus・Sonnet・Haikuの使い分け
タスクに応じた最適なモデル選択でコストと品質を両立する方法 ・ 約15分
Claude Codeのセッション管理術 ― 効率的な作業の進め方
セッションの開始・継続・再開を使いこなして、長期プロジェクトを効率的に進める ・ 約12分
Claude Codeのコマンドラインオプション完全リファレンス
全CLIオプションを網羅。起動時に使える引数を徹底解説 ・ 約20分
Claude Codeのプロジェクト設定(.claude/)完全ガイド
.claudeディレクトリとCLAUDE.mdを使いこなしてチーム開発を効率化 ・ 約15分
Claude Codeの出力フォーマットとパイプ活用術
--printモードとパイプを使った自動化・スクリプト連携の実践テクニック ・ 約15分
Claude Codeのキーボードショートカットと操作効率化
知っておくべきショートカットキーと入力テクニックで作業速度を2倍に ・ 約12分
Claude Codeのアップデートとバージョン管理
最新版への更新方法からダウングレード、トラブル対処まで ・ 約10分
Claude Codeの/doctorコマンドとトラブル診断
問題発生時の診断フローとよくあるエラーの解決方法 ・ 約12分
CLAUDE.mdの書き方完全ガイド ― プロジェクト指示書のベストプラクティス
プロジェクトの文脈をAIに正確に伝える設定ファイルの書き方 ・ 約20分
Claude Codeのメモリ機能 ― 会話をまたいだ記憶の活用法
プロジェクト固有の知識を永続化して効率を最大化する ・ 約18分
.claude/settings.jsonの設定項目一覧と活用法
Claude Codeの動作を細かく制御する設定ファイルの全貌 ・ 約15分
プロジェクト別CLAUDE.mdテンプレート集 ― コピペで使える10パターン
React・Next.js・Python・PHP・WordPress等、主要技術スタック別テンプレート ・ 約25分
チーム開発でのCLAUDE.md運用術
チーム全員がAIを最大限活用するための共有設定と運用ルール ・ 約20分
Claude CodeでGitを使いこなす ― 基本操作編
自然な日本語でGitを操作する方法を基本から解説 ・ 約20分
Claude Codeでコミットメッセージを自動生成する
変更内容を分析して最適なコミットメッセージを提案してくれるAI活用術 ・ 約18分
Claude CodeでPR(プルリクエスト)を作成・レビューする
AI支援によるPR作成からコードレビューまでの実践的ワークフロー ・ 約20分
Claude Codeでブランチ戦略を実践する
Git Flow・GitHub Flow・トランクベースを理解し、AIで効率的にブランチを管理 ・ 約20分
Claude Codeでコンフリクト解決をAIに任せる
マージの衝突が起きても慌てない。AIによるコンフリクト解決の実践ガイド ・ 約18分
Claude Codeでgit logを分析して変更履歴を理解する
コミット履歴からバグの原因特定やプロジェクトの変遷を把握する ・ 約22分
Claude Codeでリリースノートを自動生成する
コミット履歴からユーザー向け・開発者向けリリースノートを作成する ・ 約20分
/compactコマンド徹底解説 ― 会話を圧縮して作業を続ける
/compactの仕組み・使いどころ・カスタム指示を完全網羅 ・ 約15分
大規模プロジェクトでのClaude Code活用戦略
大規模コードベースでの効率的なAI活用パターンとベストプラクティス ・ 約20分
.gitignoreとClaude Code ― 読み込みファイルの最適制御
ファイル探索の仕組みを理解し、ノイズを減らして精度を上げる ・ 約14分
効率的なタスク分割術 ― 1セッションの最適な使い方
タスク境界の見極めとセッション計画で生産性を最大化 ・ 約16分
Claude CodeのSkills機能入門 ― カスタムコマンドで作業を効率化
組み込みスキルからカスタムワークフローまで完全ガイド ・ 約15分
Claude Codeのフック(Hooks)でワークフローを自動化する
PreToolUse・PostToolUseフックで品質と安全性を自動で担保 ・ 約18分
カスタムスラッシュコマンドの作り方 ― 自分だけのワークフローを構築
.claude/commands/ディレクトリで独自コマンドを定義する方法 ・ 約16分
MCPサーバーでClaude Codeを拡張する ― 外部ツール連携ガイド
Model Context Protocolで無限の拡張性を手に入れる ・ 約18分
Claude CodeとVS Code・JetBrainsの連携活用法
ターミナルAIとIDEを組み合わせた最強の開発環境構築 ・ 約15分
Claude Codeでウェブサイトを0から作る実践ガイド
プロジェクト作成からデプロイまでの完全チュートリアル ・ 約20分
Claude Codeでテストコードを書かせるテクニック
単体テストからE2Eテストまで、AIによるテスト自動生成 ・ 約22分
Claude Codeでリファクタリングを効率化する
安全なコード改善をAIと一緒に進める方法 ・ 約22分
Claude Codeでドキュメントを自動生成する
README・API文書・コードコメントを効率的に作成 ・ 約20分
Claude Codeでバグを素早く見つけて修正するテクニック
エラー解析からホットフィックスまでのデバッグワークフロー ・ 約20分
Claude CodeでREST APIを設計・実装する
要件定義からテストまでAPI開発の全工程をAIと進める ・ 約25分
Claude Codeでデータベース設計を相談・実装する
ER図からマイグレーションまでDB設計をAIに相談 ・ 約22分
Claude Codeで既存プロジェクトを分析・理解する
新しいコードベースのオンボーディングをAIで加速 ・ 約22分

Claude Code入門のレッスンも読む

読んだら、次はクイズで確認!

トレーニングで学んだ知識を定着させましょう。

Claude Code入門のトレーニングへ