shipwithjev

Blog / 36

Intent Classification: The NLU Job That Just Got a New Engine

Intent detection powered chatbots for a decade, badly. How decision models replace trained NLU intent classifiers: no training data, editable taxonomies.

Every chatbot, voice assistant, and routing flow of the last decade sat on the same foundation: an intent classifier mapping "I can't log in and I'm furious" to account_access. The NLU industry built careers on it, and every practitioner knows its two chronic diseases. Training data hunger: each intent needs example utterances, forever, and adding one intent means a labeling sprint. And taxonomy rot: user language drifts, product scope shifts, and the intent list ossifies because changing it means retraining everything downstream.

Both diseases are cures now. Intent classification is the most literal possible decision-model workload: one utterance, one closed set, pick. Which means intents defined in plain language, edited like config, live in minutes; the whole LLM-versus-trained-classifier economics argument, settled per intent instead of per platform.

The 2026 intent stack

Define intents as descriptions, not example piles. "billing_dispute: the user contests a charge or amount, not merely asks what a charge was for." The boundary clause is the whole craft, straight from judge-question rules: legislate the edges inside the definition and the classifier stops guessing at them.

Decompose the classic confusables. Old NLU forced one label per utterance, so "cancel my subscription and refund this month" scored as either cancellation or refund and lost the other. Verdict stacks don't have that problem: ask about each intent's presence separately, get both, route accordingly. Multi-intent, the historic NLU migraine, dissolves into multiple questions at prices where question count doesn't matter.

Keep the escape hatches honest. out_of_scope and unclear as first-class answers, with the unclear slice cascading to a bigger model or a human per the routing architecture. A classifier denied an "I don't know" launders confusion into your intents silently, which is how bots end up confidently mis-routing rage.

Version the taxonomy like an API. Intent definitions are now text under version control; a reworded definition is a breaking change to your analytics, same rule as eval judges.

Beyond the chatbot

The funny thing about intent classification escaping NLU platforms: it turns out most text streams have intents. Inbound email intent is the email-triage page's whole subject; support tickets carry resolution intents (triage guide); sales replies carry buying intents (lead scoring); search queries carry task intents, which is half of on-site search relevance. The pattern also runs inside agents: an agent's "what is the user actually asking for?" step is intent classification wearing a trench coat, and it benefits from the same tempo the game builds demonstrated, because conversational latency budgets are frame budgets with manners.

Migration path for teams with an incumbent NLU model: run both on a few hundred historical utterances, score against your ground truth, and pay special attention to the utterances your trained model was never trained on, that's where the gap lives. The getting-started ritual covers the afternoon; most teams keep the trained model only if it's winning at massive stable volume, per the graduation logic.

Frequently asked questions

What is intent classification?

Mapping a user utterance to the task or goal it expresses (from a defined set) so systems can route, respond, or act. It's the foundational judgment of chatbots, voice flows, and increasingly any inbound text stream.

Do I still need training utterances for each intent?

Not with a decision model: intents are plain-language definitions with boundary clauses, editable instantly. Reserve example-trained classifiers for extreme-volume stable taxonomies, if at all.

How do I handle messages with multiple intents?

Ask per-intent presence questions instead of forcing one label; at reported verdict prices, a ten-intent battery per utterance costs effectively nothing and ends the multi-intent problem structurally.

What accuracy should I expect?

Denominated in your taxonomy's clarity more than the model: crisp boundary clauses plus an honest unclear-option plus escalation routinely beats incumbent NLU on drifted real-world language. Measure on your own utterances before believing anyone, including us.

Numbers throughout are as reported by the build authors, not verified by shipwithjev. Code-shaped examples are pseudocode; the official docs live at docs.typesafe.ai.