Token Optimization

Claude Codeのトークン消費を75%削減する方法:設定と最適化ガイド

### クイックアンサー:Claudeのトークン消費を抑える方法

Claude Codeでトークン消費を最大75%削減するには、4つの重要最適化を実施します:ビルド成果物やLockfileを排除する厳格な.claudeignoreの設定、静的プロンプトによるAnthropicの90%プロンプトキャッシュ割引の活用、コンテキスト劣化(Context Rot)を防ぐScoutサブエージェントによるタスク分離、そして日常的なAST検索においてOpusではなくclaude-3-7-sonnetclaude-3-5-haikuを優先的に選択することです。


1. 導入:ターミナルエージェントにおけるトークン流出の盲点

Anthropicの Claude Code に代表される自律型ターミナルエージェントは、ソフトウェア開発ワークフローを一変させました。従来のIDE補完とは異なり、Claude Codeは自律的なループで動作します。ディレクトリ構造の調査、数千行規模のコードの読み込み、シェルコマンドの実行、コンパイラログの解析、そして精密なコードパッチの適用を自動で行います。

しかし、この自律性には高いコストが伴います。事前に対策を講じないと、「JWTローテーションに対応するように認証ミドルウェアをリファクタリングして」という単純なプロンプトでも、1回のセッションで150万〜350万トークンを消費することがあります。このトークンインフレは以下の原因によって引き起こされます:

  1. コンテキストの累積と汚染(Context Rot):実行されたBashコマンドの出力、Grep結果、スタックトレース、丸ごと読み込まれたファイルが、エージェントのアクティブなコンテキストウィンドウ内に蓄積され続けます。
  2. キャッシュされない再読み込み:会話の初期ターンを不意に変更すると、Anthropicの5分間のエフェメラル・プロンプトキャッシュ境界が無効化されます。
  3. 不要な生成物の読み込み:正規表現での全体検索時、ビルド成果物(dist/target/.next/)、大容量のLockfile(package-lock.jsonpnpm-lock.yaml)、DBダンプファイルを何度も読み込んでしまいます。
  4. 過剰なモデルスペックの指定:単純なファイル検索やディレクトリ走査に、最上位推論モデル(claude-3-opus やThinkingを最大化したSonnet)を割り当ててしまうこと。

体系的なアーキテクチャ制約(.claudeignoreの徹底、プロンプトキャッシュ機構の活用、サブエージェントによるコンテキスト分離、精密なCLI設定)を導入することで、開発チームはClaude Codeのトークン消費量を70%〜80%削減し、同時にタスク成功率を向上させることが可能です。


2. トークン経済学:価格体系とキャッシュアーキテクチャ

トークンがどのように消費されるかを理解するために、Anthropic APIの価格体系とキャッシュ階層(2026年基準)を確認します:

Claudeモデル 基本入力 ($/1M) キャッシュ書き込み ($/1M) キャッシュ読み込み ($/1M) 出力 ($/1M) SWE-bench Verified ターミナルでの最適役割
Claude 3.5 / 3.7 Haiku $0.80 $1.00 $0.08 $4.00 41.2% シンボル探索、正規表現フィルタ、コミット作成
Claude 3.7 Sonnet (Standard) $3.00 $3.75 $0.30 $15.00 70.3% 中核リファクタリング、複数ファイル編集、テスト修正
Claude 3.7 Sonnet (Extended Thinking) $3.00 (入力) $3.75 (書き込み) $0.30 $15.00 (思考+出力) 72.8% 複雑なアーキテクチャバグ、並行処理競合の調査
Claude 3 Opus / Opus 4.6 $15.00 $18.75 $1.50 $75.00 74.1% 高難度セキュリティ監査、システム全面再設計

コストとトークンを75%削減する計算モデル

15万行のTypeScriptリポジトリにおいて、REST APIエンドポイントをリファクタリングする典型的な15ターンのセッションを比較します:

[最適化なしの通常セッション]
ターン 1: リポジトリマップ + package-lock.json + スキーマを読み込み (180,000 トークン)
ターン 2-5: Grepの生出力、ビルドログ、ファイル全行読み込み (累積 240,000 トークン/ターン)
キャッシュミス率: 45% (動的ツール定義やヘッダーによるキャッシュ破棄)
処理された入力トークン合計: 3,250,000
実質コスト (Sonnet): 約 $9.75

[最適化済みセッション: .claudeignore + Prompt Cache + サブエージェント]
ターン 1: クリーンなASTサマリー (18,000 トークン) -> ターン1でキャッシュ確定
ターン 2-5: 差分パッチ、Scoutエージェントが圧縮サマリーを返却 (22,000 トークン/ターン)
キャッシュヒット率: 92% ($0.30/1Mの割引レートで読み込み)
処理された入力トークン合計: 410,000 (物理トークンを87.3%削減)
実質コスト (Sonnet): 約 $0.82 (コストを91.5%削減)

3. 第1の柱:無駄なコンテキストを排除する.claudeignoreの徹底活用

リポジトリにおいて最も投資対効果の高い施策は、徹底的に作り込まれた本番レベルの.claudeignoreを配置することです。

Claude Codeはデフォルトで.gitignoreを尊重しますが、標準の.gitignoreにはLLMのコンテキストを汚染する巨大ファイルが多数含まれがちです。Lockfile、ドキュメントアセット、ビルド出力、縮小(minify)済みバンドルなどは、エージェントのコンテキストに絶対に含めてはなりません。

実践向け.claudeignoreテンプレート

プロジェクトのルートディレクトリに配置してください:

# ==============================================================================
# .claudeignore - トークン削減除外マトリクス
# GlobおよびGrep走査時にClaude Codeが不要な成果物を読み込むのを防ぐ
# ==============================================================================

# パッケージ依存のLockfile(AST解析に不要な巨大JSON/YAML)
package-lock.json
pnpm-lock.yaml
yarn.lock
bun.lockb
composer.lock
Gemfile.lock
Cargo.lock
poetry.lock

# 生成されたビルド成果物とバンドル
dist/
build/
out/
.next/
.nuxt/
.astro/
.svelte-kit/
storybook-static/
target/
*.min.js
*.min.css
*.map

# テストカバレッジ、ログ、プロファイリング
coverage/
.nyc_output/
*.lcov
*.log
npm-debug.log*
yarn-debug.log*
pnpm-debug.log*
*.heapsnapshot
*.cpuprofile

# メディア、画像、バイナリファイル
public/assets/
public/images/
*.png
*.jpg
*.jpeg
*.gif
*.svg
*.webp
*.avif
*.ico
*.pdf
*.zip
*.tar.gz
*.wasm

# ドキュメントおよび外部API仕様
docs/
*.mdx
specs/swagger/
*.postman_collection.json

# 環境変数および秘密鍵
.env*
!.env.example
*.pem
*.key
*.cert

# データベースマイグレーションおよびSQLダンプ
*.sql
*.dump
prisma/migrations/

.claudeignore導入の実測効果

Claude Codeがディレクトリを再帰探索する際、無視設定されていないpackage-lock.json(25,000〜80,000行)を1回読み込むだけで、即座に120,000トークン以上が消費されます。Lockfileやコンパイル成果物をブラックリスト化することで、初回スナップショットは180kトークンから15kトークン未満へと劇的に削減されます。


4. 第2の柱:プロンプトキャッシュ(Prompt Caching)構造と90%割引の最大活用

AnthropicのPrompt Caching機構では、入力トークンが最大5分間サーバー側にキャッシュされます(キャッシュヒットごとにタイマー更新)。キャッシュ読み込みのコストは基本入力コストのわずか10%(Sonnetでは通常$3.00/1Mに対し$0.30/1M)です。

+-------------------------------------------------------------------------+
|                  Anthropic Prompt Cachingのライフサイクル               |
+-------------------------------------------------------------------------+
                                     |
                                     v
+-------------------------------------------------------------------------+
| [システムプロンプトとツール定義] (静的プレフィックス - 常時キャッシュ)   |
+-------------------------------------------------------------------------+
                                     |
                                     v
+-------------------------------------------------------------------------+
| [リポジトリ構造マップとコーディング規約] (キャッシュチェックポイント)    |
+-------------------------------------------------------------------------+
                                     |
                                     v (キャッシュブレークポイント!)
+-------------------------------------------------------------------------+
| [動的なユーザー指示とツール呼び出し履歴] (未キャッシュの動的テール)      |
+-------------------------------------------------------------------------+

キャッシュの整合性を保つための鉄則

  1. システムコンテキストに動的タイムスタンプを埋め込まないCLAUDE.mdに日付や動的セッションIDを含めないでください。プレフィックスの1文字が変わるだけで、後続のキャッシュがすべて無効化されます。
  2. 5分間のウィンドウ内で連続して作業を行う:キャッシュのTTLは300秒です。コードレビューで6分間放置すると、次のターンでフル書き込み料金($3.75/1M)が発生します。
  3. 指示を静的なものから動的なものの順に並べる:Claude Codeの内部処理系は、APIリクエストの先頭に静的な指示とツール定義を配置します。CLAUDE.mdの記述内容が決定論的であることを確認してください。

5. 第3の柱:サブエージェントの起動とサブタスクのコンテキスト分離

ターミナルエージェントで最大の落とし穴となるのがモノリシックセッション(単一長大セッション)の罠です。1つのセッション内で、バグ調査、テスト作成、コードのリファクタリング、統合テストの実行、ドキュメント作成をすべて連続して行おうとすることです。

12ターン目に入る頃には、コンテキストウィンドウは失敗したテストの大量ログや古いファイル内容で溢れ返ります。それ以降の指示は、この膨大な不要データを毎回送信することになります。

2層エージェントアーキテクチャ:Scout(偵察)とWorker(実行)

コード探索とコード改変を切り離すことで、無駄なトークン消費を遮断します:

[ユーザーのタスク要求]
       |
       v
+---------------------------------------------+
|  第1層: 読み取り専用Scoutサブエージェント   |
|  - claude-3-5-haiku / 軽量モデルで実行      |
|  - Glob, Grep, 行指定読み取りを使用         |
|  - 500,000トークンの情報を2KBの要約に圧縮   |
+---------------------------------------------+
       |
       v (圧縮されたコンテキストの受け渡し)
+---------------------------------------------+
|  第2層: メイン作業エージェント              |
|  - claude-3-7-sonnet で実行                 |
|  - 正確なファイルパスとASTシンボルのみを受信|
|  - 行アンカーによる局所パッチを適用         |
+---------------------------------------------+

Claude Codeにおけるサブタスク分離の実践

大規模な機能を開発する際は、独立したターミナルセッションまたは明確に分離したタスクに分割します:

# 悪い例: 1つのセッションでコンテキストが膨張
claude "非推奨の認証を使っている箇所をすべて探し、OAuth2に移行し、テストを修正してドキュメントを作成して"

# 良い例: 偵察の分離 -> 局所的実行
# ステップ 1: 低トークンで事前調査
claude --model claude-3-5-haiku -p "非推奨の認証ミドルウェアを使用しているファイルパスと行番号を特定し、JSONリストで出力してください" > auth-audit.json

# ステップ 2: クリーンなコンテキストでピンポイント修正
claude --model claude-3-7-sonnet "auth-audit.jsonに記載されたエンドポイントをOAuth2にリファクタリングしてください。関係のないファイルは触らないでください。"

6. 第4の柱:最適なモデル選定 — どのClaudeモデルがトークン消費が少ないか?

同じタスクでも、選択するモデルによってトークン消費量は大きく異なります:

  • Thinking(思考)予算:拡張思考モードを備えたモデルは、思考過程で数千トークンを生成し、これらはすべて出力トークンとして課金されます(Sonnetでは$15.00/1M)。
  • ツール呼び出しの冗長性:一部のモデルはツール実行前に長文の説明を出力し、出力トークンを増やします。
  • 検索の効率性:賢いモデルは1〜2回の正確なGrepで目的の場所を見つけますが、能力の低いモデルはファイル全体を盲目的に読み込んでしまいます。

タスク別のトークン消費実測比較

タスク種別 Claude 3.5 Haiku Claude 3.7 Sonnet (通常) Claude 3.7 Sonnet (8k Thinking) Claude 3 Opus
シンボルの探索 12k トークン / $0.01 14k トークン / $0.04 24k トークン / $0.18 18k トークン / $0.27
単一関数のバグ修正 28k トークン / $0.03 22k トークン / $0.07 35k トークン / $0.24 30k トークン / $0.45
複数ファイルのリファクタ 失敗率高 140k トークン / $0.48 190k トークン / $1.25 220k トークン / $3.30
難解な並行処理バグ 解決不能 320k トークン (失敗) 240k トークン (解決) / $1.60 280k トークン / $4.20

推奨選定マトリクス

  • 日常の主力モデル:日々の開発作業の80%には、通常モードの claude-3-7-sonnet を使用します。
  • 探索とスクリプト作成:ファイル検索、正規表現作成、簡単なシェルスクリプトには claude-3-5-haiku を使用します。
  • 拡張思考モードの限定適用:初回の試行で解決しなかった複雑なアルゴリズムの境界値や並行処理問題にのみ、思考予算(例:thinking: { budget_tokens: 4000 })を有効化します。

7. 高度なClaude Code設定とコンフィグ最適化

Claude Codeは詳細な動作調整が可能です。~/.claude.json でグローバル設定を、.claude/config.json でプロジェクト固有の設定を管理します。

高効率設定 .claude/config.json

{
  "$schema": "https://json.schemastore.org/claude-code-config.json",
  "model": "claude-3-7-sonnet",
  "maxThinkingTokens": 2048,
  "autoCompactContext": true,
  "contextCompactionThreshold": 0.65,
  "allowedTools": [
    "Edit",
    "Bash",
    "Glob",
    "Grep",
    "Read"
  ],
  "toolLimits": {
    "bashOutputMaxLines": 150,
    "readFileMaxLines": 300
  },
  "enableTelemetry": false
}

主要パラメータの解説

  1. maxThinkingTokens: 2048:拡張思考の生成トークン数を制限します。デフォルトのままだと、単純なタスクでも1ターンで8k〜16kトークン($0.12〜$0.24)を消費することがあります。
  2. autoCompactContext: true:コンテキストウィンドウの使用率が65%(contextCompactionThreshold: 0.65)に達した時点で自動的に会話履歴を要約し、不要なトークンを解放します。
  3. bashOutputMaxLines: 150:テスト実行やパッケージインストール時に、数千行の標準出力がコンテキストにそのまま流れ込むのを防ぎます。

8. トークンを節約するターミナルプロンプトの実践パターン

日常的なプロンプトの出し方で、セッションのトークン消費の最大40%が決まります:

パターン 1:行番号範囲を指定した読み込み

ファイル全体を読ませるのではなく、対象の行番号を明示します:

# 悪い例: 1,800行(約14,000トークン)を消費
"src/auth/session.ts を読んでユーザー検証が失敗する原因を調べて"

# 良い例: 60行(約450トークン)のみ消費
"src/auth/session.ts の120〜180行目にある verifyJwt() の定義を確認して"

パターン 2:コマンド出力の抑制とフィルタリング

テストやビルドを実行させる際は、最小限の出力形式を指定します:

# 悪い例: 通過した大量のテストログをコンテキストに流し込む
"npm test を実行してエラーを修正して"

# 良い例: 出力を最小限に抑える
"npm test -- --reporter=dot を実行するか、grepでエラー箇所だけを抽出して。成功したログは出力しないで。"

パターン 3:定期的なセッション整理(/compact/clear

Claude Codeの組み込みコマンドを活用します:

  • /compact:現在の会話履歴を即座に要約圧縮し、技術的サマリーに置き換えます。
  • /clear:別の作業に移る際、ターミナルを再起動せずにコンテキストを完全にリセットします。

9. トークン削減戦略の総合比較マトリクス

最適化戦略 平均トークン削減効果 導入の難易度 コード品質へのリスク 主な効果メカニズム
厳格な.claudeignore 40% – 60% 低 (5分) ゼロ Lockfile、メディア、ビルド出力を遮断
コンテキスト要約 (/compact) 30% – 50% 即時 (コマンド実行) 古いBashログや過去のファイル差分を消去
サブエージェントによる事前調査 35% – 55% 中 (作業手順の分割) 極めて低い 探索フェーズと編集フェーズを完全分離
Thinking予算の上限設定 20% – 35% 低 (設定変更) 低〜中 単純な修正での思考ループの暴走を抑制
局所的な差分パッチ編集 15% – 25% 低 (プロンプト指示) 全体書き換えを防ぎ行単位の差分のみ適用
プロンプトキャッシュの構造化 10% – 20% (費用) ゼロ 静的プレフィックスを固定し90%割引を享受

10. 結論と即時実践チェックリスト

Claude Codeのトークン消費を75%削減することは、コードの品質低下を意味しません。むしろ、コンテキストを無駄のない状態に保つことで、モデルの注意散漫(Attention Drift)やハルシネーションを防ぎ、タスクの精度を大幅に引き上げることができます。

5ステップ即時実践チェックリスト:

  1. [ ] .claudeignore の導入:本番用テンプレートをリポジトリルートに配置し、Lockfileとビルド成果物を除外する。
  2. [ ] config.json の設定:思考トークンを 2048 に制限し、autoCompactContext0.65 で有効化する。
  3. [ ] タスクに応じたモデル選択:編集には claude-3-7-sonnet、探索には claude-3-5-haiku を使い、拡張思考は難問に限定する。
  4. [ ] ターミナル出力の制限:テスト実行時の引数を工夫し、Bashの出力を100行以内に抑える。
  5. [ ] コンテキストの定期リセット:タスクの合間に /compact/clear を活用し、Context Rotを防止する。

これらのベストプラクティスを開発習慣に組み込むことで、Claude Codeの高度な開発力を最大限に引き出しつつ、月々のAPIコストを劇的に圧縮できます。

← 記事一覧へ
0 / 4