npx claudepluginhub melodic-software/claude-code-plugins --plugin tacThis skill is limited to using the following tools:
Choose the right model for custom agent tasks based on complexity, cost, and performance requirements.
Recommends Claude models (Haiku for exploration, Sonnet for implementation, Opus for decisions) via routing matrix for task types, subagents, and cost-quality tradeoffs.
Guides selection of Haiku, Sonnet, or Opus general-purpose agents for tasks based on judgment needs, focus, cost, and complexity like multi-file debugging or high-stakes analysis.
Routes Claude Code tasks to optimal models (Haiku, Sonnet, Opus) using decision matrices, cost tables, complexity signals, and subagent assignments for cost/quality tradeoffs.
Share bugs, ideas, or general feedback.
Choose the right model for custom agent tasks based on complexity, cost, and performance requirements.
Use AskUserQuestion to understand requirements and recommend the optimal model:
# Question 1: Primary Priority (MCP: CLI best practices - tradeoff selection)
question: "What is your primary priority for this agent?"
header: "Priority"
options:
- label: "Cost Efficiency (Recommended)"
description: "Minimize API costs, high-volume operations"
- label: "Balanced Performance"
description: "Good quality at reasonable cost for most tasks"
- label: "Maximum Quality"
description: "Best results regardless of cost, complex reasoning"
- label: "Lowest Latency"
description: "Real-time responses, user-facing interactions"
# Question 2: Task Complexity (MCP: Agent SDK model selection)
question: "How complex is the task this agent will perform?"
header: "Complexity"
options:
- label: "Simple"
description: "Transformations, extraction, formatting, classification"
- label: "Moderate"
description: "Code generation, analysis, planning, most tasks"
- label: "Complex"
description: "Architecture decisions, multi-step reasoning, critical code"
- label: "Variable"
description: "Mix of simple and complex tasks in one agent"
Use these responses to apply the decision tree and recommend the appropriate model.
Guide selection of appropriate Claude model (Haiku, Sonnet, Opus) for custom agent tasks to optimize cost, speed, and quality.
| Model | Speed | Cost | Quality | Use Case |
|---|---|---|---|---|
| Haiku | Fastest | Lowest | Good | Simple tasks, high volume |
| Sonnet | Fast | Medium | Very Good | Most tasks, balanced |
| Opus | Slowest | Highest | Best | Complex reasoning |
START
│
├── Is task simple transformation?
│ └── YES → Haiku
│
├── Is cost the primary concern?
│ └── YES → Haiku (if adequate) or Sonnet
│
├── Is quality critical (no room for error)?
│ └── YES → Opus
│
├── Does task require complex reasoning?
│ └── YES → Opus
│
├── Is latency critical (real-time)?
│ └── YES → Haiku
│
└── DEFAULT → Sonnet (best balance)
Best for:
# Haiku examples
model="claude-3-5-haiku-20241022"
# Echo agent - simple transformation
# Calculator - straightforward math
# Stream processor - high volume, low complexity
Best for:
# Sonnet examples
model="claude-sonnet-4-20250514"
# QA agent - codebase analysis
# Builder agent - code implementation
# General-purpose agents
Best for:
# Opus examples
model="claude-opus-4-20250514"
# Planner agent - strategic decisions
# Reviewer agent - critical validation
# Architect agent - system design
| Model | Input Tokens | Output Tokens | Relative Cost |
|---|---|---|---|
| Haiku | Low | Low | 1x |
| Sonnet | Medium | Medium | ~10x |
| Opus | High | High | ~30x |
ResultMessage.total_cost_usd# Cost tracking
async for message in client.receive_response():
if isinstance(message, ResultMessage):
print(f"Query cost: ${message.total_cost_usd:.6f}")
| Model | First Token | Total Time | Throughput |
|---|---|---|---|
| Haiku | ~500ms | Fast | Highest |
| Sonnet | ~1s | Medium | Good |
| Opus | ~2s | Slower | Lower |
| Capability | Haiku | Sonnet | Opus |
|---|---|---|---|
| Simple reasoning | ✓ | ✓ | ✓ |
| Code generation | Limited | Good | Excellent |
| Complex planning | Poor | Good | Excellent |
| Multi-step reasoning | Limited | Good | Excellent |
| Novel problems | Poor | Adequate | Excellent |
# Tier 1: Haiku for classification
classification = await classify_task(task, model="haiku")
# Tier 2: Route to appropriate model
if classification == "simple":
result = await process(task, model="haiku")
elif classification == "complex":
result = await process(task, model="opus")
else:
result = await process(task, model="sonnet")
# Planner: Opus for strategic decisions
planner_options = ClaudeAgentOptions(
model="claude-opus-4-20250514"
)
# Builder: Sonnet for implementation
builder_options = ClaudeAgentOptions(
model="claude-sonnet-4-20250514"
)
# Reviewer: Opus for critical review
reviewer_options = ClaudeAgentOptions(
model="claude-opus-4-20250514"
)
When recommending model selection:
## Model Selection
**Task:** [description]
**Recommended Model:** [Haiku/Sonnet/Opus]
### Decision Factors
| Factor | Weight | Assessment |
| --- | --- | --- |
| Complexity | [H/M/L] | [assessment] |
| Cost sensitivity | [H/M/L] | [assessment] |
| Quality requirement | [H/M/L] | [assessment] |
| Latency requirement | [H/M/L] | [assessment] |
### Rationale
[Why this model is appropriate]
### Alternatives
- If cost is concern: [alternative]
- If quality is critical: [alternative]
### Configuration
options = ClaudeAgentOptions( model="[model-id]", ... )
"Choose wisely: Claude Haiku for simple, fast tasks. Claude Sonnet for balanced performance. Claude Opus for complex reasoning."
Model selection directly impacts:
Date: 2025-12-26 Model: claude-opus-4-5-20251101