Tier-to-Model Mapping
| Agent | Quick | Standard | Premium |
|---|---|---|---|
| Planner | Claude Haiku 4.5 | Claude Haiku 4.5 | Claude Haiku 4.5 |
| Researcher | β | Claude Haiku 4.5 | Claude Haiku 4.5 |
| Call Writer | β | Claude Haiku 4.5 | Claude Haiku 4.5 |
| Writer | Claude Haiku 4.5 | Claude Sonnet 4 | Claude Opus 4 |
| Editor | β | Claude Sonnet 4 | Claude Sonnet 4 |
| Formatter | Claude Haiku 4.5 | Claude Haiku 4.5 | Claude Haiku 4.5 |
| SEO | β | Claude Haiku 4.5 | Claude Haiku 4.5 |
| Publisher | β | Claude Haiku 4.5 | Claude Haiku 4.5 |
How Routing Works
When a generation request arrives, the API resolves the tier from thegeneration_mode field:
- The
generateendpoint readsreq.generation_mode(values:quick,standard,premium) - It calls
get_tier_model(tier, agent_role)to resolve the model string for the writer - The resolved model name is stored in
state.writing_context["_tier_model"] - Each graph node reads
_tier_modelfrom the writing context and passes it to the agent
Circuit Breaker Failover
WriterzRoom maintains circuit breakers for three providers: Anthropic, OpenAI, and Tavily. Each circuit breaker tracks success and failure rates independently and can be in one of three states: closed (healthy), half-open (testing), or open (blocking requests). When a providerβs circuit breaker opens, agents that depend on it attempt failover to the alternate provider:- Writer (primary: Anthropic Claude) β failover to OpenAI GPT-4o
- Planner (primary: Anthropic Claude Haiku) β failover to OpenAI GPT-4o
- Researcher (primary: Tavily) β no failover (fails fast)
Token Budget Management
Each agent operates within token budget constraints determined by the tier:- Quick: 8,000 max completion tokens
- Standard: 16,000 max completion tokens
- Premium: 24,000 max completion tokens
min_tokens = min_words Γ 1.3 and overrides the userβs max_tokens setting if it falls below this threshold.
API Model Override
For API users on Professional and Enterprise plans, thegeneration_settings object in the request body accepts a model field. This is informational only β the actual model used is always determined by the tier. The API does not allow arbitrary model selection to prevent cost abuse and ensure consistent quality guarantees.