Building AI Agents That Know What They Don't Know: Uncertainty-Aware Design
Production agents that surface uncertainty cleanly are dramatically more useful than confident-but-wrong ones. The 2026 uncertainty-design patterns.
The Honest Agent Wins
Two agents on the same task. Agent A confidently answers everything. Agent B answers what it knows and says "I'm not sure" on the rest. Users trust B more, escalate from B less, and get fewer wrong answers from B. The agent that knows what it doesn't know is the one users keep using.
This piece is about how to design that. By 2026 the patterns are well-understood; deploying them is mostly engineering effort.
Three Sources of Uncertainty
flowchart TB
U[Uncertainty] --> Aleat[Aleatoric: irreducible noise]
U --> Epis[Epistemic: model doesn't know]
U --> Out[Out-of-distribution: input is outside training]
Three distinct phenomena. Each has different signals and remedies.
- Aleatoric: real-world ambiguity. "I want a cheap flight" — cheap by what definition? The agent should ask.
- Epistemic: the model genuinely lacks knowledge. The agent should admit it and either retrieve or escalate.
- Out-of-distribution: the input is unlike anything the model has seen. Most dangerous, because confidence may not drop.
How to Detect Each
Aleatoric
The input is ambiguous. Patterns that work:
- LLM is asked: "Is this question well-defined? List ambiguities." Use the response as a signal.
- Multiple paraphrasings of the input lead to different answers. Indicates the input is interpretable in multiple ways.
Epistemic
The model does not know. Patterns:
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
- Calibrated logprob-based confidence
- Verbalized confidence ("rate your confidence 0-100")
- Sampling agreement (multiple samples disagree)
Out-of-Distribution
The input is unlike training data. Patterns:
- Embedding distance from training centroid
- Predictor model trained to detect novel inputs
- Anomalies in tool-call success rates
Patterns for Surfacing Uncertainty
flowchart TD
Low[Low confidence] --> A[Ask clarifying question]
Mid[Mid confidence] --> B[Answer with caveats]
High[High confidence] --> C[Answer directly]
OOD[Out-of-distribution] --> D[Refuse / escalate]
The decision is not binary. Calibrated confidence drives a graduated response.
A Concrete Voice-Agent Example
For a customer-service voice agent:
- High confidence (>= 0.9): "Your refund will be processed in 3-5 business days."
- Mid confidence (0.7-0.9): "I believe your refund will be processed in 3-5 business days. Let me confirm with our records."
- Low confidence (< 0.7): "Let me check that for you" (escalate to lookup or human)
- Out-of-distribution: "This sounds like something I should pass to a specialist."
Uncertainty in Tool Calls
Tool calls have their own uncertainty:
- Was the tool's input well-formed?
- Did the tool succeed?
- Did the tool return what we expected?
A 2026 pattern: every tool result is validated against an expected schema, and unexpected shapes trigger uncertainty handling. A "successful" tool call with surprising output is more dangerous than an obvious error.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
Designing the User Experience
Three rules that hold up:
- Be specific about what you don't know: "I don't know your account balance" is more useful than "I'm not sure."
- Offer a path forward: "Would you like me to look it up?" or "Should I transfer you to billing?"
- Don't apologize at length: short, action-oriented uncertainty handling is what users prefer.
Anti-Patterns
- Hedging on every answer (verbal tic that erodes trust)
- Confident-but-wrong outputs (the worst case, what we are trying to prevent)
- Refusing on borderline cases (drives users away)
- Using uncertainty as cover for not building real capabilities
The goal is calibrated honesty, not pervasive humility.
Where Uncertainty Detection Falls Short
Even with all of the above, two failure modes remain:
- The model is overconfident in a class of cases the calibration set didn't cover
- The model is underconfident in a class of cases the calibration set didn't cover (rarer, but real)
Both are caught only by ongoing production monitoring. A monthly accuracy review against ground truth, broken down by stated confidence, is the discipline that closes the loop.
What Production Logging Should Capture
For every uncertain decision:
- The input
- The stated confidence
- The decision (answer, ask, escalate, refuse)
- Eventually, the ground truth when known
This is what lets you find the holes in your calibration over time.
Sources
- "Uncertainty in deep learning" — https://arxiv.org/abs/1506.02142
- "Calibrated language models" — https://arxiv.org/abs/2306.13063
- "Out-of-distribution detection" — https://arxiv.org/abs/2110.11334
- LangGraph uncertainty patterns — https://langchain-ai.github.io/langgraph
- Anthropic on AI honesty — https://www.anthropic.com/research
Try CallSphere AI Voice Agents
See how AI voice agents work for your industry. Live demo available -- no signup required.