Skip to main content
Version: 0.1 (next)

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.

TierDefault modelFor
Frontierclaude-opus-5-5 (Opus 5.5)Writing code across many files and catching what others miss
Balancedclaude-sonnet-5-5 (Sonnet 5.5)Reviews, plans, docs and drafts: reading and judgment over a known change
Fastclaude-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.

TierAgentRolesWhy
FrontierFeature builder, Merge conflict resolver, Security reviewerThe 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.
FastLint fixer, Social listener, SocializerMechanical fixes the linter names, skimming mentions, and short drafts a person approves.
BalancedEverything else: the architects, the other reviewers and fixers, the end-to-end verifier, docs, versioning, drafts, and the scheduled watches and auditsReading 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}/model with {"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=true to only list).

  • One step: give the step a model in 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 the change workflow's final review.

    steps:
    - name: quality-reviewer
    type: agentRole
    agentRole: quality-reviewer
    model: 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 is Installation.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.

ModelInputOutputCache readCache 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.