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.
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.
- 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.
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.
- •Recompute leaf
- •Chain integrity
- •Fold Merkle proof
- •Anchor memo == root
SHA-256 runs in your browser via Web Crypto. No Agentics call.
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)
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.
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 →