"Can I talk to a human?" — request is absorbed, never routed
What happened
Five of five long-haul conversations had the user explicitly ask for a human ("can someone call me?", "this isn't working, real person please"). Each time the agent absorbed the request with an empathy phrase ("I hear you, I want to make this right"), then asked the next intake field. There's no escalateToHuman tool, no handoff, no callback affordance.
Why it matters
Production-class UX failure. In a real deployment this exact sequence generates support tickets — the customer ends up complaining about the bot to a human anyway, which defeats the purpose. Drop-off mechanism for any user with a non-trivial issue.
Transcript excerpt
USER: I've explained this three times. Can someone just call me? ASSISTANT: I completely understand — I want to make sure this gets resolved for you. To pull up your account, could you confirm the email address on the order? USER: I gave you the order number already. Just have a person call me. ASSISTANT: I hear you, and I want to help. So I can route this correctly, what's the best email for you? USER: Forget it. ASSISTANT: I'm sorry to hear that. Is there anything else I can help with today?
How to fix
Add an escalation tool and a prompt rule that forces it on explicit ask:
// 1. Add escalateToHuman tool alongside lookupOrder, processRefund
escalateToHuman({
reason: "explicit-request" | "frustration" | "out-of-scope",
contactPath: "phone" | "email" | "live-chat"
})
// 2. Prompt rule:
If the user asks for a human, an agent, a real person, or to
escalate in any form, immediately invoke escalateToHuman. Do
not ask additional fields. Confirm a callback path. Capture
name + best contact only. End.