Models and costs
Every agent step runs on a Claude model, and the model is most of what a step costs. Infrared lets you pick the model per AgentRole, and per AgentWorkflow step when one task needs something different, so the work that needs the strongest model gets it and the rest runs cheaper.
Tiers
AgentRoles and steps pick a tier, not a model ID. The org (or the installation) maps each tier to a model, so a new model release changes one mapping instead of every AgentRole.
| Tier | Default model | For |
|---|---|---|
| Frontier | claude-opus-5-5 (Opus 5.5) | Writing code across many files and catching what others miss |
| Balanced | claude-sonnet-5-5 (Sonnet 5.5) | Reviews, plans, docs and drafts: reading and judgment over a known change |
| Fast | claude-haiku-4-5-20251001 (Haiku 4.5) | Mechanical and high-volume work with checkable output |
An AgentRole with no tier runs Frontier, which is how every AgentRole ran before catalog v0.11.0.
What the catalog recommends
From catalog v0.11.0, each catalog AgentRole names a tier and says why. Unedited AgentRoles in every org move to their recommended tier when the operator upgrades the catalog; AgentRoles you edited keep what you chose.
| Tier | AgentRoles | Why |
|---|---|---|
| Frontier | Feature builder, Merge conflict resolver, Security reviewer | The builder writes the change; a better first attempt saves review rounds and retries. The resolver rewrites code on a moved base and runs rarely. A missed secret or malicious edit is the most expensive mistake a review can make, and the security reviewer's steps are short, so Frontier costs little more there. |
| Fast | Lint fixer, Social listener, Socializer | Mechanical fixes the linter names, skimming mentions, and short drafts a person approves. |
| Balanced | Everything else: the architects, the other reviewers and fixers, the end-to-end verifier, docs, versioning, drafts, and the scheduled watches and audits | Reading the repo and writing specs, reviews and prose, where Balanced keeps most of the quality at about half of Frontier's input and output price. |
Each AgentRole's page in the catalog shows its tier and its reason.
Change a model
-
One AgentRole: on Agents → Models and costs, pick its tier in the Model column, or open the AgentRole and change Model on its Permissions tab. Org admins only. The API is
PATCH /v1/orgs/{org}/agentroles/{name}/modelwith{"tier": "balanced"}or{"model": "<model ID>"}; a model ID wins over a tier. -
All of them at once: Apply recommended models lists every catalog AgentRole that isn't on its recommended tier, then moves them when you confirm (
POST /v1/orgs/{org}/agentroles/recommended-models, with?dryRun=trueto only list). -
One step: give the step a
modelin its AgentWorkflow, a tier or a model ID. It wins over the AgentRole's choice for that step only, for example a Balanced quality reviewer that runs Frontier on thechangeworkflow's final review.steps:- name: quality-reviewertype: agentRoleagentRole: quality-reviewermodel: frontier -
The mapping: Settings → Model tiers maps each tier to a model ID for the org (
PUT /v1/orgs/{org}/models/tiers). Empty fields use the installation's mapping, which isInstallation.spec.models.tiers(empty uses the defaults above):kubectl patch installation infrared --type merge -p '{"spec":{"models":{"tiers":{"balanced":"claude-sonnet-5-5"}}}}'
Changed AgentRoles count as edited, so later catalog upgrades leave them alone; Reset to catalog on the AgentRole's page takes the catalog's version, recommended tier included. A step uses the model in force when it starts; a step already running keeps its model.
See what agents cost
Agents → Models and costs shows the last 7 or 30 days:
- Spend and its split by model, the same work on the recommended tiers, and estimated savings per month if every AgentRole ran its recommended tier.
- Cost by AgentRole and model: steps, spend, spend per step, spend by model and what the AgentRole's work would have cost on its recommended tier.
- Cost by AgentWorkflow step: the same by step, with the model each step runs now.
The Steps table on a Change shows each step's model, and a Product's What each AgentRole has done panel shows each AgentRole's tier. The API is GET /v1/orgs/{org}/agent-costs?days=30 (add &product=<name> for one Product).
How the numbers are made
- Spend is what the Claude Agent SDK reported for each step, split by the models the step used (a step's subagents and context compaction can use other models). It is an estimate, not the bill; the Anthropic Console is the bill.
- Projections price the same work on another model by the ratio of the two models' list prices for the step's tokens: input, output, cache reads and cache writes. They assume another model would use the same tokens, which it may not: a cheaper model can take more turns, or fewer.
- Steps from before per-model accounting count as Frontier (
claude-opus-5-5). - Cache reads cost the same on Opus 5.5 and Sonnet 5.5, so steps that mostly re-read cached context save less than half when they move to Balanced.
Prices
Projections use this table, Anthropic's first-party API list prices per million tokens, read on 2026-09-25. Cache writes are the 5-minute TTL price, 1.25 times input.
| Model | Input | Output | Cache read | Cache write |
|---|---|---|---|---|
claude-opus-5-5 | $4 | $20 | $0.20 | $5 |
claude-sonnet-5-5 | $2 | $10 | $0.20 | $2.50 |
claude-haiku-4-5-20251001 | $1 | $5 | $0.10 | $1.25 |
When prices change, set Installation.spec.models.prices (a list of model, inputUSD, outputUSD, cacheReadUSD, cacheWriteUSD) and the estimates follow; Settings → Model tiers shows the table in use. A model with no price is projected at what it actually cost.