← Blog · Use Cases · Docs

Clef-Flash: the accuracy tier for local decisions, every question scored in one prefill

October 2026 · Inference Server team

new in v1.7.0POST /v1/systemone all questions · ONE prefilltext + images, native resolution Apache 2.0

Since v1.5.0, strands-decider has answered typed questions about your application state with calibrated probabilities — the decision layer behind the pipeline patterns. v1.7.0 adds the tier above it: clef-flash-9b-q8, Cloudflare’s 9B decision model, on the same POST /v1/systemone API. Same request body, same answer shapes; you switch by model id.

What the extra 7B buys, concretely:

  • One prefill for the whole schema. strands prefills the state once and forks per question; clef goes further — a small transformer head reads the hidden states and scores every option of every question jointly in a single pass. Ten questions cost barely more than one.
  • Accuracy. Upstream Decision-Index numbers: BFCL 98.8% case-exact, API-Bank 93.1%, ContractNLI 84.3 macro-F1.
  • Images at native resolution. strands caps the long side at 448 px (its reference pipeline does); clef feeds the processor at full size. On the error-screenshot fixture from the image decisions post, clef routes to billing at 0.9636 vs strands’ 0.9449 — both read the dialog text, clef with more margin.

Same API, bigger brain

curl -sS localhost:8081/v1/systemone -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \
  -d '{"model":"clef-flash-9b-q8",
       "state":"Since this morning every API call to /v2/orders returns a 500 error and our checkout is down. We are on the enterprise plan.",
       "questions":{
         "team":      {"type":"choice","instructions":"Which team should handle this ticket?",
                       "criteria":{"billing":"payments, invoices, refunds",
                                   "technical":"bugs, outages, API errors",
                                   "sales":"pricing, plans, upgrades"}},
         "is_urgent": {"type":"noul","instructions":"Does this ticket convey urgency?"},
         "mood":      {"type":"score","instructions":"How frustrated is the writer?",
                       "criteria":["calm","frustrated","desperate"]}}}'

# → "team": technical at 0.9689 · "is_urgent" and "mood" answered in the SAME prefill

Those are real measured outputs from our release gate — and the serving quality claim is specific: the Q8 build answers within 0.001 of the f16 reference on every gate fixture, with every choice identical. The engine-side parity story is the same discipline as every model we ship: token-exact prompt encoding against the reference implementation, the head’s math within 0.0001 of the fp32 oracle, end-to-end answers gated on every release.

Picking a tier

  • strands-decider-2b (~2 GB Q8): the default. Sub-2s decisions, calibrated (ECE 0.054), right for routing/triage/gating at volume.
  • clef-flash-9b-q8 (~10 GB, 16 GB hosts): the accuracy tier. Many-question schemas, harder judgment calls, higher-resolution document and screenshot decisions, and the natural judge behind /v1/evaluate’s rubrics.
sudo ./fetch-models.sh clef    # clef-flash-9b-q8 + vision projector, ~10.9 GB
# clef-only boxes: set MODEL_ID=clef-flash-9b-q8 (the default preload is q35-4b)

Apache 2.0, served entirely on CPU, no request data leaves the box. Answer shapes are identical across tiers, so pipelines and gates built on strands work unchanged.