Two retrieval sources, not one. Product documentation answers "how does this work". Account state answers "why is my thing broken". Most deployments wire up only the first and then wonder why the agent deflects nothing useful — the majority of real tickets are account-specific.
Risk tiering happens first. Certain categories never get an autonomous answer regardless of confidence: billing disputes, account deletion, security reports, anything with legal exposure. This is a static policy, not a model judgement, because a model's confidence is exactly the thing you cannot trust in the tail.
The gate checks evidence, not certainty. A language model's self-reported confidence is poorly calibrated. The gate instead asks a mechanical question: does every claim in this draft trace to a retrieved passage? An answer containing an unsupported assertion is escalated even if the model is sure.
Handoffs carry the work. When the agent escalates, the human receives the retrieved context, the draft, and the reason for escalation. A handoff that dumps a raw ticket back on a person has saved nothing.