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 b702666
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: fern/gpt-live/configuration.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -108,7 +108,7 @@ These fields belong to the assistant object. See [Create Assistant](/api-referen
108
108
- Omitting reasoner instructions uses Vapi's default reasoner prompt. Custom instructions replace that prompt entirely. When skills are configured, Vapi adds skill-loading guidance and the content of loaded skills.
109
109
- An explicit empty string stays empty. Updating one prompt doesn't update the other.
110
110
- Personality packs append guidance to the speaker prompt.
111
-
-The speaker also receives the names and descriptions of any reasoner skills.
111
+
-Vapi adds a summary of skill names and descriptions to the speaker prompt. The reasoner manages the catalog, loads skills, and uses their instructions and tools.
112
112
113
113
## Reasoner skills
114
114
@@ -117,7 +117,7 @@ Set `model.reasoner.skills` to an array of skills. See [Reasoner skills](/gpt-li
117
117
| Field | Behavior | Limit |
118
118
| --- | --- | --- |
119
119
|`name`| Unique within the assistant. Start with a lowercase letter; use lowercase letters, digits, hyphens, or underscores. The speaker and reasoner both see it | 64 characters |
120
-
|`description`| Tells the reasoner, and the speaker, when the skill applies| 1,024 characters |
120
+
|`description`| Tells the reasoner when to load the skill; also included in the speaker's skill summary| 1,024 characters |
121
121
|`content`| The full procedure. Only the reasoner sees it, once the skill is loaded | 32,000 characters |
122
122
|`tools`| Optional inline tool definitions, available only while the skill is loaded | 20 tools |
123
123
|`toolIds`| Optional IDs of saved tools, available only while the skill is loaded | 20 tools |
Copy file name to clipboardExpand all lines: fern/gpt-live/migrate.mdx
+9-2Lines changed: 9 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -217,11 +217,18 @@ A squad splits a conversation across assistants and hands the caller between the
217
217
218
218
Take a squad with a front-desk assistant that greets callers and routes them, a scheduling assistant, and a service-information assistant:
219
219
220
+
<divclassName="gpt-live-illustration">
221
+
<imgclassName="gpt-live-art-light"src="../static/images/gpt-live/squad-to-skills-light.svg"alt="A squad becomes one GPT-Live assistant: front-desk greeting and routing move into the speaker prompt, specialists become reasoner skills, and shared tools remain base tools."loading="lazy" />
222
+
<imgclassName="gpt-live-art-dark"src="../static/images/gpt-live/squad-to-skills-dark.svg"alt="A squad becomes one GPT-Live assistant: front-desk greeting and routing move into the speaker prompt, specialists become reasoner skills, and shared tools remain base tools."loading="lazy" />
223
+
<imgclassName="gpt-live-art-light-compact"src="../static/images/gpt-live/squad-to-skills-light-compact.svg"alt="A squad becomes one GPT-Live assistant: front-desk greeting and routing move into the speaker prompt, specialists become reasoner skills, and shared tools remain base tools."loading="lazy" />
224
+
<imgclassName="gpt-live-art-dark-compact"src="../static/images/gpt-live/squad-to-skills-dark-compact.svg"alt="A squad becomes one GPT-Live assistant: front-desk greeting and routing move into the speaker prompt, specialists become reasoner skills, and shared tools remain base tools."loading="lazy" />
225
+
</div>
226
+
220
227
| In the squad | In one GPT-Live assistant |
221
228
| --- | --- |
222
229
| Front-desk greeting, intake, and routing | Shared speaker behavior, assistant-wide reasoner rules, and delegation triggers |
223
230
| Scheduling assistant | A `schedule-appointment` skill with its procedure and booking tools |
224
-
| Service-information assistant | An `answer-service-questions` skill with its guidance and retrieval tool |
231
+
| Service-information assistant | An `answer-service-questions` skill with its guidance; shared `getServiceInfo` stays a base tool |
225
232
| Handoff conditions | Skill descriptions and the speaker's delegation triggers |
226
233
| Values passed between assistants | What the caller said is in the shared conversation. Values an earlier assistant or tool produced come from your services |
227
234
| Protected actions | Checks in your services: prerequisites, confirmation, duplicate handling |
@@ -287,7 +294,7 @@ In the squad, handoff conditions decided which assistant took over. Now they do
287
294
288
295
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.
289
296
290
-
The speaker also sees skill names and descriptions, so keep them short and suitable for the caller to hear about.
297
+
Write the speaker's triggers in terms of the caller's need. The speaker delegates the work; the reasoner chooses which skills to load.
Copy file name to clipboardExpand all lines: fern/gpt-live/skills.mdx
+23-2Lines changed: 23 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,13 @@ A **reasoner skill** groups one procedure with the tools it needs. The reasoner
11
11
12
12
The examples on this page use an appointment assistant that checks open times, books and cancels appointments, and answers questions about the business.
13
13
14
+
<divclassName="gpt-live-illustration">
15
+
<imgclassName="gpt-live-art-light"src="../static/images/gpt-live/skill-anatomy-light.svg"alt="A scheduling skill contains its procedure and the tools for checking availability, booking, and cancelling."loading="lazy" />
16
+
<imgclassName="gpt-live-art-dark"src="../static/images/gpt-live/skill-anatomy-dark.svg"alt="A scheduling skill contains its procedure and the tools for checking availability, booking, and cancelling."loading="lazy" />
17
+
<imgclassName="gpt-live-art-light-compact"src="../static/images/gpt-live/skill-anatomy-light-compact.svg"alt="A scheduling skill contains its procedure and the tools for checking availability, booking, and cancelling."loading="lazy" />
18
+
<imgclassName="gpt-live-art-dark-compact"src="../static/images/gpt-live/skill-anatomy-dark-compact.svg"alt="A scheduling skill contains its procedure and the tools for checking availability, booking, and cancelling."loading="lazy" />
19
+
</div>
20
+
14
21
## When a skill helps
15
22
16
23
Keep a procedure in the main reasoner prompt when it's short or applies to most requests. Move it into a skill when it's a coherent piece of work with its own rules, and often its own tools.
@@ -37,7 +44,14 @@ Several skills can be active in the same delegation. The reasoner can unload a s
37
44
38
45
Loading a skill is an extra reasoning step before the skill's tools can be used. Keep the catalog small and the descriptions distinct, so the reasoner picks the right skill the first time. Measure the effect on your calls rather than assuming skills make them faster or slower.
39
46
40
-
The speaker also sees the skill names and descriptions, which helps it recognize when to delegate. Write descriptions in terms of the caller's need, keep them short, and leave out anything the caller shouldn't hear. Callers don't need to hear skill names, and the speaker prompt can say so.
47
+
The reasoner manages the skill catalog and loading. Vapi also adds each skill's name and description to the speaker prompt to help it delegate. The speaker doesn't load skills or receive their full instructions and tools. Keep descriptions short and focused on the caller's need; callers don't need to hear skill names.
48
+
49
+
<divclassName="gpt-live-illustration">
50
+
<imgclassName="gpt-live-art-light"src="../static/images/gpt-live/skills-architecture-light.svg"alt="The speaker delegates to the reasoner. The reasoner has its own prompt, always-available base tools, and the skill catalog: Scheduling is loaded with instructions and tools, while Service questions is not loaded."loading="lazy" />
51
+
<imgclassName="gpt-live-art-dark"src="../static/images/gpt-live/skills-architecture-dark.svg"alt="The speaker delegates to the reasoner. The reasoner has its own prompt, always-available base tools, and the skill catalog: Scheduling is loaded with instructions and tools, while Service questions is not loaded."loading="lazy" />
52
+
<imgclassName="gpt-live-art-light-compact"src="../static/images/gpt-live/skills-architecture-light-compact.svg"alt="The speaker delegates to the reasoner. The reasoner has its own prompt, always-available base tools, and the skill catalog: Scheduling is loaded with instructions and tools, while Service questions is not loaded."loading="lazy" />
53
+
<imgclassName="gpt-live-art-dark-compact"src="../static/images/gpt-live/skills-architecture-dark-compact.svg"alt="The speaker delegates to the reasoner. The reasoner has its own prompt, always-available base tools, and the skill catalog: Scheduling is loaded with instructions and tools, while Service questions is not loaded."loading="lazy" />
54
+
</div>
41
55
42
56
## Example: scheduling and service questions
43
57
@@ -76,7 +90,7 @@ In the assistant's configuration, skills live in `model.reasoner.skills`. Each s
76
90
77
91
## Write descriptions the reasoner can select
78
92
79
-
The description is how the reasoner, and the speaker, decide a skill is relevant. Describe the caller's need and the work the skill covers:
93
+
A skill's description tells the reasoner when to load it. Describe the caller's need and the work the skill covers:
80
94
81
95
| Description | Why it works or doesn't |
82
96
| --- | --- |
@@ -87,6 +101,13 @@ The description is how the reasoner, and the speaker, decide a skill is relevant
87
101
88
102
If two skills could both fit a request, make their descriptions say where one ends and the other begins, or merge them.
89
103
104
+
<divclassName="gpt-live-illustration">
105
+
<imgclassName="gpt-live-art-light"src="../static/images/gpt-live/request-picks-skill-light.svg"alt="A request to book Tuesday at 3 matches the Scheduling skill. Service questions stays unloaded."loading="lazy" />
106
+
<imgclassName="gpt-live-art-dark"src="../static/images/gpt-live/request-picks-skill-dark.svg"alt="A request to book Tuesday at 3 matches the Scheduling skill. Service questions stays unloaded."loading="lazy" />
107
+
<imgclassName="gpt-live-art-light-compact"src="../static/images/gpt-live/request-picks-skill-light-compact.svg"alt="A request to book Tuesday at 3 matches the Scheduling skill. Service questions stays unloaded."loading="lazy" />
108
+
<imgclassName="gpt-live-art-dark-compact"src="../static/images/gpt-live/request-picks-skill-dark-compact.svg"alt="A request to book Tuesday at 3 matches the Scheduling skill. Service questions stays unloaded."loading="lazy" />
109
+
</div>
110
+
90
111
## Base tools and skill tools
91
112
92
113
A tool's placement decides when the reasoner can use it:
0 commit comments