From cc9e40a0a3676743970b4980a8a0050b2c906077 Mon Sep 17 00:00:00 2001 From: Arthur Chi Date: Thu, 13 Nov 2025 21:02:19 -0800 Subject: [PATCH 1/6] fixes, more handoff --- fern/docs.yml | 7 +- fern/squads.mdx | 30 +-- .../examples/clinic-triage-scheduling.mdx | 2 - fern/squads/examples/multilingual-support.mdx | 2 +- fern/squads/silent-transfers.mdx | 250 ------------------ 5 files changed, 19 insertions(+), 272 deletions(-) delete mode 100644 fern/squads/silent-transfers.mdx diff --git a/fern/docs.yml b/fern/docs.yml index 0575e7b36..e829e7508 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -321,8 +321,11 @@ navigation: path: squads/examples/property-management.mdx - page: Multilingual support path: squads/examples/multilingual-support.mdx - - page: Silent transfers - path: squads/silent-transfers.mdx + - page: Handoff tools + path: tools/handoff.mdx + icon: fa-light fa-hand-holding-hand + - page: Silent handoffs + path: squads/silent-handoffs.mdx icon: fa-light fa-arrow-right-arrow-left - section: Best practices diff --git a/fern/squads.mdx b/fern/squads.mdx index de33b9aac..207e3febd 100644 --- a/fern/squads.mdx +++ b/fern/squads.mdx @@ -94,7 +94,7 @@ To override the configuration of a saved assistant without modifying the underly } ``` -You may also define inline tools via assistant overrides through the `model` object (using `tools:append`), so that the assistant will only handoff if it is a part of this squad. +You may also define inline tools via assistantOverrides through the `tools:append` array, so that the assistant will only handoff if it is a part of this squad. ```json { "squad": { @@ -111,22 +111,18 @@ You may also define inline tools via assistant overrides through the `model` obj { "assistantId": "saved-assistant-id", "assistantOverrides": { - "model": { - "provider": "openai", - "model": "gpt-4o", - "tools:append": [ - { - "type": "handoff", - "destinations": [ - { - "type": "assistant", - "assistantId": "assistant-123", - "description": "Call this tool when the customer wants to talk about pricing" - } - ] - } - ] - }, + "tools:append": [ + { + "type": "handoff", + "destinations": [ + { + "type": "assistant", + "assistantId": "assistant-123", + "description": "Call this tool when the customer wants to talk about pricing" + } + ] + } + ] } }, ] diff --git a/fern/squads/examples/clinic-triage-scheduling.mdx b/fern/squads/examples/clinic-triage-scheduling.mdx index 79efa948e..42cff12a6 100644 --- a/fern/squads/examples/clinic-triage-scheduling.mdx +++ b/fern/squads/examples/clinic-triage-scheduling.mdx @@ -35,8 +35,6 @@ Compose multiple assistants into a Squad for safe, specialized healthcare flows: - From Triage → Scheduler for routine care - Warm-transfer with a short summary for human escalation -See: [Silent transfers](/squads/silent-transfers). - ## 3. Implement diff --git a/fern/squads/examples/multilingual-support.mdx b/fern/squads/examples/multilingual-support.mdx index e40c84e24..f10a670d9 100644 --- a/fern/squads/examples/multilingual-support.mdx +++ b/fern/squads/examples/multilingual-support.mdx @@ -12,7 +12,7 @@ Provide structured multilingual support using a Squad: present a short language **Squad Capabilities:** * Explicit language choice for clarity * Language‑specific prompts and voices -* Seamless transfers while preserving context +* Seamless handoffs while preserving context ## 1. Define members diff --git a/fern/squads/silent-transfers.mdx b/fern/squads/silent-transfers.mdx deleted file mode 100644 index e589f2980..000000000 --- a/fern/squads/silent-transfers.mdx +++ /dev/null @@ -1,250 +0,0 @@ ---- -title: Silent Transfers -slug: squads/silent-transfers ---- -- **The Problem**: In traditional AI call flows, when transferring from one agent to another, announcing the transfer verbally can confuse or annoy callers and disrupt the conversation's flow. -- **The Solution**: Silent transfers keep the call experience _uninterrupted_, so the user doesn’t know multiple assistants are involved. The conversation flows more naturally, boosting customer satisfaction. - -If you want to allow your call flow to move seamlessly from one assistant to another _without_ the caller hearing `Please hold while we transfer you` here’s what to do: - -1. **Update the Destination Assistant’s First Message** - - Set the assistant's `firstMessage` to an _empty string_. - - Set the assistant's `firstMessageMode` to `assistant-speaks-first-with-model-generated-message`. - -2. **Update the Squad's assistant destinations messages** - - For every `members[*].assistantDestinations[*]`, set the `message` property to an _empty string_. - -3. **Trigger the Transfer from the Source Assistant** - - - In that assistant’s prompt, include a line instructing it to transfer to the desired assistant: - - ```json - trigger the transferCall tool with 'assistantName' Assistant. - ``` - - - Replace `'assistantName'` with the exact name of the next assistant. - -4. **Direct the Destination Assistant’s Behavior** - - In that assistant’s prompt, include a line instructing it to _`Proceed directly to the Task section without any greetings or small talk.`_ - - This ensures there’s no awkward greeting or “Hello!” when the next assistant begins speaking. - -### **Example Usage Scenario** - -- **HPMA (Main Assistant)** is talking to the customer. They confirm the order details and then quietly passes the conversation to **HPPA (Payment Assistant)**. -- **HPPA** collects payment details without the customer ever hearing, `We’re now transferring you to the Payment Assistant.` It feels like one continuous conversation. -- Once payment is done, **HPPA** transfers the call again—this time to **HPMA-SA (Main Sub Assistant)**—which takes over final shipping arrangements. - -Everything happens smoothly behind the scenes! - -## **Squad and Assistant Configurations** - -Below are the key JSON examples you’ll need. These show how to structure your assistants and squads so they work together for silent transfers. - -### **HP Payment Squad With SubAgent** - - - Make sure the `members[*].assistantDestinations[*].message` properties are set to an _empty string_. - - -```json -{ - "members": [ - { - "assistantId": "2d8e0d13-1b3c-4358-aa72-cf6204d6244e", - "assistantDestinations": [ - { - "message": " ", - "description": "Transfer call to the payment agent", - "type": "assistant", - "assistantName": "HPPA" - } - ] - }, - { - "assistantId": "ad1c5347-bc32-4b31-8bb7-6ff5fcb131f4", - "assistantDestinations": [ - { - "message": " ", - "description": "Transfer call to the main sub agent", - "type": "assistant", - "assistantName": "HPMA-SA" - } - ] - }, - { - "assistantId": "f1c258bc-4c8b-4c51-9b44-883ab5e40b2f", - "assistantDestinations": [] - } - ], - "name": "HP Payment Squad With SubAgent" -} -``` - -### **HPMA Assistant (Main Assistant)** - -```json -{ - "name": "HPMA", - "voice": { - "voiceId": "248be419-c632-4f23-adf1-5324ed7dbf1d", - "provider": "cartesia", - "fillerInjectionEnabled": false - }, - "createdAt": "2024-11-04T17:15:08.980Z", - "updatedAt": "2024-11-30T13:04:58.401Z", - "model": { - "model": "gpt-4o", - "messages": [ - { - "role": "system", - "content": "[Identity]\nYou are the Main Assistant..." - } - ], - "provider": "openai", - "maxTokens": 50, - "temperature": 0.3 - }, - "firstMessage": "", - "firstMessageMode": "assistant-speaks-first-with-model-generated-message", - "transcriber": { - "model": "nova-2", - "language": "en", - "provider": "deepgram" - }, - "backchannelingEnabled": false, - "backgroundDenoisingEnabled": false, - "isServerUrlSecretSet": false -} -``` - -(Similar JSON information for the HPPA and HPMA-SA assistants can follow, just like in the original text.) - -## **Assistant Prompts (In Plain Text)** - -Each assistant has its own system prompt outlining identity, context, style, and tasks. These prompts ensure the conversation is smooth, customer-centric, and aligned with your call flow needs. Here’s a streamlined version for reference: - -### **HPMA (Main Assistant Prompt)** - -``` -[Identity] -You are the Main Assistant, a friendly and helpful agent assisting customers -in purchasing widgets over the phone. - -[Context] -You're engaged with the customer to book an appointment. -Stay focused on this context and provide relevant information. -Once connected to a customer, proceed to the Task section. -Do not invent information not drawn from the context. -Answer only questions related to the context. - -[Style] -- Be polite and professional. -- Use a conversational and engaging tone. -- Keep responses concise and clear. - -[Response Guidelines] -- Ask one question at a time and wait for the customer's response before - proceeding. -- Confirm the customer's responses when appropriate. -- Use simple language that is easy to understand. -- Never say the word 'function' nor 'tools' nor the name of the - Available functions. -- Never say ending the call. -- Never say transferring. - -[Task] -1.Greet the customer and ask if they are interested in purchasing widgets. - - Wait for the customer's response. -2. If the customer is interested, ask for their name. - - Wait for the customer's response. -3.Ask how many widgets the customer would like to purchase. - - Wait for the customer's response. -4.Confirm the order details with the customer. - - trigger the transferCall tool with Payment `HPPA` Assistant. -``` - -### **HPPA (Payment Assistant Prompt)** - -``` -[Identity] -You are the Payment Assistant, operating in secure mode to collect payment information from customers safely and confidentially. - -[Context] -You're engaged with the customer to collect payment details. Stay focused -on this context and provide relevant information. -Do not invent information not drawn from the context. -Answer only questions related to the context. -Once connected to a customer, proceed to the Task section without -any greetings or small talk. - -[Style] -- Be professional and reassuring. -- Maintain confidentiality at all times. -- Speak clearly and calmly. - -[Response Guidelines] -- Collect the customer's credit card number, expiration date, and CVV. -- Confirm each piece of information after it is provided. -- Ensure the customer feels secure during the transaction. -- Do not record or log any information. -- Never say the word 'function' nor 'tools' nor the name of the - Available functions. -- Never say ending the call. -- Never say transferring. - -[Task] -1. Ask for the credit card number. - - Wait for the customer's response. -2. Ask for the expiration date of the card. - - Wait for the customer's response. -3. Ask for the CVV number. - - Wait for the customer's response. -4. Confirm that the payment has been processed successfully. - - trigger the transferCall tool with Payment `HPMA-SA` Assistant. -``` - -### **HPMA-SA (Main Sub Assistant Prompt)** - -``` -[Identity] -You are the Main Assistant, a friendly and helpful agent assisting customers -in purchasing widgets over the phone. - -[Context] -You're engaged with the customer to book an appointment. -Stay focused on this context and provide relevant information. -Do not invent information not drawn from the context. -Answer only questions related to the context. -Once connected to a customer, proceed to the Task section without any greetings -or small talk. - -[Style] -- Be professional and reassuring. -- Maintain confidentiality at all times. -- Speak clearly and calmly. - -[Response Guidelines] -- Collect the customer's credit card number, expiration date, and CVV. -- Confirm each piece of information after it is provided. -- Ensure the customer feels secure during the transaction. -- Do not record or log any information. -- Never say the word 'function' nor 'tools' nor the name of the - Available functions. -- Never say ending the call. -- Never say transferring. - -[Task] -1.Ask for the customer's shipping address to deliver the widgets. - - Wait for the customer's response. -2.Confirm the shipping address and provide an estimated delivery date. -3.Ask if the customer has any additional questions or needs further assistance. - - Wait for the customer's response. -4.Provide any additional information or assistance as needed. -5.Thank the customer for their purchase and end the call politely. -``` - -## **Conclusion** - -By following these steps and examples, you can configure your call system to conduct **silent transfers** ensuring that callers experience a single, uninterrupted conversation. Each assistant does its job smoothly, whether it’s capturing payment, finalizing a shipping address, or collecting basic info. - -Enjoy setting up your silent transfers! From d4e0739b5786352de4757c2d2f993d7403325471 Mon Sep 17 00:00:00 2001 From: Arthur Chi Date: Thu, 13 Nov 2025 21:28:07 -0800 Subject: [PATCH 2/6] actually save files --- fern/squads/silent-handoffs.mdx | 265 ++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 fern/squads/silent-handoffs.mdx diff --git a/fern/squads/silent-handoffs.mdx b/fern/squads/silent-handoffs.mdx new file mode 100644 index 000000000..2b552e3f4 --- /dev/null +++ b/fern/squads/silent-handoffs.mdx @@ -0,0 +1,265 @@ +--- +title: Silent Handoffs +slug: squads/silent-handoffs +--- +- **The Problem**: In traditional AI call flows, when handing off from one agent to another, announcing the handoff verbally can confuse or annoy callers and disrupt the conversation's flow. +- **The Solution**: Silent handoffs keep the call experience _uninterrupted_, so the user doesn’t know multiple assistants are involved. The conversation flows more naturally, boosting customer satisfaction. + +If you want to allow your call flow to move seamlessly from one assistant to another _without_ the caller hearing `Please hold while we transfer you` here’s what to do: + +1. **Update the Destination Assistant’s First Message** + - Set the assistant's `firstMessage` to an _empty string_. + - Set the assistant's `firstMessageMode` to `assistant-speaks-first-with-model-generated-message`. + +2. **Update the Squad's handoff messages** + - For every `members[*].model.tools/toolIds`, unset the `messages` property. + +3. **Trigger the Transfer from the Source Assistant** + + - In that assistant’s prompt, include a line instructing it to hand off to the desired assistant: + + ```json + trigger the 'handoff' tool with 'assistantName' Assistant. + ``` + + - Replace `'assistantName'` with the exact name of the next assistant. + +4. **Direct the Destination Assistant’s Behavior** + - In that assistant’s prompt, include a line instructing it to _`Proceed directly to the Task section without any greetings or small talk.`_ + - This ensures there’s no awkward greeting or “Hello!” when the next assistant begins speaking. + +### **Example Usage Scenario** + +- **HPMA (Main Assistant)** is talking to the customer. They confirm the order details and then quietly passes the conversation to **HPPA (Payment Assistant)**. +- **HPPA** collects payment details without the customer ever hearing, `We’re now transferring you to the Payment Assistant.` It feels like one continuous conversation. +- Once payment is done, **HPPA** hands off the call again—this time to **HPMA-SA (Main Sub Assistant)**—which takes over final shipping arrangements. + +Everything happens smoothly behind the scenes! + +## **Squad and Assistant Configurations** + +Below are the key JSON examples you’ll need. These show how to structure your assistants and squads so they work together for silent handoffs. + +### **HP Payment Squad With SubAgent** + + + Make sure the `members[*].model.tools.messages` properties are set to null or empty array. + + +```json +{ + "members": [ + { + "name": "HPMA (Main Assistant)", + "model": { + "provider": "openai", + "model": "gpt-4o", + "tools": [ + { + "type": "handoff", + "destinations": [ + { + "type": "assistant", + "assistantName": "HPPA" + } + ], + "messages": [], + } + ] + }, + ... + }, + { + "name": "HPPA", + "model": { + "tools": [ + { + "type": "handoff", + "destinations": [ + { + "type": "assistant", + "assistantName": "HPMA-SA" + } + ] + } + ] + }, + ... + }, + { + "name": "HPMA-SA", + ... + }, + ], + "name": "HP Payment Squad With SubAgent" +} +``` + +### **HPMA Assistant (Main Assistant)** + +```json +{ + "name": "HPMA", + "voice": { + "voiceId": "248be419-c632-4f23-adf1-5324ed7dbf1d", + "provider": "cartesia", + "fillerInjectionEnabled": false + }, + "createdAt": "2024-11-04T17:15:08.980Z", + "updatedAt": "2024-11-30T13:04:58.401Z", + "model": { + "model": "gpt-4o", + "messages": [ + { + "role": "system", + "content": "[Identity]\nYou are the Main Assistant..." + } + ], + "provider": "openai", + "maxTokens": 50, + "temperature": 0.3 + }, + "firstMessage": "", + "firstMessageMode": "assistant-speaks-first-with-model-generated-message", + "transcriber": { + "model": "nova-2", + "language": "en", + "provider": "deepgram" + }, + "backchannelingEnabled": false, + "backgroundDenoisingEnabled": false, + "isServerUrlSecretSet": false +} +``` + +(Similar JSON information for the HPPA and HPMA-SA assistants can follow, just like in the original text.) + +## **Assistant Prompts (In Plain Text)** + +Each assistant has its own system prompt outlining identity, context, style, and tasks. These prompts ensure the conversation is smooth, customer-centric, and aligned with your call flow needs. Here’s a streamlined version for reference: + +### **HPMA (Main Assistant Prompt)** + +``` +[Identity] +You are the Main Assistant, a friendly and helpful agent assisting customers +in purchasing widgets over the phone. + +[Context] +You're engaged with the customer to book an appointment. +Stay focused on this context and provide relevant information. +Once connected to a customer, proceed to the Task section. +Do not invent information not drawn from the context. +Answer only questions related to the context. + +[Style] +- Be polite and professional. +- Use a conversational and engaging tone. +- Keep responses concise and clear. + +[Response Guidelines] +- Ask one question at a time and wait for the customer's response before + proceeding. +- Confirm the customer's responses when appropriate. +- Use simple language that is easy to understand. +- Never say the word 'function' nor 'tools' nor the name of the + Available functions. +- Never say ending the call. +- Never say transferring. + +[Task] +1.Greet the customer and ask if they are interested in purchasing widgets. + - Wait for the customer's response. +2. If the customer is interested, ask for their name. + - Wait for the customer's response. +3.Ask how many widgets the customer would like to purchase. + - Wait for the customer's response. +4.Confirm the order details with the customer. + - trigger the handoff tool with Payment `HPPA` Assistant. +``` + +### **HPPA (Payment Assistant Prompt)** + +``` +[Identity] +You are the Payment Assistant, operating in secure mode to collect payment information from customers safely and confidentially. + +[Context] +You're engaged with the customer to collect payment details. Stay focused +on this context and provide relevant information. +Do not invent information not drawn from the context. +Answer only questions related to the context. +Once connected to a customer, proceed to the Task section without +any greetings or small talk. + +[Style] +- Be professional and reassuring. +- Maintain confidentiality at all times. +- Speak clearly and calmly. + +[Response Guidelines] +- Collect the customer's credit card number, expiration date, and CVV. +- Confirm each piece of information after it is provided. +- Ensure the customer feels secure during the transaction. +- Do not record or log any information. +- Never say the word 'function' nor 'tools' nor the name of the + Available functions. +- Never say ending the call. +- Never say transferring. + +[Task] +1. Ask for the credit card number. + - Wait for the customer's response. +2. Ask for the expiration date of the card. + - Wait for the customer's response. +3. Ask for the CVV number. + - Wait for the customer's response. +4. Confirm that the payment has been processed successfully. + - trigger the handoff tool with Payment `HPMA-SA` Assistant. +``` + +### **HPMA-SA (Main Sub Assistant Prompt)** + +``` +[Identity] +You are the Main Assistant, a friendly and helpful agent assisting customers +in purchasing widgets over the phone. + +[Context] +You're engaged with the customer to book an appointment. +Stay focused on this context and provide relevant information. +Do not invent information not drawn from the context. +Answer only questions related to the context. +Once connected to a customer, proceed to the Task section without any greetings +or small talk. + +[Style] +- Be professional and reassuring. +- Maintain confidentiality at all times. +- Speak clearly and calmly. + +[Response Guidelines] +- Collect the customer's credit card number, expiration date, and CVV. +- Confirm each piece of information after it is provided. +- Ensure the customer feels secure during the transaction. +- Do not record or log any information. +- Never say the word 'function' nor 'tools' nor the name of the + Available functions. +- Never say ending the call. +- Never say transferring. + +[Task] +1.Ask for the customer's shipping address to deliver the widgets. + - Wait for the customer's response. +2.Confirm the shipping address and provide an estimated delivery date. +3.Ask if the customer has any additional questions or needs further assistance. + - Wait for the customer's response. +4.Provide any additional information or assistance as needed. +5.Thank the customer for their purchase and end the call politely. +``` + +## **Conclusion** + +By following these steps and examples, you can configure your call system to conduct **silent handoffs** ensuring that callers experience a single, uninterrupted conversation. Each assistant does its job smoothly, whether it’s capturing payment, finalizing a shipping address, or collecting basic info. + +Enjoy setting up your silent handoffs! From 062da7ed9db367a650148af8ef360bdeddf740be Mon Sep 17 00:00:00 2001 From: Arthur Chi Date: Thu, 13 Nov 2025 21:48:00 -0800 Subject: [PATCH 3/6] move handoff location --- fern/docs.yml | 4 ++-- fern/{tools => squads}/handoff.mdx | 0 fern/squads/silent-handoffs.mdx | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) rename fern/{tools => squads}/handoff.mdx (100%) diff --git a/fern/docs.yml b/fern/docs.yml index e829e7508..f65867173 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -192,7 +192,7 @@ navigation: path: tools/custom-tools-troubleshooting.mdx icon: fa-light fa-wrench - page: Handoff tool - path: tools/handoff.mdx + path: squads/handoff.mdx icon: fa-light fa-hand-holding-hand - section: External tools icon: fa-light fa-cubes @@ -322,7 +322,7 @@ navigation: - page: Multilingual support path: squads/examples/multilingual-support.mdx - page: Handoff tools - path: tools/handoff.mdx + path: squads/handoff.mdx icon: fa-light fa-hand-holding-hand - page: Silent handoffs path: squads/silent-handoffs.mdx diff --git a/fern/tools/handoff.mdx b/fern/squads/handoff.mdx similarity index 100% rename from fern/tools/handoff.mdx rename to fern/squads/handoff.mdx diff --git a/fern/squads/silent-handoffs.mdx b/fern/squads/silent-handoffs.mdx index 2b552e3f4..637db598c 100644 --- a/fern/squads/silent-handoffs.mdx +++ b/fern/squads/silent-handoffs.mdx @@ -80,7 +80,8 @@ Below are the key JSON examples you’ll need. These show how to structure your "type": "assistant", "assistantName": "HPMA-SA" } - ] + ], + "messages": null, } ] }, From 45aca2b81730d6742ce74222a2bbf4977944cbe8 Mon Sep 17 00:00:00 2001 From: Arthur Chi Date: Thu, 13 Nov 2025 21:59:13 -0800 Subject: [PATCH 4/6] add function name --- fern/squads.mdx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/fern/squads.mdx b/fern/squads.mdx index 207e3febd..af316eb7c 100644 --- a/fern/squads.mdx +++ b/fern/squads.mdx @@ -51,7 +51,10 @@ We recommend using [Handoff Tools](/tools/handoff) to specify which destinations "assistantId": "assistant-123", "description": "Call this tool when the customer wants to talk about pricing" } - ] + ], + "function": { + "name": "handoff_to_assistant_123" + } } ] }, @@ -94,7 +97,7 @@ To override the configuration of a saved assistant without modifying the underly } ``` -You may also define inline tools via assistantOverrides through the `tools:append` array, so that the assistant will only handoff if it is a part of this squad. +You may also define inline tools via `assistantOverrides` through the `tools:append` array, so that the assistant will only handoff if it is a part of this squad. ```json { "squad": { @@ -120,7 +123,10 @@ You may also define inline tools via assistantOverrides through the `tools:appen "assistantId": "assistant-123", "description": "Call this tool when the customer wants to talk about pricing" } - ] + ], + "function": { + "name": "handoff_to_assistant_123" + } } ] } From 51598dec41bbb6185896ca95e737e3193d97d502 Mon Sep 17 00:00:00 2001 From: Arthur Chi Date: Fri, 14 Nov 2025 13:57:07 -0800 Subject: [PATCH 5/6] handoff tool top level --- fern/docs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fern/docs.yml b/fern/docs.yml index f65867173..fa7e8146c 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -308,6 +308,9 @@ navigation: - page: Overview path: squads.mdx icon: fa-light fa-eye + - page: Handoff tools + path: squads/handoff.mdx + icon: fa-light fa-hand-holding-hand - section: Examples icon: fa-light fa-code contents: @@ -321,9 +324,6 @@ navigation: path: squads/examples/property-management.mdx - page: Multilingual support path: squads/examples/multilingual-support.mdx - - page: Handoff tools - path: squads/handoff.mdx - icon: fa-light fa-hand-holding-hand - page: Silent handoffs path: squads/silent-handoffs.mdx icon: fa-light fa-arrow-right-arrow-left From 3e74551b11efd44c98d54d9656e8068d7e2edb85 Mon Sep 17 00:00:00 2001 From: Arthur Chi Date: Fri, 14 Nov 2025 15:24:02 -0800 Subject: [PATCH 6/6] properly link handoff docs from tools -> squads --- fern/docs.yml | 6 +++--- fern/squads/handoff.mdx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fern/docs.yml b/fern/docs.yml index fa7e8146c..c0f0d316d 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -191,8 +191,8 @@ navigation: - page: Custom tools troubleshooting path: tools/custom-tools-troubleshooting.mdx icon: fa-light fa-wrench - - page: Handoff tool - path: squads/handoff.mdx + - link: Handoff tool + href: /squads/handoff icon: fa-light fa-hand-holding-hand - section: External tools icon: fa-light fa-cubes @@ -308,7 +308,7 @@ navigation: - page: Overview path: squads.mdx icon: fa-light fa-eye - - page: Handoff tools + - page: Handoff tool path: squads/handoff.mdx icon: fa-light fa-hand-holding-hand - section: Examples diff --git a/fern/squads/handoff.mdx b/fern/squads/handoff.mdx index 771e4877e..9b2c3838f 100644 --- a/fern/squads/handoff.mdx +++ b/fern/squads/handoff.mdx @@ -1,7 +1,7 @@ --- title: Handoff Tool subtitle: 'Transfer the call to another assistant.' -slug: tools/handoff +slug: squads/handoff --- The handoff tool enables seamless call transfers between assistants in a multi-agent system. This guide covers all configuration patterns and use cases.