diff --git a/fern/gpt-live/configuration.mdx b/fern/gpt-live/configuration.mdx
index d7cfa6cba..abfba899a 100644
--- a/fern/gpt-live/configuration.mdx
+++ b/fern/gpt-live/configuration.mdx
@@ -108,7 +108,7 @@ These fields belong to the assistant object. See [Create Assistant](/api-referen
- 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.
- An explicit empty string stays empty. Updating one prompt doesn't update the other.
- Personality packs append guidance to the speaker prompt.
-- The speaker also receives the names and descriptions of any reasoner skills.
+- 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.
## Reasoner skills
@@ -117,7 +117,7 @@ Set `model.reasoner.skills` to an array of skills. See [Reasoner skills](/gpt-li
| Field | Behavior | Limit |
| --- | --- | --- |
| `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 |
-| `description` | Tells the reasoner, and the speaker, when the skill applies | 1,024 characters |
+| `description` | Tells the reasoner when to load the skill; also included in the speaker's skill summary | 1,024 characters |
| `content` | The full procedure. Only the reasoner sees it, once the skill is loaded | 32,000 characters |
| `tools` | Optional inline tool definitions, available only while the skill is loaded | 20 tools |
| `toolIds` | Optional IDs of saved tools, available only while the skill is loaded | 20 tools |
diff --git a/fern/gpt-live/migrate.mdx b/fern/gpt-live/migrate.mdx
index ca560d706..b9341710d 100644
--- a/fern/gpt-live/migrate.mdx
+++ b/fern/gpt-live/migrate.mdx
@@ -217,11 +217,18 @@ A squad splits a conversation across assistants and hands the caller between the
Take a squad with a front-desk assistant that greets callers and routes them, a scheduling assistant, and a service-information assistant:
+
+
+
+
+
+
+
| In the squad | In one GPT-Live assistant |
| --- | --- |
| Front-desk greeting, intake, and routing | Shared speaker behavior, assistant-wide reasoner rules, and delegation triggers |
| Scheduling assistant | A `schedule-appointment` skill with its procedure and booking tools |
-| Service-information assistant | An `answer-service-questions` skill with its guidance and retrieval tool |
+| Service-information assistant | An `answer-service-questions` skill with its guidance; shared `getServiceInfo` stays a base tool |
| Handoff conditions | Skill descriptions and the speaker's delegation triggers |
| Values passed between assistants | What the caller said is in the shared conversation. Values an earlier assistant or tool produced come from your services |
| 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
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.
-The speaker also sees skill names and descriptions, so keep them short and suitable for the caller to hear about.
+Write the speaker's triggers in terms of the caller's need. The speaker delegates the work; the reasoner chooses which skills to load.
### 5. Plan for what doesn't carry over
diff --git a/fern/gpt-live/skills.mdx b/fern/gpt-live/skills.mdx
index 1c91da9b3..c90a2e6bf 100644
--- a/fern/gpt-live/skills.mdx
+++ b/fern/gpt-live/skills.mdx
@@ -11,6 +11,13 @@ A **reasoner skill** groups one procedure with the tools it needs. The reasoner
The examples on this page use an appointment assistant that checks open times, books and cancels appointments, and answers questions about the business.
+
+
+
+
+
+
+
## When a skill helps
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
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.
-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.
+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.
+
+
+
+
+
+
+
## Example: scheduling and service questions
@@ -76,7 +90,7 @@ In the assistant's configuration, skills live in `model.reasoner.skills`. Each s
## Write descriptions the reasoner can select
-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:
+A skill's description tells the reasoner when to load it. Describe the caller's need and the work the skill covers:
| Description | Why it works or doesn't |
| --- | --- |
@@ -87,6 +101,13 @@ The description is how the reasoner, and the speaker, decide a skill is relevant
If two skills could both fit a request, make their descriptions say where one ends and the other begins, or merge them.
+
+
+
+
+
+
+
## Base tools and skill tools
A tool's placement decides when the reasoner can use it:
diff --git a/fern/static/images/gpt-live/request-picks-skill-dark-compact.svg b/fern/static/images/gpt-live/request-picks-skill-dark-compact.svg
new file mode 100644
index 000000000..2d3f371e9
--- /dev/null
+++ b/fern/static/images/gpt-live/request-picks-skill-dark-compact.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/request-picks-skill-dark.svg b/fern/static/images/gpt-live/request-picks-skill-dark.svg
new file mode 100644
index 000000000..c74411077
--- /dev/null
+++ b/fern/static/images/gpt-live/request-picks-skill-dark.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/request-picks-skill-light-compact.svg b/fern/static/images/gpt-live/request-picks-skill-light-compact.svg
new file mode 100644
index 000000000..afd7af765
--- /dev/null
+++ b/fern/static/images/gpt-live/request-picks-skill-light-compact.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/request-picks-skill-light.svg b/fern/static/images/gpt-live/request-picks-skill-light.svg
new file mode 100644
index 000000000..046154fea
--- /dev/null
+++ b/fern/static/images/gpt-live/request-picks-skill-light.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/skill-anatomy-dark-compact.svg b/fern/static/images/gpt-live/skill-anatomy-dark-compact.svg
new file mode 100644
index 000000000..b2d1b3f5c
--- /dev/null
+++ b/fern/static/images/gpt-live/skill-anatomy-dark-compact.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/skill-anatomy-dark.svg b/fern/static/images/gpt-live/skill-anatomy-dark.svg
new file mode 100644
index 000000000..0bf133149
--- /dev/null
+++ b/fern/static/images/gpt-live/skill-anatomy-dark.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/skill-anatomy-light-compact.svg b/fern/static/images/gpt-live/skill-anatomy-light-compact.svg
new file mode 100644
index 000000000..9901aedea
--- /dev/null
+++ b/fern/static/images/gpt-live/skill-anatomy-light-compact.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/skill-anatomy-light.svg b/fern/static/images/gpt-live/skill-anatomy-light.svg
new file mode 100644
index 000000000..7c0d9f0c7
--- /dev/null
+++ b/fern/static/images/gpt-live/skill-anatomy-light.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/skills-architecture-dark-compact.svg b/fern/static/images/gpt-live/skills-architecture-dark-compact.svg
new file mode 100644
index 000000000..09ddedc9c
--- /dev/null
+++ b/fern/static/images/gpt-live/skills-architecture-dark-compact.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/skills-architecture-dark.svg b/fern/static/images/gpt-live/skills-architecture-dark.svg
new file mode 100644
index 000000000..870ce774d
--- /dev/null
+++ b/fern/static/images/gpt-live/skills-architecture-dark.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/skills-architecture-light-compact.svg b/fern/static/images/gpt-live/skills-architecture-light-compact.svg
new file mode 100644
index 000000000..40ef1baee
--- /dev/null
+++ b/fern/static/images/gpt-live/skills-architecture-light-compact.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/skills-architecture-light.svg b/fern/static/images/gpt-live/skills-architecture-light.svg
new file mode 100644
index 000000000..9be462ae9
--- /dev/null
+++ b/fern/static/images/gpt-live/skills-architecture-light.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/squad-to-skills-dark-compact.svg b/fern/static/images/gpt-live/squad-to-skills-dark-compact.svg
new file mode 100644
index 000000000..b29d17776
--- /dev/null
+++ b/fern/static/images/gpt-live/squad-to-skills-dark-compact.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/squad-to-skills-dark.svg b/fern/static/images/gpt-live/squad-to-skills-dark.svg
new file mode 100644
index 000000000..e8bf34370
--- /dev/null
+++ b/fern/static/images/gpt-live/squad-to-skills-dark.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/squad-to-skills-light-compact.svg b/fern/static/images/gpt-live/squad-to-skills-light-compact.svg
new file mode 100644
index 000000000..60e726491
--- /dev/null
+++ b/fern/static/images/gpt-live/squad-to-skills-light-compact.svg
@@ -0,0 +1 @@
+
diff --git a/fern/static/images/gpt-live/squad-to-skills-light.svg b/fern/static/images/gpt-live/squad-to-skills-light.svg
new file mode 100644
index 000000000..adffc57ff
--- /dev/null
+++ b/fern/static/images/gpt-live/squad-to-skills-light.svg
@@ -0,0 +1 @@
+