Frontier and open-weight models are one line of an agent config. Every call routes through Ellipsis, which retries throttled providers and rolls over to another when one has an outage. Or route tokens through your own Anthropic key or your AWS Bedrock account.
Claude, GPT, and open-weight models from Z.ai, MiniMax, and Moonshot are all selectable per agent. Open weights cost a fraction of a frontier model on the same harness, so the digest agent and the reviewer do not have to run on the same tier.
Every selectable model, with the id you name in YAML
The model is a field in the agent config, so switching it is a pull request, not a migration. Nothing else moves: the same sandbox, the same scoped credentials, the same budget, the same transcript. Try a cheaper model on one agent and read the cost breakdown before rolling it out.
session: claude: model: claude-opus-5 # or an open-weight model, same harness claude: model: glm-5.2 # or run the agent on Codex instead codex: model: gpt-5.6-terraclaude.model and codex.model, one line each
Every model call goes through the Ellipsis gateway, not straight to a vendor. A throttled or failing provider is retried with backoff, and if it stays down the same request rolls over to the next provider in the chain. The agent finishes its turn without knowing anything happened.
Retry with backoff, then roll over to the next provider
Connect an Anthropic key or your AWS Bedrock account and tokens bill you directly against credits and commitments you already hold. Every route is verified with a live call before it carries traffic, and no provider credential ever enters a sandbox.
llm: proxy: proxycfg_8f2k1x9qYour key or your AWS account, verified before it routes
Which model runs, who pays for the tokens, and what happens when a provider has a bad day.
Opus, Sonnet, Haiku, and Fable, from the current generation back through the pinned snapshots your agents were tested on.
An agent with a codex block runs GPT-5.6 in three tiers, validated at parse time so an impossible model never reaches a sandbox.
GLM-5.2, MiniMax M3, and Kimi K3 speak the same API as Claude, so the harness, tools, and sandbox are unchanged.
The model is a config field, so the summarizer and the reviewer can sit on different tiers in the same repo.
Every selectable model lists its input, cache-read, and output rate in the dashboard and at GET /models, from the same table the gateway bills on.
A throttled or failing provider is retried several times with exponential backoff and jitter before anything moves.
When a provider stays down, the same request advances to the next one in the chain rather than failing the turn.
Provider priority is data, not config in a container, so the chain reorders in seconds during an incident.
An identical repeated call is served from the gateway cache, so retries and replays cost nothing.
Connect a key and tokens bill your Anthropic account, account-wide, with no YAML change.
Ellipsis assumes a cross-account role in your AWS account, so token spend lands on your AWS bill and your credits.
Every bring-your-own route runs a live streamed completion first, and a route that stops working is disabled rather than left to fail mid-session.
A broken bring-your-own route fails loudly with the reason recorded. Ellipsis never quietly moves your traffic back to its own accounts.
Sandboxes get a synthetic session key; the real provider credential is attached server-side on the way out.
Session cost breakdowns show real token spend whoever pays for it, so spend caps work on your key exactly as on ours.