# Hanzo Enso — Choose an outcome

> Intelligent model routing for frontier AI. Enso balances quality, latency, cost, and policy across top models and agents via one API.

Hanzo / Enso

# The right intelligence.Every time.

Enso is a meta-LLM: Hanzo's own small model that coordinates every model on the gateway for higher intelligence, faster and at lower cost.

[Get API key](https://platform.hanzo.ai/keys)

[Explore GitHub examples →](https://github.com/hanzoai/enso)

[Read the docs →](https://docs.hanzo.ai/docs/models/enso)Enso knows when to write, decide, retrieve, act and route.Enso knows when towrite · decide · retrieve · act · route.

## Consensus mode

When accuracy matters more than cost, Enso brings multiple models together to independently evaluate, compare and verify their answers.

RequestClassify this ticket.

Ensounderstand · constrain · route

QualityLatencyCostPolicy

Write

Zen and the frontier’s models

DecideIn progress

Kai, the decision model

Act

Tools and agents

Result · WriteEnso FlashHigh volume, and a fast answer is enough.

Historical multi-model research evaluation · new questions: Enso Ultra 95.6% at $14.76 per 1,000 questions, Enso 93.7% at $10.03, against 93.1% for the best single model at $5.16. [run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.gpqa_diamond-heldout-1.6.6-enso-ultra)

Enso Flash, the low-cost option on new questions: $3.26 per 1,000 questions against $5.16 for the best single model, at 90.6%. [run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.gpqa_diamond-heldout-1.6.6-enso-flash)

Historical multi-model research evaluation · questions it has seen: Enso Ultra 98.0%, Enso 96.5%, Enso Flash 95.5%. [run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.gpqa_diamond-test-seen-1.6.6-enso-ultra)

LiveCodeBench 93.7% at $8.59 — 1.5× less than Opus 4.8 (72.0%, $13.14), at list prices, Oct 31, 2026. [run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-frontier-enso)

The enso measured here is enso-bench's router at the tag each run names, not today's catalog presets: its LiveCodeBench run is frontier, 2026-07-19. Each run's cost is its recorded input and output tokens at the price list's rate per million, Oct 31, 2026: Opus 4.8's at anthropic/claude-opus-4.8's $5 in and $25 out; Enso's at the dearest Enso tier's, enso-ultra's $5.5 in and $27.5 out, since enso bills the tier that answers and the run does not record which. Opus 4.8 is one model, on the same questions.

500+ModelsFrom 70+ labs, behind one endpoint.

2APIs it speaksOpenAI-compatible and Anthropic-compatible, one key.

One runtime

## One runtime. Every layer of AI.

A request can touch a model, a tool, an agent, your memory, a decision and the machine it runs on. Enso is the runtime that decides which.

### Models

Zen, and the frontier’s models, behind one endpoint.

### Agents

Long-running agents in sandboxes, on a schedule or a trigger.

### Tools

MCP tools your agents call, from search to a deploy.

### Memory

Your files and knowledge, retrieved into the work.

### Decisions

Kai answers a bounded choice with calibrated odds.Inside Enso: in progress

### Data

Each organisation’s data in its own encrypted store.

### Compute

Our cloud, or your own machine.

### Enso

The route between all of them, chosen per request.

One request at a time

## Every request has a different best path.

Same endpoint. A review, a label, an action and a choice each take the lane and the preset the work needs.

- Review this change.Someone is waiting on the review.Write · Enso Pro
- Classify this ticket.High volume, and a fast answer is enough.Write · Enso Flash
- File the bug and assign it.The answer is an action, so it comes back as a tool call.Act · A tool call
- Should the deploy continue?A bounded choice with known options — Kai’s job once it ships inside Enso.Decide · Kai · in progress
- Audit this design.A wrong answer here is expensive.Write · Enso Ultra

## Spend intelligence where it matters.

The flagship is for the call where being wrong is expensive. Everything else gets the preset that is fast and enough.

The balance

## Weighed the same way, every call.

Quality, latency and cost — inside the fence your policy draws.

Quality

Latency

Cost

QualityA call the cheap preset can answer does not spend the flagship.

LatencyWhen someone is waiting, the faster preset that can do the work comes first.

CostThe dearer preset is for the call where being wrong is the expensive part.

Policy is the fence. The choice stays inside the models you allow.

Flash · Pro · Ultra

## Pick speed or depth per call.

Name a preset when you already know. Name Enso when you want the choice. A preset is a pool and a rate; rates per million tokens, in → out.

### Enso Ultra

enso-ultra

…… for 1,000 in and 1,000 outFor work where a wrong answer is expensive: research, security review and long autonomous runs.

### Enso Pro

enso-pro

…… for 1,000 in and 1,000 outFor coding, code review and agents that answer while someone waits.

### Enso Flash

Default · enso

…… for 1,000 in and 1,000 outFor chat, extraction, classification and simple agent steps at volume.

[Pricing →](https://hanzo.ai/pricing)

End to end

## Watch one request run.

Six steps between the request and the answer. You write none of them.

- ### Understand Enso reads what the request is for — an answer, an action, or a choice.
- ### Constrain Your policy sets the bounds: the models you allow, and the budget on your key.
- ### Route The preset, and the model inside it, that should answer this call.
- ### Act When the answer is an action, it comes back as a tool call your agent runs.
- ### Check Ultra looks again when its first pass is unsure.
- ### Learn Scores from your traffic sharpen the next choice of the same kind.

The glue

## Stop stitching the AI stack together.

A gateway here, an agent runtime there, a policy layer, a tracer, a GPU contract. Each is one more integration to keep alive. On Hanzo they are one runtime.

Model gatewayAgent runtimeToolsMemoryPolicyRoutingDecisionsObservabilityCompute

Enso runtimeone key · one bill · one trace

Models

## Every model you can name. One you don’t have to.

Enso picks among 500+ models from 70+ labs. It weighs five things.

### Capability

Can this model do this work at all?

### Latency

Is someone waiting on the answer?

### Cost

What is a wrong answer worth here?

### Policy

Which models is this call allowed to reach?

### Context

How much does the call carry, and which window holds it?

Agents

## Agents inside a runtime, not a demo.

An agent makes hundreds of calls to finish one task. Every turn is a call, and every call is routed: the plan gets depth, the routine step gets speed.

Plan→

Act→

Observe→

Decide→

Continue

Agents run in sandboxes, call tools over MCP, and keep their memory between runs.

Decisions

## Zen answers “what could we do?” Kai answers “what should we do?”

Kai takes the state, the evidence and the options, and returns a calibrated distribution over them — no prose to parse. Inside Enso, routing a bounded choice to Kai is in progress; Kai is live on its own today.

Write · ZenDraft the migration plan.

Decide · Kai · in progress inside EnsoShould the migration proceed?

Kai today: POST /v1/decisions

Ultra

## Sure on the first pass. Checked when it is not.

Flash and Pro pick once. Ultra answers once when the first pass holds, and looks again when it does not.

- SureThe first pass holds, and that answer is the one that comes back.
- Not sureUltra asks again and keeps the answer that holds.

Your traffic

## The same choice, getting sharper.

A new workload follows the rules. Scores from your traffic take over, and the rules return when a score is unsure.

- ### Rules first A new kind of work has no scores yet, so the call follows the rules.
- ### Then your scores Scores from your traffic take over that kind of call.
- ### Unsure, rules again A score that is not confident gives the call back to the rules.

What is kept is the score, not the text of the prompt.

Your routing

## Route it your way.

Static, by policy, or trained on your own traffic. One API for all three.

### Static

Pin a model to a route or a tier. The same model answers, every time.

### Policy

Set rules on cost, latency, capability, provider and data residency. Every call stays inside them.

### Trained

Train a router on your own usage and evals, the way Enso is trained.

"model": "enso", "consensus": trueFixed policies are overrides in the console.

Measured

## Accuracy, and what it costs.

Enso beside single models from the labs, on the same questions: GPQA Diamond against what 1,000 questions cost, then LiveCodeBench.

### GPQA Diamond

System

New questions

Correct

Per 1,000 questions

Enso Ultra[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.gpqa_diamond-heldout-1.6.6-enso-ultra)

95.6%

152 of 159

$14.76

Enso[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.gpqa_diamond-heldout-1.6.6-enso)

93.7%

149 of 159

$10.03

Best single model[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.gpqa_diamond-heldout-1.6.6-best-single)

93.1%

148 of 159

$5.16

Enso Flash[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.gpqa_diamond-heldout-1.6.6-enso-flash)

90.6% · the low-cost option

144 of 159

$3.26

System

Accuracy

Correct

Per 1,000 questions

Enso Ultra[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.gpqa_diamond-test-seen-1.6.6-enso-ultra)

98.0% · questions it has seen

194 of 198

–

Enso[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.gpqa_diamond-test-seen-1.6.6-enso)

96.5% · questions it has seen

191 of 198

–

Enso Flash[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.gpqa_diamond-test-seen-1.6.6-enso-flash)

95.5% · questions it has seen

189 of 198

–

### LiveCodeBench

LiveCodeBench · enso.livecodebench, split v6-recent-175 · every row a research run, read from api.hanzo.ai when the page opens · sorted by accuracy

System

Accuracy

Correct

Run cost

Tag, date

enso[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-frontier-enso)

93.7%

164 of 175

$8.59

frontier · 2026-07-19

gpt-5.6-sol[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-frontier-gpt-5.6-sol)

93.1%

163 of 175

$6.14

frontier · 2026-07-19

gpt-5.5[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-v1-gpt-5.5)

91.4%

160 of 175

$15.60

v1 · 2026-07-16

opus-5.5[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-fill-opus-5.5)

80.0%

140 of 175

$5.94

fill · 2026-10-16

fable-5.1[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-fill-fable-5.1)

80.0%

140 of 175

$18.40

fill · 2026-10-16

fable-5[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-frontier-fable-5)

78.3%

137 of 175

$28.08

frontier · 2026-07-19

haiku-5.5[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-fill-haiku-5.5)

74.9%

131 of 175

$0.294

fill · 2026-10-16

sonnet-5.5[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-fill-sonnet-5.5)

72.0%

126 of 175

$3.74

fill · 2026-10-16

opus-4.8[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-v1-opus-4.8)

72.0%

126 of 175

$13.14

v1 · 2026-07-16

deepseek-v4-pro[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-frontier-deepseek-v4-pro)

52.6%

92 of 175

$0.452

frontier · 2026-07-19

gpt-4o[run](https://api.hanzo.ai/v1/research/runs?org=hanzo&id=enso.livecodebench-v6-recent-175-frontier-gpt-4o)

21.1%

37 of 175

$1.40

frontier · 2026-07-19

Each system's frontier run, else its v1 run, else its fill run: the three put the same prompts to a model. A run cost is the input and output tokens the run records at the price list's rate for its own model id, the router's included, at list prices, Oct 31, 2026; a dash is a run that records no tokens, a model the list does not price, or a list that could not be read.

[The GPQA page →](https://hanzo.ai/benchmarks/gpqa)[The frontier →](https://hanzo.ai/benchmarks#frontier)

Infrastructure

## From prototype to production without changing the architecture.

The call you make on day one is the call you make at scale. What changes is what rides along it.

Your application

Enso

Models · Agents · Tools

Hanzo Compute

RoutingObservabilityPolicyAuthenticationUsageBillingDeployment

Drop-in

## Name Enso. It picks the model.

Same key on /v1/chat/completions and /v1/messages. Send enso, or name the preset. The SDK you already use works: point it at api.hanzo.ai.

bash

```
curl https://api.hanzo.ai/v1/chat/completions \ -H "Authorization: Bearer $HANZO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "enso", "messages": [{ "role": "user", "content": "Plan the migration." }] }'
```

python

```
import os from openai import OpenAI client = OpenAI(base_url="https://api.hanzo.ai/v1", api_key=os.environ["HANZO_API_KEY"]) answer = client.chat.completions.create( model="enso", # or enso-flash, enso-ultra messages=[{"role": "user", "content": "Plan the migration."}], )
```

Built for

## What the presets are for.

### Coding and review

Pro is the default when someone is waiting on the change. The call is the endpoint you already speak.

### A long, careful run

Ultra is the preset where a wrong answer costs more than the tokens.

### Volume

Flash is the preset for a label, an extraction, or a short step, repeated.

### A pool you bound

The choice stays inside the models you allow. That holds on every preset.

Enterprise

## Built for AI that actually runs businesses.

What holds today, said plainly.

Security

People sign in through Hanzo IAM with single sign-on. Secrets live in Hanzo KMS, never in code or config.

Governance

The models you allow are a fence. Every preset, and every route inside it, stays within them.

Control

Each key carries its own budget and rate, and shows when it was last used.

Observability

Every call is metered and traced: the tokens, what they cost, and the span the call ran in.

Reliability

When an upstream model fails, the call moves to the next one in its pool rather than failing with it.

Questions

## Asked plainly.

What do I send?

Set model to enso, or to a preset id. One key, on /v1/chat/completions and on /v1/messages.

What do the three presets change?

The pool, and the rate. Enso Ultra is … in and … out per million tokens. Enso Pro is … in and … out per million tokens. Enso Flash is … in and … out per million tokens.

Can I see which model answered?

No. Enso is a closed family. You name the preset and the models you allow. The response is the answer.

Does Enso route to Kai today?

Not yet. Kai is live on its own endpoint, /v1/decisions; routing a bounded choice to it from inside Enso is in progress.

Where is the rest of the measurement?

The boards on this page are GPQA Diamond and LiveCodeBench, every row a research run read when the page opens. The GPQA write-up is on its own page, and the benchmarks page draws each board as accuracy against what the run cost at list prices.

Enso · Model Router

## Microsecond model routing. Intelligent optimization across quality, latency, and cost.

Learned bilinear utility model evaluates each incoming prompt in 12 µs. Routes across every model on the gateway from frontier labs and Hanzo native weights behind one unified API.

Model Card Specifications

enso-auto

Wire EndpointPOST https://api.hanzo.ai/v1/chat/completions

Decision Objective

quality - λ·cost - μ·latency

Routing LatencyMeasured in-process before inference

300 ns rule-based · 12 µs learned policy

API Compatibility

OpenAI /v1/chat/completions & Anthropic /v1/messages

Managed SKUs

enso-auto · enso-flash · enso-ultra · enso-pro · enso-free

Context Capacity

Up to 1,000,000 tokens (model dependent)

Safety & Policy

Strict organization fences, budget caps, and model whitelist

Online Feedback

POST /v1/ai/feedback LinUCB contextual bandit updates

[Get API key](https://platform.hanzo.ai/keys)[Documentation](https://docs.hanzo.ai/docs/models/enso)

Multi-Language SDKs & OSS Examples

[GitHub Repo](https://github.com/hanzoai/enso)

Runnable examples across all tier-one runtimes. Zero-install authentication with hanzo auth login or environment variable HANZO_API_KEY.

[Pythonexamples/python](https://github.com/hanzoai/enso/tree/main/examples/python)

[Goexamples/go](https://github.com/hanzoai/enso/tree/main/examples/go)

[Rustexamples/rust](https://github.com/hanzoai/enso/tree/main/examples/rust)

[TypeScriptexamples](https://github.com/hanzoai/enso/tree/main/examples)

[cURLcurl](https://github.com/hanzoai/enso/tree/main/examples)

[Modular Rust Routing Recipes CrateModular production blueprints, enterprise crates, and automated verification suites.](https://github.com/hanzoai/enso/tree/main/recipes)

bash

```
curl -X POST https://api.hanzo.ai/v1/chat/completions \ -H "Authorization: Bearer $HANZO_API_KEY" \ -H "Content-Type: application/json" \ -H "X-Max-Latency-Ms: 800" \ -d '{ "model": "auto", "messages": [{"role": "user", "content": "Analyze and optimize this SQL query."}] }'
```

Enterprise Solutions

## Battle-tested model routing blueprints across enterprise scale.

Save up to 90% in LLM cloud compute costs while enforcing strict SLA latency caps and organization data fences.

Cost and latencyStack: Enso + Kai + Zen

### AI Inference Optimization & Workload Routing

Learned bilinear utility model maps each prompt to the optimal model based on quality, latency, and token cost. Bypasses expensive frontier models when specialized open weights suffice.Read more[Hanzo Router (Bilinear Utility)](https://papers.hanzo.ai/hanzo-router/)[Route Prompts, Cut AI Costs 90%](https://hanzo.blog/blog/2026-07-07-hanzo-router-cut-ai-costs/)[recipes/src/routing.rs](https://github.com/hanzoai/enso/tree/main/recipes)

[Explore the routing recipe](https://github.com/hanzoai/enso/tree/main/recipes)

Supply chainStack: Kai + Enso

### Distribution & EDI Exception Routing

Parses ASN discrepancies, EDI 856 transmission mismatches, and missed carrier ETAs. Enso routes exceptions to automated disposition or escalation under strict SLA bounds.Read more[HIP-0510 (Learned Router Spec)](https://hips.hanzo.ai/docs/hip-0510-enso-learned-router)[Introducing Enso Intelligence](https://hanzo.blog/blog/introducing-enso/)[recipes/src/routing.rs](https://github.com/hanzoai/enso/tree/main/recipes)

[Explore the logistics recipe](https://github.com/hanzoai/enso/tree/main/recipes)

Retail mediaStack: Kai + Zen + Enso

### Retail Media & Seller Campaign Ad Ops

Evaluates seller promotional copy and sponsored banner creatives against trademark and safety guidelines. Enso routes real-time bidstream requests with deterministic latency.Read more[HIP-1332 (Real-Time Policies)](https://hips.hanzo.ai/docs/hip-1332-kai-the-decision-model)[The Router is the Registry](https://hanzo.blog/blog/2026-07-27-the-router-is-the-registry/)[recipes/src/routing.rs](https://github.com/hanzoai/enso/tree/main/recipes)

[Explore the ad ops recipe](https://github.com/hanzoai/enso/tree/main/recipes)

GovernanceStack: Kai + Kata

### Audit, Evaluation & Enterprise Guardrails

Guarantees strict enterprise boundary fences, automated verification, and false-alarm suppression across all routed AI requests in production.Read more[HIP-1145 (Research Experiment Record)](https://hips.hanzo.ai/docs/hip-1145-research-experiment-record)[Proof of AI: Deterministic Cloud](https://hanzo.blog/blog/proof-of-ai/)[recipes/src/routing.rs](https://github.com/hanzoai/enso/tree/main/recipes)

[Explore the audit recipe](https://github.com/hanzoai/enso/tree/main/recipes)

Research & Architecture

## Routing theory, microsecond data planes, and learned utilities.

Read engineering papers, latency benchmarks, and architectural designs from the Enso routing team.

[Architecture2026-07-17 ### Introducing Enso — one API, routed to the best frontier intelligence Enso is Hanzo's small language model that also routes. Billed at fixed per-token prices per tier.Read the article](https://hanzo.blog/blog/introducing-enso/)

[Economics2026-07-07 ### Route every prompt to the right model — and cut AI cloud costs by up to 90% Hanzo Router places each request on the cheapest model that can still serve it: local models for free, open weights that fit, or frontier cloud models when needed.Read the article](https://hanzo.blog/blog/2026-07-07-hanzo-router-cut-ai-costs/)

[Infrastructure2026-07-27 ### The router is the registry Hanzo Cloud has no checked-in OpenAPI file. The live route table is the source, projected three ways, with bijection tests failing the build if any projection drifts.Read the article](https://hanzo.blog/blog/2026-07-27-the-router-is-the-registry/)

[More on the Hanzo blog →](https://hanzo.blog)

Read

## Models, benchmarks, research.

The three presets, the runs that measure the router, and the writing.

### Models

[Enso Ultra](https://hanzo.ai/models/hanzo/enso-ultra)

[Enso Pro](https://hanzo.ai/models/hanzo/enso-pro)

[Enso Flash](https://hanzo.ai/models/hanzo/enso)

[The three presets](#presets)

### Benchmarks

[On this page](#benchmarks)

[GPQA-Diamond](https://hanzo.ai/benchmarks/gpqa)

[Enso, measured](https://hanzo.ai/models/enso)

[The suite](https://hanzo.ai/benchmarks)

### Research

[Hanzo RouterThe router paper. The live board is the one on this page.](https://papers.hanzo.ai/hanzo-router/)

[HIP-0510The learned router.](https://hips.hanzo.ai/docs/hip-0510-enso-learned-router)

[Docs](https://docs.hanzo.ai/docs/models)

[Pricing](https://hanzo.ai/pricing)

[HIPs](https://hips.hanzo.ai)

[Research](https://hanzo.ai/research)

[Enso is one of three Hanzo model families. Compare them →](https://hanzo.ai/models)

Paste and ship

Paste this into any agent. It reads the skill manifest and calls Enso from there.

Agent promptCopy

```
Read https://hanzo.ai/skill.md and use Hanzo Enso in my project. Start with: hanzo chat completions
```

## Route every call through Enso.

[Try Hanzo](https://hanzo.ai/login)[Explore routing recipes](https://github.com/hanzoai/enso/tree/main/recipes)
