You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 8d8f270
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: fern/gpt-live/configuration.mdx
+4-23Lines changed: 4 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,13 @@
1
1
---
2
2
title: GPT-Live settings and compatibility
3
3
subtitle: Supported features, fields, voices, hooks, call connections, and live controls
4
-
description: Reference for GPT-Live in Vapi. Feature compatibility, speaker and reasoner fields, reasoner skills, personality packs, voices with previews, greetings, idle-message hooks, call connections, and live call control.
4
+
description: Reference for GPT-Live in Vapi. Feature compatibility, speaker and reasoner fields, personality packs, voices with previews, greetings, idle-message hooks, call connections, and live call control.
5
5
slug: gpt-live/configuration
6
6
---
7
7
8
8
This page is the reference for GPT-Live's settings and supported features. For how to use them in a conversation, start with [Design conversations](/gpt-live/design).
@@ -96,9 +95,8 @@ These fields belong to the assistant object. See [Create Assistant](/api-referen
96
95
|`model.reasoner.model`|`gpt-5.6-sol`, `gpt-5.6-terra`, or `gpt-5.6-luna`. Defaults to `gpt-5.6-terra`|
97
96
|`model.reasoner.reasoningEffort`|`none`, `low`, `medium`, `high`, `xhigh`, or `max`. Defaults to `low`. Higher effort can increase response time |
98
97
|`model.reasoner.instructions`| Reasoner prompt. Omit to use Vapi's default |
99
-
|`model.reasoner.skills`| Array of skills. See [Reasoner skills](#reasoner-skills)|
100
-
|`model.tools`| Inline base tool definitions, available whether or not a skill is loaded |
101
-
|`model.toolIds`| IDs of saved base tools |
98
+
|`model.tools`| Inline tool definitions available to the reasoner |
99
+
|`model.toolIds`| IDs of saved tools |
102
100
|`voice.provider`|`openai`|
103
101
|`voice.voiceId`| One of the [22 supported voices](#voices)|
104
102
@@ -108,23 +106,6 @@ These fields belong to the assistant object. See [Create Assistant](/api-referen
108
106
- Omitting reasoner instructions uses Vapi's default reasoner prompt. Custom instructions replace that prompt entirely. Vapi doesn't append behavioral instructions to a custom prompt.
109
107
- An explicit empty string stays empty. Updating one prompt doesn't update the other.
110
108
- Personality packs append guidance to the speaker prompt.
111
-
- The speaker also receives the names and descriptions of any reasoner skills.
112
-
113
-
## Reasoner skills
114
-
115
-
Set `model.reasoner.skills` to an array of skills. See [Reasoner skills](/gpt-live/skills) for how to design them.
116
-
117
-
| Field | Behavior | Limit |
118
-
| --- | --- | --- |
119
-
|`name`| Identifies the skill in the catalog. The speaker and reasoner both see it | 64 characters |
120
-
|`description`| Tells the reasoner, and the speaker, when the skill applies | 1,024 characters |
121
-
|`content`| The full procedure. Only the reasoner sees it, once the skill is loaded | 32,000 characters |
122
-
|`tools`| Optional inline tool definitions, available only while the skill is loaded | 20 tools |
123
-
|`toolIds`| Optional IDs of saved tools, available only while the skill is loaded | 20 tools |
124
-
125
-
An assistant can have up to 20 skills.
126
-
127
-
Skills are stored with the assistant. Tools in `model.tools` and `model.toolIds` stay available whether or not a skill is loaded. Each delegation starts from the catalog and loads the skills it needs, and a loaded skill stays available for the rest of that delegation's work. A saved tool ID that doesn't exist can stop calls from starting.
Copy file name to clipboardExpand all lines: fern/gpt-live/design.mdx
+3-5Lines changed: 3 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -70,7 +70,7 @@ The speaker and reasoner see different things. You need this to predict how the
70
70
| --- | --- | --- |
71
71
| Live audio | Hears the caller and speaks continuously | Doesn't hear audio. Works from the conversation transcript |
72
72
| Conversation | Is part of it | Receives the transcript available when the request starts |
73
-
| Instructions | Speaker prompt, plus any personality packs | Reasoner prompt and any loaded skills. The speaker prompt isn't copied over |
73
+
| Instructions | Speaker prompt, plus any personality packs | Reasoner prompt. The speaker prompt isn't copied over |
74
74
| Tools | None. It asks the reasoner | Your tools. It can use its earlier work and tool results from the call |
75
75
76
76
Two consequences shape the rest of this page.
@@ -283,13 +283,11 @@ A detour can help the caller make the next decision:
283
283
284
284
If the answer is already known, as with an appointment's length in the [example prompt](#example-split-a-scheduling-prompt), the speaker can give it directly. If it needs a lookup, delegate it. Either way, return to the unfinished task with the caller's earlier details intact.
285
285
286
-
When an assistant covers several kinds of work, such as scheduling and service questions, [reasoner skills](/gpt-live/skills) let you keep each procedure and its tools separate behind the same conversation.
287
-
288
286
### Start with one assistant
289
287
290
-
GPT-Live keeps one voice for the whole call. Needs that used to lead to a squad of assistants, like separate intake, scheduling, and information roles, can often be covered by one assistant with clear delegation triggers and a few skills. The caller hears one continuous conversation instead of handoffs.
288
+
GPT-Live keeps one voice for the whole call. Start with a clear task and the tools it needs. Put its procedure in the reasoner prompt and its delegation triggers in the speaker prompt. Expand the assistant's responsibilities after it handles that task well.
291
289
292
-
Existing squads and assistant handoffs aren't supported with GPT-Live. See [Migrate to GPT-Live](/gpt-live/migrate#from-a-squad) for how to map a squad's responsibilities onto one assistant.
290
+
Existing squads and assistant handoffs aren't supported with GPT-Live. See [Migrate to GPT-Live](/gpt-live/migrate) for moving a single assistant and the limits for squads.
Copy file name to clipboardExpand all lines: fern/gpt-live/migrate.mdx
+7-109Lines changed: 7 additions & 109 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,11 @@
1
1
---
2
2
title: Migrate to GPT-Live
3
-
subtitle: Move an existing assistant or squad, compare it with the original, and keep a way back
4
-
description: Migrate a Vapi assistant or squad to GPT-Live. Check fit, convert a copy, split prompts between the speaker and reasoner, map squad members to reasoner skills, compare results, and roll back safely.
3
+
subtitle: Move an existing assistant, compare it with the original, and keep a way back
4
+
description: Migrate a Vapi assistant to GPT-Live. Check fit, convert a copy, split prompts between the speaker and reasoner, compare results, and roll back safely.
5
5
slug: gpt-live/migrate
6
6
---
7
7
8
-
This page has two complete paths. Follow [From a single assistant](#from-a-single-assistant) if you're moving one assistant, or [From a squad](#from-a-squad) if you're combining a squad into one GPT-Live assistant. Each path repeats what it needs, so you can follow one without reading the other.
9
-
10
-
Both start from the same preparation.
8
+
Move a copy of your assistant first, compare it with the original, and switch traffic after it meets the same goals. This guide covers a single assistant. If you use a squad, see [From a squad](#from-a-squad) for the current limits.
11
9
12
10
## Before you start
13
11
@@ -16,7 +14,7 @@ Both start from the same preparation.
16
14
Some features don't carry over. If your assistant depends on one of these, plan how to replace it before you begin:
17
15
18
16
-**Voices** must be one of the [OpenAI voices GPT-Live supports](/gpt-live/configuration#voices). Other voice providers and custom or cloned voices aren't available.
19
-
-**Squads and assistant handoffs** aren't supported. A squad becomes one assistant, as described [below](#from-a-squad).
17
+
-**Squads and assistant handoffs** aren't supported. There is no direct squad conversion; see [the current limits](#from-a-squad).
20
18
-**Model and voice fallbacks** must be removed. GPT-Live can't be a fallback model either.
21
19
-**Exact or prerecorded speech** isn't available. GPT-Live generates all of its speech, including the greeting.
22
20
-**Keypad input** from callers isn't supported.
@@ -31,7 +29,7 @@ Pick a handful of calls that represent what the assistant has to get right: a st
31
29
32
30
### Keep the original running
33
31
34
-
Leave your phone numbers on the original assistant or squad until the GPT-Live version has passed the same calls. Work on a copy, test it on its own, and switch traffic when you're ready.
32
+
Leave your phone numbers on the original assistant until the GPT-Live version has passed the same calls. Work on a copy, test it on its own, and switch traffic when you're ready.
35
33
36
34
## From a single assistant
37
35
@@ -140,8 +138,6 @@ Three things changed besides the split:
140
138
-**Waiting is designed.** In the classic flow, the assistant read times out after a lookup and then asked for the name. The speaker now asks for the name while the lookup runs.
141
139
-**Results are for speaking.** The reasoner returns short facts that the speaker can use directly.
142
140
143
-
If the reasoner prompt grows to cover several distinct procedures, group them into [reasoner skills](/gpt-live/skills).
144
-
145
141
### 4. Map the settings
146
142
147
143
| Classic setting | With GPT-Live |
@@ -204,104 +200,6 @@ If you need to take a converted assistant back to Classic, select **Revert to Cl
204
200
205
201
## From a squad
206
202
207
-
A squad splits a conversation across assistants and hands the caller between them. GPT-Live keeps one voice for the whole call, and its reasoner can switch between procedures without a handoff. Migrating a squad means mapping what each member was responsible for onto one assistant. **Switch to GPT Live** converts a single assistant. It doesn't convert a squad, so this path is done by hand.
208
-
209
-
### How the pieces map
210
-
211
-
Take a squad with a front-desk assistant that greets callers and routes them, a scheduling assistant, and a service-information assistant:
212
-
213
-
| In the squad | In one GPT-Live assistant |
214
-
| --- | --- |
215
-
| Front-desk greeting, intake, and routing | Shared speaker behavior, assistant-wide reasoner rules, and delegation triggers |
216
-
| Scheduling assistant | A `schedule-appointment` skill with its procedure and booking tools |
217
-
| Service-information assistant | An `answer-service-questions` skill with its guidance and retrieval tool |
218
-
| Handoff conditions | Skill descriptions and the speaker's delegation triggers |
219
-
| Values passed between assistants | What the caller said is in the shared conversation. Values an earlier assistant or tool produced come from your services |
220
-
| Protected actions | Checks in your services: prerequisites, confirmation, duplicate handling |
221
-
| Transfer to a person | A `transferCall` tool, kept as a base tool |
222
-
223
-
### 1. Map each member's responsibility
224
-
225
-
For each assistant in the squad, write down what it's responsible for and why it was separate. Common reasons are a long procedure, a different set of tools, or a different tone.
226
-
227
-
Then decide where each responsibility goes:
228
-
229
-
- A procedure with its own rules and tools becomes a **skill**.
230
-
- Rules every part of the call follows, like "never report an action a tool didn't confirm", go in the **reasoner prompt**.
231
-
- Conversation guidance, like tone and pacing, goes in the **speaker prompt**.
232
-
233
-
You don't need one skill per old assistant. A front-desk assistant that only greeted and routed usually doesn't need a skill at all: its job becomes the speaker's greeting and delegation triggers. Two specialists with closely related work may be clearer as one skill.
234
-
235
-
### 2. Keep one voice and shared conversation rules
236
-
237
-
Write one speaker prompt for the whole call. Take the greeting and tone from the assistant callers heard first, and add anything the specialists did differently that callers relied on, such as a slower pace for explaining policies.
238
-
239
-
Remove handoff announcements like "Let me transfer you to our scheduling team." The caller stays with the same assistant, so they aren't needed. One of the goals of the migration is that the caller no longer repeats details at each handoff. Check that on real calls: it depends on your prompts and on the reasoner using the earlier conversation.
240
-
241
-
A handoff was also a point where the conversation paused. Now the speaker can keep going while the reasoner works. When the caller moves from a question to booking, the speaker can start the lookup and ask for the name in the same breath:
242
-
243
-
> **Caller:** Thanks. Can I book a consultation downtown on Friday?
244
-
>
245
-
> **Assistant:** Sure, I'll check Friday downtown. Who should I put it under?
246
-
247
-
Give the speaker the same waiting guidance as a single assistant: ask what the next step needs, answer what it already knows, and acknowledge a blocked wait once instead of filling it. See [Redesign the waits](#5-redesign-the-waits) above.
248
-
249
-
### 3. Build the skills
250
-
251
-
Each specialist's procedure becomes a skill's `content`, and its tools become the skill's tools. A minimal version for the scheduling and service-information specialists:
252
-
253
-
```json title="model.reasoner (excerpt)"
254
-
{
255
-
"instructions": "Work from the latest request in the conversation transcript. Load the skill that fits the request. Return short, plain facts the assistant can say. Never report an action a tool did not confirm. Call endCall when the caller asks to end the call.",
256
-
"skills": [
257
-
{
258
-
"name": "schedule-appointment",
259
-
"description": "Check open times, book a time, or cancel or move a booking made on this call.",
260
-
"content": "Call lookupAvailability when you have the service, location, and date. A caller choosing a time isn't agreement to book. Call bookAppointment only for a time from the latest lookup, and only when the transcript shows the assistant read back the day, time, location, and name and the caller then clearly said yes. Otherwise, return those details for the assistant to read back and confirm. To move a booking, look up the new time and confirm it with the caller first, then cancel the existing booking with cancelAppointment and book the new time. If the new booking fails after the cancellation, say so.",
"description": "Answer questions about services, how long they take, what to bring, locations, hours, and the change policy.",
266
-
"content": "Use getServiceInfo and answer only from its result. If the caller was in the middle of booking, say so in your result so the assistant can return to it."
267
-
}
268
-
]
269
-
}
270
-
```
271
-
272
-
The `toolIds` are the IDs of the saved tools the scheduling assistant used. Tools that several skills need, or that must always be available, go in the assistant's base tools instead. Here `getServiceInfo`, `endCall`, and any transfer to a person are base tools. See [Reasoner skills](/gpt-live/skills#example-scheduling-and-service-questions) for the full procedure and tool placement.
273
-
274
-
### 4. Turn handoff conditions into descriptions and triggers
275
-
276
-
In the squad, handoff conditions decided which assistant took over. Now they do two jobs:
277
-
278
-
-**Skill descriptions** tell the reasoner which procedure a request needs. Write them in terms of the caller's request, and make sure two skills don't claim the same requests.
279
-
-**Delegation triggers** in the speaker prompt tell the speaker when to send work to the reasoner at all.
280
-
281
-
A condition like "hand off to scheduling when the caller wants to book, move, or cancel" becomes the scheduling skill's description and a line in the speaker's triggers.
282
-
283
-
The speaker also sees skill names and descriptions, so keep them short and suitable for the caller to hear about.
284
-
285
-
### 5. Plan for what doesn't carry over
286
-
287
-
-**Different voices or models per member.** One assistant has one voice and one reasoner model. Skills don't change either.
288
-
-**Separate context per member.** In one assistant, the whole call's conversation is shared, and skills don't isolate it. If a member was separate to keep information apart, enforce that in your services or keep that flow outside this assistant.
289
-
-**Handoff tools.** Remove them, since handoffs aren't supported.
290
-
-**Values passed at handoff.** Inventory each one before removing it. Details the caller said are in the shared conversation. Values an earlier assistant or tool produced, such as an account ID or a lookup result, may not be. Make those available from your services, for example through a tool the reasoner can call, and keep authoritative state there.
291
-
-**Member-specific hooks or settings.** Combine them into the one assistant's configuration, and check each against [Settings and compatibility](/gpt-live/configuration#compatibility).
292
-
293
-
### 6. Test the switches between procedures
294
-
295
-
The old handoff boundaries are the places to test most carefully, because that's where the combined assistant switches between procedures. Test:
296
-
297
-
-**A switch** from scheduling to a service question and back, without repeating details.
298
-
-**A return** to an unfinished booking after the detour.
299
-
-**A correction** during a lookup.
300
-
-**An already-completed action.** After a booking, return to the topic and check the assistant doesn't book again.
301
-
-**A failure** from a tool, and the recovery.
302
-
303
-
For each, check the call's messages for the skill loads and tool calls, your service's state for the outcome, and the recording for how it sounded. The reasoner uses the conversation and earlier results to continue, which works well when results are clear about status. Skills don't track workflow state for you, so your services must still reject duplicates and out-of-order actions.
304
-
305
-
### 7. Roll out and keep the squad
203
+
GPT-Live doesn't support squads or assistant handoffs. **Switch to GPT Live** converts one assistant; it doesn't convert a squad or preserve its routing and handoff behavior.
306
204
307
-
Move traffic to the new assistant when it passes your saved calls. Keep the original squad and its configuration unchanged as your fallback. Revert to Classic works on converted single assistants and doesn't recreate a squad, so the squad itself is your way back.
205
+
Keep your existing squad if your call flow depends on those capabilities. The single-assistant steps above aren't a replacement for a squad migration.
0 commit comments