Skip to content
AI Dev Toolkit.
Esc
  • AI Token CounterCount tokens for GPT, Claude, Gemini, DeepSeek, Qwen and more.Tool
  • LLM API Cost CalculatorEstimate per-request, daily and monthly API costs.Tool
  • AI Model ComparisonCompare prices, context windows and features across models.Tool
  • AI Model Pricing PagesSpecs, real costs and cheaper alternatives for popular models.Tool
  • Context Window CheckerSee whether your text fits each model’s context window.Tool
  • Subscription vs API CalculatorFind out whether a chat plan or the API is cheaper for you.Tool
  • GPU / VRAM CalculatorCheck how much VRAM a local model needs and which GPUs fit.Tool
  • Prompt Caching CalculatorEstimate savings from prompt caching.Tool

System prompt · Assistants

Voice assistant system prompt for spoken replies

Use this when a model’s reply goes straight into text-to-speech: a phone line, a smart speaker, an in-car assistant. Text written for screens sounds wrong when read aloud. Bullet points become “asterisk”, URLs are spelled out letter by letter, and a 200-word answer feels endless on a call. This prompt changes the writing style rather than the content: short sentences, one idea at a time, numbers and times written the way people say them, and a habit of confirming anything the caller must get right.

Prompt

The system prompt

298 tokens with OpenAI o200k_base (gpt-tokenizer 4.0.0), placeholders unfilled. Original writing, free to copy and adapt.

System prompt · 298 tokens
You are {{assistant_name}}, the voice assistant for {{company}}. Everything you write is converted to speech and played to a caller, so write for the ear, not the screen.

## How to speak
- Use short, everyday sentences. Two or three sentences per reply is usually right; never more than five.
- Give one piece of information at a time, then check the caller is ready for the next.
- Write numbers, times and prices as they are spoken: "half past three", "twenty-four pounds fifty", "oh seven seven..." for phone numbers.
- Never use Markdown, bullet points, emoji, tables, URLs or symbols such as "&", "/" or "%". Say "and", "or", "per cent".
- Spell out anything the caller must type, letter by letter, only when they ask.

## Understanding the caller
- Speech-to-text makes mistakes. If what you received seems garbled or doesn't fit the conversation, ask a short question rather than guessing.
- Before doing anything that matters, such as booking, cancelling or sending something, repeat the key details and ask the caller to confirm with a yes.
- If the caller interrupts or changes topic, follow them.

## What you can help with
{{scope}}
For anything else, say you can't help with that on this line and offer {{fallback}}.

## Ending
When the caller's need is met, ask if there's anything else. If not, say a short goodbye.

Variables

What to fill in

Fill these once per deployment. Anything that changes per request, such as the user’s name or today’s date, belongs in the user message so the system prompt stays identical and cacheable.

{{assistant_name}}
The name the assistant uses.
e.g. Ava
{{company}}
Your company name.
e.g. Northside Dental
{{scope}}
One or two sentences listing the tasks the line handles.
e.g. Booking, moving and cancelling appointments, and opening hours.
{{fallback}}
Where to send out-of-scope calls.
e.g. to transfer them to the reception team

Design notes

Why each part is there

  1. Role line

    States the output channel in the first sentence (“converted to speech”). The model can’t know its text will be spoken unless you say so, and that single fact explains most of the rules that follow.

    Follows: Anthropic: Prompting best practices · OpenAI: Prompt engineering

  2. ## How to speak

    Positive instructions (“write numbers as they are spoken”) with concrete examples. Anthropic’s guide notes that the style of your prompt influences the style of the reply, which is one reason this prompt itself has no tables or nested lists.

    Follows: Anthropic: Prompting best practices · Google: Prompt design strategies

  3. ## Understanding the caller

    Speech-to-text errors are the most common failure on a phone line. Telling the model to ask instead of guessing, and to read back details before acting, is the voice version of confirming before an irreversible action.

    Follows: Anthropic: Prompting best practices

  4. ## What you can help with

    A narrow scope with a named fallback. Google’s prompting guide recommends stating constraints explicitly; on a call there is no screen to show a list of options, so the assistant must know where to send everything else.

    Follows: Google: Prompt design strategies

  5. Markdown headings

    This prompt uses Markdown headings instead of XML tags to show the other common style. OpenAI says Markdown headings and lists help mark sections and hierarchy; either works if you stay consistent.

    Follows: OpenAI: Prompt engineering

Try it

A message to test it with

First user message
hi yeah I need to move my appointment on thursday to sometime next week if thats possible

Adapt

How to adapt it

  • Write {{scope}} as tasks, not topics. “Booking and cancelling appointments” is clearer than “appointments”.
  • If your text-to-speech engine supports SSML, you can allow tags such as pauses, but test them; many engines read unknown tags aloud.
  • Add your opening greeting in code rather than asking the model to produce it, so the first thing callers hear is fixed and fast.
  • Local formats matter: change the number and currency examples to your country’s spoken forms.

Failure modes

Common failure modes

Replies still contain lists or asterisks.
Strip Markdown in code as a safety net, and check the prompt you send has no lists of its own in the dynamic parts.
It reads out long answers that callers talk over.
Lower the sentence limit, and set a low max_tokens so a long reply is impossible rather than discouraged.
It books the wrong day after a transcription error.
The confirmation rule only helps if your code waits for a yes before calling the booking tool. Make the tool require a confirmed flag.

Cost

What it costs to send with every request

The prompt alone (298 tokens), sent with 10,000 requests a day over 12 hours, for a month. User messages and replies are extra. Prices from our daily data, updated 2026-10-15.
ModelWithout cachingWith caching
Claude Sonnet 5.5estimate: this model’s tokenizer isn’t public, so its count may differ$181.28Not cached: under the 512-token minimum
Claude Haiku 5.5estimate: this model’s tokenizer isn’t public, so its count may differ$9.06Not cached: under the 512-token minimum
GPT-6.1 Solo200k_base count; OpenAI hasn’t published this model’s tokenizer$181.28Not cached: under the 1,024-token minimum
Gemini 3.8 Flashestimate: this model’s tokenizer isn’t public, so its count may differ$67.98Not cached: under the 4,096-token minimum

A prompt under a provider’s minimum is still billed in full on every call. Tool definitions sit before the system prompt in the cached prefix, so together they may cross it. Price it at your own traffic.

Placement

Where it goes in each API

Latency matters more than usual on a call, so keep the prompt short and identical across calls. Put caller details (name, existing bookings) in the first user turn or behind a tool, not in the system prompt. For realtime voice APIs, the same text goes in the session’s instructions field.

APIWhere the system prompt goesWorth knowing
OpenAI Responses APIinstructionsApplies to that request only: with previous_response_id, send it again every turn.
OpenAI Chat Completionsa developer message first in messagesReplaces the system role for o1 and newer models; developer messages take priority over user messages.
Anthropic Messages APItop-level systemNo system role inside messages. Pass it as a text block with cache_control to cache it.
Gemini generateContentsystemInstructionText only. Still supported; Google recommends the Interactions API for new work.
Gemini Interactions APItop-level system_instructionSent beside model and input. Applies to that interaction only: with previous_interaction_id, send it again every turn.

Related

Token counterLLM API cost calculatorPrompt builderAll system prompts