Nautir — DevZero's inference platform
One gateway in front of
every LLM call you make
Point your traffic at a gateway and you get spend attribution, routing control, guardrails and model evaluation over that traffic — with no change to your application beyond a base URL and a key.
Where is the money going?
Spend, savings and waste attributed to people, teams, services and departments.
Read the docs →Which model should answer?
Routing profiles, fallback chains, provider preferences and auto mode.
Read the docs →What is allowed?
Budgets, rate ceilings, model and provider access, and content rules.
Read the docs →Would a different model be better?
Trials and experiments that compare candidates against your own traffic.
Read the docs →How it works
What happens to a request
Each request is served against one immutable snapshot of the gateway's runtime configuration, in a fixed order. The control plane answers the gateway's questions — may this request spend, which profile applies, which trials are armed — and the gateway caches those answers, so a control-plane outage degrades rather than denies.
- 01
Resolve and route
Normalize the surface, resolve identity, model, key and billing regime. Keyed traffic through a connector resolves its routing profile here and emits a routing decision record.
- 02
Apply the governance gate
On the decided model, before any cache is consulted — so the gate governs what will actually be served, including a request that named no model at all.
- 03
Check the caches
The exact-match cache, and the semantic cache where content is permitted to leave the deployment. Coding-client traffic can bypass both.
- 04
Apply the spend gates
Rate, token and spend ceilings on a provider-bound request, then resolve the credential the request will forward with.
- 05
Transform, then forward
Deterministic lossless transforms always; content-dropping transforms only where holdout evidence has promoted them. Then forward to the provider.
- 06
Account and record
Accrue actual usage and cost, write eligible cache entries, and enqueue telemetry without blocking the response.
What comes back
Keyed inference responses carry two join keys: X-Dz-Request-Id, the id the trace and telemetry rows are stored under, and X-Cache, one of MISS, HIT or SEMANTIC-HIT. Passthrough traffic is forwarded byte-identically, so the gateway adds no header there. The full request path →
Where it runs
Your prompts can stay in your network
The gateway is a lightweight HTTP proxy and the only component that sees your prompts. Whether prompt and response text may leave the environment it runs in is one control — content uplink — and it is set by environment configuration only, never from the dashboard.
It defaults from how you deployed: on for a hosted gateway, content-free for every self-hosted method. Content-free is not a telemetry switch — hashes, token counts, costs and outcomes still reach DevZero. What stays local is customer content, and the product says which features that costs you rather than failing quietly.
Self-hosting guide →Helm / Kubernetes
You run it
The production default. Prompts and retrievable originals stay in your own network.
DevZero-hosted
DevZero runs it
The fastest way to evaluate. Point any client at a provisioned URL.
Docker
You run it
Run anywhere with docker run.
Docker Compose
You run it
Declarative YAML for local machines, VMs or simple server deploys.
What we will and will not claim
A figure that flatters us is worse than no figure
Almost every rule below exists because a plausible-looking number was once wrong by an order of magnitude. They are in the product, not only in the documentation.
Savings
Measured, or labelled an estimate
A measured saving is computed against a holdout control arm — a fraction of your own traffic deliberately served uncompressed. That is the defensible number, and it exists at team scope only.
Everything else is an estimate from token deltas and blended rates: directional, labelled, and never added to a measured figure to make one headline. Per-entity savings — a person, a service — are estimated only, because one person's control arm is often a handful of requests.
Tokens removed are reported in effective units, weighted by the price ratio of the billing stream they came from, beside the raw count. The gap between the two is the evidence; either alone is an assertion.
Most of that value recurs, because it comes largely from the cache-read stream and the transform re-fires on every later turn of the same conversation — measured as roughly 57% to 82% of the value, depending on how un-attributed delta is weighted.
How savings are computed →Guardrails
Shadow mode first, by default
A guardrail is one named bundle — budget, rate ceilings, model and provider access, content rules — bound to a principal. One guardrail governs a request, or none does. They never stack.
Governance runs in one of three modes — off, shadow or enforce — set per gateway deployment by DevZero. A hosted gateway starts in shadow: every decision is evaluated and recorded, and nothing is denied.
Use that window. The known failure mode of an allowlist is a false deny — a non-wildcard entry has to match what the gateway actually sends, byte for byte. Read your shadow window's would-deny decisions and explain every one before asking DevZero to move a gateway to enforce.
Evals
Compared on your traffic, not a brochure
A trial shadows a candidate model against your incumbent on real traffic. It runs beside serving, never inside it: your users keep getting the incumbent's answer throughout, and observing a trial cannot delay or change what a caller receives.
Because the incumbent's answer already reached a user, only the candidate is dispatched — and a verdict from that evidence is the one you may promote from. A corpus you supplied can cover cases your traffic does not, but promotion is refused from it, in the API rather than merely in the interface.
After a promotion, a watch keeps the model you replaced running at a low sample rate and tells you if it starts winning again.
Agents and coding tools
The sessions your developers already run
A base-URL swap points a coding tool at the gateway on the subscription it already uses. That traffic takes the passthrough path: forwarded byte for byte on your own credential, with no DevZero header added, so nothing about the tool's behaviour changes.
What you get is the part you did not have — utilization and attribution for prepaid seats. Seats are flat fees, so the platform reports capacity and headroom there rather than dollars saved.
- Claude Code
- Codex
- Cursor
- Continue.dev
Put one gateway in front of it
Install a gateway, point a client at it, and watch the first request arrive attributed. The quickstart is four steps.