概要
- Claude Codeのリクエストは 入力トークン と 出力トークン の2段階課金
- プロンプトキャッシュ 活用でコスト最適化が可能
- セッション履歴やツール出力が 文脈(コンテキスト) に蓄積される仕組み
- モデル切替や/effort変更 はキャッシュ破棄の要因
- サブエージェント 活用で不要な履歴を本体コンテキストから分離可能
Claude Codeにおけるトークン課金とプロンプトキャッシュの仕組み
- Claude Codeのリクエスト処理は プレフィル(入力) と デコード(出力) の2段階
- プレフィル:システムプロンプトや会話履歴を 入力トークン としてGPUに送信
- デコード:モデルが 出力トークン を1つずつ生成、1トークンごとにGPUを長時間占有
- 出力トークン は 入力トークンの約5倍のコスト
- 出力には「思考トークン」も多く含まれ、/effortコマンドで思考量調整が可能
- /effort設定はセッションごとに保持され、次回以降もデフォルトで適用
- /modelや/effortの変更時は キャッシュ破棄 が発生し、全履歴が再度フルコストで送信される
プロンプトキャッシュの動作原理とコスト最適化
- プロンプトキャッシュ :直前のリクエストと同一のトークン列で始まる場合、その部分の状態をキャッシュから再利用
- キャッシュからの読み出しは 通常入力の0.1倍のコスト
- キャッシュへの書き込みは 通常入力の最大2倍コスト (ただし1回限り)
- Claude Codeは全リクエストでキャッシュを自動管理
- キャッシュ利用のためにはリクエスト先頭部分(ツール定義、システムプロンプト、CLAUDE.md、会話履歴)が完全一致している必要
- キャッシュ破棄要因
- /model、/effort、fast mode、/compactの利用や、リクエスト先頭部分の変更
- キャッシュ有効期限:サブスクリプションは1時間、APIキーは5分
- /rewind で直近の履歴のみ削除すれば、キャッシュは維持されコスト増加なし
- /compactは会話全体を書き直すためコスト増加
セッションコストの決定要素とコンテキスト管理
- セッションコストは 文脈(コンテキスト)に含まれるトークン数 と それが何ターン保持されるか が主要因
- コンテキストには以下が含まれる
- ツール定義、システムプロンプト、CLAUDE.md(起動時にロード)
- 会話中に追加されたツール結果(ファイル読み込みやコマンド出力)
- ファイル参照は@メンション推奨 :最初のリクエストに添付されReadコール不要
- コマンド出力は30,000文字超で自動的にファイル化、会話にはプレビューのみ
- 不要な履歴や出力は/clearや/compactで整理
- /renameでセッション名変更後に/clearで履歴管理
- /autocompactで自動コンパクト設定も可能(Claude Code v2.1.221+)
サブエージェントの活用
- サブエージェント :独立したコンテキストで処理し、本体には結果のみ返却
- 本体コンテキストが不要な履歴で圧迫されるのを防止
- サブエージェントは独自のトークンコストが発生、小規模処理では割高
- 大量出力処理やノイズが多い作業で有効
- 定期的に実行するノイジーなジョブは model: haiku や sonnet 指定でサブエージェント化推奨
コスト最適化のための実用Tips
- /model, /effort, fast modeの切替はセッション開始直後か/clear直後が最適
- /rewind で不要なターンのみ削除し、キャッシュ維持
- @メンション でファイル指定しReadコール削減
- CLAUDE.md には頻繁に使うコマンドや静かなフラグを記載
- /clearや/compact で文脈の無駄な肥大化を防止
- サブエージェント で不要な履歴を本体から切り離し
以上がClaude Codeのトークン課金・キャッシュ・コンテキスト管理の要点とコスト削減の実践知となります。