Try Hanzo
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.

Read the docs →
Enso knows when to write, decide, retrieve, act and route.

Consensus mode

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

Request
Classify 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

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

Historical multi-model research evaluation · questions it has seen: Enso Ultra 98.0%, Enso 96.5%, Enso Flash 95.5%. run

LiveCodeBench 93.7% at $8.59 — 1.5× less than Opus 4.8 (72.0%, $13.14), at list prices, Oct 31, 2026. run

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.

  1. Review this change.Someone is waiting on the review.
    Write · Enso Pro
  2. Classify this ticket.High volume, and a fast answer is enough.
    Write · Enso Flash
  3. File the bug and assign it.The answer is an action, so it comes back as a tool call.
    Act · A tool call
  4. Should the deploy continue?A bounded choice with known options — Kai’s job once it ships inside Enso.
    Decide · Kai · in progress
  5. 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.

End to end

Watch one request run.

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

  1. Understand

    Enso reads what the request is for — an answer, an action, or a choice.
  2. Constrain

    Your policy sets the bounds: the models you allow, and the budget on your key.
  3. Route

    The preset, and the model inside it, that should answer this call.
  4. Act

    When the answer is an action, it comes back as a tool call your agent runs.
  5. Check

    Ultra looks again when its first pass is unsure.
  6. 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.

  1. SureThe first pass holds, and that answer is the one that comes back.
  2. 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.

  1. Rules first

    A new kind of work has no scores yet, so the call follows the rules.
  2. Then your scores

    Scores from your traffic take over that kind of call.
  3. 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

SystemNew questionsCorrectPer 1,000 questions
Enso Ultrarun95.6%152 of 159$14.76
Ensorun93.7%149 of 159$10.03
Best single modelrun93.1%148 of 159$5.16
Enso Flashrun90.6% · the low-cost option144 of 159$3.26
SystemAccuracyCorrectPer 1,000 questions
Enso Ultrarun98.0% · questions it has seen194 of 198–
Ensorun96.5% · questions it has seen191 of 198–
Enso Flashrun95.5% · questions it has seen189 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

SystemAccuracyCorrectRun costTag, date
ensorun93.7%164 of 175$8.59frontier · 2026-07-19
gpt-5.6-solrun93.1%163 of 175$6.14frontier · 2026-07-19
gpt-5.5run91.4%160 of 175$15.60v1 · 2026-07-16
opus-5.5run80.0%140 of 175$5.94fill · 2026-10-16
fable-5.1run80.0%140 of 175$18.40fill · 2026-10-16
fable-5run78.3%137 of 175$28.08frontier · 2026-07-19
haiku-5.5run74.9%131 of 175$0.294fill · 2026-10-16
sonnet-5.5run72.0%126 of 175$3.74fill · 2026-10-16
opus-4.8run72.0%126 of 175$13.14v1 · 2026-07-16
deepseek-v4-prorun52.6%92 of 175$0.452frontier · 2026-07-19
gpt-4orun21.1%37 of 175$1.40frontier · 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.

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
Multi-Language SDKs & OSS Examples
Runnable examples across all tier-one runtimes. Zero-install authentication with hanzo auth login or environment variable HANZO_API_KEY.
Modular Rust Routing Recipes Crate
Modular production blueprints, enterprise crates, and automated verification suites.
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.
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.
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.
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.

Paste and ship

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

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

Route every call through Enso.