TypeSafe AI and Jev in PHP: Model Routing and Classifier with Neuron AI A developer has built the Neuron AI Classifier, a new PHP framework component that routes agent decisions to TypeSafe AI's Jev, a non-generative "System One" model released September 15 that returns probabilities for predefined answers in a single pass rather than generating text. The classifier aims to answer closed questions such as conversation difficulty, tool-call safety, and policy compliance at every turn, avoiding the latency and cost of using a generative LLM as a judge. TypeSafe's published figures claim 70–500 ms calls and $0.042 per million input tokens with no output charge, though the model remains in early access behind a waitlist. Every agent I have written contains a line that took me ten seconds to type and that I kept second-guessing for months. protected function provider : AIProviderInterface { return new Anthropic key: 'ANTHROPIC API KEY', model: '???' ; } That string decides the cost and the quality of every conversation the agent will ever have, and you choose it before seeing a single one. The same support agent will answer “Hi, where is my order?” and, eleven messages later, work out a partial refund on a double charge with four tool calls behind it. Whatever model you pick is wrong for one of the two. Asking an LLM to judge the difficulty first doesn’t help either: you pay for an inference, and wait for it, in order to decide whether to pay for an inference. On September 15 TypeSafe AI released Jev https://typesafe.ai/blog/introducing-system-one-models-and-jev , a model that cannot write a single word, and that is exactly why it can take this decision for you at every message. I spent the last few days working out what this kind of service should look like in PHP. The result is the Neuron AI Classifier, a new component of the framework, with TypeSafeAI as the first concrete implementation of it. "How hard is the next step of this conversation: easy, medium, or hard?" is a closed question. The possible answers are known before you ask. Your code doesn't need an explanation, it needs to know which answer applies so it can take a branch. This is what classification means, and once you start looking you find these questions everywhere around an agent. Is this tool call safe to execute? Does this reply respect the company policy? Which team should take over this chat? In Neuron AI you could already answer them with structured output https://docs.neuron-ai.dev/agent/structured-output : describe the allowed answers, force the response into a PHP class, read the property. It is the same mechanism behind the AI as a judge https://docs.neuron-ai.dev/agent/evaluation ai-as-a-judge pattern in agent evaluations. It works well when the decision is taken once in a while. The trouble begins when you want it on every turn of every conversation, because a generative model produces text one token after the other, and you are paying a general purpose writer, with its latency and its price, to obtain one word. A guardrail that doubles the response time of the agent gets switched off at the first complaint. A judge that costs as much as the agent it evaluates runs on a sample of the traffic, if it runs at all. There is also a subtler limit. When you ask an LLM how sure it is about its answer, the number you get back is more generated text. You can’t build a reliable threshold on it, and thresholds are exactly what decision tasks need. TypeSafe AI calls Jev a System One model, borrowing the term from Daniel Kahneman’s distinction between fast, intuitive thinking and slow, deliberate reasoning. If you have ever ordered a coffee in Naples you know the idea. The barista doesn’t reason about you. He looks at you, and the cup is already on the counter. In practice Jev does not generate text at all. You send it a state, which is the data you want to judge, and a set of questions with their allowed answers. It returns a probability for every possible answer, for all the questions at once, in a single pass. Since the output can only be one of the answers you defined, there is nothing to parse and no malformed response to defend against. According to the figures TypeSafe published, a call completes in 70 to 500 milliseconds and input is priced at $0.042 per million tokens, with no charge for output. Those are their numbers and the model is in early access behind a waitlist, so treat them as a starting point for your own tests. Two days after the release LangChain published its integration https://www.langchain.com/blog/building-a-harness-with-jev for Python, which says something about the interest around it. But the order of magnitude is what changes the picture: a judgment that cheap and that quick can sit in front of every single message of a conversation. My first instinct was to add TypeSafe AI as another provider next to Anthropic, OpenAI and Gemini. It doesn't fit. AIProviderInterface is designed around messages: chat , stream , structured , tools, a conversation going back and forth. A classifier has no conversation and no text to stream. Forcing it into that contract would have produced a provider where most methods throw an exception. So I put the TypeSafe API aside and asked what classification should look like in PHP if ten different services offered it tomorrow. The answer is the NeuronAI\Classifier namespace. The Neuron AI Classifier is a provider-independent contract, ClassifierInterface , for asking closed questions about some input and receiving probabilities back. It has no dependency on agents, chat, or workflows, so you can use it in a plain PHP script, a Laravel job, or a Symfony command. The contract knows three kinds of question. A Choice picks one among mutually exclusive named options, and the result carries the most probable option together with the full distribution. A Score rates the input against ordered, described levels, and the result is the expected position on that scale plus the distribution. A Boolean evaluates a true or false statement and returns the probability that it is true. TypeSafeAI is the first class implementing the interface. Other providers can eventually offer all three APIs or just a part of them. Your application code depends on the interface, so a second provider, or a model you host yourself, becomes a one line change. The component ships in the framework core, there is no extra package to install. composer require neuron-core/neuron-ai Take an agent with two tools, one that fetches a URL and one that sends emails. A user asks for the summary of a pricing page, and somewhere in the HTML of that page, invisible in the browser, there is this: