mcpField
M
model-audit

model-audit

github.com/tushaarmehtaa開発1247 回インストール2 週間前に更新
リポジトリ

model-audit について

コードベース内の AI モデル設定と呼び出しを調べ、コストを見積もって最適化候補を特定するスキルです。モデル利用状況を確認する開発者向けです。

主な機能

  1. 01モデル設定と AI 呼び出しの検索
  2. 02別名から実際のモデル名への対応付け
  3. 03価格表に基づく呼び出しコストの推定
  4. 04キャッシュと Batch API 候補の確認
  5. 05モデル選定と設定の問題の指摘

活用シーン

  1. 01リリース前のモデル利用状況の確認
  2. 02機能ごとのモデル呼び出しコストの推定
  3. 03キャッシュに適した反復プロンプトの特定
  4. 04ハードコードや不統一なモデル選定の発見

インストール

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

$npx skills add https://github.com/tushaarmehtaa/tushar-skills --skill model-audit

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

詳細

コードベース内のすべての AI モデル呼び出しを監査します。モデル名だけでなく、実際のコスト計算を含むルーティングテーブルを出力してください。

フェーズ 1 — モデル設定を探す

モデルが定義されている場所を検索します:

grep -r "gpt-4\|claude\|gemini\|anthropic\|openai\|mistral\|groq\|llama" \
  --include="*.py" --include="*.ts" --include="*.js" --include="*.env*" \
  -l 2>/dev/null | head -30
grep -rn "MODEL\|model_config\|AI_MODEL\|LLM_MODEL\|OPENAI_MODEL\|ANTHROPIC_MODEL" \
  --include="*.py" --include="*.ts" --include="*.env*" -l 2>/dev/null

返されたファイルをすべて読みます。エイリアス → 実際のモデル文字列を対応付けます。例:AI_MODEL="claude-sonnet-4-6" または const FAST_MODEL = "gpt-4o-mini"。

フェーズ 2 — すべての AI 呼び出しを探す

# Anthropic
grep -rn "messages\.create\|anthropic\.messages\|client\.messages" \
  --include="*.py" --include="*.ts" --include="*.js"

# OpenAI
grep -rn "chat\.completions\.create\|openai\.chat\|completion\.create" \
  --include="*.py" --include="*.ts" --include="*.js"

# Google / Gemini
grep -rn "generate_content\|GenerativeModel\|genai\." \
  --include="*.py" --include="*.ts" --include="*.js"

# Embeddings
grep -rn "embeddings\.create\|embed_content\|embedding" \
  --include="*.py" --include="*.ts" --include="*.js"

呼び出しごとに、以下を記録します:

  • 呼び出しをトリガーする機能/ファイル/関数
  • モデルのエイリアスまたはリテラルのモデル文字列
  • タスクの種類:生成、分類、要約、埋め込み、ツール使用、推論
  • おおよそのプロンプトサイズ:小(<1K トークン)、中(1~10K)、大(>10K)
  • 頻度:リクエストごと、ユーザー操作ごと、バックグラウンドジョブ、1 回限り

フェーズ 3 — 価格リファレンス(2026 年)

Anthropic Claude
モデル入力 $/1M出力 $/1Mキャッシュ書き込み $/1Mキャッシュ読み取り $/1Mコンテキスト
claude-fable-5$10.00$50.00$12.50$1.001M
claude-opus-4-8$5.00$25.00$6.25$0.501M
claude-sonnet-4-6$3.00$15.00$3.75$0.301M
claude-haiku-4-5$1.00$5.00$1.25$0.10200K

プロンプトキャッシュを使用すると、キャッシュ読み取りの料金はキャッシュ未使用の入力と比べて約 90%節約できます。キャッシュ可能なプレフィックスには 1024 トークン以上が必要です。

OpenAI
モデル入力 $/1M出力 $/1Mキャッシュ済み入力 $/1M備考
gpt-4o$2.50$10.00$1.25画像認識に対応
gpt-4o-mini$0.15$0.60$0.075大量処理向けの主力モデル
gpt-4.1$2.00$8.00$0.50より長いコンテキスト、高いコーディング能力
gpt-4.1-mini$0.40$1.60$0.10指示に従う能力が高い
gpt-4.1-nano$0.10$0.40$0.025最安、短いタスク向け
o4-mini$1.10$4.40$0.55推論向け、低コスト版
o3$10.00$40.00$2.50高負荷の推論タスク

Batch API:すべてのモデルが 50%割引になります。最小レイテンシは約 24 時間です。オフライン/非同期のワークロードに使用します。

Google Gemini
モデル入力 $/1M(≤200K)入力 $/1M(>200K)出力 $/1M備考
gemini-2.5-pro$1.25$2.50$10.00推論に最適
gemini-2.5-flash$0.15$0.15$0.60高速、マルチモーダル
gemini-2.0-flash$0.10$0.10$0.40最安の Gemini

コンテキストキャッシュ:キャッシュは無料で、トークンごとに 1 時間単位で課金されます(2.5 Pro は約 $1/1M トークン/時間)。

フェーズ 4 — ルーティングテーブルを作成する

次のテーブルを出力します:

AI MODEL ROUTING — [product name]
════════════════════════════════════════════════════════════════════════════
FEATURE                  TASK TYPE        MODEL                   $/1K CALLS
────────────────────────────────────────────────────────────────────────────
[feature]                [task]           [actual model string]   $[estimate]
[feature]                [task]           [actual model string]   $[estimate]
════════════════════════════════════════════════════════════════════════════

COST MATH (per call):
  Input tokens × (input rate / 1M) + Output tokens × (output rate / 1M)
  Example: 2K in, 500 out on claude-sonnet-4-6 = (2000 × $3/1M) + (500 × $15/1M)
                                                = $0.006 + $0.0075 = $0.0135/call

UNUSED CONFIG (defined, never called):
  [alias] → [model string]

DEPRECATED / RENAMED MODELS:
  ⚠️  [any model string that no longer exists or has been superseded]

フェーズ 5 — キャッシュの機会を確認する

大きく、安定したプレフィックス(システムプロンプト、ドキュメント、スキーマ、例)を持つ呼び出しごとに、以下を確認します:

  • プレフィックスは 1024 トークン以上ですか? → プロンプトキャッシュの候補
  • プレフィックスはユーザーごと、またはリクエストごとに変わりますか? → キャッシュ不可
  • 毎回同じシステムプロンプトを使っていますか? → キャッシュすれば、そのトークン分のコストを約 90%節約できます

大きなシステムプロンプトを使用しているにもかかわらず、cache_control を使用していない呼び出しに印を付けます。

Anthropic のパターン:

{"role": "system", "content": [{"type": "text", "text": "...", "cache_control": {"type": "ephemeral"}}]}

OpenAI(自動):gpt-4o/gpt-4.1 では、繰り返し使われるプレフィックスの入力キャッシュが自動的に行われます。

フェーズ 6 — Batch API の候補を確認する

次の条件を満たす呼び出し:

  • ユーザー向けではない(バックグラウンドジョブ、スケジュール済みタスク、データセット処理)
  • 数時間のレイテンシを許容できる
  • 1 日あたりの呼び出し数が 100 件を超える

→ Batch の候補として印を付けます。Batch は 50%安くなります(OpenAI)。Anthropic では最大 50%安くなります。

フェーズ 7 — フラグの適正化

各呼び出しについて、そのタスクに対してモデルの性能が過剰または不足していないか確認します。

ダウングレード候補(単純なタスクに高価なモデルを使用している場合):

  • 分類または抽出 → gpt-4.1-nano、haiku、または gemini-2.0-flash
  • 回答の範囲が既知の短い Q&A → gpt-4o-mini または haiku
  • 埋め込みの生成 → text-embedding-3-small(OpenAI)、$0.02/1M
  • 短いテキストの要約 → haiku、gpt-4.1-mini

高性能モデルを維持する場合:

  • 複数ステップの推論またはツール使用の連鎖
  • ユーザー向けの創作や長文の生成
  • 正確性が重要なコード生成
  • 失敗した場合の再試行コストが高いタスク

アップグレード候補(安価なモデルが気づかれないまま失敗している場合):

  • 複雑なスキーマを扱うツール使用 → 最低でも sonnet/gpt-4o が必要です
  • 長文脈の推論(50K トークン超) → 長文脈の想起性能が実証されたモデルが必要です
  • ノイズの多い入力からの構造化抽出 → 安価なモデルはフィールド名を幻覚することがあります

フェーズ 8 — 最終フラグ

OPTIMIZATION FLAGS:
  CACHE   [feature] — large static system prompt, not cached. Estimated savings: $X/day
  BATCH   [feature] — background job, 50% savings available
  OVERFIT [feature] — using [expensive model] for [simple task], [cheap model] would work
  SCATTER [feature] — hardcoded model string outside central config, won't update on model changes
  DEPR    [model string] — deprecated, may stop working; migrate to [replacement]
  INCON   [task type] — same task using different models in different files: [file A] uses X, [file B] uses Y

コメント