Skip to main content
Voice agents benefit from prompts that are short and structured. Use the snippets that fit your application, then evaluate them with real call transcripts before deploying.

Fundamentals

These are starting points, not model guarantees. Keep what improves your own evaluation set.
  1. Disfluency by design. If natural fillers suit the application, list a small approved vocabulary and evaluate how often the LLM uses it.
  2. Short sentences. Prefer concise turns for spoken conversations.
  3. End action-oriented turns clearly. Ask one question or state the next action when a response is needed.
  4. Persona and scope. State the agent’s role and allowed tasks explicitly. Treat prompt instructions as behavior guidance, not a security boundary.
  5. No ! unless you want shouting. The model treats !, ALL-CAPS, and ?! as prosody cues. Same for emoji.
  6. Choose your voice deliberately. Test candidate voices with representative text — see voices.
  7. Include examples. Cover at least the happy path, an edge case, and recovery behavior.
  8. Pin the language. Set language="de" (or the appropriate code) and tell the LLM which language to use.
  9. Markdown headers for the model, never in the output. Use # to structure the prompt — but **asterisks** and - bullets get read aloud literally.
  10. Keep a regression set. Replay representative turns after prompt changes because LLM behavior is probabilistic.

Drop-in snippets

Personality presets

Disfluency

Give the LLM a short approved filler list and verify the result in evaluation: Drop this block into your prompt as-is and swap the filler list for your persona:

Tool descriptions

Rules of thumb:
  • Atomic, capability-namedget_available_slots, not appointments_v2_endpoint.
  • Format hint in every parameter — the model uses them as few-shot.
  • Refer to tools by capability in prose, never by resource ID. IDs leak into spoken output.
  • Use request-start messages for noticeable tool waits so the caller gets immediate acknowledgement.
  • Incremental capture — send the whole CRM record on every field update (empty string for unknowns) so a mid-call drop doesn’t lose state.

Workflow scaffold

Examples block (few-shot)

Include at least one happy path, one edge case, and one recovery example:

What NOT to do

  • Prefer positive instructions. State the desired behavior directly and test refusal cases separately.
  • No multiple questions per turn. “Name and date of birth?” → split into two turns.
  • No markdown in output. The agent reads **bold** aloud as “asterisk asterisk bold asterisk asterisk”.
  • No long monologues. Five options spoken in a row is unusable. Offer 2 max.
  • No vague tool names. do_thing → the model picks the wrong tool.
  • No emotional spam. Laughter / “oh wow” / “that’s great” → at most one turn in four, never two in a row.

Full template — copy this

Drop in your personality preset, filler list, tool descriptions, workflow, and examples from the snippets above: