AI Products & PlatformsModel ArchitectureIndustry & Competition

The Decision Model That Won by Saying What It Isn't Is Erasing Its Own Boundary

When writing business code or building agent loops, developers frequently run into high-frequency branching decisions: intent routing, state classification, risk scoring, and tool selection. Calling an auto-regressive large model that generates tokens one by one for every lightweight check like this brings high latency, high per-output-token costs, and the constant risk of out-of-bounds output formatting.

Decision models target this exact engineering pain point. The caller explicitly declares a set of typed questions or a candidate space; instead of generating free text, the model runs a single forward pass and directly returns option probabilities, scores, or typed values. Backed by a negative manifesto of “what I am not,” decision models like TypeSafe’s Jev quickly carved out a niche in the gaps between general-purpose large models.

Yet barely had the category found its footing when the shift began. Jev, the first to turn this interface into a commercial API, along with the products that followed, started packing new types into what was originally a minimalist interface: box for locating objects in images, text and date for extracting fields from documents, estimate for estimating probability distributions over continuous values, forecast for multi-step time-series prediction, and even refusal, the abstention channel deliberately excluded at the start.

Many developers see this as a natural expansion of product features, but on the scale of category definition, it points in the opposite direction. For a species built on negative boundaries, every new type added to the interface erases one of the “what I am not” lines originally drawn to define its circle. Once that circle is wiped clean, a distinct category that had just gained recognition degenerates into a general-purpose structured output layer.

It Won by Saying “What I Am Not”

Only by seeing how a technical category first caught fire in marketing can we understand what it later lost in expansion. For engineers calling APIs in business code every day, a new model that only pitches positive features struggles to stand apart from the existing LLM toolchain, let alone establish a new category in a short time.

Imagine if these models had launched with the positive slogan “I can output decisions.” It would have barely made a ripple in the market. Nearly every general-purpose LLM today, paired with structured outputs, JSON mode, or function calling, can return classification labels or Boolean judgments in whatever format the caller specifies. Positively claiming to “make decisions” creates no engineering differentiation.

What actually tore open a gap in the market was a crisp negative manifesto. Take the earliest example, Jev: in its launch blog post and primitives documentation, it repeatedly emphasized four “nots” to developers: I am not an auto-regressive model; I am not a slow-thinking System 2 model; I do not need time-consuming, compute-heavy deep reasoning; and I do not generate free text, attach explanations, or provide a refusal channel—I only choose from the candidate options you provide.

This negative positioning worked because it used the industry backdrop as a foil. At the time, nearly every mainstream large model on the market followed the auto-regressive generation path, competing on long-chain System 2 slow thinking and defaulting to paragraphs of natural language text. When every player is stacking capabilities in the same direction, positive claims about “what I can do” easily drown in the noise; declaring “what I am not” in rapid succession immediately drew a highly recognizable circle in a homogenized market. The category’s initial breakout was, at its core, a marketing triumph of negative positioning.

In their marketing, these models often borrow psychologist Daniel Kahneman’s dual-system theory, calling fast, automatic, intuitive cognition System 1 and slow, effortful, logical reasoning System 2. Vendors often write System 1 as System One and call themselves System One models. Yet claiming “I am System 1” on its own has limited persuasive power, because System 1 is merely a psychological metaphor that does not map onto code interfaces or system architecture. What actually convinced engineers was the declaration “I am not auto-regressive”—a claim that maps directly to verifiable engineering differences in time-to-first-token, throughput, and decoding paths.

This negative manifesto held together only because it defended a razor-thin product boundary: make only discrete judgments, choose only from caller-supplied options, and return only probabilities or scores. In Jev’s initial interface design, there were only three core question primitives: choice (selecting one from a finite set of candidates), noul (judging a proposition as true/false or positive/negative), and score (rating on a given scale). Every output fell strictly within the closed candidate space declared beforehand by the caller, with no free-text fields, no explanation fields, and no refusal type defined in the interface. The model did not chat, exchange pleasantries, or abstain; it acted purely as an intelligent conditional branch in code. That restraint was the premise of its existence as a standalone product.

For the single-step forward mechanism of these models, why their underlying technology lacks a moat, and the four historical waves of decision APIs, see the earlier mechanism and timing analysis; for detailed measurements on how a closed output space enforces a three-layer zero-hallucination boundary and probability calibration, see the earlier boundary testing article; and for where such high-frequency lightweight judgments sit within RPA semantic replay and business skill layering—and why high-frequency runtime calls carry commercial appeal much like UiPath moving the tollbooth to the runtime layer—see the earlier automation layering discussion. Returning to the category boundary itself, the initial strength of this category lay not in what it could say, but in what it could not say.

box Erased “Decisions Only”

Once an interface built on “making only discrete branching decisions in code” starts outputting rectangular coordinates inside an image, the first category boundary it drew begins to loosen. As soon as it steps outside discrete options into continuous visual perception space, the engineering contract behind the term “decision model” warps.

The landmark turning point arrived in Jev 1.14. To a primitive list that previously held only choice, noul, and score, the team added the box type. Per the official documentation, box locates a single object in an input image and returns a bounding box consisting of four edge coordinates expressed as proportions of the image dimensions, along with a confidence score.

Open the official box documentation and a striking rule stands out: “A Box answer is always a box. There is no ‘not found’ answer.” That sentence exposes the clash between the original decision contract and the new task. In discrete branching decisions, requiring the model to pick one of the supplied options without a “not found” state makes sense; in visual object localization, however, the target object may not be in the frame at all. The documentation provides no “absent” state; under its literal rule, even when the target is not in the image, the API still returns a box, compressing uncertainty into the confidence value and leaving downstream code to set its own threshold.

By its interface shape, box performs visual grounding in computer vision—that is, single-object detection: given a text prompt, it draws a bounding box around a target in continuous image coordinate space. That is a perception task, not a discrete judgment. Along the technical lineage of visual grounding, mature solutions predated decision models by years: as early as 2020, DETR formulated object detection as set prediction in a non-autoregressive architecture that directly outputs bounding box coordinates; in 2023, Grounding DINO extended this to open-set object detection; and subsequent multimodal models such as Florence-2 and Qwen2.5-VL built visual grounding in as a standard capability. Stuffing a single-object box into a decision API introduced no new primitive to visual perception.

Some might counter: box still does not generate free-text tokens one by one, and under the hood it still uses fast single-step or non-autoregressive decoding, so why can’t it count as a natural extension of a System One decision model? That argument conflates an underlying implementation property with a top-level category definition. “Not generating tokens” is an engineering implementation trait, not a cognitive mode. DETR has never generated text token by token since day one, yet nobody in the computer vision community has ever called DETR a “System One model” or a “decision model.” Once the interface crosses from a finite candidate set into continuous pixel space, the mathematical nature of the task changes.

The vendor itself was well aware of this boundary crossing. In the Jev 1.14 release blog post, the team noted that box was their first type not purely serving intelligent conditional branching, describing the addition as an exploration beyond simple decisions. The top of the box documentation is also labeled “Dreamer-ready,” indicating that image and Box questions had not yet met their own production-grade bar.

Those negative technical claims (not auto-regressive, no free-text output) still hold for box, but the core product boundary—“I only make smart-if discrete judgments”—was erased by the very people who drew the circle. On the surface, box added one more primitive type; in reality, it subtracted “decisions only.”

The left column is the System One name, and the right column is the path of structured prediction; Jev borrowed the former while walking the latter.

Clairic Erased “Discrete Choices Only”

The rigid constraint left behind by box—always returning a box, with no “not found”—is hard to make work in real production engineering. As soon as an interface is wired into document processing or data pipelines, callers immediately run into missing fields. Yet when a newcomer patches that missing-value gap while bundling text extraction, continuous distribution regression, and time-series forecasting into the same interface, the category’s second boundary disappears along with it.

Another product line from Cloudflare illustrates a different kind of type boundary. On Workers AI, they offer two models side by side: Clef handles traditional branching decisions, while Clairic targets structured extraction and prediction directly. According to Clairic’s official documentation, its request structure is organized around fields and expands the supported field types to nine at once: text, number, date, time, datetime, duration, list, estimate, and forecast.

To handle the missing fields common in real-world data, Clairic’s type design introduces a combination of p_null, confidence, and guess. Every scalar answer carries both a missingness probability p_null and a confidence score; the interface allows value to be null directly, while using the guess field to provide the value the model would have chosen had it not abstained. One response example in the official documentation is value: null, p_null: 1, guess: "INV-2291", confidence: 0.9995. This design separates “the target does not exist in the source text at all” from “the target exists, but the model is uncertain” into two independently readable signals.

Viewed purely as a type mechanism, introducing p_null does close the type gap seen earlier in box, where there was no “not found” and a box had to be returned even when nothing was there. But task boundaries matter here: p_null is a general type design built for structured information extraction, not a patch for visual grounding box. Once an interface uses text, number, date, duration, and list to pull fields out of unstructured inputs and judge whether they are empty, it is doing traditional document understanding and field extraction.

What truly flattens “discrete choices only” are estimate and forecast at the end of the type list. As explained in the Clairic launch blog post, estimate estimates a probability distribution over an unknown continuous quantity, returning a full distribution across a caller-specified [min, max] grid along with the median and the p10 and p90 quantiles; forecast targets time-series scenarios, returning a prediction interval for each future time step.

Placed back into standard machine learning task taxonomy: picking one item from a fixed enumeration is classification or discrete decision-making; pulling strings and dates out of a passage is information extraction; estimating distributions and quantiles over a continuous [min, max] interval is continuous regression or density estimation; and producing numerical intervals multiple steps into the future is time-series forecasting. They were never the same kind of task to begin with.

By the time we reach Clairic, the underlying engineering traits—“not auto-regressive, no free-form explanatory text”—remain intact, but the rule originally used to fence in the category—“discrete choices only, chosen strictly from supplied options”—is gone. Clairic restored null as a first-class state in the type system, and what it bundled in alongside it went far beyond judgment to include extraction, regression, and forecasting.

Why Everyone Is Expanding: One Possible Explanation

Watching Jev and its successors pack new types into their interfaces, it is easy to read this as feature creep or blame vendors for betraying their initial minimalism. My judgment is that the more important reason lies elsewhere: the original “discrete judgments only” boundary simply isn’t enough inside real pipelines.

A complete agent loop or automation pipeline needs more than binary or multi-way branch routing. The very same pipeline often has to extract fields from unstructured documents, draw bounding boxes around targets in screenshots or photos, estimate unknown continuous quantities, and produce interval forecasts several time steps ahead. If an interface can only answer “which branch to take,” callers still have to wire up separate visual detection, field extraction, and statistical forecasting components alongside it just to finish the workflow. A narrow boundary is sharper in marketing, but less complete in product delivery.

In my view, these products carry a counter-market dynamic: to tear open a gap in a homogenized auto-regressive LLM market, they had to draw a hard line of “I don’t do this, I don’t do that,” using a negative manifesto to catch fire in marketing, capture attention, and standardize a declarative request interface along the way. Customers, however, will not trim their real requirements just to preserve a vendor’s marketing boundary. If the circle-drawer clings indefinitely to “decisions only,” it effectively cedes the extraction, localization, and estimation needs sitting right next to branch decisions to more complete products; when successors and competitors add those types in, the product becomes whole, and the sharp edge built on “I do nothing extra” dissolves.

This explanation is consistent with product moves over the past few months, though public materials are insufficient to prove each vendor’s internal motivation. What can be confirmed is that the same interface shape now appears across products from OpenAI, Microsoft, Cloudflare, Perplexity, Liquid, and ScaleDown; some expand the type system while sharing the declarative shell, while others focus on interface compatibility. Microsoft-Decision-1 retains state plus noul/choice/score, with its documentation noting only that the request pattern resembles a system-one API; Cloudflare Clef pitches full compatibility with the Jev API, while Clairic uses fields to expand into extraction and forecasting; OpenAI Decisions adopts predicate/choice/score and adds a refusal type; Perplexity, Liquid, and ScaleDown each expose their own type surfaces as well. Taken together, these moves show a clear pattern of “shared interface shape, diverging type boundaries,” even if we cannot infer each vendor’s exact causal motive from the pattern alone.

refusal is a useful example. The initial version of Jev did not have this type; OpenAI Decisions does. Public materials do not explain why OpenAI added it, nor do they tie it to Clairic’s p_null. What can be said is that refusal, too, has been turned into a typed branch inside the schema. This has created a split between the interface layer and the semantic layer across the industry: Cloudflare Clef explicitly claims full compatibility with the Jev API, but sharing a declarative shell does not mean callers can migrate simply by swapping the base URL. Interface compatibility is not semantic equivalence across probabilities, nulls, and refusals: p_null, confidence, estimate, and refusal differ across vendors in how they define missingness, probability distributions, and calibration semantics.

What Was Lost Is Not the Market, but the Power to Define the Category

Why be pedantic about what a technical category is called or where its boundary lies? Because in software engineering, a category’s boundary determines where developers place a component in their system architecture diagram. When a category can no longer articulate how its task boundary differs from the structured output of a general-purpose model, it gets demoted in the architecture from a standalone first-class component to an ordinary decoding parameter beneath a general model gateway.

Comparing these interface designs side by side makes it clear how the circle originally drawn by saying “what I am not” was erased layer by layer:

Stage “What It Is Not” That Still Holds “Only” Boundaries Already Erased Category Reality
Initial (Jev v1) Not auto-regressive generation; not System 2 slow thinking; no free text, no explanation, no refusal (Boundary intact: discrete judgments only, choosing only from given options, returning only probabilities or scores) Pure Smart-If discrete decider
After box / Jev 1.14 Not auto-regressive generation; no free text; no not found or refusal channel Erased “decisions only” (entered continuous coordinate space for visual grounding, and must return a box even when the target is absent) Hybrid interface mixed with single-object visual perception
Clairic Not auto-regressive free-text generation (still outputs structured results directly per declared fields) Erased “discrete choices only” and “never returning null” (introduced p_null, expanding into text extraction, continuous regression estimate, and time-series forecast) General extraction and statistical prediction interface with abstention
Other Vendor Interfaces No free-form explanatory text (retains strongly typed request and response shell) Erased “no refusal” and unified semantics (OpenAI typed refusal, while custom primitives and probability semantics diverged across vendors) Non-autoregressive general structured output layer sharing a JSON shape

Reading down this table, the trajectory is unmistakable. The category’s original positive definition was “judgment,” ringed by guardrails of “not auto-regressive, not slow thinking, no free-text generation.” Put these expansions together—visual grounding box, field extraction and regression forecasting in Clairic, and the varied interfaces across other vendors—and the positive core of “judgment” is gone, leaving only the negative attribute of “no free-text generation” standing in place. In my view, for the decision models discussed here, those negative attributes alone are no longer enough to distinguish their task boundary from other structured prediction interfaces.

As the interface accumulates more and more supported types, to the caller it increasingly resembles the very thing it originally defined itself against. Today’s general-purpose auto-regressive LLMs, paired with a JSON schema and structured outputs, can likewise take a context passage and a field declaration and return classification choices, extracted text, dates, numerical intervals, or even refusal states. As the tasks carried by the outer interface converge, the difference between these models and “general LLM + JSON schema” narrows down to whether the underlying engine uses non-autoregressive single-step decoding or auto-regressive token-by-token decoding. What used to be a difference in category has degenerated into a difference in underlying implementation attributes.

What this category lost in its feature expansion, then, is not the market, but the power to define the category. In my view, a blurred category boundary does not mean the engineering demand for low-latency, low-cost, strongly typed calls goes away; yet as a standalone category, the “decision model” can no longer say “what it is not.” By pulling visual detection, field extraction, numerical regression, time-series forecasting, and refusal channels into its embrace, it dismantled with its own hands the very fence that made it stand out in the first place.

If we were to give it an honest, positive technical name based on the engineering tasks it actually performs today, it should be called typed prediction with abstention, or non-autoregressive structured prediction. Typed prediction with abstention means the model directly outputs structured values, distributions, or null/abstention probabilities within a caller-declared type space, without generating free text. The exact label matters less than the substance: once marketing metaphors like “System One” are stripped away, only three positive contracts truly underpin the engineering value of this interface: first, the output space is explicitly declared by the caller; second, the model decodes the output directly without generating free text; and third, the type system must natively express missingness, uncertainty, and probability distributions.

Stepping back to this technical reality clarifies its economic position in the value chain: the outer JSON interface shape has no exclusive moat, and anyone can build a compatible API; what actually determines which model stays in production remains probability calibration quality, vertical domain data, human-in-the-loop review, and depth of integration into automation workflows—a point examined in full in the earlier timing and moat analysis.

From a business standpoint, for a pioneer like TypeSafe, losing the power to define the category is not necessarily a bad thing—though that is a scenario projection, not an established revenue fact. What may die is the early marketing shell of the “System One decision model” used to break into the market, not the product itself. If a vendor can extend the same declarative interface across extraction, localization, estimation, and forecasting, and get customers to pay for those tasks, the addressable business surface may be larger than “decisions only.” What truly needs defending are calibration, data, human review loops, and workflow integration; an artificially drawn “decisions only” line was never the reason customers keep paying.

More accurately, this category erased the boundary it originally drew through one scenario-driven expansion after another. For technical taxonomy, whether a category can still hold the circle it drew may matter more than how many new types its API can output tomorrow; for the companies inside it, however, the death of a category name does not mean the death of the business. This judgment applies specifically to these decision models, not as a universal historical law for all technical categories.