mcpField
C
cost-metering

cost-metering

github.com/scientiacapitalエージェントワークフロー2874 回インストール3 週間前に更新
リポジトリ

cost-metering について

Claude API のワークフロー向けに、セッション費用の記録、予算アラート、タスク別のモデル振り分けを行うスキルです。支出はローカルの JSON ファイルに保存され、workflow-orchestrator のコストゲートとも連携できます。

主な機能

  1. 01日次 API 支出の追跡
  2. 02予算の50・80・95%でアラート
  3. 03タスク種別に応じたモデル振り分け
  4. 04週次・月次支出レポートの作成
  5. 05機能単位のコスト指標を記録
  6. 06ワークフローのコストゲートに対応

活用シーン

  1. 01現在の支出と日次予算の残額を確認
  2. 02予算しきい値で警告または処理を停止
  3. 03検索・コーディング・一括処理にモデルを選択
  4. 04モデル別または工程別に費用を集計

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/scientiacapital/skills --skill cost-metering

インストール後、Claude Code で/cost-meteringを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

config.json
reference/
budget-templates.md
cost-tracking-guide.md

詳細

セッションごとの Claude API コストを、予算アラート、モデルルーティングの最適化、支出レポートを使って追跡します。自動的な予算管理のため、workflow-orchestrator のコストゲートと統合します。

<quick_start> 現在の支出を確認:

cat ~/.claude/daily-cost.json 2>/dev/null || echo "No tracking yet"

追跡を初期化:

mkdir -p ~/.claude
echo '{"date":"'$(date +%Y-%m-%d)'","spent":0,"budget_monthly":100,"budget_daily":5}' > ~/.claude/daily-cost.json

</quick_start>

<success_criteria>

  • ~/.claude/daily-cost.json で日次コスト追跡が初期化されている
  • 50%(情報)、80%(警告)、95%(ブロック)のしきい値で予算アラートが発生する
  • モデルルーティングが適用されている:検索/分類には Haiku、コードには Sonnet、大量処理には DeepSeek
  • portfolio-artifact との統合により、機能あたりのコスト指標を利用できる
  • 月間支出が設定済み予算(デフォルトは月額 $100)以内に収まる </success_criteria>
- 「コスト確認」、「予算状況」、「いくら使ったか」 - 「コスト最適化」、「コスト追跡」、「予算アラート」 - 「モデルルーティング」、「より安価なモデル」、「コストレポート」

モデル料金(現在)

モデル入力/100万トークン出力/100万トークン主な用途
Claude Opus 4.6$5.00$25.00アーキテクチャ、複雑な推論
Claude Sonnet 4.6$3.00$15.00コード生成、標準タスク
Claude Haiku 4.5$1.00$5.00検索、分類、簡単なタスク
DeepSeek V3$0.27$1.10大量処理
GROQ Llama 3.3 70B$0.59$0.79高速推論
Voyage Embeddings$0.10—埋め込み

v1.1.0 の料金変更: Opus $15/$75 → $5/$25(Opus 4.6 で 70% 安価)。Haiku $0.25/$1.25 → $1/$5(Haiku 3 → 4.5 で 4 倍高価)。Sonnet $3/$15 は変更なし(モデルを 4.5 → 4.6 にアップグレード)。


予算設定

~/.claude/daily-cost.json
{
  "date": "2026-02-07",
  "spent": 2.40,
  "budget_monthly": 100,
  "budget_daily": 5,
  "alerts": {
    "info": 0.5,
    "warn": 0.8,
    "block": 0.95
  }
}
アラートのしきい値
しきい値予算の割合アクション
情報50%表示:「月間予算の 50% を使用しました」
警告80%黄色のアラート:「⚠️ 予算の 80% — モデルのダウングレードを検討してください」
ブロック95%赤色のアラート:「🛑 予算の 95% — 続行するには明示的な上書きが必要です」

コスト最適化戦略

1. モデルルーティング(最大の効果)
タスク高コスト最適化後削減率
ファイル検索Sonnet($3/1M)Haiku($1/1M)67%
コードレビューSonnet($3/1M)Haiku($1/1M)67%
分類Sonnet($3/1M)Haiku($1/1M)67%
大量処理Sonnet($3/1M)DeepSeek($0.27/1M)91%

ルール: タスクでコードを生成しない場合は Haiku を使用します。Claude が不要な場合は DeepSeek を使用します。

2. コンテキスト管理
  • SKILL.md ファイルは 200 行未満に保ちます(段階的な情報開示)
  • 必要な場合にのみ参照ファイルを読み込みます
  • コードベースの検索には、haiku モデルを使う Explore エージェントを使用します
  • ファイル全体を読むのは避け、Grep を使って特定の行を検索します
3. タスクのバッチ処理
  • 関連する検索を 1 回の Explore エージェント呼び出しにまとめます
  • 逐次的な sonnet 呼び出しではなく、並列サブエージェント(haiku)を使います
  • 可能な場合はファイルの読み込みをまとめます

追跡コマンド

日次支出の確認
cat ~/.claude/daily-cost.json | jq '{date, spent, remaining: (.budget_daily - .spent), pct: ((.spent / .budget_monthly) * 100 | floor)}'
週次レポート
# Aggregate daily logs
cat ~/.claude/cost-log.jsonl | jq -s 'group_by(.phase) | map({phase: .[0].phase, total: (map(.est_cost) | add), count: length})'
月次サマリー
cat ~/.claude/cost-log.jsonl | jq -s '{
  total: (map(.est_cost) | add),
  by_model: (group_by(.model) | map({model: .[0].model, cost: (map(.est_cost) | add)})),
  by_phase: (group_by(.phase) | map({phase: .[0].phase, cost: (map(.est_cost) | add)}))
}'

統合ポイント

システム方法
workflow-orchestratorワークフローの前にコストゲートが予算を確認します
subagent-teamsモデルの選択にコスト階層を使用します
agent-capability-matrixモデルの推奨を含みます
portfolio-artifact機能あたりのコスト指標をレポートします
End Day protocol日次コストを記録し、MTD を更新します
TaskCreate/TaskUpdateAPI コストはゼロ — 進捗追跡用のローカル UI ツールです
TeamCreate/SendMessageAPI コストはゼロ — ローカルでの連携(ただし、起動したエージェントにはモデルコストがかかります)

保存先

~/.claude/
├── daily-cost.json          # Current day's budget + spend
├── cost-log.jsonl           # Append-only operation log
└── portfolio/
    └── daily-metrics.jsonl  # Includes cost-per-feature

詳細: reference/cost-tracking-guide.md、reference/budget-templates.md を参照してください

結果サイドカーの出力

最後の手順として、~/.claude/skill-analytics/last-outcome-cost-metering.json に書き込みます:

{"ts":"[UTC ISO8601]","skill":"cost-metering","version":"1.1.0","variant":"default",
 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
 "metrics":{"sessions_tracked":[n],"total_cost_usd":[n],"budget_alerts":[n]},
 "error":null,"session_id":"[YYYY-MM-DD]"}

一部のステージが失敗しても結果が生成された場合は、ステータスに「partial」を使用します。出力がまったく生成されなかった場合にのみ、「error」を使用します。

コメント