Managed inference for coding agents

Keep the reasoning. Control the run.

Prizmal manages inference for coding agents: curated open and frontier models, compute that adapts during generation, and policy enforced as the answer unfolds.

Keep your harness, prompts, and tools. We manage the models, the handoffs, and the record of each run.

Agent task completion

84/100

Terminal-Bench v2.1

July 2026 · internally reported

Availability

99.9%

Monthly routing availability target.

Run controls

Policy during execution

Budgets, model permissions, and reviewable decisions.

Beyond intelligent routing

Serverless managed inference for coding agents. The control layer keeps deciding while the answer is written: open models carry the routine spans; frontier steps in only when the span requires it. We evaluate new models as they ship and update the mixture for your workload.

Illustrative overview. Not a measured trace.

Routers dispatch requests. Prizmal governs tokens: the decision happens while the answer is written, not before it.

Inside the Controller

Illustrative system view · model classes, not named models

Prizmal Controller topologyIllustrative. Request, context and policy lanes enter the Prizmal boundary. The Controller sends routine spans to open models with RASP compute, specialized spans to specialized open models, and demanding spans to frontier capacity. Responses return to the client harness. Decisions are written to an operational record rail. Highlighted: Full topology.Response returns to the client harnessRequestharness callContextworking contextPolicybudget · permissionsPrizmal boundaryControllerper-span decisionspan signalpolicy gatebudgetOpen modelsroutine spansRASP insetdense principal + sparse residualSpecialized opendomain spansFrontier capacitydemanding spans · if permittedResponseone answerAudit rail · model per span · policy decision · budget stateOperational recordmetadata only

Full topology. Requests, context and policy enter one boundary. The Controller assigns each span to a model class, the response returns to your harness, and every decision lands on the audit rail.

Anatomy of a managed run

Decisions continue within the response. Move the cursor or pick an event to inspect each span.

Illustrative system view · synthetic example · 512 tokens

Signal and allocation are an authored illustrative scenario, not allocation computed from the threshold.

Illustrative allocation, not a measured token stream.

Managed run explorerSynthetic, authored scenario. Demanding-span decisions at tokens 110, 268 and 402, where the difficulty signal is above the illustrative threshold. Allocation is authored, not computed from the threshold. Allocation lanes show which model class writes each span. Cursor at token 0, Open model.SignalThresholdOpen modelSpecialized openFrontierPolicy064128192256320384448512Tokentok 0

The record contains operational metadata, not retained prompt or completion content.

Model a scenario

A quick look at what Prizmal managed inference could do for your workload

Employees (seats)
50 seats
Tokens per employee / day
66M / day

Illustrative workload assumptions. Adjust these inputs to match your usage.

Comparison blend / yr$577,500
Total with Prizmal / yr$199,125
Comparison baseline
$577,500
comparison blend assumption: $0.70 / M tokens
Prizmal total
$199,125
Platform ($50/seat/month)
$30,000
Routing ($0.75 / 1k calls)
$4,125
Modeled compute ($0.20/M)
$165,000
Saving
$378,375

66% lower than the annual comparison.

Email this scenario

Assumptions: 250 working days/year, $50 per seat per month platform fee, $0.75 per 1,000 routed calls, 150,000 tokens per call. Modeled compute blend: $0.20/M tokens. Comparison blend: $0.70/M tokens. Blends are assumptions, not market quotes. Actual usage and mix are metered per agreement. The seat fee is not an all-in usage total. See Pricing.

Control the run as it happens

Budgets and model permissions apply during execution. Every decision is reviewable as operational metadata.

Illustrative system view · synthetic examplerun_sample_0417 · 512 tokens · 10 events

Permission gate

4

3 allowed · 1 restricted

Budget gate

5

Approaching limit from evt_07

Frontier tokens

23.4%

Sample value · 120 of 512

Records written

10

Metadata only, no prompt content

Model allocation strip

Open model 69.9% · Specialized open 6.6% · Frontier 23.4% · sample values

tok 0256512

Metadata ledger

Synthetic sample ledger, select a row for details
eventtstokkindmodel classgateoutcome
T+0.00s0admitOpen modelbudgetallowed
T+1.32s110escalateFrontierpermissionallowed
T+1.80s150returnOpen modelbudgetallowed
T+2.35s196routeSpecialized openpermissionallowed
T+2.76s230returnOpen modelbudgetallowed
T+3.22s268escalateFrontierpermissionallowed
T+3.72s310returnOpen modelbudgetallowed
T+4.82s402escalateFrontierpermissionrestricted
T+5.28s440returnOpen modelbudgetallowed
T+6.14s512completeOpen modelrecordrecorded

Sample export · 10 records

{
  "note": "Illustrative system view · synthetic example",
  "records": [
    {
      "synthetic": true,
      "run_id": "run_sample_0417",
      "event_id": "evt_01",
      "ts": "T+0.00s",
      "token": 0,
      "kind": "admit",
      "model_class": "open",
      "rasp": true,
      "gate": "budget",
      "outcome": "allowed",
      "budget_state": "within"
    },
    {
      "synthetic": true,
      "run_id": "run_sample_0417",
      "event_id": "evt_02",
      "ts": "T+1.32s",
      "token": 110,
      "kind": "escalate",
      "model_class": "frontier",
      "rasp": false,
      "gate": "permission",
      "outcome": "allowed",
      "budget_state": "within"
    },
    {
      "synthetic": true,
      "run_id": "run_sample_0417",
      "event_id": "evt_03",
      "ts": "T+1.80s",
      "token": 150,
      "kind": "return",
      "model_class": "open",
      "rasp": true,
      "gate": "budget",
      "outcome": "allowed",
      "budget_state": "within"
    },
    {
      "synthetic": true,
      "run_id": "run_sample_0417",
      "event_id": "evt_04",
      "ts": "T+2.35s",
      "token": 196,
      "kind": "route",
      "model_class": "specialized",
      "rasp": false,
      "gate": "permission",
      "outcome": "allowed",
      "budget_state": "within"
    },
    {
      "synthetic": true,
      "run_id": "run_sample_0417",
      "event_id": "evt_05",
      "ts": "T+2.76s",
      "token": 230,
      "kind": "return",
      "model_class": "open",
      "rasp": true,
      "gate": "budget",
      "outcome": "allowed",
      "budget_state": "within"
    },
    {
      "synthetic": true,
      "run_id": "run_sample_0417",
      "event_id": "evt_06",
      "ts": "T+3.22s",
      "token": 268,
      "kind": "escalate",
      "model_class": "frontier",
      "rasp": false,
      "gate": "permission",
      "outcome": "allowed",
      "budget_state": "within"
    },
    {
      "synthetic": true,
      "run_id": "run_sample_0417",
      "event_id": "evt_07",
      "ts": "T+3.72s",
      "token": 310,
      "kind": "return",
      "model_class": "open",
      "rasp": true,
      "gate": "budget",
      "outcome": "allowed",
      "budget_state": "approaching"
    },
    {
      "synthetic": true,
      "run_id": "run_sample_0417",
      "event_id": "evt_08",
      "ts": "T+4.82s",
      "token": 402,
      "kind": "escalate",
      "model_class": "frontier",
      "rasp": false,
      "gate": "permission",
      "outcome": "restricted",
      "budget_state": "approaching"
    },
    {
      "synthetic": true,
      "run_id": "run_sample_0417",
      "event_id": "evt_09",
      "ts": "T+5.28s",
      "token": 440,
      "kind": "return",
      "model_class": "open",
      "rasp": true,
      "gate": "budget",
      "outcome": "allowed",
      "budget_state": "approaching"
    },
    {
      "synthetic": true,
      "run_id": "run_sample_0417",
      "event_id": "evt_10",
      "ts": "T+6.14s",
      "token": 512,
      "kind": "complete",
      "model_class": "open",
      "rasp": true,
      "gate": "record",
      "outcome": "recorded",
      "budget_state": "approaching"
    }
  ]
}

Audit records contain operational metadata, not retained prompt or completion content. Operational audit metadata has separate retention.

Read about data handling and controls →

We run the AI stack. You ship your product.

Consistent reasoning means the run keeps its task constraints, holds up under comparable evaluation, and stays inside your policy from first token to last.

Prizmal manages model selection, compute, and handoffs. Your team keeps its agent harness, prompts, and tools.

Illustrative system view · synthetic exampleevaluation workspace · generic candidates

Mixture admission. Admit the candidate to the workload mixture for the span types it handled well.

Evaluation matrix. Select a candidate for details.
CandidateTask completionConstraintsTool behaviorServing configPolicy reviewStage
passpasspasspasspassObserve runs
passpassreviewpasspassMixture admission
passpasspasspassreviewPolicy review
reviewfailpendingpendingpendingEvaluate

● pass · ◐ review · × fail · ○ pending · qualitative gates, no scores

How it works

Three steps from your current stack to managed inference

  1. 01

    Request access

    Tell us about your setup. Onboarding is manual; Prizmal provisions provider access with one Prizmal key.

  2. 02

    Configure the supported client

    Use the client example below with your Prizmal key and model prizmal-auto. Check current client requirements.

  3. 03

    Inspect a first run

    Send a small test request. Inspect the response, tool behavior, and trace before using it in your workflow.

1# ~/.zshrc or ~/.bashrc
2export ANTHROPIC_BASE_URL=https://api.prizmal.ai/anthropic
3export ANTHROPIC_AUTH_TOKEN=$PRIZMAL_API_KEY
4export ANTHROPIC_MODEL=prizmal-auto

Claude Code appends /v1/messages to the base URL. Anthropic does not support routing Claude Code to non-Claude models; confirm Prizmal model and routing scope before deployment.

One Prizmal key; Prizmal provisions provider access. Check your client's docs for current config keys and supported features. PRIZMAL_API_KEY is a placeholder for your provisioned key.

Client configuration and supported features vary. Harness support matrix

Client setup walkthrough

One key, one base URL, first routed request. See the full developer setup →

Keep your agent setup. Let us manage inference.

One Prizmal key. Curated models, adaptive compute, and policy during execution. We onboard teams by hand.

Integration guide

Prompts and completions are not retained after serving. Operational metadata has separate retention. How we handle data