<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Michał Chromiak's blog - Machine Learning / AI Systems</title><link href="https://mchromiak.github.io/" rel="alternate"/><link href="/feeds/machine-learning-ai-systems.atom.xml" rel="self"/><id>https://mchromiak.github.io/</id><updated>2026-09-17T12:00:00+02:00</updated><subtitle>Be a fool to become a Polymath.</subtitle><entry><title>Jev: Typed decisions for enterprise AI</title><link href="https://mchromiak.github.io/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/" rel="alternate"/><published>2026-09-17T12:00:00+02:00</published><updated>2026-09-17T12:00:00+02:00</updated><author><name>Michał Chromiak</name></author><id>tag:mchromiak.github.io,2026-09-17:/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/</id><summary type="html">&lt;p&gt;Jev does not generate prose. It turns textual application state and bounded questions into typed probabilistic decisions that software can use directly. This guide explains its interface, the architectural facts TypeSafe has disclosed, the limits of its benchmark evidence, and its role alongside code, LLMs, and people in enterprise agentic workflows.&lt;/p&gt;</summary><content type="html">&lt;hr&gt;
&lt;p&gt;Imagine a customer writes: “I was charged twice. Please refund the duplicate today.” An AI system may need to draft a courteous reply, but before it does that, the application needs three smaller answers: Which team owns the case? Does the refund policy apply? How urgent is the request?&lt;/p&gt;
&lt;p&gt;An LLM can answer those questions, but its native operation is to generate a sequence of tokens. If the application only needs a label or score, generating a paragraph or JSON document is a roundabout way to get there.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jev is TypeSafe AI's model for that narrower job.&lt;/strong&gt; You give it the relevant text and define the possible kinds of answer. It returns typed values and probability distributions that ordinary code can inspect. Jev does not draft the customer response or decide which tool to call; it supplies the judgments that help the application make those choices. &lt;a href="https://docs.typesafe.ai/introduction"&gt;TypeSafe's introduction to Jev&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Editorial cover showing textual state entering Jev and emerging as typed probability distributions." src="https://mchromiak.github.io/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/img/jev-cover.svg"&gt;&lt;/p&gt;
&lt;p align="center"&gt;Figure 1. When the possible answers are known in advance, Jev maps shared textual state to bounded probabilistic judgments.&lt;/p&gt;
&lt;p&gt;TypeSafe calls Jev its first &lt;strong&gt;System One Model&lt;/strong&gt;, borrowing the name from the fast, intuitive mode of cognition popularized by Daniel Kahneman. The product was announced on September 15, 2026 and is currently in early access. The company says it developed a new architecture, a parallel sampler, and a post-training method called &lt;strong&gt;Reinforcement Learning for Calibrated Decisions&lt;/strong&gt;, or RLCD. &lt;a href="https://typesafe.ai/blog/introducing-system-one-models-and-jev"&gt;TypeSafe's launch article&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="jev-in-one-minute"&gt;Jev in one minute&lt;a class="headerlink" href="#jev-in-one-minute" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A Jev call follows a simple four-step pattern:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The application gathers the relevant &lt;strong&gt;state&lt;/strong&gt;, such as a support conversation, policy excerpt, or agent trace.&lt;/li&gt;
&lt;li&gt;The developer defines bounded questions: yes or no, one choice from a list, or a score on an ordered rubric.&lt;/li&gt;
&lt;li&gt;Jev evaluates the questions independently and returns a probability distribution for each one.&lt;/li&gt;
&lt;li&gt;Code applies thresholds, permissions, and business rules before anything happens in the outside world.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The model is therefore better understood as a &lt;strong&gt;learned decision primitive&lt;/strong&gt; than as a faster chatbot. It fits routing, scoring, verification, triage, and guardrails. It does not replace an LLM when the task requires an explanation, a plan, code, or new prose.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What is publicly known:&lt;/strong&gt; TypeSafe has described Jev's interface, parallel sampler, and RLCD post-training method. It has not published the neural topology, parameter count, training recipe, or loss. The diagrams below explain the observable inference contract rather than hidden internal layers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A Jev request has two parts:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;State&lt;/strong&gt; describes the case: a support conversation, security alert, invoice, agent trace, policy, or another text-bearing record.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Questions&lt;/strong&gt; define the judgments the application needs and the allowed answer space.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The public API exposes three question types.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Primitive&lt;/th&gt;
&lt;th&gt;Ask it when&lt;/th&gt;
&lt;th&gt;Returned answer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Noul&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The application needs the probability that a statement is true&lt;/td&gt;
&lt;td&gt;A number from 0 to 1 representing the probability of “yes”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Choice&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exactly one option should be selected from a fixed, unordered set&lt;/td&gt;
&lt;td&gt;The selected option, a probability for every option, and confidence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Score&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The answer lies on an ordered rubric&lt;/td&gt;
&lt;td&gt;A fractional score, the level definitions, a probability for every level, and confidence&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;“Does the customer explicitly request a refund?” is a Noul question. “Which team owns the case?” is a Choice. “How severe is this incident?” is a Score, provided the levels define what &lt;em&gt;low&lt;/em&gt;, &lt;em&gt;medium&lt;/em&gt;, and &lt;em&gt;high&lt;/em&gt; mean. &lt;a href="https://docs.typesafe.ai/primitives"&gt;TypeSafe primitives&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/" aria-label="Open the canonical Jev article by Michał Chromiak"&gt;&lt;picture&gt;&lt;source media="(max-width: 600px)" srcset="/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/img/jev-parallel-flow-mobile.svg?v=20260917" width="720" height="1080"&gt;&lt;source media="(prefers-reduced-motion: reduce)" srcset="../img/jev-parallel-flow-static.png?v=20260917" width="1200" height="675"&gt;&lt;source media="(min-width: 601px)" srcset="../img/jev-parallel-flow.webp?v=20260917" width="1200" height="675"&gt;&lt;img src="https://mchromiak.github.io/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/img/jev-parallel-flow-mobile.svg?v=20260917" width="720" height="1080" loading="lazy" decoding="async" alt="Conceptual Jev request: one support-case state enters with independent Choice, Noul, and Score questions; typed probability distributions return together, and code applies an explicit refund rule."&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="center"&gt;Figure 2. One Jev call takes shared state, evaluates several independent questions, and hands typed results back to code. Sources: &lt;a href="https://docs.typesafe.ai/introduction"&gt;TypeSafe introduction&lt;/a&gt; and &lt;a href="https://docs.typesafe.ai/primitives"&gt;primitives documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For the duplicate-charge ticket from the introduction, an illustrative result might be:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Returned judgment&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Who owns the issue?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;billing: 0.94&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Does policy permit a refund?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yes: 0.97&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How urgent is it?&lt;/td&gt;
&lt;td&gt;&lt;code&gt;1.7 / 3&lt;/code&gt; plus the level distribution&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Jev has not authorized a refund. It has supplied three semantic measurements. Code must still verify that two charges exist, confirm the customer's identity, apply refund limits, and check permissions before queuing an action.&lt;/p&gt;
&lt;p&gt;All three questions read the same state but not one another's answers. If a later question depends on an earlier result, code starts a second request with the new state. This gives us the main design rule: &lt;strong&gt;one semantic judgment per question, composition in code&lt;/strong&gt;.&lt;/p&gt;
&lt;details class="dinov2-background"&gt;
&lt;summary&gt;Optional detail: Choice, Score, and Noul are not interchangeable&lt;/summary&gt;
&lt;p&gt;A &lt;strong&gt;Noul&lt;/strong&gt; value of &lt;code&gt;0.5&lt;/code&gt; means that “yes” and “no” receive equal probability. It does not mean that the underlying property has medium intensity. To represent intensity, use a Score with explicit ordered levels.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;Choice&lt;/strong&gt; assumes the valid outcomes form a fixed set. If the listed options may be incomplete, include &lt;code&gt;other&lt;/code&gt; or &lt;code&gt;none_of_the_above&lt;/code&gt;; otherwise the model must select the least-wrong declared option.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;Score&lt;/strong&gt; is a probability-weighted position across two to ten ordered levels. With three zero-indexed levels and probabilities &lt;code&gt;0.25&lt;/code&gt;, &lt;code&gt;0.50&lt;/code&gt;, and &lt;code&gt;0.25&lt;/code&gt;, the returned score is &lt;code&gt;0×0.25 + 1×0.50 + 2×0.25 = 1.0&lt;/code&gt;. Different distributions can produce that same value, so inspect the distribution when the shape matters. A Score is not a reconstructed dollar amount, duration, or probability of loss.&lt;/p&gt;
&lt;p&gt;TypeSafe currently documents up to 255 Choice options, two to ten Score levels, a 64k-token combined request limit, and a 32k-token limit for the state plus the longest question. Those are product limits, not properties of the general idea.&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id="why-jev-behaves-differently-from-an-llm"&gt;Why Jev behaves differently from an LLM&lt;a class="headerlink" href="#why-jev-behaves-differently-from-an-llm" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The clearest comparison is to imagine two forms. An LLM receives an almost blank page and writes the answer one token at a time. Jev receives a scorecard whose boxes and allowed values have already been defined, then fills those boxes with values and probabilities. The first interface is open-ended; the second is deliberately bounded.&lt;/p&gt;
&lt;h3 id="a-conventional-llm-generates-a-sequence"&gt;A conventional LLM generates a sequence&lt;a class="headerlink" href="#a-conventional-llm-generates-a-sequence" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A decoder-style language model assigns probabilities to the next token given the tokens already present. It selects a token, appends it to the sequence, and repeats until the response is complete. This autoregressive process is powerful because a sequence can represent almost anything: prose, code, a plan, a tool call, or structured data.&lt;/p&gt;
&lt;p&gt;The flexibility has a cost. Output length adds sequential decoding work. If the result must drive software, the system also needs a contract around the generated sequence. Modern structured-output APIs can constrain an LLM to valid JSON, so malformed output is not inevitable. But the model is still being used as a generator, and application-level uncertainty over the business choices is usually not the native output.&lt;/p&gt;
&lt;h3 id="jev-returns-bounded-decisions"&gt;Jev returns bounded decisions&lt;a class="headerlink" href="#jev-returns-bounded-decisions" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;TypeSafe says Jev uses a new model architecture and a &lt;strong&gt;parallel sampler&lt;/strong&gt;. The caller declares Noul, Choice, and Score answer spaces before inference. Jev returns the requested distributions without generating an explanatory string token by token. Questions sharing the same state are processed in parallel and independently.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mchromiak.github.io/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/img/jev-vs-llm.svg"&gt;&lt;img alt="Comparison of an autoregressive LLM decoding a token sequence and Jev returning bounded distributions in parallel." src="https://mchromiak.github.io/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/img/jev-vs-llm.svg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="center"&gt;Figure 3. An LLM generates a sequence; Jev returns distributions over answer spaces declared by the caller. Source: &lt;a href="https://typesafe.ai/blog/introducing-system-one-models-and-jev"&gt;TypeSafe's launch description&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The resulting advantages follow from specialization:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Less sequential output work.&lt;/strong&gt; The model is not decoding a paragraph or JSON document token by token.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A bounded result by construction.&lt;/strong&gt; Choice cannot invent an option outside the supplied set; Noul remains a yes/no probability; Score remains on the declared rubric.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Many questions can reuse one state.&lt;/strong&gt; A long document does not need to be resent in a separate call for every independent judgment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uncertainty is available to policy.&lt;/strong&gt; Code can inspect the complete distribution rather than only the winning label.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Control flow stays visible.&lt;/strong&gt; Thresholds, deterministic rules, permissions, and side effects remain in ordinary software.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These benefits appear when the answer space is known in advance. Jev gains a tighter interface by giving up the ability to write arbitrary strings.&lt;/p&gt;
&lt;details class="dinov2-background"&gt;
&lt;summary&gt;Optional detail: Why structured-output LLMs are still different&lt;/summary&gt;
&lt;p&gt;Constrained decoding can make an LLM emit JSON that conforms to a schema. That solves an important engineering problem, and it means “LLMs always require fragile parsing” is no longer accurate.&lt;/p&gt;
&lt;p&gt;Jev's proposed distinction is deeper than JSON syntax. TypeSafe says the model and RLCD post-training are optimized for bounded decisions and calibrated application-level probabilities, while the sampler returns several independent decisions in parallel. A structured-output LLM remains useful when the schema contains generated strings or when the task requires reasoning before producing the structure.&lt;/p&gt;
&lt;p&gt;Compare the complete workload rather than the interface label: quality, latency, cost, stability, usefulness of the probabilities, and integration effort.&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id="reading-jevs-probabilities"&gt;Reading Jev's probabilities&lt;a class="headerlink" href="#reading-jevs-probabilities" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;TypeSafe describes RLCD as training Jev to produce &lt;strong&gt;calibrated decisions&lt;/strong&gt;. Think of a weather forecast: if rain occurs on roughly 80 out of 100 comparable days labelled “80% chance of rain,” the forecasts are calibrated. For Jev, the same idea applies to groups of decisions assigned probability &lt;code&gt;0.8&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Calibration says nothing certain about a single case. A ticket routed to &lt;code&gt;billing&lt;/code&gt; with probability &lt;code&gt;0.8&lt;/code&gt; can still belong to &lt;code&gt;fraud&lt;/code&gt;. The schema only guarantees that the answer is one of the declared choices; it does not guarantee that the chosen answer is correct.&lt;/p&gt;
&lt;p&gt;For Choice and Score, the API also supplies &lt;code&gt;confidence&lt;/code&gt;, a scalar derived from the shape of the probability distribution. A distribution concentrated on one option has higher confidence than a flat distribution. Noul needs no separate confidence field because its single probability already describes the split between yes and no. &lt;a href="https://docs.typesafe.ai/confidence"&gt;TypeSafe's confidence documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Compare two Choice results:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;A: billing 0.94 | technical 0.05 | other 0.01
B: billing 0.40 | technical 0.35 | other 0.25
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Both select &lt;code&gt;billing&lt;/code&gt;, but they tell different stories. Result A is concentrated around one answer. Result B is almost a three-way contest and should be treated more cautiously. Looking only at the winning label would hide that difference.&lt;/p&gt;
&lt;p&gt;Four related quantities are easy to confuse:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Probability&lt;/strong&gt; belongs to an outcome, such as &lt;code&gt;P(refund permitted) = 0.83&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Confidence&lt;/strong&gt; summarizes how concentrated a multi-option distribution is.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Correctness&lt;/strong&gt; is established only by comparing the prediction with an appropriate reference outcome.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Calibration&lt;/strong&gt; asks whether probability estimates match frequencies over many cases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;TypeSafe documents these intended semantics but has not published reliability diagrams, expected calibration error, Brier scores, or an independent calibration study. Treat the returned probabilities as measurements to validate on representative labelled traffic, especially after changing the model version or deployment domain.&lt;/p&gt;
&lt;h2 id="reading-the-published-benchmark"&gt;Reading the published benchmark&lt;a class="headerlink" href="#reading-the-published-benchmark" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;TypeSafe publishes four workflow evaluations: security incidents, agent-trace observability, invoice processing, and customer service. Each one turns a business policy into narrow model questions plus deterministic code, then runs the same workflow with Jev and several LLMs. &lt;a href="https://evals.typesafe.ai/"&gt;Interactive workflow evaluations&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In Figure 4, moving right means spending more per case and moving up means agreeing more often with TypeSafe's reference. The most attractive region is therefore the upper-left corner.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://mchromiak.github.io/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/img/jev-workflow-eval-replot.svg"&gt;&lt;img alt="Scatterplot of agreement with TypeSafe's model-derived reference versus reported cost per case. Jev is far left at 67.8 percent and 0.0004 dollars, while several LLM workflows show similar or higher agreement at higher cost." src="https://mchromiak.github.io/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/img/jev-workflow-eval-replot.svg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="center"&gt;Figure 4. Jev reports 67.8% mean agreement at $0.0004 and 0.4 seconds per case. GPT-5.6 Terra reports 67.9% at $0.0304 and 10.1 seconds; GPT-5.6 Sol reports 74.1% at $0.0836 and 23.3 seconds. Data: &lt;a href="https://evals.typesafe.ai/"&gt;TypeSafe workflow evals&lt;/a&gt;, accessed September 17, 2026.&lt;/p&gt;
&lt;p&gt;Jev sits far to the left while remaining close to several LLM configurations on the vertical axis. The clearest pair is Jev and GPT-5.6 Terra: their reported agreement differs by only 0.1 percentage point, while Terra costs about 76 times more and takes about 25 times longer per case using the rounded values shown. That comparison applies to these four bounded decision workflows, not to the open-ended generation and reasoning tasks that Jev cannot perform.&lt;/p&gt;
&lt;p&gt;The vertical axis is &lt;strong&gt;agreement&lt;/strong&gt;, not independently annotated accuracy. TypeSafe constructs its reference by averaging answers from GPT-6 Astra and Claude Fable 5.1 at high thinking. Its own model-capabilities team wrote the workflows, and each non-reference model uses its provider's default reasoning setting. These choices make the evaluation useful as a vendor demonstration, but not an independent leaderboard.&lt;/p&gt;
&lt;details class="dinov2-background"&gt;
&lt;summary&gt;Optional detail: Per-workflow results and methodology&lt;/summary&gt;
&lt;p&gt;The aggregate gives all four workflows equal weight. Jev's displayed per-workflow results are:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workflow&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Reference agreement&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Reported cost per case&lt;/th&gt;
&lt;th style="text-align: right;"&gt;Reported time per case&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Security incidents&lt;/td&gt;
&lt;td style="text-align: right;"&gt;61.7%&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.0001&lt;/td&gt;
&lt;td style="text-align: right;"&gt;0.3 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent-trace observability&lt;/td&gt;
&lt;td style="text-align: right;"&gt;71.6%&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.0003&lt;/td&gt;
&lt;td style="text-align: right;"&gt;0.5 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Invoice processing&lt;/td&gt;
&lt;td style="text-align: right;"&gt;61.8%&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.0011&lt;/td&gt;
&lt;td style="text-align: right;"&gt;0.5 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customer service&lt;/td&gt;
&lt;td style="text-align: right;"&gt;76.0%&lt;/td&gt;
&lt;td style="text-align: right;"&gt;$0.0001&lt;/td&gt;
&lt;td style="text-align: right;"&gt;0.4 s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The spread matters. Invoice processing, for example, is a case where several LLM workflows score materially higher than Jev. An aggregate should not become a service-level promise for a different domain.&lt;/p&gt;
&lt;p&gt;Latency was measured by TypeSafe from laptops on the US West Coast, where its service was hosted. Costs use provider prices at evaluation time. TypeSafe acknowledges possible workflow bias and that its largest advertised gains are likely at the high end of real-world results. Its homepage multipliers also depend on the selected comparator and workload, so the per-model values above are more informative than one universal speedup claim.&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id="where-jev-changes-an-enterprise-agent-stack"&gt;Where Jev changes an enterprise agent stack&lt;a class="headerlink" href="#where-jev-changes-an-enterprise-agent-stack" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Jev is not an agent: it does not choose a goal, generate a plan, write a message, or operate tools. Its role is closer to a &lt;strong&gt;decision layer&lt;/strong&gt; between unstructured evidence and the code that controls a workflow.&lt;/p&gt;
&lt;p&gt;Consider a support agent. The LLM may need to understand a conversation, retrieve evidence, draft a response, and call an approved tool. Jev can sit at several narrower decision boundaries:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;before the LLM, classify intent and choose the appropriate specialist;&lt;/li&gt;
&lt;li&gt;after retrieval, score passages for relevance, contradiction, or prompt injection;&lt;/li&gt;
&lt;li&gt;before a tool call, judge whether the request matches policy and whether review is needed;&lt;/li&gt;
&lt;li&gt;after generation, verify that a response addresses the request or that cited evidence supports a claim;&lt;/li&gt;
&lt;li&gt;after the run, triage the trace for silent failures and prioritize human review.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/" aria-label="Open the canonical Jev article by Michał Chromiak"&gt;&lt;picture&gt;&lt;source media="(max-width: 600px)" srcset="/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/img/jev-enterprise-routing-mobile.svg?v=20260917" width="720" height="1130"&gt;&lt;source media="(prefers-reduced-motion: reduce)" srcset="../img/jev-enterprise-routing-static.png?v=20260917" width="1200" height="675"&gt;&lt;source media="(min-width: 601px)" srcset="../img/jev-enterprise-routing.webp?v=20260917" width="1200" height="675"&gt;&lt;img src="https://mchromiak.github.io/articles/2026/Sep/17/Jev-Typed-Decisions-for-Enterprise-AI/img/jev-enterprise-routing-mobile.svg?v=20260917" width="720" height="1130" loading="lazy" decoding="async" alt="Enterprise workflow: code prepares relevant state, Jev supplies bounded judgments, and confidence plus risk rules route work to deterministic code, an LLM, or human review before controlled tools act and outcomes are logged."&gt;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="center"&gt;Figure 5. Code owns state preparation, policy, permissions, and side effects. Jev supplies bounded judgments; LLMs generate and reason; people handle uncertain or high-impact exceptions. Sources: TypeSafe's &lt;a href="https://docs.typesafe.ai/concepts/how-to-build-with-system-one"&gt;system-design guidance&lt;/a&gt; and &lt;a href="https://docs.typesafe.ai/patterns/intent-routing"&gt;intent-routing pattern&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Follow one request through the diagram. Code first retrieves the customer record and relevant policy, calculates exact values such as dates and amounts, and removes unrelated history. Jev then labels the intent, policy fit, risk, and urgency. A high-confidence order-status request can go directly to deterministic code; a product question can go to a specialist LLM; an uncertain complaint can go to a person. The thresholds remain visible in code rather than buried in an agent prompt.&lt;/p&gt;
&lt;p&gt;It can also reduce sequential agent loops. If thirteen independent checks use the same long document, Jev can evaluate them in one batched request. TypeSafe's own regulatory-document cookbook reports that one 13-question call was 12.2 times cheaper and 10.0 times faster than thirteen sequential calls, with similar outputs across five repeats. The latency comparison sums sequential calls, so concurrent requests would narrow the time advantage, but not the repeated-input cost. &lt;a href="https://docs.typesafe.ai/cookbooks/parallel_questions"&gt;Parallel-questions cookbook&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="when-to-use-code-jev-an-llm-or-a-person"&gt;When to use code, Jev, an LLM, or a person&lt;a class="headerlink" href="#when-to-use-code-jev-an-llm-or-a-person" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Need&lt;/th&gt;
&lt;th&gt;Best starting point&lt;/th&gt;
&lt;th&gt;Reason&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Exact arithmetic, date comparison, database lookup, authorization, hard policy&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Deterministic, testable, auditable, and usually cheaper&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bounded semantic classification, scoring, ranking, routing, or verification over text&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Jev candidate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Typed distributions and many independent questions over shared state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Explanation, conversation, synthesis, planning, code, or any open-ended output&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;LLM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Generative flexibility is the requirement, not overhead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ambiguous, novel, regulated, or high-impact exception&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Human review&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Accountability and contextual judgment outweigh automation speed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A real enterprise process&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;A deliberate combination&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Different stages have different accuracy, latency, control, and accountability needs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;A useful test is: &lt;strong&gt;Can I enumerate the valid answer space before seeing the case?&lt;/strong&gt; If yes, and the hard part is a semantic judgment over text, Jev may fit. If the output must contain new language, a novel plan, or a chain of reasoning, use an LLM. If code can calculate the answer exactly, do not call either model.&lt;/p&gt;
&lt;h2 id="a-minimal-workflow-in-code"&gt;A minimal workflow in code&lt;a class="headerlink" href="#a-minimal-workflow-in-code" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The official Python SDK makes the boundary explicit:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;typesafe_sdk&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Choice&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Noul&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Score&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;TypeSafeClient&lt;/span&gt;

&lt;span class="n"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;I was charged twice. Please refund the duplicate today.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;charges&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;amount_usd&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;49&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;captured&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;amount_usd&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;49&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;captured&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;policy&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Verified duplicate charges are eligible for a refund.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;TypeSafeClient&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;system_one&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;questions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="s2"&gt;&amp;quot;owner&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Choice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Which team owns the primary issue?&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;criteria&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="s2"&gt;&amp;quot;billing&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Charges, invoices, refunds, or subscriptions.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="s2"&gt;&amp;quot;technical&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Product failures or errors.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="s2"&gt;&amp;quot;account&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Login, permissions, or account security.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="s2"&gt;&amp;quot;other&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;None of the listed teams fits.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="s2"&gt;&amp;quot;refund_allowed&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Noul&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Does `policy` permit the refund requested in `message`, given `charges`?&amp;quot;&lt;/span&gt;
            &lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="s2"&gt;&amp;quot;urgency&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Score&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;How urgent is the request expressed in `message`?&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;criteria&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
                    &lt;span class="s2"&gt;&amp;quot;Routine: no stated deadline or ongoing harm.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="s2"&gt;&amp;quot;Time-sensitive: the customer asks for prompt resolution.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="s2"&gt;&amp;quot;Urgent: delay is causing material harm.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="s2"&gt;&amp;quot;Critical: immediate intervention is required.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;owner&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;answers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;owner&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;refund_probability&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;answers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;refund_allowed&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;noul&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;owner&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choice&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;billing&amp;quot;&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;refund_probability&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.90&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;queue_duplicate_refund_for_policy_checks&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;route_to_review&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The model interprets language. Code still verifies identity, compares charge amounts, enforces authorization, applies refund limits, records the action, and makes it idempotent. A high model probability must never become a substitute for transaction controls.&lt;/p&gt;
&lt;h2 id="failure-modes-that-matter-in-production"&gt;Failure modes that matter in production&lt;a class="headerlink" href="#failure-modes-that-matter-in-production" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;TypeSafe's &lt;a href="https://docs.typesafe.ai/model-jaggedness/jev-1.13"&gt;Jev 1.13 limitations&lt;/a&gt; translate into five practical boundaries:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Keep exact work in code.&lt;/strong&gt; Jev is weak at numerical precision, counting, and date comparison. Parse timestamps, calculate amounts, check authorization, and enforce hard limits deterministically.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prepare focused, untrusted state.&lt;/strong&gt; Retrieve only the evidence needed for the question. Test adversarial content and prompt injection because text inside the state can influence the result.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Leave room for “none of the above.”&lt;/strong&gt; A closed Choice with an incomplete option list forces the model to select the least-wrong answer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validate and version the decision boundary.&lt;/strong&gt; Measure precision, recall, coverage, calibration, and business cost, then pin the model version used to set each threshold.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Engineer the surrounding service.&lt;/strong&gt; Timeouts, retries, circuit breakers, fallbacks, human queues, and reversible side effects remain application responsibilities. Log the state and schema versions, distributions, route, overrides, tool outcomes, and eventual business result.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Jev returns no natural-language rationale. That avoids mistaking a fluent explanation for evidence, but it does not make the system auditable by itself. The audit trail comes from versioned inputs, explicit criteria, probabilities, policy code, and observed outcomes.&lt;/p&gt;
&lt;h2 id="how-to-evaluate-jev-in-your-own-workflow"&gt;How to evaluate Jev in your own workflow&lt;a class="headerlink" href="#how-to-evaluate-jev-in-your-own-workflow" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Begin with one decision, not an entire agent. Define its allowed outputs, the business cost of each error, and which cases must always reach a person. Build a labelled set that includes common traffic, rare classes, ambiguity, missing evidence, and adversarial examples.&lt;/p&gt;
&lt;p&gt;Next, compare complete implementations: deterministic rules, a conventional classifier, a structured-output LLM, Jev, and any useful hybrid. Use the same inputs and downstream policy for each. Alongside per-class precision and recall, measure calibration, latency percentiles, cost, and the share of cases sent to human review.&lt;/p&gt;
&lt;p&gt;Run the preferred design in shadow mode before it can act. Compare its decisions with real outcomes and reviewer choices. When it goes live, begin with reversible, low-impact actions and continue monitoring input drift, confidence distributions, overrides, provider errors, version changes, and downstream outcomes.&lt;/p&gt;
&lt;p&gt;Jev's low reported cost could make per-item checks practical across retrieved passages, proposed tool calls, generated outputs, and completed traces. Their value still depends on explicit policy, domain evaluation, observability, and safe fallbacks.&lt;/p&gt;
&lt;h2 id="the-current-verdict"&gt;The current verdict&lt;a class="headerlink" href="#the-current-verdict" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Jev addresses a real mismatch in enterprise AI: many steps need a bounded judgment, not another paragraph. Its interface makes those decisions explicit and gives code direct access to their probability distributions. TypeSafe's early workflow results suggest that specialization can reduce cost and latency, although independent evidence is still needed for quality and calibration.&lt;/p&gt;
&lt;p&gt;The practical lesson is to give each part of the system the job it handles best: code performs exact work and controls actions, Jev interprets text into bounded decisions, LLMs generate and reason, and people resolve consequential uncertainty. That is a more useful architecture than asking one model to do everything.&lt;/p&gt;
&lt;h2 id="related-reading"&gt;Related reading&lt;a class="headerlink" href="#related-reading" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;For the mechanism Jev deliberately avoids at output time, &lt;a href="https://mchromiak.github.io/articles/2017/Sep/12/Transformer-Attention-is-all-you-need/"&gt;Transformer: Attention Is All You Need&lt;/a&gt; explains the architecture underlying modern sequence models, while &lt;a href="https://mchromiak.github.io/articles/2017/Nov/30/Explaining-Neural-Language-Modeling/"&gt;Explaining neural language modelling&lt;/a&gt; develops next-token prediction from first principles.&lt;/p&gt;
&lt;p&gt;For a different view of decision-making systems, &lt;a href="https://mchromiak.github.io/articles/2021/May/01/RL-Primer/"&gt;Reinforcement learning: a practical primer&lt;/a&gt; explains states, actions, rewards, values, and policies. Jev is not an RL agent, but the distinction helps clarify why a probabilistic judgment model does not itself own goals, environmental actions, or long-horizon credit assignment.&lt;/p&gt;
&lt;h2 id="primary-sources"&gt;Primary sources&lt;a class="headerlink" href="#primary-sources" title="Permanent link"&gt;🔗&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Diogo Almeida. &lt;a href="https://typesafe.ai/blog/introducing-system-one-models-and-jev"&gt;Introducing System One Models &amp;amp; Jev&lt;/a&gt;, TypeSafe AI, September 15, 2026. Primary launch description, disclosed components, company benchmarks, and caveats.&lt;/li&gt;
&lt;li&gt;TypeSafe AI. &lt;a href="https://docs.typesafe.ai/introduction"&gt;Introduction&lt;/a&gt;, &lt;a href="https://docs.typesafe.ai/concepts/system-one"&gt;System One&lt;/a&gt;, and &lt;a href="https://docs.typesafe.ai/primitives"&gt;Primitives&lt;/a&gt;. Public interface and answer semantics.&lt;/li&gt;
&lt;li&gt;TypeSafe AI. &lt;a href="https://docs.typesafe.ai/introduction/machine-learning-primer"&gt;AI primer: RLCD and calibrated decisions&lt;/a&gt; and &lt;a href="https://docs.typesafe.ai/confidence"&gt;Confidence&lt;/a&gt;. Definitions of calibration, probability, and confidence.&lt;/li&gt;
&lt;li&gt;TypeSafe AI. &lt;a href="https://evals.typesafe.ai/"&gt;Workflow evals&lt;/a&gt;. Interactive aggregate and per-workflow measurements, methodology, and reference construction.&lt;/li&gt;
&lt;li&gt;TypeSafe AI. &lt;a href="https://docs.typesafe.ai/concepts/how-to-build-with-system-one"&gt;How to build with System One&lt;/a&gt;, &lt;a href="https://docs.typesafe.ai/patterns/intent-routing"&gt;Intent routing&lt;/a&gt;, and &lt;a href="https://docs.typesafe.ai/cookbooks/parallel_questions"&gt;Parallel questions&lt;/a&gt;. Official workflow patterns and batching example.&lt;/li&gt;
&lt;li&gt;TypeSafe AI. &lt;a href="https://docs.typesafe.ai/model-jaggedness/jev-1.13"&gt;Jev 1.13 known limitations&lt;/a&gt; and &lt;a href="https://docs.typesafe.ai/models"&gt;Models and pricing&lt;/a&gt;. Version-specific failure modes, aliases, limits, and dated pricing.&lt;/li&gt;
&lt;li&gt;TypeSafe AI. &lt;a href="https://github.com/typesafe-ai/typesafe-sdk-python"&gt;Official Python SDK&lt;/a&gt; and &lt;a href="https://github.com/typesafe-ai/typesafe-sdk-js"&gt;JavaScript SDK&lt;/a&gt;. MIT-licensed client implementations and public request/response types.&lt;/li&gt;
&lt;/ul&gt;</content><category term="Machine Learning / AI Systems"/><category term="Jev"/><category term="TypeSafe AI"/><category term="System One Models"/><category term="Agentic AI"/><category term="Enterprise AI"/><category term="Calibration"/><category term="Structured Outputs"/></entry></feed>