AI コスト分析
Claude Code エージェントループのトークン使用量・コスト内訳・キャッシュ効率の分析。プロジェクト全体のAIコストパフォーマンスを可視化する。
はじめに
本ページは、AI エージェントを用いたソフトウェア開発のコスト構造に興味がある方向けの分析レポートです。
SOLAR LINE 考証プロジェクトは Claude Code による自律エージェントループで開発されています。Claude Code は、メインセッション(Opus モデル)が開発タスクを統括し、必要に応じてサブエージェント(Sonnet/Haiku モデル)を起動してファイル探索やレビューなどの補助タスクを並列処理します。開発環境(VM)の起動から終了までが1回の「VMブート」であり、その中で複数のセッション(タスク単位の対話)が実行されます。
要点: 97.3%のキャッシュヒット率により、大規模プロジェクトでも追加コストを極めて低く抑えられています。Max サブスクリプション利用時の追加課金はサブエージェント分のみで、1VMブートあたり約$6.50です。
概要
主要指標
| 指標 | 値 |
|---|---|
| 総トークン数 | 約3.6億 |
| サブエージェントコスト(Haiku・測定時点) | $6.57 |
| メインセッションコスト(Opus) | $0(Maxサブスク) |
| キャッシュヒット率 | 97.3% |
| ツール呼び出し回数 | 4,675回 |
| サブエージェント起動数 | 120回 |
*注: 上記は1回のVMブート(エージェントループ実行環境の起動〜終了サイクル、58セッション)からのサンプルデータです。測定時点ではサブエージェントのデフォルトモデルが Haiku でしたが、その後品質上の理由から Sonnet に変更しています(後述)。*
プロジェクト規模
| 指標 | 値 |
|---|---|
| 完了タスク数 | 489 |
| コミット数 | 647+ |
| TypeScript ユニットテスト | 3,640 |
| Rust テスト | 497 |
| Playwright E2E テスト | 256 |
トークン分布
トークン使用量の97.3%がキャッシュ読み取りで、非常に効率的なキャッシュ活用を実現しています。
| カテゴリ | 割合 |
|---|---|
| キャッシュ読み取り | 97.3% |
| キャッシュ作成 | 2.7% |
| 入力+出力(実I/O) | <0.1% |
実質的な「仕事」(新規入力トークンとモデル出力)はトークン全体のごくわずかです。残りはコンテキスト維持のためのキャッシュ操作が占めています。キャッシュ読み取りは、過去のコンテキストを再送する際にキャッシュ済みトークンを再利用する仕組みで、API課金が大幅に割引されます。
対数スケールで表示すると、キャッシュ読み取りが全トークンの圧倒的多数を占めていることが明確になる。実質的な新規処理(赤)は0.1%未満であり、残りの99.9%以上はコンテキスト維持のためのキャッシュ操作である。
トークン分布(対数スケール)— 全体の97.3%がキャッシュ読み取り
コスト内訳
測定可能なコスト($6.57)の100%がHaikuサブエージェントから発生しています。Opusメインセッションは Max サブスクリプションに含まれるため追加コストなし。
モデル別使用状況
| モデル | 起動回数 | トークン割合 | コスト |
|---|---|---|---|
| Haiku | 95回 (79%) | 72% | $6.57 |
| Sonnet | 13回 (11%) | 21% | $0* |
| Opus | 12回 (10%) | 7% | $0* |
*Maxサブスクリプション対象のため追加コストなし
Haiku が起動回数(79%)・トークン量(72%)ともに最多で、単純タスクを大量に処理していた。Sonnet は少ない起動回数ながらトークン量は21%を占め、1回あたりの処理が重い。この分析後、品質上の理由から Haiku→Sonnet へデフォルトモデルを変更した。
サブエージェントの特性
各サブエージェントは平均して:
- 約83万6千トークンを消費(大部分はキャッシュ読み取り)
- 約16回のツール呼び出しを実行
- 88%が読み取り専用の探索タスク
Haiku は主にファイル探索・検索などの単純タスクに、Sonnet はコードレビューや複雑な分析に、Opus は設計判断を伴う高度なタスクに使い分けていました。
サブエージェント モデル別起動回数と消費トークン比率
効率化施策
実施済み
- TodoWrite頻度の削減: 状態遷移時のみ更新するよう CLAUDE.md に明記。全ツール呼び出しの9.8%を占めていた
- サブエージェントのデフォルトモデル変更: 当初は Haiku をデフォルトとしていたが、応答品質が不十分であったため Sonnet に変更。コスト増だが品質向上により手戻りが減少
- バックグラウンド実行: Whisper、yt-dlp等の長時間コマンドは
run_in_backgroundを使用 - サブエージェントのスコープ制限:
max_turnsでTool呼び出し回数を制限 - ワークフローのSkill化: 繰り返しパターンをSkillとして定義(episode-analysis, subtitle-extraction, report-review, cost-analysis)
効果
| 施策 | 影響度 | 節約見込み |
|---|---|---|
| TodoWrite頻度削減 | 高 | 200コンテキストターン/日 |
| Sonnetデフォルト化 | 中 | 品質向上による手戻り削減(コスト増とトレードオフ) |
| バックグラウンド実行 | 中 | セッションサイズ削減 |
| Read/Grep優先 | 中 | サブエージェント効率化 |
| max_turns制限 | 低-中 | 暴走防止 |
プラン別コスト比較
もし Max サブスクリプション以外のプランで同じ作業を行った場合のコスト見積もりです。API 料金は2026年2月時点の公式価格に基づきます。
料金体系
| モデル | 入力 | 出力 | キャッシュ読取 | キャッシュ書込 |
|---|---|---|---|---|
| Opus 4.6 | $5/MTok | $25/MTok | $0.50/MTok | $6.25/MTok |
| Sonnet 4.6 | $3/MTok | $15/MTok | $0.30/MTok | $3.75/MTok |
| Haiku 4.5 | $1/MTok | $5/MTok | $0.10/MTok | $1.25/MTok |
プラン別推定コスト(58セッション分)
| プラン | 総コスト | 1セッション平均 | 備考 |
|---|---|---|---|
| Max Plan | ~$7 + 月額$100〜200 | $0.12 | Opusは月額に含まれる。$100=Max、$200=上位プラン |
| API-only | ~$196 | ~$3.39 | 全トークンがAPI課金 |
| Batch API | ~$195 | ~$3.36 | 入出力50%引。キャッシュ読み取りは割引対象外のため節約効果は限定的 |
| Pro Plan + API | $20 + ~$196 | — | レート制限あり、エージェントループには非実用的 |
API-only の内訳
| 用途 | トークン | コスト |
|---|---|---|
| Opus メインセッション (260M) | キャッシュ読取97.3% | ~$174 |
| Haiku サブエージェント (72M) | キャッシュ読取97.3% | ~$10 |
| Sonnet サブエージェント (21M) | キャッシュ読取97.3% | ~$8 |
| Opus サブエージェント (7M) | キャッシュ読取97.3% | ~$5 |
| 合計 | 360M | ~$196 |
分析
キャッシュが極めて重要: 97.3%のキャッシュヒット率により、Opus の実質的な入力単価は $0.50/MTok(基本料金の10分の1)となっている。これがなければAPI-onlyコストは数千ドルに膨らむ。
Max Plan の効果: 月額$100〜200のサブスクリプションで約$196分のAPI利用が含まれる。1回のVMブートで回収できる計算であり、エージェントループ型の開発には非常に費用対効果が高い。
Pro Plan は非実用的: Pro Plan ($20/mo) はレート制限があり、エージェントループの速度を維持できない。エージェントループはレート制限を超えやすく、超過分は通常のAPI料金で課金されるため、結局API-only以上のコストになる可能性がある。
プラン別コスト比較(58セッション、サブエージェント+月額換算)
プロジェクト全体のコスト見積もり
推定パラメータ
プロジェクト全体(489タスク、647+コミット、4,393テスト)で:
- 1回のVMブートあたり約58セッション
- 1回のVMブートあたり約$6.50(サブエージェント分)
- Opus使用分: $0(Maxサブスクリプション)
- 推定7〜10回のVMブート → 合計約$45〜65(サブエージェント分のみ)
コスト効率の評価
キャッシュヒット率 97.3% は非常に優秀です。これは Claude Code のコンテキスト管理が効果的に機能していることを示しています。
主な最適化ポイントは:
- 不要なコンテキスト更新の削減(TodoWrite頻度)
- ストリーミング出力によるセッション膨張の防止
- サブエージェントの適切なモデル選択
更新方法
プロジェクト管理者がコスト分析を更新する場合は以下のコマンドを実行してください。bunx(Bunランタイム)と Claude Code のローカルログが必要です。
# ccusageでコストデータを取得:
bunx ccusage@17 session --offline --json --timezone Asia/Tokyo | \
npm run analyze-costs -- --mode session
# 日別サマリー:
bunx ccusage@17 daily --offline --json --timezone Asia/Tokyo | \
npm run analyze-costs -- --mode daily
関連ページ
- 技術解説: SOLAR LINE 考証の仕組み — プロジェクトアーキテクチャ、テスト戦略、Claude Codeエージェントループ
- クロスエピソード分析 — コストが投入された分析成果の全体像