// What it routes across

Every provider, graded on real behavior.

A public benchmark tells you how a model does on someone else's test. It can't tell you what a model costs, breaks or stalls on in your traffic — so a team ends up grading vendors by hand. Instead, the operator chooses from a catalog scored by production outcomes: the cost, latency and success each provider posted on your own calls. Every provider and model sits behind one SDK; the operator routes across them and writes which one it picked into the receipt.

// What it is

The supply chain the operator routes across

The catalog is the registry of every provider and model the operator can route to. It normalizes how a model is named so one call works across vendors, tracks what each one supports — chat, embeddings and more — and grades each on how it actually behaved in your traffic: cost per call, latency, success rate.

Because the operator routes through the catalog, moving a job from one model to another is a routing decision, not a code change you ship — and the provider and model it picks ride in the receipt for that call. You set which models are in scope; you change how much it routes, per domain, reversible in one click. Observe & Suggest is available now; assisted and autonomous routing roll out per tenant as you grant them.

// What the operator does with it
  • Grades on outcomes. Every provider scored on the cost, latency and success it posted on your traffic — not a public benchmark.
  • Routes across all of them. Chat, embeddings and more behind one client; the operator picks the right one per job.
  • Swaps without a rewrite. It changes the model a job runs on while your call sites stay put — and records the swap.
// How the ledger makes it better

The model the operator picked is never in question

Instead of trusting a dashboard to tell you which model ran, the exact provider and model id ride in every receipt — so the operator's choice is itself verifiable, by your auditor, without us.

The operator's choice is named in the receipt

The provider and model fields are part of the canonical, hashed receipt. Recompute the leaf and the choice is confirmed — the operator can't change which model it used after the call without breaking the chain.

This is the same client-side verification shipped on the Trust portal. SHA-256 runs via Web Crypto. No Agentics call.

// Verify in your browser Anchored
receipt_idc4d8e2f0…4e5f
prev_hash1af67611…4a032
payload_hash2962f6b5…466dd
recomputed
merkle_root14a24583…c058a
  • Recompute leaf
  • Chain integrity
  • Fold Merkle proof
  • Anchor memo == root

SHA-256 runs in your browser via Web Crypto. No Agentics call.

// The SDK

You name the job. The operator names the model.

Instead of hard-coding a vendor, point a job at a config alias and let the operator route — or pin a provider explicitly when you need to.

from openai import OpenAI
client = OpenAI(base_url="https://agentics.you/api/v1", api_key="ak_…")

# name the job — the operator routes to the best-graded model…
client.chat.completions.create(model="support-default", messages=msgs)
# …or pin a provider explicitly when you want to
client.chat.completions.create(model="@gemini/gemini-1.5-pro", messages=msgs)
# embeddings, same client, same operator
client.embeddings.create(model="@openai/text-embedding-3-large", input=docs)

See the graded catalog →

// In the console

Read the score card

The console lists every provider and model in your workspace with the grade the operator routes on — cost per call, latency and success rate from your own traffic.

acme.agentics.you/console/catalog/

Model Catalog score card

Every provider and model in your workspace, graded on the cost, latency and success it posted on your traffic.

Open the score card →
// One catalog, graded

Integrate once. Let the operator pick the model.