Skip to main content
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

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

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

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?”
Ready to build? Start with Level 1: Get started.
Last modified on March 26, 2026