使用方法
- 复制安装命令,在自己的智能体环境安装前先检查源码包。
- 从原始文档核对所需工具、凭据和支持的宿主。
- 说明输入材料与期望交付物,并对照来源检查输出。
npx skills add https://github.com/jpeetz/agent-skills --skill model-routing-cost-optimizer开始前需了解
- 安装不包含模型订阅、API 额度或访问文件的权限。
- 仓库星数和安装量反映活跃情况,不等于独立质量或安全测试。
按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。
Model Routing Cost Optimizer
Route every agent task to the cheapest model that can still do it well. This skill establishes a three-tier model hierarchy (cheap / mid / premium), a task classifier that buckets work into ROUTINE / MODERATE / COMPLEX, and the decision rules that turn a description into a model pick. It does not enforce any one provider — the tier prices live in references/model-pricing.md so the body stays provider- neutral — and it does not cover local quantized inference.
The core belief is blunt: most agent work is routine, and routing routine work to a premium model is pure waste. Down-tier by default; escalate on evidence, never on habit.
When to Use
Use this skill when you want to:
- Choose which model should handle a task, a sub-agent, or a cron job.
- Decide whether the current model is overkill for what you are about to run.
- Spawn sub-agents at a cost that matches the work.
- Keep heartbeat, monitoring, and scheduled-report traffic off premium models.
- Explain to a teammate why one model is running a task instead of another.
- Classify a batch of tasks into ROUTINE / MODERATE / COMPLEX for tiering.
Don't use for: fine-tuning a model, model evaluation or benchmarking, serving infrastructure (vLLM / TGI), or any task where correctness risk is high and you need the best possible reasoning regardless of price. If the work is irrecoverable or safety-critical, stop tiering and use the premium model.
Prerequisites
- Visibility into the models your agent or gateway exposes (OpenRouter catalog,
a provider console, or the model config of OpenClaw / Claude Code / Codex).
- No secret is required to operate this skill; the pricing table in
references/model-pricing.md is illustrative, so refresh it against provider docs before relying on a number.
- If you run the classifier,
scripts/classify_task.pyis stdlib-only.
Decision Rules (read these before you pick a model)
- Rule 1 — vision. If the task needs images (screenshots, photos, charts,
image generation), pick a vision-capable model. Never route vision work to a text-only model just because it is the cheap tier — the cheapest viable model is the cheapest one that can actually see.
- Rule 2 — escalation. If a cheaper model already failed the same task, move
one tier up, not down; re-trying the same failed tier burns more than one upgrade.
- Rule 3 — explicit signals. Complex words like
debug,architect,
design, security, adversarial, ambiguous push to Tier 3. Routine words like read, fetch, check, format, status, list push to Tier 1.
- Rule 4 — classify by default. Otherwise classify the task with the procedure
and pick the tier that matches.
Task Classification
| Bucket | Heuristic | Typical Examples |
|---|---|---|
| ROUTINE → Tier 1 | Single-step, deterministic, no judgment | file I/O, heartbeat, status check, lookup, formatting, URL fetch |
| MODERATE → Tier 2 | Multi-step but well-scoped | code-gen on known patterns, summarization, draft writing, data transforms |
| COMPLEX → Tier 3 | Ambiguous, multi-approach, high-stakes | multi-step debugging, architecture, security review, long-context reasoning |
Quick Reference
| Concern | Move |
|---|---|
| Task is routine | Tier 1 |
| Task is moderate | Tier 2 |
| Task needs image / vision | vision-capable model (never a text-only tier-1) |
| Task already failed on cheap | move up (escalation), never down |
| Heartbeat / cron / monitoring | always Tier 1 |
| Sub-agent spawn | default Tier 1 unless clearly moderate+ |
Procedure
Each step ends with a checkable completion criterion.
- State the task. Write the task in one line, including whether it needs
images and whether a cheaper model already tried. Completion: you have a task statement with its vision and prior-failure flags.
- Classify. Run
python3 scripts/classify_task.py "<task>"in the terminal,
or read the bucket heuristics above by hand. Completion: you have a label of `ROUTINE`, `MODERATE`, or `COMPLEX`.
- Apply the vision override. If the task is vision-requiring, restrict the
model choice to vision-capable options, ignoring any text-only option entirely — a text-only model cannot take image input at any price. Completion: the chosen model can actually accept image input.
- Apply escalation and signal overrides. If a prior failure exists, go one
tier up from the classifier result. If explicit complex signals appear, go to Tier 3. Completion: the final tier is never lower than the classifier would have produced.
- Name a concrete model. From the provider's resolvable list, pick the
cheapest model of the final tier that meets that tier's bar. Completion: you can name a concrete model, or a route to find one.
- Run the anti-pattern sweep. If this is a sub-agent, heartbeat, cron, file
I/O, or routine batch, drop it to Tier 1 unless the classifier returned MODERATE or above. Completion: no heartbeat/cron work remains on a premium tier.
Anti-Patterns
- Feeding heartbeats / cron to premium models. A two-token status ping on a
flagship model is pure waste.
- Spawning sub-agents at the parent's tier. Daemon children should be one tier
down unless the work is provably complex.
- Refusing to upgrade when stuck. A cheap model that already failed costs more
if you keep retrying it; one step up is the cheaper path.
- Routing vision to a text-only model. GLM-5 (and other cheap text-only tier-1/2
models) must never see image input. Send vision to a vision-capable model.
- Tiering on habit. Do not stay on a new flagship model just because it is the
default; escalate on evidence only.
Verification
- The classifier
scripts/classify_task.pyreturns Tier 1 for a routine phrase,
Tier 2 for a moderate phrase, and Tier 3 for a complex phrase.
- A vision phrase (screenshot / photo / chart) routes to a vision-capable model,
and a text-only model is never selected for it.
- A failed-task phrase routes one tier up from baseline, never down.
- The heartbeat / cron phrase never lands on a premium tier.
references/model-pricing.mdexists and contains the pricing table and the
"prices change, check provider docs" caveat.

