Skip to content

Choosing the Right Model

Different ACT workflow stages have different demands. Picking the right model for each stage saves money without sacrificing quality where it matters.

ModelReasoningSpeedCostBest for
OpusStrongestSlowestHighestComplex specs, architectural decisions, multi-file refactors
SonnetStrongFastModerateImplementation, planning, most daily work
HaikuGoodFastestLowestQuick fixes, formatting, simple code generation

Recommended: Opus or Sonnet

Spec generation is where clarity matters most. A poorly written spec cascades into a bad plan and broken implementation. Opus produces the most thorough specs, with better edge case coverage and sharper clarifying questions. Sonnet is a solid choice for straightforward features where the requirements are well understood.

Use Opus when the feature involves complex state management, multiple interacting components, or non-obvious edge cases. Use Sonnet when the scope is clear and bounded.

Recommended: Opus

Adversarial review benefits from the strongest reasoning. Opus catches subtle gaps, wrong assumptions, and data model issues that lighter models miss. Since refine-spec runs once per feature, the cost difference is small relative to the rework it prevents.

Recommended: Sonnet

Planning requires codebase analysis and structured output, which Sonnet handles well. The plan format is constrained enough that Sonnet produces results comparable to Opus at lower cost and faster speed. If you use --use-subagents, the sub-agents run Sonnet by default.

Recommended: Sonnet

Implementation is the longest-running stage and the most token-intensive. Sonnet is the practical choice here --- it follows plans accurately, runs verification loops, and produces clean code. Opus would work but at significantly higher cost with marginal improvement, since the plan already specifies what to do.

Recommended: Sonnet or Haiku

Insight extraction is relatively lightweight. Sonnet works well. Haiku can handle it if the session was straightforward.

Change the active model at any time:

Terminal window
/model opus
/model sonnet
/model haiku

A practical workflow: start your session with Opus for spec and refine-spec, switch to Sonnet for plan and work, then use Sonnet or Haiku for compound.

If you want to minimize costs without hurting quality:

  1. Use Sonnet as your default. It handles 80% of tasks well.
  2. Switch to Opus for specs on complex features. This is where reasoning quality has the highest leverage.
  3. Use Haiku for simple, well-defined tasks --- quick bug fixes, formatting changes, or trivial features where you would skip the spec stage entirely.

If you write thorough specs with clear requirements, model choice during implementation matters less. A good spec constrains the AI enough that even lighter models produce correct output. See Writing Good Specs for how to write specs that reduce dependence on model strength.