
Introducing Clairic, a new System One class of extraction models
Clairic is Cloudflare's preview System One extraction model, hosted on Workers AI as @cf/cloudflare/clairic, with open weights planned. It reads text or images in one forward pass and returns typed values with spans, confidence, p_null, 80% intervals for estimates and forecasts. A claim-handling cascade with Clef and GLM-5.3 ran in 19.3 seconds against 61.7 for an all-LLM version.
What it claims
Clairic (@cf/cloudflare/clairic) is a preview extraction model on Cloudflare Workers AI. It fills a caller-defined map of typed fields from text plus up to four images in a single forward pass, with no output tokens. Cloudflare bills it on input only and says it typically responds in under a second. It covers four jobs: copying spans from the input, computing values from them (sums, date differences), estimating unstated values as a distribution, and forecasting a series. Cloudflare positions it as the extraction stage before its Clef decision model and an LLM.
How it works
A request is state (text, optional images) and fields. Each field has a name, a type and optional plain-language instructions. All fields are answered in one parallel pass, so thirty fields cost about the same as three. There is no field limit: when the fields do not fit beside the input, the server splits them into parallel passes that each see the whole input, then merges the results.
Field types and options shown on the page:
text,date,datetime,list(items: "text")number(decimals,unit)duration(unit,integer)estimate(unit,min,max,scale: "log",step)forecast(horizon,interval,min,max,scale)
Scalar answers return value, guess, confidence and p_null. Text answers also return character-offset spans. When a field is absent, value is null and guess still shows what the model would have picked. In the example, a missing tracking number got guess "$52.10" at confidence 0.42 with p_null 1. Estimates return value, median, p10, p90, p_below and p_above, and all 99 percentiles on request. Forecasts return arrays with one entry per step.
const { answers } = await env.AI.run("@cf/cloudflare/clairic", {
state: email,
fields: {
order_id: { type: "text", instructions: "Order number" },
amount_paid: { type: "number", decimals: 2, unit: "USD", instructions: "Total paid including tax" },
days_since_delivery: { type: "duration", unit: "days", integer: true,
instructions: "Days from delivery to the date the customer wrote" },
repair_cost: { type: "estimate", unit: "USD", min: 10, max: 5000, scale: "log", step: 1,
instructions: "Cost to repair the damage described" },
},
});Evidence
TSA forecast. Cloudflare used daily US TSA checkpoint counts, forecasting one day ahead for 21 consecutive days in October 2026. Mean error was 3.3%, and 17 of 21 actuals fell inside the 80% interval. Three of the four misses fell on Columbus Day weekend, which the series did not signal. No baseline model is reported.
Claim cascade. The cascade (Clairic, then Clef, then GLM-5.3 writing the reply) was compared against GLM-5.3 doing all three steps:
| Metric | Cascade | All-LLM (GLM-5.3) |
|---|---|---|
| End-to-end time | 19.3 s | 61.7 s |
| Extraction and decision | under 1 s combined | 38 s |
| Cost | 49% lower | baseline |
Both pipelines got the facts and the decision right in every run. Clairic's repair estimate was identical across runs, while GLM-5.3's changed ($250, $250, $220). In the all-LLM version, Gemma 4 and Qwen failed to produce values such as repair_cost. The run count is not stated beyond these three estimates.
Receipt photo. On an angled receipt photo, confidences ranged from 0.78 (order number) to above 0.999. A missing discount correctly returned null.
How to use it
Call env.AI.run() from a Worker or use the REST API. In the cascade, Clef receives a short typed summary rather than the raw email, and the LLM never sees the email. Cloudflare cites this as reducing exposure to prompt injection. Open weights are promised "soon". No licence, parameter count or per-token price is given.
Limits
Cloudflare states these about the current early checkpoint:
- Arithmetic. One- and two-step calculations seem reliable. Longer dependent chains and aggregation across many table rows are not. Cloudflare recommends doing that math in code.
- Estimates. These need comparables, history or descriptive evidence in the input.
- Intervals. They are trained for calibration but can run narrow on unfamiliar data.
- Forecasting. It is basic, not a replacement for a trained time-series model, and ignores events missing from the series, such as holidays.
- Correctness. Outputs are always well-formed but not always correct. Callers should route on
confidence,p_nulland interval width.
Organisations named here
- Cloudflare
- TypeSafe
- Clairic
- Daniel Kahneman
- Jev
- Qwen
- Transportation Security Administration (TSA)
Technologies named here
- Workers AI
- Clef
- Jev
- GLM-5.3
- Gemma 4
- Qwen
- Cloudflare
- LLM
- Clairic
- env.AI.run()
Techniques named here
- System One decision model
- Cascaded System One and System Two pipeline
- Estimate fields with declared bounds
- Forecast fields
- System One extraction model
Related in models


