An AI decision model is a model that answers a fixed set of typed questions with probabilities your code can act on. Unlike an LLM asked to "act as a classifier," it doesn't write free text you then parse. You now have four real options to compare: Cloudflare's Clef and Clef-flash (hosted on Workers AI, with Apache 2.0 weights), Strands Decider 2B (small, open source, runs locally), OpenAI's Decisions API (hosted, closed, public beta since October 6, 2026), and Microsoft-Decision-1 (hosted on Microsoft Foundry and OpenRouter, released October 9, 2026). This page explains when an agent should use one, and which one fits your situation.
Last verified: October 16, 2026. Clef specs (sizes, Apache 2.0 weights, Workers AI hosting, Jev API compatibility, the RL fine tuning path) come from Cloudflare's launch blog and Workers AI changelog. OpenAI details and pricing come from the Decisions API guide. Strands details come from the Strands Decider 2B announcement (October 1, 2026). Microsoft details and pricing come from Microsoft's launch post, its Foundry docs, and the OpenRouter model page. Every latency, speed, and accuracy figure here is vendor published. We didn't rerun anyone's benchmarks. The OpenAI price is a beta price, so check the guide before you budget. If a comparison is more than about 90 days old, distrust the vendor tables.
What kinds of models sit in an agent loop?
| Category | What it returns | Best for |
|---|---|---|
| Chat or reasoning LLM | Free text, plans, tool call prose | Open ended work: write, explain, invent steps |
| Classic classifier | Labels you trained for | Stable taxonomies you retrain when labels change |
| AI decision model | Typed answers with probabilities over options you define | Hot path choices: route, escalate, pick a tool, score severity |
Most agent demos put an LLM in every slot. That works for demos. It gets expensive and flaky when the job is "is this urgent, and which team owns it?" on every ticket.
Decision model vs LLM as classifier
An AI decision model takes a state (text, JSON, sometimes images) plus a schema of questions. Each question is typed. The vendors use slightly different names, but the shape is the same: a yes or no question (Cloudflare and Strands call it noul, OpenAI calls it predicate), a pick one question (choice), and an ordered score (score). The model returns a probability for every allowed answer. Your code branches on those numbers. There's no prose to scrape and no reasoning tokens to wait on for the decision itself.
An LLM forced to act as a classifier is different. You prompt it to output JSON labels. You still get free generation underneath. Formats drift. Confidence is mostly theater unless you calibrate it yourself. Latency and cost scale with how much text it writes before the label.
Decision rules:
| Pick this | When |
|---|---|
| Decision model | The answers are a closed set you already know; you need probabilities for thresholds; the call sits on the hot path (routing, urgency, tool choice, guardrails) |
| LLM | The next step needs new text, multistep reasoning, or a tool plan you can't schema in advance |
| Neither alone | You need both: decide with a decision model, then hand off to an LLM to write the reply or call tools |
That split is the whole point of this page. The products below are worked examples of it.
How a decision model runs one unit of work
Walk one support message through the loop Cloudflare documents:
- State in. "Checkout has been failing for every customer for the last hour."
- Questions in. Is it urgent? (
noul) Which team? (choice: billing, technical, or sales) How severe? (scoreover an ordered rubric) - Answers out. Probabilities per option, keyed by the same question names. Your agent reads
urgent,team, andseverityas structured fields. - Act or escalate. Route the ticket, block a request, call a tool, or defer to a human when confidence is low.
You should now see why this isn't "chat with a system prompt." The contract is state plus schema in, typed probabilities out.
For the wider agent stack around that decide step (tools and memory), see what an MCP server is and how AI agent memory works. More tool explainers sit in the AI tools hub.
Cloudflare Clef as a concrete example
On October 1, 2026 Cloudflare released Clef and Clef-flash, the first models trained by the Workers AI team and hosted on Workers AI as @cf/cloudflare/clef and @cf/cloudflare/clef-flash. Weights are open under Apache 2.0 on Hugging Face. Cloudflare describes them as Jev API compatible (System One API): you can point an existing Jev shaped integration at Clef by changing the endpoint and model.
| Model | Size | Cloudflare says it's best for | Context window |
|---|---|---|---|
| Clef | 27B | Highest precision decisions | 64K tokens (docs: 65,536) |
| Clef-flash | 9B | Latency critical, hot path decisions | 64K tokens (docs: 65,536) |
Verified extras from Cloudflare primary sources only:
- Vision: optional images (up to four) alongside the state; Cloudflare positions this as a Clef extension over text only decision models it compares against.
- Batching: up to 64 questions per request.
- RL fine tuning: Cloudflare is opening a reinforcement learning fine tuning path that starts with its forward deployed engineering team and design partners, with a self serve platform described as coming later.
- Latency (Cloudflare's numbers): across its 43 benchmark runs, Cloudflare reports a median latency of 209.3 ms for Clef and 38.8 ms for Clef-flash. That's vendor published, not independently rechecked here.
What doesn't get said. Clef isn't a general chat model. It won't write your customer email. It won't invent a new workflow. If your schema is wrong, the probabilities are still "correct" against a bad question. And RL fine tuning at launch is a design partner motion, so don't plan your roadmap as if self serve custom Clef weights ship tomorrow.
Verdict: use Clef (or Clef-flash) when you already know the decision options and need fast, typed probabilities on Workers AI or on local Apache 2.0 weights. Skip it when the agent still needs to generate the plan, not just pick among plans.
Which decision model API?
Clef isn't the only option anymore. Here's how the four compare on the things that decide a build:
| OpenAI Decisions API | Cloudflare Clef and Clef-flash | Strands Decider 2B | Microsoft-Decision-1 | |
|---|---|---|---|---|
| How you run it | Hosted only, closed model | Hosted on Workers AI, or local with open weights | Local on your own CPU or GPU | Hosted on Microsoft Foundry or through OpenRouter |
| License | Proprietary | Apache 2.0 weights | Open source; weights, training data, and scripts published | Hosted service; Microsoft doesn't list downloadable weights |
| Models | gpt-6-luna only | Clef (27B), Clef-flash (9B) | One 2B model | One model, post trained from Qwen3.5-9B |
| Inputs | Text, images, or both | Text, plus up to four images | Text | Text (32,768 token context on OpenRouter) |
| Status | Public beta since October 6, 2026; OpenAI expects GA "in the coming weeks" | Released October 1, 2026 | Released October 1, 2026 | Released October 9, 2026 |
| Price | Beta: $0.10 per 1M input tokens, no output or cache charges | See Cloudflare's Workers AI pricing; weights are free to run yourself | Free to run on your own hardware | $0.042 per 1M input tokens; output is free |
| Vendor's speed claim | "About 10x faster than the Responses API" (OpenAI) | 209.3 ms median (Clef), 38.8 ms (Clef-flash) (Cloudflare) | About 115 ms median on an RTX 3090, about 153 ms on an M3 MacBook for small tasks (Strands) | 2.5x faster than the runner up and about 35x faster than GPT-6 Sol at P50 (Microsoft) |
OpenAI Decisions API
OpenAI's version lives at its own endpoint, POST /v1/decisions. You send gpt-6-luna some input (a string, or messages with text and images) and a list of questions. Each question is a predicate (the probability a condition is true), a choice from values you supply, or a score against ordered levels. Choice and score answers come back with per option probabilities and a separate confidence field. OpenAI's own guidance is to set thresholds from labeled examples in your app.
Pricing, per the guide: input costs $0.10 per 1M tokens, and you pay only for input. There are no output, cache read, or cache write charges. Regional processing premiums and long context multipliers apply on top, and the API is still in beta, so treat that number as provisional. The guide also lists Zero Data Retention and HIPAA support for eligible customers, with data residency in the US and Europe.
What doesn't get said. You get one closed model and no weights, so you can't run it locally or fine tune it. Images have to be inline base64; hosted image URLs and file IDs aren't supported. "10x faster" is measured against OpenAI's own Responses API, not against other decision models. And beta prices and limits can change before GA.
Verdict: pick the OpenAI Decisions API if you're already on OpenAI's platform, want a hosted endpoint with image input and no infrastructure, and are fine with a single closed model. Skip it if you need open weights, local inference, or a price that won't move.
Strands Decider 2B
Strands Decider 2B comes from the Strands Agents team and was announced on October 1, 2026. It takes a pretrained Qwen3.5-2B torso, removes the text generation head, and replaces it with a small pointer head (just over a million parameters) that scores each option. The torso is fine tuned with a rank 16 LoRA adapter. The code is on GitHub and the weights, training data, and scripts are on Hugging Face.
On Strands' own measurements, it makes local decisions in a median of about 115 ms on an Nvidia RTX 3090 and about 153 ms on an M3 MacBook for small tasks, with latency growing roughly in line with task size. Strands also reports it placing 3rd of 33 models in its size class for accuracy and calibration on JevBench's public set. Both are vendor published.
What doesn't get said. Strands says it plainly: the model is significantly worse than reasoning models at complex problems, and it can't generate text, so it's no use for coding, chat, or summaries. It's a 2B model built for experimentation, which means you run, host, and scale it yourself. And "fast" here is local hardware latency; it isn't a hosted service with an SLA.
Verdict: pick Strands Decider 2B if you want to experiment on hardware you already own, need decisions to stay on device, or want to study and retrain a decision model end to end. Skip it for hard judgment calls, or if you want someone else to run the infrastructure.
Microsoft-Decision-1
Microsoft launched Microsoft-Decision-1 on October 9, 2026, in Microsoft Foundry and through OpenRouter. Microsoft built it by post training Qwen3.5-9B for single pass decision scoring, and says it will later rebase it on other models, including Microsoft AI (MAI) and OpenAI models. It supports yes or no, multiple choice, and rating questions, plus rubric based grading of AI responses and agent actions, and returns a calibrated probability for each option. On OpenRouter it runs on the Decisions API rather than the chat endpoint, using the same noul, choice, and score question types Cloudflare and Strands use.
Pricing, per Microsoft: input costs $0.042 per 1M tokens and output is free. That's the lowest listed input price of the four.
Microsoft's benchmark claims, all vendor published: the highest accuracy in its own 36 benchmark comparison (nearly 150,000 questions kept blind from training), the fastest model it measured at 2.5x quicker than the runner up, H2O-Lightning-4B v1.1, and P50 latency about 35x faster than GPT-6 Sol. It also reports that the model changes its decision on 1.3% of perturbed requests on average. Microsoft's comparison included Strands Decider 2B and OpenAI's GPT-6 Luna Decisions, but not Cloudflare Clef.
What doesn't get said. It's text only, so it can't take the images that OpenAI's and Cloudflare's options accept. Microsoft doesn't list downloadable weights, so you can't run it on your own hardware. OpenRouter notes the weights are updated continually while the API shape stays the same, which means the model behind your thresholds can shift without a version bump. In Foundry, the model you send is your deployment name, not the model name.
Verdict: pick Microsoft-Decision-1 if you're on Azure or OpenRouter, your inputs are text, and price per call matters most. Skip it if you need image input, local inference, or a model that stays fixed until you choose to upgrade.
When to put a decision model in the hot path
| Situation | Use a decision model? | Why |
|---|---|---|
| Ticket routing and urgency | Yes | Closed teams and urgency flags; thresholds beat prompt theater |
| Tool or skill choice before an LLM acts | Yes | A guardrail check that vendors say runs in tens to hundreds of milliseconds |
| Trust and safety score against your rubric | Yes | Ordered score questions map cleanly |
| Drafting the reply or writing code | No | That's LLM work after the decide step |
| Brand new taxonomy you can't list yet | Not yet | Schema the options first, or stay with an LLM until the set stabilizes |
| Complex judgment that needs reasoning | No, or a larger model | Strands itself says small decision models fall well behind reasoning models here |
| One off research question | No | Open ended; decision models waste the constraint |
Cloudflare's own internal example is threat intel style domain classification with Browser Run: it reports Clef fetching, rendering, and classifying a domain in 2.2 seconds in that workflow versus 4.7 seconds for its general LLM gpt-oss-120b in the same setup. That's a Cloudflare anecdote from the launch blog, not a universal speed law.
Which one should I pick?
| Your situation | Pick | Why |
|---|---|---|
| You need structured route, escalate, or score answers on every request | A decision model | Typed probabilities; no parse step |
| You're on OpenAI already and want a hosted endpoint with images | OpenAI Decisions API | One API call, input only beta pricing, no infrastructure |
| You want hosted speed but also open weights | Clef-flash (9B) | Cloudflare positions it for hot path latency; Apache 2.0 weights |
| You need max precision in the Clef family | Clef (27B) | Cloudflare positions it for highest precision decisions |
| You want to experiment locally or keep decisions on device | Strands Decider 2B | Runs on your own CPU or GPU; fully open training recipe |
| You're on Azure or OpenRouter, text only, and cost per call matters most | Microsoft-Decision-1 | $0.042 per 1M input tokens, free output |
| You need open ended reasoning or generated text | LLM | Decision models don't write |
| You need both decide and act | Decision model, then LLM | Decide on the hot path; generate after |
| You're still learning agent architecture | Learn the decide and act split first | Tools and memory matter as much as the model brand |
If you're comparing learning paths for shipping agents (not picking a vendor), an advisor can help you see which program fits: AI Engineering is for career changers and semi technical pros who want to build production agents, not only prompt chatbots.
