AIエージェントのコンテキストコスト:プロンプトとツール呼び出しの測定方法
マルチステップAIエージェントにおけるコンテキストコストの測定と最適化の実践ガイド:ツールスキーマ分解、ベースライン測定、品質検証手順を解説。
Claude Code、Cline、Roo Codeなどの自律型AIエージェントや独自のマルチステップワークフローを開発する際、API利用料金が予想以上に急増する問題が発生します。この原因はコンテキストの累積伝播にあります。エージェントが推論を繰り返すたびに、システムプロンプト、登録されたすべてのツール定義スキーマ、過去の会話ログ、そしてツールの実行結果(ファイルの中身やターミナル出力)が毎回モデルへ再送されるためです。
品質を損なわずにAPI費用を抑えるには、再現可能なテストタスクでベースラインを測定し、単一変数実験によって不要なトークン消費を特定・削減する必要があります。
エージェントコンテキストの構造:何にトークンが消費されているのか
各実行ステップにおいて、モデルに送られるコンテキストは主に4つの要素で構成されます:
- システムプロンプトと指示(System Prompt): 基本ルール、コーディング規約、プロジェクトのコンテキスト情報。
- ツール定義スキーマ(Tool Schemas): 接続されている全関数のJSON Schema定義。20個のツールを渡すと、スキーマ情報だけで毎ステップ3,000〜15,000トークンを消費します。
- メッセージ履歴(Message History): ユーザーの指示とエージェントの過去の試行履歴。
- ツールの実行結果(Tool Outputs): 読み取ったファイル内容、ターミナル実行ログ、APIレスポンス。
10ステップのタスクを実行する場合、15,000トークンの基本コンテキストはプロンプトキャッシュを利用しない限り、10回分(計150,000トークン)の入力トークンとして課金されます。
コンテキスト構成要素と最適化手法の比較
ステップ別ガイド:ベースライン測定とコスト削減手順
以下の単一変数検証手順でエージェント環境を最適化します:
ステップ1. 再現可能なテストタスクを設定する
合否判定が自動化できる明確なエンジニアリングタスクを選定します(例:「指定ファイル内のバリデーション関数を特定し、例外処理を追加してテストコマンドを実行・パスさせる」)。
ステップ2. ベースラインを測定する(Input, Output, Cache)
標準設定でタスクを実行し、ログまたは管理画面から以下を記録します:
- 完了までのステップ数(例:10ステップ)
- 入力トークン合計(例:150,000トークン)
- 出力トークン合計(例:2,500トークン)
- プロンプトキャッシュ利用量
- 適用レートに基づく費用
例えば、1M入力トークンあたり0.45となります。
2026-08-22現在の主要モデルの正規料金は、BetterToken公式価格ページで確認できます。BetterToken Dashboardでは、ステップごとの入力・出力・キャッシュトークンの内訳を詳細に確認できます。
ステップ3. コンテキスト変数を1つずつ変更して実験する
パラメータを1つだけ変更したテストを実行します:
- 実験A(ツールフィルタリング): 15個のツールを3個(read_file, replace_content, run_test)に限定(ステップごとに最大8,000トークン削減)。
- 実験B(ログ出力の切り詰め): ターミナル出力全体ではなく、エラー部分の先頭50行のみをコンテキストに渡す。
- 実験C(プロンプトキャッシュの固定): システムプロンプトとツール定義を先頭に固定配置し、読み取り単価を約$0.30/1Mトークンに抑える。
ステップ4. コスト削減効果と成果物品質を検証する
ベースラインと結果を比較し、テスト通過率と処理速度を維持したまま入力トークンを40〜60%削減できた設定を本番構成として採用します。
AIエージェント運用のベストプラクティス
- 軽量サブエージェントへの委譲: 親エージェントに全権限を持たせず、コード調査には読み取り専用の軽量サブエージェントを使用する。
- プレフィックスの固定化: 静的な指示をリクエストの最前部に配置し、プロンプトキャッシュを最大限に活用する(最大90%の読み取り割引)。
- 最大ステップ数の制限: エラーによる無限ループを防ぐため、1タスクあたりの最大反復回数(例:15ステップ)を厳格に設定する。
注意すべき落とし穴
- ツールの過剰な削除: 必要なパラメータ定義まで削るとJSON不正エラーが発生し、再試行でトークンが無駄になります。
- SNS上の削減数値の盲信: 最適化効果はリポジトリの構造やファイルサイズに依存します。
- テレメトリの欠如: キャッシュの適用状況を把握するため、BetterTokenドキュメントを参照してAPI利用状況を可視化してください。