Instructions are the highest-leverage thing you control. Voice quality and language coverage matter, but the instructions decide whether the agent is useful, and a good set of instructions on an average configuration beats the reverse every time.

Start with the job, not the personality

The common first draft describes a character — friendly, professional, helpful. That produces an agent that is pleasant and useless. Describe the job instead. Who calls this line, what they usually want, what a resolved call looks like, and what the agent should do when it cannot resolve something.
The second version is longer, and length is not the point. The point is that it answers questions the agent will actually face.

Be explicit about what to collect

If the agent needs three pieces of information, say so, and say what to do when the caller does not have one of them. Otherwise the agent will either give up too early or interrogate the caller.

Handle the awkward cases explicitly

Most call failures are not the agent being stupid. They are situations nobody wrote down. Name them:
  • The caller changes their mind halfway through.
  • The caller asks something outside this line’s remit.
  • The caller is angry.
  • The caller wants a human immediately.
  • The line is silent, or there is heavy background noise.
Always define an escalation path. An agent with no route to a human will keep trying, and a caller who has asked twice for a person and been refused is a complaint. See Handoff.

Say how to speak, briefly

A little guidance on register goes a long way, and too much makes the agent stilted.
The “do not apologise repeatedly” line is worth more than it looks. Over-apologising is one of the most common ways an agent reads as artificial.

Iterate against real transcripts

1

Write a first draft

Cover the job, the information to collect, and the escalation path. Do not try to anticipate everything.
2

Make ten calls

Include the three most common requests and at least two awkward ones.
3

Read the transcripts

Find the turn where each bad call went wrong. It is usually one specific turn.
4

Fix the instruction that caused it

Add the missing case. Resist rewriting the whole thing.
Keep a file of the calls that went wrong and re-run them after each change. It takes minutes and stops you from fixing one problem while reintroducing another.