mcpField
M
model-hierarchy

model-hierarchy

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

model-hierarchy について

タスクの複雑さに応じて適切なコスト帯のモデルを推奨するモデルルーティングスキルです。テキスト専用モデルと画像対応モデルを区別し、モデルの切り替えやサブエージェント利用の指針を示します。

主な機能

  1. 01定型、中程度、複雑なタスクの分類
  2. 02画像対応能力に基づくルーティング
  3. 03失敗後のモデル引き上げルール
  4. 04メインセッションとサブエージェントの指針
  5. 05コストを考慮したモデル選択

活用シーン

  1. 01定型タスクを低コストモデルに割り当て
  2. 02画像タスク用の画像対応モデル選択
  3. 03困難または失敗したタスクの引き上げ
  4. 04定期監視に使うモデルの選択

インストール

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

$npx skills add https://github.com/zscole/model-hierarchy-skill --skill model-hierarchy

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

同梱ファイル

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

LICENSE
README.md
pyproject.toml
.gitignore
examples/
claude-code.md
openclaw.md
tests/
conftest.py
test_classification.py
scenarios.json

詳細

モデル階層

タスクは、処理可能な中で最も安価なモデルに割り当てます。エージェントの作業の大半は定型的です。

基本原則

エージェントのタスクの80%は雑務です。 ファイルの読み取り、ステータス確認、書式設定、簡単なQ&Aなどです。こうした作業に高価なモデルは必要ありません。高度な推論が本当に必要な問題には、プレミアムモデルを使います。

モデルの階層

Tier 1:低価格(100万トークンあたり$0.10~0.50)
モデル入力出力最適な用途
DeepSeek V3$0.14$0.28一般的な定型作業
GPT-4o-mini$0.15$0.60素早い応答
Claude Haiku$0.25$1.25迅速なツール利用
Gemini Flash$0.075$0.30大量処理
GLM 5 (Zhipu)(OpenRouter Z.AI)(OpenRouter Z.AI)定型作業と中程度のテキスト処理。200Kのコンテキスト。テキスト専用 — 画像/ビジョンには使用しないでください
Kimi K2.5 (Moonshot)$0.45$2.25定型作業と中程度の処理。262Kのコンテキスト。マルチモーダル(テキスト+画像+動画)

テキスト専用モデル(例:GLM 5): 画像入力やビジョンが必要なタスクには使用しないでください。写真の分析、スクリーンショット、画像生成ツール、文書/グラフのビジョン処理には使用できません。ビジョン対応モデル(例:Kimi K2.5、GPT-4o、Gemini、ビジョン対応のClaude、GLM-4.5V/4.6V)に割り当ててください。

Tier 1/2のビジョン対応モデル(例:Kimi K2.5): 画像を含む可能性のある定型または中程度のタスク(スクリーンショット、写真の分析、文書、画像生成のオーケストレーションなど)には、プレミアムなビジョンモデルに移行せずに使用してください。

Tier 2:中価格(100万トークンあたり$1~5)
モデル入力出力最適な用途
Claude Sonnet$3.00$15.00バランスの取れた性能
GPT-4o$2.50$10.00マルチモーダルタスク
Gemini Pro$1.25$5.00長いコンテキスト
Tier 3:プレミアム(100万トークンあたり$10~75)
モデル入力出力最適な用途
Claude Opus$15.00$75.00複雑な推論
GPT-4.5$75.00$150.00最先端のタスク
o1$15.00$60.00複数段階の推論
o3-mini$1.10$4.40低予算での推論

価格は2026年2月時点のものです。最新の料金についてはプロバイダーのドキュメントを確認してください。

タスクの分類

タスクを実行する前に、必ず分類してください。

定型 → Tier 1を使用

画像/ビジョンが必要 → テキスト専用モデル(GLM 5など)には割り当てないでください。Tier 1、2、または3のビジョン対応モデル(例:Kimi K2.5、GPT-4o、Gemini、Claude、GLM-4.5V)を使用してください。

特徴:

  • 1段階の操作
  • 明確で曖昧さのない指示
  • 判断が不要
  • 決定論的な出力が期待される

例:

  • ファイルの読み取り/書き込み操作
  • ステータス確認とヘルスモニタリング
  • 簡単な検索(時刻、天気、定義)
  • テキストの書式設定と再構成
  • リスト操作(フィルタリング、ソート、変換)
  • パラメーターが既知のAPI呼び出し
  • ハートビートとcronタスク
  • URLの取得と基本的な解析
中程度 → Tier 2を使用

特徴:

  • 複数段階だが、明確に定義されている
  • ある程度の統合が必要
  • 標準的なパターンを適用できる
  • 品質は重要だが、最重要ではない

例:

  • コード生成(標準的なパターン)
  • 要約と統合
  • 下書きの作成(メール、ドキュメント、メッセージ)
  • データの分析と変換
  • 複数ファイルにまたがる操作
  • ツールのオーケストレーション
  • コードレビュー(セキュリティ以外)
  • 検索とリサーチのタスク
複雑 → Tier 3を使用

特徴:

  • 新しい問題の解決が必要
  • 有効なアプローチが複数ある
  • ニュアンスを踏まえた判断が必要
  • 重要性が高い、または取り消せない
  • 以前の試行が失敗した

例:

  • 複数段階のデバッグ
  • アーキテクチャや設計の決定
  • セキュリティ上重要なコードレビュー
  • より安価なモデルですでに失敗したタスク
  • 解釈が必要な曖昧な要件
  • 長いコンテキストの推論(>50Kトークン)
  • 独創性が必要なクリエイティブな作業
  • 敵対的なケースやエッジケースへの対応

判断アルゴリズム

function selectModel(task):
    # Rule 1: Vision override (Tier 1/2 includes text-only models)
    if task.requiresImageInput or task.requiresVision:
        return VISION_CAPABLE_MODEL  # e.g. Kimi K2.5, GPT-4o, Gemini, Claude; do not use GLM 5 or other text-only
    
    # Rule 2: Escalation override
    if task.previousAttemptFailed:
        return nextTierUp(task.previousModel)
    
    # Rule 3: Explicit complexity signals
    if task.hasSignal("debug", "architect", "design", "security"):
        return TIER_3
    
    if task.hasSignal("write", "code", "summarize", "analyze"):
        return TIER_2
    
    # Rule 4: Default classification
    complexity = classifyTask(task)
    
    if complexity == ROUTINE:
        return TIER_1
    elif complexity == MODERATE:
        return TIER_2
    else:
        return TIER_3

動作ルール

メインセッション向け
  1. インタラクティブな作業では、デフォルトで Tier 2 を使用します
  2. 定型作業ではダウングレードを提案します:「これは定型作業です。より安価なモデルか、サブエージェントに任せられます。」
  3. 行き詰まったらアップグレードを依頼します:「これには、より高い推論能力が必要です。[premium model] に切り替えます。」
サブエージェント向け
  1. タスクが明らかに中程度以上でない限り、デフォルトで Tier 1 を使用します
  2. オーバーヘッドを抑えるため、類似タスクをまとめて処理します
  3. 失敗した場合は、エスカレーションできるよう親エージェントに報告します
自動化タスク向け
  1. ハートビート/監視 → 常に Tier 1
  2. 定期レポート → 複雑さに応じて Tier 1 または 2
  3. アラートへの応答 → Tier 2 で開始し、必要に応じてエスカレーション

コミュニケーションのパターン

モデルの変更を提案するときは、明確な表現を使います。

ダウングレードの提案:

「これは定型的なファイル操作のようです。DeepSeek を使うサブエージェントに任せましょうか?同じ結果を、わずかなコストで得られます。」

アップグレードの依頼:

「ここで解決できる範囲の限界に達しています。これには Opus レベルの推論が必要です。上位モデルに切り替えます。」

階層の説明:

「重要な分析は Sonnet で実行し、サブエージェントには DeepSeek でデータを取得させています。重要な部分の品質を損なわずにコストを抑えられます。」

コストへの影響

1 日あたり平均 100K トークンを使用すると仮定します。

戦略月額コスト備考
Opus のみ~$225最大の能力、最大の支出
Sonnet のみ~$45ほとんどの作業に適したデフォルト
DeepSeek のみ~$8安価ですが、難しい問題への対応力は限定的
階層型(80/15/5)~$19あらゆる面で最適

80/15/5 の内訳:

  • 定型タスクの 80% を Tier 1 で実行(約 $6)
  • 中程度のタスクの 15% を Tier 2 で実行(約 $7)
  • 複雑なタスクの 5% を Tier 3 で実行(約 $6)

結果:プレミアムモデルのみの場合と比べてコストを 10 分の 1 に抑えつつ、複雑なタスクでは同等の品質を実現します。

統合例

OpenClaw
# config.yml - set default model
model: anthropic/claude-sonnet-4

# In session, switch models
/model opus  # upgrade for complex task
/model deepseek  # downgrade for routine

# Spawn sub-agent on cheap model
sessions_spawn:
  task: "Fetch and parse these 50 URLs"
  model: deepseek

OpenRouter(ビジョン対応またはテキストのみの Tier 1):

# Tier 1 with vision — Kimi K2.5 (multimodal)
model: openrouter/moonshotai/kimi-k2.5
# Heartbeats, cron, image-involving tasks: K2.5 handles text and vision.

# Tier 1 text-only — GLM 5 (no vision)
# model: openrouter/z-ai/glm-5  # exact ID TBD on OpenRouter Z.AI
# Routine text-only only; for image tasks use Kimi K2.5 or another vision-capable model.
Claude Code
# In CLAUDE.md or project instructions
When spawning background agents, use claude-3-haiku for:
- File operations
- Simple searches  
- Status checks

Reserve claude-sonnet-4 for:
- Code generation
- Analysis tasks
一般的なエージェントシステム
def get_model_for_task(task_description: str) -> str:
    routine_signals = ['read', 'fetch', 'check', 'list', 'format', 'status']
    complex_signals = ['debug', 'architect', 'design', 'security', 'why']
    
    desc_lower = task_description.lower()
    
    if any(signal in desc_lower for signal in complex_signals):
        return "claude-opus-4"
    elif any(signal in desc_lower for signal in routine_signals):
        return "deepseek-v3"
    else:
        return "claude-sonnet-4"

アンチパターン

しないこと:

  • Opus でハートビートを実行する
  • ファイルの入出力にプレミアムモデルを使う
  • タスクが明らかに定型作業なのに、高価なモデルを使い続ける
  • デフォルトでプレミアムモデルを使うサブエージェントを起動する
  • 画像/ビジョンタスク(写真の分析、スクリーンショットの理解、画像生成スキル、画像入力を受け取るツールなど)に GLM 5(またはテキスト専用の Tier 1/2 モデル)を使う

すること:

  • ミッドティアから始め、タスクに応じて調整する
  • 実用可能な範囲で最も安価なモデルを使ってヘルパーを起動する
  • 行き詰まったら明示的にエスカレーションする
  • さらに最適化できるよう、タスクの種類ごとにコストを追跡する

このスキルの拡張

ユースケースに合わせてカスタマイズするには:

  1. プロバイダーや予算に合わせてティアの定義を調整する
  2. 分類ルールにドメイン固有のシグナルを追加する
  3. ヒューリスティックを改善するため、予測した複雑さと実際の複雑さを追跡する
  4. プレミアムモデルの使用量が想定外に増えた場合に検知できるよう、予算アラートを設定する

コメント