What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
For an agent pipeline, a classifier usually should not be the front door. First let deterministic code handle inputs with an unambiguous answer; use a classifier for the genuinely ambiguous cases, then define what happens if that classifier is unavailable. That is the three-tier pattern Michael Hairetis describes: mechanical, classifier, and fallback.
How the three-tier pipeline works
Hairetis’s September 24, 2026 article describes an integration pattern, not a claim that he invented model-based classification. He says he had his implementation in production from April, while explicitly acknowledging that using a model as a classifier was not novel. His implementation uses a general-purpose agent for classification; TypeSafe AI’s Jev is a separate, purpose-built typed decision model.
As an Amazon Associate I earn from qualifying purchases.
1. Mechanical: resolve what ordinary code can settle
Give deterministic checks the first opportunity to answer. For example, if a request names an exact pipeline and that name maps unambiguously to one configured pipeline, a lookup can return the result without asking a model. This tier is appropriate only when the rule is clear and the input satisfies it; a loose or partial match should not be treated as certain merely to avoid a model call.
2. Classifier: handle the ambiguous remainder
Send inputs that cannot be resolved confidently by those checks to a classifier. This is where semantic judgment can help distinguish requests that use different wording for the same intent, or similar wording for different intents. The classifier may return a label, or—if the model and interface support it—probabilities or decisions for several questions. Keep the contract explicit so downstream code knows what the result means.
#1 Best Overall
3. Fallback: specify behavior when classification is unavailable
A classifier outage should not silently turn into an arbitrary route or an unhandled pipeline failure. Define a fallback that fits the consequences of the decision: for example, return a safe default, request clarification, route to human review, or fail closed. The right choice depends on the operation; a low-risk categorization and a consequential action should not necessarily share the same fallback.
Why not call a model first?
Hairetis’s argument is that a model call can be unnecessary when a deterministic lookup already gives the answer. Avoiding needless calls may reduce cost and latency, and separating tiers makes it possible to see whether a result came from a pattern match or from the classifier. His article does not quantify savings or report a controlled benchmark, so these are design rationales rather than guaranteed improvements.
Rank #2
The cost case depends on the workload and pricing model. If charges accrue per call, even a short classification request can change the economics; if cost is dominated by other factors, the savings from skipping calls may matter less. Estimate using expected traffic, the share of requests that deterministic rules can safely resolve, classifier pricing, and the operating cost of maintaining the rules. Do not assume that a simpler-looking architecture is cheaper overall.
What Jev changes—and what it does not
TypeSafe AI announced Jev on September 15, 2026, as an early-access “System One Model.” The company describes it as accepting unstructured state and typed questions and returning typed probabilistic decisions, for tasks such as classification, routing, scoring, extraction, and branching. Its claims about speed, efficiency, and reliability are vendor claims, not independent findings established for every workload.
Rank #3
Hairetis contrasts his general-purpose-agent classifier with Jev’s purpose-built decision model, describing Jev’s probabilities, parallel answers to multiple questions about one state, and hot-path latency as relevant capabilities. Those capabilities may affect the classifier tier’s implementation, but they do not settle where that tier belongs. A typed decision model can still be unnecessary for an exact match that ordinary code can resolve safely.
How to choose the boundary between code and classification
Use the distinction between deterministic and ambiguous inputs as the starting point, then evaluate the implementation against the needs of the actual workload.
- Certainty: Can a rule resolve this input without guessing? If not, do not disguise uncertainty as a deterministic match.
- Decision output: Does downstream logic need only a label, or does it need probabilities or several typed decisions? Choose an output contract that supports the next step.
- Cost: Compare expected per-call or token charges with the volume of inputs that reach the classifier, rather than assuming every request needs a model.
- Latency: Measure the end-to-end delay on the relevant hot path. A vendor’s general speed claim does not establish latency for your workload.
- Failure behavior: Decide in advance what happens during timeouts, service unavailability, malformed output, or low-confidence results.
- Attribution: Record which tier produced each outcome. That makes rule mistakes, classifier errors, and availability failures easier to distinguish.
Make the pipeline observable and testable
Log the selected tier and a reason code, along with the classifier’s result and confidence information when available and appropriate. Avoid logging sensitive request content unless your data-handling rules permit it. Track classifier timeouts and fallback use separately from ordinary classifications; otherwise, a system can appear to keep working while quietly relying on its emergency path.
Test representative cases at each boundary: exact deterministic matches, near-matches that should go to classification, ambiguous requests, low-confidence outputs, malformed results, and classifier unavailability. Review whether the fallback is safe and whether the tier attribution makes failures diagnosable. These checks are more useful than comparing model labels alone because the pipeline’s behavior includes routing and recovery as well as classification.
Best Value
What the available evidence establishes
Hairetis’s article is an argument for ordering the tiers, not proof that the pattern is universally cheaper, faster, or more reliable. He states that his implementation had been in production since April, but that date and deployment details are his account. TypeSafe AI’s launch announcement establishes what the company says Jev is designed to do and that it was announced for early access; it does not independently validate performance for a reader’s use case.
Read the original accounts: Hairetis’s article on DEV Community and TypeSafe AI’s Jev announcement.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




