# Kai (kai-1.8) — Use via Hanzo AI API

> Hanzo Kai is a structured decision model answering typed questions at /v1/d... Call it at POST /v1/decisions. Context: 33K.

[Models](https://hanzo.ai/models)/[Hanzo](https://hanzo.ai/models/hanzo)/kai-1.8

Hanzo · Enterprise

# Kai (kai-1.8)

Decisions, not completions.

[Get decisions](#quickstart)[Explore Kai](https://hanzo.ai/kai)

[GitHub ↗](https://github.com/hanzoai/kai)[Leaderboard](https://hanzo.ai/benchmarks#leaderboard)[Benchmarks](https://hanzo.ai/benchmarks#kai)

## Shipping today

Model IDkai-1.8

Checkpointkai-1.8

Parameters~850M (multimodal decision architecture)

Context reach32,768 tokens (YaRN; trained: 1,024)

ModalityText and structured state

Output tokens0 (typed probability distribution)

EndpointPOST /v1/decisions

ArchitectureProprietary Decision Transformer + factorized cross-attention

Safety qualificationNot yet qualified: a sealed evaluation is being authored

Price…

## In development

Kai-1.7 target

Parameters~850M (text, vision, audio, video)

Resident memoryUnder 2.0 GiB

Text latency<1 ms p50 (GPU), multi-pass adaptive refinement

Image latency360–400 ms (image + text state)

EncodersVision · Audio · Video

Reasoningreasoning: "auto" | "fast" | "deep"

## Quick start

[Get an API key →](https://platform.hanzo.ai/api-keys)

TypeScript

Python

cURL

Go

TypeScript

```
// npm install hanzoai import { AiApi, Configuration } from &#x27;hanzoai&#x27; const ai = new AiApi(new Configuration({ accessToken: process.env.HANZO_API_KEY })) const { data: decision } = await ai.postDecisions({ aiDecisionsRequest: { model: &#x27;kai-1.8&#x27;, state: { incident: &#x27;checkout 5xx at 14%&#x27; }, questions: { severity: { type: &#x27;choice&#x27;, instructions: &#x27;How severe is this incident?&#x27;, criteria: { low: &#x27;cosmetic or internal; no customer is affected&#x27;, high: &#x27;some customers are blocked from finishing a task&#x27;, critical: &#x27;every customer is blocked and no revenue comes in&#x27;, }, }, }, }, }) const { choice, probabilities } = decision.answers.severity console.log(choice, probabilities)
```

Python

```
# pip install hanzoai import os from hanzoai.cloud import ApiClient, Configuration from hanzoai.cloud.api import AiApi from hanzoai.cloud.models.ai_decisions_request import AiDecisionsRequest ai = AiApi(ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))) decision = ai.post_decisions(AiDecisionsRequest.from_dict({ "model": "kai-1.8", "state": {"incident": "checkout 5xx at 14%"}, "questions": { "severity": { "type": "choice", "instructions": "How severe is this incident?", "criteria": { "low": "cosmetic or internal; no customer is affected", "high": "some customers are blocked from finishing a task", "critical": "every customer is blocked and no revenue comes in", }, }, }, })) severity = decision.answers["severity"] print(severity.choice, severity.probabilities)
```

cURL

```
curl -sS --fail-with-body https://api.hanzo.ai/v1/decisions \ -H "Authorization: Bearer $HANZO_API_KEY" \ -H "Content-Type: application/json" \ -d &#x27;{ "model": "kai-1.8", "state": { "incident": "checkout 5xx at 14%" }, "questions": { "severity": { "type": "choice", "instructions": "How severe is this incident?", "criteria": { "low": "cosmetic or internal; no customer is affected", "high": "some customers are blocked from finishing a task", "critical": "every customer is blocked and no revenue comes in" } } } }&#x27;
```

Go

```
// net/http: the Go SDK refuses a choice question with named criteria. package main import ( "bytes" "encoding/json" "fmt" "io" "net/http" "os" ) func main() { if err := run(); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } } func run() error { body, err := json.Marshal(map[string]any{ "model": "kai-1.8", "state": map[string]string{"incident": "checkout 5xx at 14%"}, "questions": map[string]any{ "severity": map[string]any{ "type": "choice", "instructions": "How severe is this incident?", "criteria": map[string]string{ "low": "cosmetic or internal; no customer is affected", "high": "some customers are blocked from finishing a task", "critical": "every customer is blocked and no revenue comes in", }, }, }, }) if err != nil { return err } req, err := http.NewRequest("POST", "https://api.hanzo.ai/v1/decisions", bytes.NewReader(body)) if err != nil { return err } req.Header.Set("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY")) req.Header.Set("Content-Type", "application/json") resp, err := http.DefaultClient.Do(req) if err != nil { return err } defer resp.Body.Close() out, err := io.ReadAll(resp.Body) if err != nil { return err } if resp.StatusCode != http.StatusOK { return fmt.Errorf("HTTP %d: %s", resp.StatusCode, out) } var decision struct { Answers map[string]struct { Choice string `json:"choice"` Probabilities map[string]float64 `json:"probabilities"` } `json:"answers"` } if err := json.Unmarshal(out, &decision); err != nil { return err } severity := decision.Answers["severity"] fmt.Println(severity.Choice, severity.Probabilities) return nil }
```

…. A native decision writes 0 output tokens; a decision Jev or a language model answers bills at that model’s rates, output included.

## Limits

- Reads text and structured state. Images, audio and video are the Kai-1.7 target.
- Reaches 32,768 tokens by position; accuracy at that length is qualified for kai-1.4 and kai-1.5 only.
- At most 100 questions a request. More questions, or a state past 32,768 tokens, is refused with 422.
- The reasoning field is the Kai-1.7 target: the API refuses it today (400).

## More from Hanzo

[Enso900KHanzo&#x27;s proprietary frontier model — Opus-class reasoning by default with 1M-context overflow.](https://hanzo.ai/models/hanzo/enso)[Enso (enso-auto)900KRoutes each request to one tier by the reasoning depth it asks for: enso-flash at off, none, minimal, low, default; enso-pro at medium, high; enso-ultra at xhigh, max. It bills at the price of the tier that answers; the price shown is a request&#x27;s that states no depth. When nothing pays for that tier it answers on enso-free, at no charge, and says so.](https://hanzo.ai/models/hanzo/enso-auto)[Enso Flash900KFast, economical Enso tier for high-volume, low-latency everyday work, with 1M-context overflow.](https://hanzo.ai/models/hanzo/enso-flash)[enso-free1M](https://hanzo.ai/models/hanzo/enso-free)[enso-pro1M](https://hanzo.ai/models/hanzo/enso-pro)[Enso Ultra1MAdaptive fan-out — probes a task-appropriate model, escalates to a top-K panel only when needed, then verifies-then-selects the best answer.](https://hanzo.ai/models/hanzo/enso-ultra)

[View all Hanzo models →](https://hanzo.ai/models/hanzo)

## Use Kai (kai-1.8) via Hanzo AI

One API key. One call to POST /v1/decisions.

[Get an API key](https://platform.hanzo.ai/api-keys)[Browse All Models](https://hanzo.ai/models)
