Evalgent
Back to Guides
Concept

Intent vs entity in voice agents: what's the difference?

Last updated
Intent vs entity in voice agents: what's the difference?

Intent and entity are the two halves of understanding a spoken request, and they get blurred together as if classifying the intent were the whole job. It is not. Intent is the action; entities are the values that action operates on, and an agent can nail one while getting the other completely wrong. Because a misheard date fails differently from a misread request, knowing which is which is what lets you diagnose and fix the real problem. Evalgent tests both, separately, and this guide draws the line.

Intent: what the caller wants to do — the goal or action behind their request.

Entity: a specific detail in the request — the values, such as names, dates, numbers, and places, that the action needs.

Intent vs entity: the core difference

The cleanest way to separate them is by what each captures. Intent captures the verb — the thing to do. Entities capture the nouns — the specifics to do it with.

DimensionIntentEntity
CapturesThe action or goalThe details the action needs
GrammarThe verb of the requestThe nouns and values
Examplebook_flightdestination = Paris, date = the 8th
FailureWrong action entirelyRight action, wrong details
Common causeAmbiguous or out-of-scope requestA misheard value

Intent is a classification — the agent decides which of its known actions the caller wants. Entities are an extraction — the agent pulls the specific values out of what was said and fills the slots that action requires. One request usually has a single intent and several entities.

How they work together

Intent and entity are two steps of the same understanding, and they feed the same place: the action the agent takes. "Book a flight to Paris on the 8th" has one intent, book_flight, and two entities, a destination and a date. The intent decides which tool to call; the entities become that tool's arguments. Neither is enough alone — an intent with no entities cannot complete the booking, and entities with no intent have no action to fill.

This is why entities so often become tool-call arguments, and why an entity error shows up as a wrong argument even when the agent picked the right tool. Our tool calling guide covers that failure from the tool side; here it is the same problem seen from the understanding side.

Why the distinction matters

Keeping them separate matters because they fail in different ways and for different reasons. An intent failure is the agent doing the wrong thing — it heard a cancellation as a booking, or answered an out-of-scope question. The cause is usually ambiguity or scope, and the fix is better intent classification and clearer boundaries.

An entity failure is the agent doing the right thing with the wrong details — booking the flight, but to the wrong city or on the wrong day. The cause is very often a misheard value, especially numbers, dates, and names, which is where transcription accuracy bites. That makes entity errors close cousins of the word-level versus character-level accuracy question our WER vs CER guide covers. Because the causes differ, "the agent got it wrong" is not a diagnosis until you know whether the intent or an entity broke.

How to test intent and entity

Test the two as separate steps, so a failure points at the right one.

1. Test intent classification — Drive requests for each action and assert the agent picks the correct intent.

2. Test the edges — Include ambiguous, out-of-scope, and multi-intent requests, and assert the intent is right or the agent defers.

3. Test entity extraction — Assert each entity — destination, date, number, name — is captured correctly.

4. Stress the hard values — Focus on numbers, dates, and names, and vary accent and noise, since those are where entities are misheard.

5. Assert at the action — Check the tool fired with the right intent and the right entity values, not just that the transcript looked fine.

6. Diagnose by layer — When something fails, separate an intent error from an entity error so you fix the correct step.

A worked example

A caller says, "Book me a flight to Paris on the 8th." The agent correctly classifies the intent as book_flight and extracts the destination as Paris — both right. But it hears "the 8th" as "the 18th" and fills the date entity with the wrong value. The intent was perfect; the entity was misheard. The result is the right action taken on the wrong date — a booking the caller did not ask for. No amount of intent tuning fixes this, because the intent was never the problem. Only testing the entity, on realistic audio, catches it.

Testing intent and entity with Evalgent

Evalgent tests understanding at both layers and tells them apart. Scenarios drive requests across every intent, including the ambiguous and out-of-scope ones, and load them with the entities that matter — dates, numbers, names, and places. Profiles vary accent, pace, and noise, since that is where entities get misheard even when the intent is clear. Metrics report intent accuracy separately from entity accuracy, and assert the tool fired with the right action and the right values, so a failure points at the correct step. Evaluations run the suite as automated batches before release, and Reviews let you replay a call and hear whether the agent misjudged the request or just misheard a value.

The result is a diagnosis you can act on: whether an error is a wrong-action problem or a wrong-detail one, so you tune intent classification or entity extraction, not both blindly. For the wider method, see the STT evaluation guide and the AI voice agent testing pillar.

The bottom line

Intent is what the caller wants to do; entities are the specific details that action needs. Intent decides which tool to call, entities become its arguments, and an agent can get one perfectly right while getting the other completely wrong.

Test them separately. A misheard date and a misjudged request are different failures with different fixes, and only pulling intent and entity apart tells you which one actually broke.

Frequently asked questions

What is the difference between intent and entity in a voice agent?

Intent is what the caller wants to do — the action, such as booking a flight or canceling an order. Entities are the specific details that action needs, like the destination, date, or account number. Intent decides which action to take; entities supply the values it operates on. An agent can classify the intent correctly yet extract an entity wrong, and vice versa.

What is an intent in a voice agent?

An intent is the goal or action behind a caller's request — the "verb" of what they want. "Book a flight," "check my balance," and "cancel my order" are intents. The agent classifies each request into one of its known intents to decide which action or tool to use. Getting the intent wrong means taking the wrong action entirely.

What is an entity in a voice agent?

An entity is a specific detail extracted from the request — the values the action needs to run, such as a destination, a date, a number, or a name. In "book a flight to Paris on the 8th," Paris and the 8th are entities. They typically become the arguments of the tool the agent calls, so a wrong entity produces the right action with wrong details.

How do intent and entity work together?

They are two steps of one understanding. The intent decides which tool or action to use, and the entities fill that action's parameters. "Book a flight to Paris on the 8th" is one intent, book_flight, plus a destination and date entity. Neither is enough alone: an intent needs entities to complete the task, and entities need an intent to act on.

Why does my voice agent take the right action but wrong details?

That is an entity failure. The agent classified the intent correctly and did the right thing, but it extracted a value wrong — most often a misheard number, date, or name. Booking the flight to the wrong city or day is a classic example. The fix is better entity extraction and transcription accuracy on those values, not intent tuning.

How do you test intent and entity separately?

Test intent by driving requests for each action, including ambiguous and out-of-scope ones, and asserting the agent picks the right intent or defers. Test entities by asserting each extracted value — date, number, name — is correct, stressing the hard ones under accent and noise. Assert at the action that the tool fired with the right intent and values, and diagnose failures by layer.

Are entities the same as tool-call arguments?

They are closely related. Entities are the values extracted from the caller's request, and they usually become the arguments of the tool the agent calls to fulfill the intent. So an entity-extraction error typically shows up as a wrong tool-call argument, even when the agent picked the correct tool. Testing entity accuracy and tool-call arguments are two views of the same failure.

What causes intent classification to fail?

Intent classification usually fails on ambiguity, overlap between similar intents, or out-of-scope requests the agent was not built to handle. A vague request, two intents that sound alike, or a caller asking something outside the agent's scope all lead to the wrong action. The fix is clearer intent boundaries, better training or prompting, and testing the ambiguous and out-of-scope edges directly.

Related guides