Cloudflare: Clef Flash
Cloudflare Clef Flash is the smaller 9B Clef decision model, designed for quick classification and workflow choices. It evaluates text, structured state and visual inputs against named questions, returning per-option probabilities, a selected category or an ordered score without generating prose.
About the model
This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.
Cloudflare Clef Flash is the smaller decision model in the Clef family, built by post-training Qwen3.5-9B with its vision encoder. A joint schema head reads evidence from the input and scores the allowed answers for every requested question in a single forward pass. Its role is to produce bounded classifications and decisions in a workflow. The output is a typed result with probabilities, rather than a conversational answer that an application must interpret as a category.
Describe the situation in a text or JSON state and define the questions separately. A question needs a stable name, a type and a clear instruction; category or score questions also define their allowed criteria. For a support message, one question can classify the issue, another can assess urgency, and another can identify whether the record lacks information needed for the next step. Keep the actual customer wording, relevant history and operating rules in the state so the decision is tied to evidence.
The three question types answer different needs. A noul result is the probability that a true/false condition holds. A choice result identifies one named option and includes probabilities across the alternatives plus a confidence value. A score result evaluates ordered criteria and returns their probability-weighted score, legend and distribution. Define the order of a score deliberately: moving from “No action needed” to “Immediate review” is different from an unordered set of topic labels.
For quick routing, describe categories using the actions or responsibility boundaries that actually distinguish them. A useful example is a request with choices for account access, technical fault, documentation question and other, with each option explained. The model’s result can be passed to an application’s routing rule. A close distribution between technical fault and account access is useful evidence of ambiguity; decide explicitly how the workflow treats such cases instead of assuming the selected label is a confirmed diagnosis.
For visual classification, supply a readable image and a condition the image can support. A receipt review might ask whether the total is legible and choose among defined document-quality categories. It should not request an arbitrary new total as though the model were an unrestricted extraction or writing service. The maker’s open-weight interface also accepts video frame arrays. Preserve the connection between the frames and the written state, and ask about visible events or conditions within that material.
The current manufacturer hosted reference lists a 24,576-token context, up to 64 questions and up to four embedded images. Its PNG, JPEG or WebP images are limited to 4 MiB and 16 megapixels each, with 8 MiB total decoded; the whole request body is limited to 13 MiB, and remote image links are not accepted. Question definitions and media consume input space, and long text may be truncated to fit. Put decisive evidence in a compact state. Cloudflare documents that reducing the hosted context did not change the released weights, so the hosted window and open-weight configuration remain distinct.
The model’s constrained output makes it useful for repeated policy or workflow checks. For example, define separate questions asking whether a record meets the stated completeness rules and which follow-up category applies. Keep the criteria explicit and include an option for cases the categories do not cover when that is part of the workflow design. The probabilities score the supplied options; they do not establish that the options form a complete description of every real situation.
Retain the state, the schema and the returned answer together. When a result is surprising, inspect whether a criterion is ambiguous, whether decisive input was missing, or whether relevant text was cut off. Compare model assessments with reviewed cases from the actual task before choosing automated-action thresholds. Clef Flash’s smaller-model and fast-decision positioning does not replace checking the cost of an incorrect routing decision for the workflow.
Use the typed result as input to the next application step. The model does not execute that step or write its eventual explanation. If the user needs a report, keep the decision and source evidence available to a separate writing process. The useful artifact from Clef Flash is an inspectable answer for each named question, with the probability information needed to apply the workflow’s rules.
Ailoot Ultra · System One POST /v1/systemone cloudflare/clef-flash
cloudflare/clef-flashOverview
Cloudflare Clef Flash is the smaller 9B Clef decision model, designed for quick classification and workflow choices. It evaluates text, structured state and visual inputs against named questions, returning per-option probabilities, a selected category or an ordered score without generating prose.
- Accepted inputs
- Text · Images
- Results
- decisions
Available in Ailoot · inputs & methods
Ailoot Ultra · System One POST /v1/systemone
- Input types
text,image- Output types
decisions- Output format
- json
| Field | Type | Requirement | Values & limits | Default |
|---|---|---|---|---|
Fieldmodel | Typestring | RequirementRequired | Values & limits cloudflare/clef-flash | Default— |
Fieldprovider | Typeschema | RequirementOptional | Values & limits | Default— |
Fieldquestions | Typeobject | RequirementRequired | Values & limits | Default— |
Fieldsession_id | Typestring | RequirementOptional | Values & limits | Default— |
Fieldstate | Typeschema | RequirementRequired | Values & limits | Default— |
Fieldtrace | Typeschema | RequirementOptional | Values & limits | Default— |
Fielduser | Typestring | RequirementOptional | Values & limits | Default— |
Fieldquestions.<id>.type | Typestring | RequirementRequired | Values & limits noul, choice, score | Default— |
Fieldquestions.<id>.instructions | Typestring|object|array | RequirementRequired | Values & limits | Default— |
Fieldquestions.<id>.criteria | Typeobject|array | RequirementOptional | Values & limits Conditions: choice/score: required; noul: optional. choice criteria is object; score is array with minItems1. | Default— |
Fieldquestions.<id>.criteria.true | Typestring|object|array | RequirementRequired | Values & limits Applies when: noul criteria object supplied | Default— |
Fieldquestions.<id>.criteria.false | Typestring|object|array | RequirementRequired | Values & limits Applies when: noul criteria object supplied | Default— |
Input material combinations
noul · Required: state, questions.<id>.type=noul, questions.<id>.instructions
choice · Required: state, questions.<id>.type=choice, questions.<id>.instructions, criteria object
score · Required: state, questions.<id>.type=score, questions.<id>.instructions, criteria array with minItems1
Method parameters and lifecycle
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, state, questions |
Parametermaterial_types | Contracttext, image |
Parameteroptional_controls | Contractprovider, session_id, trace, user |
Parametermultimodal_input_binding | ContractUse only exact declared state/document representation. Manufacturer image capability alone does not establish a model-specific accepted image carrier. |
Lifecycle: synchronous
Send the exact model ID and retain the complete native response.
Pricing
Tariff references do not add request options. Supported parameters are listed for the selected method.
- Fast mode
- Not specified When fast mode is selected
- Flex mode
- Not specified When flex mode is selected
- Maximum reasoning effort
- Not specified When maximum reasoning effort uses the default adjustment
Ailoot rates
Prices by configuration
Match each charge to the conditions shown. Use one rate for each set of alternative configurations.
| Configuration | Rate schedule | Context tokens, more than | Context tokens, up to and including | Charge |
|---|---|---|---|---|
| ConfigurationBase token rates | Rate scheduleBase rate | Context tokens, more than— | Context tokens, up to and includingNo upper bound | Charge Input · Input tokens $0.000076 / 1K tokens Output · Output tokens $0 / 1K tokens Input · Cache read — / 1K tokens Input · Cache write — / 1K tokens Input · Cache write, 1 hour — / 1K tokens |
| ConfigurationRequest-length tier 1 | Rate schedule— | Context tokens, more than0 | Context tokens, up to and includingNo upper bound | Charge Input · Input tokens $0.000076 / 1K tokens Output · Output tokens $0 / 1K tokens Input · Cache read — / 1K tokens Input · Cache write — / 1K tokens Input · Cache write, 1 hour — / 1K tokens |
Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. How reservation and settlement work →
Example requests
Ailoot Ultra · System One
{
"model": "cloudflare/clef-flash",
"questions": {
"is_bug": {
"criteria": {
"false": "The customer is asking a question or requesting a feature.",
"true": "The customer describes broken or unexpected product behavior."
},
"instructions": "Is the customer reporting a software defect?",
"type": "noul"
},
"team": {
"criteria": {
"account": "Login, permissions, or profile issues.",
"frontend": "Rendering, layout, or browser compatibility issues.",
"payments": "Checkout, billing, or payment processing issues."
},
"instructions": "Which team should own this ticket?",
"type": "choice"
},
"urgency": {
"criteria": [
"Can wait for the next release",
"Should be fixed this week",
"Blocking revenue right now"
],
"instructions": "How urgent is this ticket?",
"type": "score"
}
},
"state": {
"customer_tier": "enterprise",
"ticket": "My checkout page shows a blank screen after I click Pay. I have tried two browsers."
}
}set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_REQUEST_FILE:?Set your actual JSON request file}"
export AILOOT_REQUEST_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads(Path(os.environ['AILOOT_REQUEST_FILE']).read_text(encoding='utf-8'))
if not isinstance(p,dict): raise SystemExit('Request must be a JSON object')
p['model']='cloudflare/clef-flash'
Path('request.json').write_text(json.dumps(p,ensure_ascii=False),encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path('result.json').read_text()),ensure_ascii=False,indent=2))
PY_RESULT
Receive and save results
Ailoot Ultra · System One
json
Keep all completed results
Keep every complete returned response, file and content part.
Every supplied question-ID answer with its exact type, noul/choice/score value, confidence, probabilities and legend is retained. Entire original JSON is stored and returned only after settlement.
If the original response needs checking
Preserve original operation and full/partial reply; do not replay POST.
Response fields
| Field | Type |
|---|---|
Fieldmodel | Typestring |
Fieldid | Typestring |
Fieldprovider | Typestring |
Fieldanswers.<id>.type | Typestring |
Fieldanswers.<id>.noul | Typenumber |
Fieldanswers.<id>.choice | Typestring |
Fieldanswers.<id>.score | Typenumber |
Fieldanswers.<id>.confidence | Typenumber |
Fieldanswers.<id>.probabilities | Typeobject |
Fieldanswers.<id>.legend | Typeobject |
Fieldusage.input_tokens | Typeinteger |
Fieldusage.output_tokens | Typeinteger |
Fieldusage.cost | Typenumber |
Errors and next steps
| Response | Condition | Next step |
|---|---|---|
Response400 · invalid_request_error | ConditionInvalid required field, representation or value | Next stepCorrect the indicated request field. |
Aliases
Model aliases
Ailoot Ultra cloudflare/clef-flash
Method path aliases
Use the method paths shown above.
Related caller IDs
FAQ · Cloudflare: Clef Flash
- What inputs and results are available?
POST /v1/systemone·cloudflare/clef-flash:text,image→decisions- Which fields does the request use?
POST /v1/systemone·cloudflare/clef-flash:model,provider,questions,session_id,state,trace,user