Skip to main content

Choosing Models Per Purpose

What It Does​

Each agent doesn't just have one model — it has several, one for each kind of work. From that agent's Model page, you can set a different model for each role, mixing hosted, local, and subscription options freely.

Why It Matters​

Not every job needs your best (or most expensive) model. A quick background summary doesn't need the same model as a customer-facing conversation. Splitting these out lets you keep quality where it matters and cut cost everywhere else.

The Five Roles​

  • Primary — the model your agent thinks with during conversations. You can also set an ordered list of fallbacks: if the Primary model is unavailable or rate-limited, CrabShack automatically tries the next one, in order.
  • Subagent — the model used by helper agents your agent spawns to handle a focused sub-task. Since sub-tasks are usually narrower, this is a common place to use a cheaper model.
  • Heartbeat — the model used for periodic self-checks, on an interval you choose (from every 15 minutes up to every 24 hours).
  • Image — the model used specifically to understand photos or images sent to the agent, with its own fallback list.
  • Tasks (background) — separate models for memory extraction, conversation summarization, and document/OCR processing. The OCR model needs to support vision (image understanding), since it's reading scanned documents and photos — the other background roles don't.
Scenario

A landscaping business sets Claude Sonnet as their main agent's Primary model for customer conversations, and adds a free local Ollama model as a fallback so the agent keeps responding even during a hosted provider outage. For Background Tasks — memory extraction and summarization — they leave the default cheap, fast model, since those never face the customer directly.

If This Goes Wrong​

  1. A fallback never seems to be used — fallbacks only activate when the Primary model is genuinely unavailable or rate-limited; under normal conditions the Primary model always answers first.
  2. Background task quality seems low — Background Tasks default to a lightweight model on purpose; if extraction or summaries seem off, try a stronger model here specifically rather than changing Primary.