Read this before the hands-on lessons. It covers why agent design works the way it does.
Design priorities
Every design decision should be evaluated against these priorities, in order:
1. Do the thing
The user must be able to complete their goal. Right integrations, edge-case fallbacks, no dead ends. If the task is impossible, nothing else matters.
2. Make it easy
Once the task is possible, remove friction. Each step should be obvious, unnecessary steps should be cut, and the path to completion should be short.
3. Add delight
Once it works and it’s easy, polish it. Natural pacing, warm tone, good turn-taking.
The order matters. If there’s a conflict, the earlier priority wins. A polished agent that can’t complete the task is a failure.
When priorities conflict
Collecting a long reference number by voice has a high transcription error rate. Asking for DTMF (keypad) input is less conversational — but if the alternative is three failed attempts and a handoff, completing the task wins. Use DTMF.
Why sound human
PolyAI agents sound human by design. Not to deceive — because humans know how to talk to other humans. Open questions, natural turn-taking, and a human-like voice remove the need for users to learn a new interaction model. Even when users know it’s automated, they’re more comfortable and more successful when the agent meets them on familiar territory.
Design guidelines
Use these during design, before build, and when reviewing live conversations.
1. Guide the user
Make clear how the user can respond. Use implicit guidance (sounding conversational so users give conversational responses) and explicit guidance (“Your order number should be six digits starting with a letter”).
2. Listen robustly
Handle information in any order, or-questions (“yes”, “no”, “both”, “neither”), and predictable out-of-scope requests.
3. Give feedback
Use implicit confirmation (“To update the address on your account, I’ll need your policy number”) rather than explicit (“Did you say you want to update your address?”). Tell users when something is happening behind the scenes.
4. Support correction
Let users undo actions, switch workflows, and correct collected values without restarting.
5. Prevent errors
Before irreversible actions (booking submissions, payments), confirm details back to the user. Plan for failure — APIs time out, speech recognition fails.
6. Act efficiently
Cut unnecessary steps. Shorten utterances. Optimise for the most common task.
7. Speak clearly and naturally
Err on the side of informality. “What’s your phone number?” beats “Could you please provide me with your phone number?“
8. Behave consistently
Same voice, same phrasing style, same response length — unless a deliberate change signals a mode shift (e.g., legal disclaimer).
9. Be flexible
Support users who can’t receive SMS, can’t spell their name, or don’t fit the happy path. The task must be possible for every user.
10. Adapt to the user
Use available data. If you can see a cancelled flight, open with “I can see you just cancelled a flight. Is that what you’re calling about?”