Ollama Decision Models: Classify Text and Score Yes/No Questions Locally With Nimble
Note: Some future links on this site may be affiliate links. We never claim hands-on testing; guides are researched from the public sources listed in each article.
How we wrote this: A summary of Ollama's official "Decision" documentation, its CLI reference and the Nimble model page in Ollama's library (linked below), checked October 29, 2026. Example outputs are the ones in Ollama's docs; your numbers will differ. We haven't run these models ourselves.
Most local AI guides are about chatting with a model. A lot of everyday work isn't a chat, though; it's a decision. Is this email asking for a refund? Which team should handle this ticket? How urgent is it? Ollama now has a model type built for exactly that, and it runs on your own machine.
What a decision model is
Ollama's Decision docs describe models that classify text, estimate yes/no probabilities, and score text against a rubric. You give the model some text (Ollama calls it the state) and one or more questions. Instead of writing a paragraph, it returns an answer and the probability of each allowed answer.
The Nimble model page describes Nimble as a 9B decision model from Bespoke Labs, fine-tuned from Qwen3.5-9B. It reads the prompt once per question and scores the answer tokens directly, with no reasoning step, which the page says is what makes it fast. The download is about 9.3 to 9.5 GB. Our AI model memory calculator can help you judge whether a model that size fits your computer.
The docs list four decision models: Nimble, Tev1, Clef and Clef Flash. The Clef models can also judge images.
Setup
You need Ollama v0.35.0 or later (Clef needs v0.35.1 or later). Then:
ollama pull nimble
The docs note that local requests don't need an API key.
Ask from the terminal
Pipe in a file (or put the text after the model name) and ask questions with --ask. Each is answered yes or no, unless you follow it with --choice labels or --level scores:
ollama run nimble \
--ask "Is a refund being requested?" \
< ticket.txt
Choose a label:
ollama run nimble \
--ask "Which team should handle this?" \
--choice billing="Payments and refunds" \
--choice technical="Software problems" \
< ticket.txt
Score on a scale, lowest level first:
ollama run nimble \
--ask "How urgent is this?" \
--level "Routine" \
--level "Soon" \
--level "Immediate" \
< ticket.txt
You can combine several --ask questions in one command. Each answer prints on its own line. The docs' example output:
Is a refund being requested? yes 97%
Which team should handle this? billing 91%
How urgent is this? Soon 64% 1.2 / 2
For a JSON file, you can refer to a field in backticks (for example, Is a refund being requested in `body`?), and --format json prints the full response.
The three question types
| Type | You provide | You get back |
|---|---|---|
choice |
2 to 26 named options with descriptions | The most likely option and each option's probability |
noul (yes/no) |
Descriptions for "false" and "true" | The probability of true, from 0 to 1 |
score |
2 to 10 descriptions, lowest to highest | A probability-weighted average of the levels |
The score is worth understanding. With the levels Routine (0), Soon (1) and Immediate (2), the docs give the formula: score = 0 × P(Routine) + 1 × P(Soon) + 2 × P(Immediate). That's why the example above reads "1.2 / 2": mostly "Soon," leaning a little toward "Immediate."
Call it from your own code
The local endpoint is /v1/systemone on Ollama's usual address, localhost:11434. A trimmed version of the docs' example:
curl http://localhost:11434/v1/systemone \
-H 'Content-Type: application/json' \
-d '{
"model": "nimble",
"state": "Checkout returns 500 errors.",
"questions": {
"label": {
"type": "choice",
"instructions": "Which label fits?",
"criteria": {
"billing": "Payments and refunds",
"bug": "Software errors"
}
}
}
}'
The response includes the chosen label, a probability for each option, a confidence value and token usage. The Nimble page also shows the same call through the official Python and JavaScript libraries (ollama.systemone(...)).
Read the numbers carefully
The docs define confidence as how strongly the model favors one answer over the others, from 0 to 1, and add: "A higher value does not guarantee the answer is correct." Treat the output as a sorting aid, not a verdict. For anything that matters (a refund, a legal deadline, a customer complaint) keep a person in the loop and spot-check results.
A small-business example
Say your inbox gets customer emails. A short script could save each message to a file, ask Nimble "Is a refund being requested?", "Which team should handle this?" and "How urgent is this?", and sort messages into folders, all without sending customer text to an outside service. For a structured alternative that writes JSON from a regular chat model, see Ollama structured outputs.
Images with Clef
Clef and Clef Flash accept base64-encoded PNG, JPEG or WebP images alongside the state; the docs say URLs and data URLs aren't accepted, and the state is still required. The docs' terminal example: ollama run clef ./receipt.png --ask "Is this a restaurant receipt?".
Local vs. cloud
Clef also runs in Ollama's cloud with a paid plan or usage credits, by adding :cloud to the model name or calling ollama.com with an API key. That sends your text to Ollama's servers and is billed per input token. If keeping data on your machine is the point, use the local models; see keeping Ollama local-only.