> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retellai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GPT-Live voice model

> Set up the GPT-Live full-duplex voice model in Retell AI: a voice model handles turn-taking while a backend text LLM runs your prompt, tools, and knowledge base.

GPT-Live (`gpt-live-1`) is a full-duplex voice model that talks to the caller directly while a backend text LLM runs your prompt, tools, and knowledge base. The voice model owns turn-taking and speech, so it answers fast; when it needs an action or information, it delegates to the backend and speaks the result in its own words. You configure it through the API on a single-prompt [Retell LLM](https://docs.retellai.com/api-references/create-retell-llm.md).

## How it works

A GPT-Live agent runs two models together:

* **Voice model (`gpt-live-1`)** — hears and speaks to the caller, handles interruptions and turn-taking, and decides when it needs the backend. It follows the Retell LLM's `voice_prompt`.
* **Backend text model** — a cascading text LLM that runs the agent's main prompt, [tools](https://docs.retellai.com/build/single-multi-prompt/function-calling.md), and [knowledge base](https://docs.retellai.com/build/knowledge-base.md). It follows the Retell LLM's `general_prompt`.

The voice model keeps the conversation flowing while the backend works, instead of pausing on a filler line. It never mentions the backend to the caller.

## When to use it

Use GPT-Live when you want speech-to-speech responsiveness but still need the tools, knowledge base, and prompt control of a text LLM. It fits single-prompt voice agents that take actions mid-call, such as booking an appointment or looking up an order, where a cascading model's response gap is noticeable.

It isn't the right choice for a [conversation flow](https://docs.retellai.com/build/conversation-flow/overview.md), a multi-prompt agent, a transfer agent, or a chat agent. For those, use a [cascading or speech-to-speech model](https://docs.retellai.com/build/single-multi-prompt/configure-basic-settings.md) instead.

## Requirements

GPT-Live works only on a single-prompt Retell LLM used by a voice agent, and it requires a paid account.

* **Single prompt only.** A Retell LLM with states (a multi-prompt agent) is rejected.
* **Not for conversation flows or transfer agents.** Setting `type: "duplex"` on a conversation flow, or on a transfer agent's Retell LLM, is rejected.
* **A paid account.** Like a speech-to-speech model, GPT-Live isn't available during the free trial.
* **No call-level override.** An `agent_override` on a call can't switch an agent to a duplex model.

## Configure GPT-Live

Set `model_config.type` to `duplex` on the Retell LLM, and give the Retell LLM a `voice_prompt`:

| Field | Value |
| - | - |
| `model_config.primary.model` | `gpt-live-1`. Its `tier` must be `standard`. |
| `model_config.backend` | The text LLM that answers the voice model's delegations. Takes a `model` and optional `tier`, like a cascading primary. Required. |
| `model_config.backup` | Optional [fast-fallback](https://docs.retellai.com/build/llm-options.md#fast-fallback) backup for the backend model. Set to `null` to remove it. |
| `model_config.temperature` | Optional [temperature](https://docs.retellai.com/build/llm-options.md#temperature-settings) for the backend model. |
| `voice_prompt` | The voice model's prompt: how the agent talks and when it hands a request to the backend. At most **15,000 tokens** (as of October 2026). Required. See [Write the voice prompt](#write-the-voice-prompt). |

`voice_prompt` sits on the Retell LLM next to `general_prompt`, which is the backend's prompt: your task, tools, and guardrails. Retell keeps the voice prompt when you switch the Retell LLM to another model, and uses it again if you switch back. [Dynamic variables](https://docs.retellai.com/build/dynamic-variables.md) in the voice prompt are filled in once, when the call starts.

```bash theme={"dark"}
export RETELL_API_KEY="YOUR_RETELL_API_KEY"

curl --fail-with-body --request POST \
  "https://api.retellai.com/create-retell-llm" \
  --header "Authorization: Bearer ${RETELL_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{
    "general_prompt": "You are the backend for a dental clinic phone agent. Collect the caller name and date of birth, then use the booking tool to find and confirm an appointment. Keep names, numbers, and dates exact.",
    "voice_prompt": "You are a warm, efficient front-desk agent for Bright Smile Dental. Keep replies short and natural, and ask one question at a time.\n\nDelegation policy:\nBackend tools:\n- Appointments: find open times and book, change, or cancel appointments.\n\nGenerate <|SpawnThinking|> when:\n- The caller wants to book, change, or cancel an appointment.\n\nDo not generate <|SpawnThinking|> when:\n- You need a brief clarification to understand the request.",
    "model_config": {
      "type": "duplex",
      "primary": { "model": "gpt-live-1" },
      "backend": { "model": "gpt-4.1" }
    }
  }'
```

Attach the returned `llm_id` to a voice agent as its [response engine](https://docs.retellai.com/api-references/create-agent.md), the same as any other Retell LLM.

To change a duplex agent's models later, send `model_config` on [Update Retell LLM](https://docs.retellai.com/api-references/update-retell-llm.md), and send `voice_prompt` to change the voice prompt. `model_config.voice_prompt` is rejected. The legacy flat model fields (`model`, `s2s_model`, `model_temperature`, and the rest) can't describe a duplex config, so changing a duplex model's models through them is rejected.

## Write the voice prompt

The voice prompt tells GPT-Live how to talk and when to hand a request to the backend. GPT-Live hands off by generating a special token, `<|SpawnThinking|>`, so write your handoff rules with that exact phrase. Wording like "ask the backend" or "delegate" doesn't trigger a handoff. See OpenAI's [GPT-Live prompting guide](https://developers.openai.com/api/docs/guides/live-prompting) for the full structure and more examples.

Write the voice prompt in two parts:

* **Persona and speaking style.** Who the agent is and how it talks, such as tone and reply length.
* **A delegation policy.** Under `Backend tools:`, list what the backend can do, one capability per line. GPT-Live uses this list to decide which requests to hand off. Then list when to hand off under `Generate <|SpawnThinking|> when:` and when to answer directly under `Do not generate <|SpawnThinking|> when:`. Keep these three labels exactly as written.

```text theme={"dark"}
You are Maya, a warm, efficient front-desk agent for Bright Smile Dental. Keep replies short and natural, and ask one question at a time.

Delegation policy:
Backend tools:
- Appointments: find open times and book, change, or cancel appointments by the caller's name and date of birth.
- Clinic information: hours, locations, insurance, and the cancellation policy.

Generate <|SpawnThinking|> when:
- The caller wants to book, change, or cancel an appointment, or asks about hours, insurance, or policies.
- The caller confirms or corrects details you read back.

Do not generate <|SpawnThinking|> when:
- The caller greets you or asks you to repeat something you already said.
- You need a brief clarification to understand the request.
```

Keep tool definitions, step-by-step procedures, and facts such as prices in `general_prompt` and the knowledge base. GPT-Live doesn't see them: it asks the backend and says the answer in its own words.

Retell adds two kinds of instructions to the voice model for you, so leave them out of the voice prompt:

* **Call control** from the Retell LLM's tools: ending the call, transfers, and keypad presses, including handing off when the caller says goodbye.
* **The agent's settings**, such as interruption sensitivity, backchannel, language, and guardrails. See [What still applies](#what-still-applies).

## What still applies

Most agent settings carry over to GPT-Live. The voice model honors the agent's language, interruption sensitivity, responsiveness, backchannel, voice speed, pronunciation, boosted keywords, and [guardrails](https://docs.retellai.com/build/guardrails.md), and it handles [voicemail](https://docs.retellai.com/build/handle-voicemail.md), IVR, [do-not-call](https://docs.retellai.com/build/do-not-call.md), and callback detection through the backend. The [Welcome Message](https://docs.retellai.com/build/single-multi-prompt/configure-basic-settings.md) setting still decides who speaks first.

For tools, Retell ignores each tool's **Speak during execution** setting, since the voice model keeps talking to the caller while the backend runs, and it always speaks after a tool finishes.

Some tools aren't supported with GPT-Live:

* **Agent swap** — switching to another agent on the same call.
* **Warm (bridged) transfer** and **cancel transfer** — a supervised transfer that bridges a third party, and cancelling one.

Saving a Retell LLM that uses one of these tools with `gpt-live-1` is rejected. A plain [call transfer](https://docs.retellai.com/build/single-multi-prompt/transfer-call.md), [end call](https://docs.retellai.com/build/single-multi-prompt/end-call.md), and [press digit](https://docs.retellai.com/build/single-multi-prompt/press-digit.md) all work.

## Billing

GPT-Live costs **\$0.05 per minute** of call time. The backend text LLM is billed separately for its own usage. Check the current [Retell pricing](https://www.retellai.com/pricing) before you deploy.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.