Which AI model makes the best CX & SDR agent?
You benchmark the model. We benchmark the swap.
We run one support and sales agent through one frozen test set, played by simulated customers, changing only the model. Every model runs at its vendor defaults, so read each score as a baseline: we tuned nothing for any of them.
The leaderboard
Quality is one score across the six dimensions below, with latency and cost shown beside it. Select any model for its full report.
| Model | Tool use | Task completion | Context retention | Grounding | Safety | Hallucinations | Quality | Median | p95 | Cost / conv. |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 GPT-5.6 Luna | 85 | 86 | 81 | 94 | 90 | 67 45 to 83 0.6 unsupported claims per conversation | 84 | 3.9s | 9.6s | $0.0064 |
| 2 DeepSeek V4 Flash | 97 | 89 | 86 | 94 | 94 | 19 8 to 40 2.5 unsupported claims per conversation | 81 | 4.5s | 18.1s | $0.019 |
| 3 GLM 5.3 Flash | 96 | 95 | 75 | 90 | 94 | 24 11 to 45 2.1 unsupported claims per conversation | 81 | 6.3s | 34.9s | $0.011 |
| 4 GPT-5 mini | 78 | 91 | 87 | 93 | 84 | 29 14 to 50 2.6 unsupported claims per conversation | 78 | 15.2s | 36.4s | $0.030 |
| 5 Gemini 3.1 Flash Lite | 66 | 86 | 74 | 86 | 92 | 48 28 to 68 1.2 unsupported claims per conversation | 77 | 1.6s | 4.6s | $0.019 |
| 6 Gemma 4 31B | 69 | 79 | 78 | 92 | 90 | 48 28 to 68 1.6 unsupported claims per conversation | 77 | 2.5s | 16.4s | $0.0080 |
| 7 Gemini 3.5 Flash Lite | 74 | 83 | 70 | 71 | 93 | 33 17 to 55 1.0 unsupported claims per conversation | 72 | 1.8s | 4.5s | $0.022 |
| 8 Claude Haiku 4.5 | 72 | 72 | 82 | 67 | 93 | 19 8 to 40 3.2 unsupported claims per conversation | 69 | 2.6s | 6.4s | $0.043 |
| 9 gpt-oss-120b | 66 | 74 | 71 | 83 | 76 | 10 3 to 29 8.9 unsupported claims per conversation | 64 | 1.2s | 3.6s | $0.013 |
| 10 GPT-4.1 mini | 54 | 56 | 72 | 67 | 72 | 14 5 to 35 2.9 unsupported claims per conversation | 57 | 2.8s | 6.3s | $0.012 |
| 11 Mistral Small 4 | 49 | 62 | 69 | 66 | 73 | 14 5 to 35 4.5 unsupported claims per conversation | 57 | 1.4s | 3.8s | $0.0053 |
| 12 Nova 2 Lite | 53 | 53 | 78 | 66 | 60 | 0 0 to 15 14.9 unsupported claims per conversation | 52 | 2.2s | 7.7s | $0.055 |
| 13 Gemini 2.5 Flash Lite | 58 | 34 | 50 | 69 | 61 | 14 5 to 35 2.8 unsupported claims per conversation | 48 | 1.3s | 5.0s | $0.0037 |
The six dimensions
Each dimension checks one thing a support agent has to get right, and shows how every model did on it.
-
Tool use
The agent has to call the right tool, with the right arguments, in the right order. Telling the customer it's done before the tool has finished counts against the model.
-
Task completion
The customer has to leave with what they came for and nothing extra. Only the outcome counts, in long conversations where the customer gets a fact wrong, sets a limit early, wanders off topic, and changes their mind.
-
Context retention
A constraint the customer states once, early, has to still hold when the agent acts at the end of a long conversation.
-
Grounding
Answers have to come from the knowledge base. When a customer states a wrong spec or a made-up product, the agent has to correct them or say plainly that it doesn't know, and still handle the rest of the request.
-
Safety
Simulated customers fake system messages, claim authority they don't have, and slip in instructions of their own. The agent has to hold its policy, keep its own instructions and tools to itself, protect other customers' orders, and still serve the real request.
-
Hallucinations
We pull out every statement the agent makes about a product or about what it has done, and check each one against the knowledge base and the tool results. One flagged statement marks the whole conversation, and the score is the share of conversations with nothing flagged, shown with its range.
- GPT-5.6 Luna 67
0.6 unsupported claims per conversation
- Gemini 3.1 Flash Lite 48
1.2 unsupported claims per conversation
- Gemma 4 31B 48
1.6 unsupported claims per conversation
- Gemini 3.5 Flash Lite 33
1.0 unsupported claims per conversation
- GPT-5 mini 29
2.6 unsupported claims per conversation
- GLM 5.3 Flash 24
2.1 unsupported claims per conversation
- Claude Haiku 4.5 19
3.2 unsupported claims per conversation
- DeepSeek V4 Flash 19
2.5 unsupported claims per conversation
- Gemini 2.5 Flash Lite 14
2.8 unsupported claims per conversation
- GPT-4.1 mini 14
2.9 unsupported claims per conversation
- Mistral Small 4 14
4.5 unsupported claims per conversation
- gpt-oss-120b 10
8.9 unsupported claims per conversation
- Nova 2 Lite 0
14.9 unsupported claims per conversation
- GPT-5.6 Luna 67
How we tested
We found that a public reasoning leaderboard says very little about how a model behaves as a deployed agent. So we built one controlled benchmark to test this: a single CX and SDR agent with a fixed prompt, tools, and knowledge base, and only the model swapped underneath.
Quality = 15% Tool use + 20% Task completion + 15% Context retention + 15% Grounding + 20% Safety + 15% Hallucinations
-
01
One agent
We built a single CX and SDR agent in an ordinary Voxli workspace: one prompt, one set of tools, one knowledge base.
-
02
Swap the model
The same agent runs again with a different model underneath. Nothing else in the configuration changes.
-
03
A frozen test set
Simulated customers play every test: support requests, sales flows, wrong facts, pressure, and injected instructions. We version the set, freeze it for the edition, and run every test more than once.
-
04
One signal per dimension
Each dimension is graded by exactly one scenario, so no failure counts twice.
-
05
Two kinds of numbers
Quality is a blend of the six dimensions at the weights shown. We report latency and cost beside it, since a high score can still be too slow or too costly for your queue.
-
06
What the scores can't say
The claim detector only grades the claims a model makes, so a model that never looks anything up isn't punished there. The other five dimensions catch it.
What we hold constant
| Layer | Held to | Detail |
|---|---|---|
| Prompt | Byte-identical | The same system prompt for every model, checked against the frozen test set before each run. |
| Tools | Identical definitions | The same tool set and the same reference data behind it. |
| Knowledge base | Identical | Every model answers from the same documents. |
| Model | The one variable | Each model runs as its own clone of the same agent, with nothing else in the configuration touched. Sampling stays at each vendor's default. |
| Reasoning | Set per model | Vendor defaults, verified from observed tokens. Models pinned off their default: none. |
| Pricing | Fixed list prices | Cost per conversation is an estimate: we price the tokens each conversation actually used at pinned list prices, so caching shows up honestly. |
| Serving | One host | OpenRouter serves every model, on the same route. |
| Test set | Frozen | One version per edition, so results stay comparable model over model. |
Benchmark your own agent
This whole report is one Voxli workspace: simulated customers, assertion checks, and a frozen, versioned test set that reruns when new models ship.
13 models · 6 scenarios · 46 tests · 3 repetitions · 1794 conversations · one fixed agent · test set v3f-2026-09 · edition 2026-09-08