Claude Code /goal トークン消費を最小化する — コスト計算式&4つのチューニング戦略

公式ドキュメントは /goal のトークン消費を「無視できる」と書くが、長時間実行や暴走時には現実的なコストになる。 この記事では計算式と4つのチューニング戦略を提示する。
/goalのコスト構造
/goal のトークン消費は「メインターン」と「評価器(Haiku)」の2層で発生する。
1ターンあたりの総トークン:
= メインモデル(Sonnet/Opus)入出力
+ Haiku評価器(会話ログを読んで判定)
評価器のコスト ≒ メインターンの5-10%
Anthropic公式のpricing pageを参照すると、2026年5月時点で:
- Sonnet: 入力 $3 / 1M tokens、出力 $15 / 1M tokens
- Haiku: 入力 $0.25 / 1M tokens、出力 $1.25 / 1M tokens
- Opus: 入力 $15 / 1M tokens、出力 $75 / 1M tokens
Haikuの単価はSonnetの約1/12。 評価器が毎ターン走っても、コスト全体への影響は小さい。
試算: 月額いくらかかる?
実務想定で見積もる。
想定: 1日10ターン × 月20営業日 = 月200ターン
| 項目 | 1ターンあたり | 月200ターン |
|---|---|---|
| メイン(Sonnet)入力 | 5,000 tokens × $3/M = $0.015 | $3.00 |
| メイン(Sonnet)出力 | 1,500 tokens × $15/M = $0.022 | $4.50 |
| Haiku評価器 | 5,500 tokens × $0.25/M = $0.0014 | $0.28 |
| 合計 | $0.038 | $7.78(約1,200円) |
Haikuの追加コストは月額約 42円。Sonnetの利用料7,500円に対して0.5%程度の上乗せに過ぎない。
暴走時: ターン上限なしで20分回り続けた場合
| 項目 | 想定 |
|---|---|
| ターン数 | 100ターン(5分1ターンペース) |
| メイン累積トークン | 65万 tokens × Sonnet単価 → 約 $13.5(約2,000円) |
| Haiku評価器 | 約 $1.5(約220円) |
| 暴走1回の損失 | 約2,200円 |
月に5回暴走すれば1万円超えになる。これが「ターン上限を必ず併記すべき」最大の理由だ。
チューニング戦略1: progress.md でコンテキスト圧縮
長時間実行で最大のコスト源は 会話ログの累積トークン だ。10ターン目のClaudeは、1-9ターン目の会話ログをすべて読み込む。
これを防ぐのが progress.md。
progress tracking:
各ターン終了時に progress.md を更新(200字以内)。
内容: 完了ステップ / 採用判断 / 残課題 のみ。
過去の試行錯誤の詳細は含めない。
会話ログ10KBを progress.md 200字に圧縮するイメージ。累積トークンが大幅減する。
チューニング戦略2: ターン上限を必ず明記
絶対のルール。例外なし。
# ✅ 安全
/goal テスト全件通過, or stop after 15 turns
/goal リファクタ完了, or stop after 30 minutes
/goal coverage>=80, or stop after 15 turns or 20 minutes
# ❌ 危険(暴走リスク)
/goal テスト全件通過
/goal いい感じに整える
ターン上限の数値の決め方:
- 単純タスク(テスト1モジュール): 5-10ターン
- 中規模(モジュール全体のリファクタ): 15-20ターン
- 大規模(プロジェクト横断の変更): 25-40ターン
それ以上必要な場合は タスクを分割すべきサイン だ。
チューニング戦略3: CLAUDE.md でルール集約
毎ターンのプロンプトを短くするには、プロジェクト共通ルールを CLAUDE.md に集約する。
# ❌ ゴール文に毎回ルールを書く(無駄)
/goal リファクタ完了。
TypeScriptを使う。any禁止。テストはvitest。lintはbiome。
カバレッジ80%以上を維持。migrations/触らない。...
# ✅ CLAUDE.mdに集約、ゴール文は短く
/goal src/auth/ のリファクタが完了し、CLAUDE.mdの完了基準を満たす
CLAUDE.md は毎ターン自動で読み込まれるため、ゴール文を短く書いても精度が落ちない。 トークン削減と保守性の両立。
チューニング戦略4: 失敗早期検出
評価器が「未達成」を返し続けるパターンを早期に検出して停止する。
done when:
- test/auth/ 全テスト pass
failure pattern:
- 2ターン連続で同じテストが失敗したら停止して原因報告
- npm install が3回連続失敗したら停止
- 同じファイルを4回連続編集したら停止
これらは Anthropic公式の /goal 仕様には無いが、do not ブロックや done when の補助条件として記述できる。 評価器がこのパターンを認識し、暴走を未然に止める。
チューニング後の試算
4つの戦略を適用した場合のコスト試算。
| 項目 | チューニング前 | チューニング後 | 削減率 |
|---|---|---|---|
| 平均ターン数 | 8ターン | 4ターン | -50% |
| ターンあたりトークン | 6,500 | 4,000 | -38% |
| 暴走回数 / 月 | 5回 | 0回 | -100% |
| 月額コスト | 約3,200円 | 約600円 | -81% |
月3,000円近く減らせる計算になる。Kanau Tech™が業務 /goal をスケールさせる際の実測値もこの範囲に収まる。
よくある質問
/goal の追加トークンコストは月額いくらになりますか?
1日10ターン × 月20営業日 = 200ターン使う想定で、Haiku評価器のコストは 月額約100-300円程度が目安だ。メインモデル(SonnetやOpus)の利用料と比べれば誤差レベルだが、ターン上限なしで暴走させると数千円〜数万円になり得る。
ターン上限なしだとコスト爆発しますか?
はい。完了条件が曖昧で評価器が「未達成」を返し続けると、Claudeが無限にターンを回す。経験的に「ターン上限なし」は最低でもターン上限15-20を併記すべきだ。
Haiku評価器のトークン消費を削減できますか?
可能だ。会話ログをコンパクトに保つ(progress.md に進捗を書き出してメインプロンプトから古い情報を削減)、CLAUDE.md に判定ロジックを集約、評価頻度を「3ターンに1回」に間引きする等の手段がある。
長文 progress.md はコストに響きますか?
響く。progress.md が10KB超えると毎ターンの再読込でトークンが累積する。1000字以内に圧縮、過去ステップは別ファイル(progress-archive.md)に逃がす、等の工夫が必要だ。
Sonnet vs Opus でコスト差は何倍ですか?
Opus は Sonnet の 約5倍(入力トークン単価)。/goal の長時間実行は Sonnet を基本とし、Opus は「複雑な判断が必要なターン」だけに限定すると最適だ。
関連記事
- Claude Code /goal 完全ガイド — シリーズPillar
- 自律実行のループ&コスト爆発を回避する戦略 — リスク管理詳細
- Claude Code /goal 完了条件の書き方 — 5つのベストプラクティス — ゴール文の書き方
