Cette page est affichée en anglais. Une traduction française est en cours.
WorkflowsMay 7, 2026·5 min de lecture

Vapi Squads — Multi-Agent Voice Routing in One Call

Vapi Squads route calls between multiple voice agents in one call. Greeter routes to specialist, hands back to closer. Replaces mega-prompt assistants.

Vapi
Vapi · Community
Prêt pour agents

Cet actif peut être lu et installé directement par les agents

TokRepo expose une commande CLI universelle, un contrat d'installation, le metadata JSON, un plan selon l'adaptateur et le contenu raw pour aider les agents à juger l'adaptation, le risque et les prochaines actions.

Stage only · 17/100Stage only
Surface agent
Tout agent MCP/CLI
Type
Skill
Installation
Stage only
Confiance
Confiance : New
Point d'entrée
Asset
Commande CLI universelle
npx tokrepo install 8201bf24-1bcd-489c-a3f0-27d71891a318
Introduction

Vapi Squads connect multiple voice agents into a single coordinated stack — caller starts with a Greeter, who hands off mid-call to a Specialist, who routes back to a Closer. Each agent has its own system prompt, tools, and voice. Best for: voice products where a single mega-prompt becomes brittle (e.g. medical intake → triage → scheduling). Works with: Vapi platform; Squads can include Workflows or free-form assistants. Setup time: 5 minutes (define agents → wire transfers).


Why split into a squad

A single prompt that says "Be a hotel concierge AND handle bookings AND transfer to maintenance AND…" produces an agent that's mediocre at everything. Squads let you write three small focused prompts:

  • Greeter (warm, redirects fast)
  • BookingSpecialist (knows pricing, calendar, upgrades)
  • MaintenanceTriage (categorizes issues, transfers to humans)

Each has its own toolset and voice. The squad routes between them based on intent.

Define a squad

curl -X POST https://api.vapi.ai/squad \
  -H "Authorization: Bearer $VAPI_API_KEY" \
  -d '{
    "name": "Acme Concierge Squad",
    "members": [
      {
        "assistantId": "greeter-id",
        "assistantDestinations": [
          { "type": "assistant", "assistantName": "BookingSpecialist", "message": "Let me transfer you to our booking specialist." },
          { "type": "assistant", "assistantName": "MaintenanceTriage", "message": "Connecting you to maintenance." }
        ]
      },
      {
        "assistantId": "booking-specialist-id",
        "assistantDestinations": [
          { "type": "assistant", "assistantName": "Greeter", "message": "Anything else I can help with?" }
        ]
      },
      {
        "assistantId": "maintenance-triage-id",
        "assistantDestinations": [
          { "type": "assistant", "assistantName": "Greeter" }
        ]
      }
    ]
  }'

How transfers happen

Inside the Greeter's system prompt, you give the LLM tool access to a transferCall function with destinations declared in the squad. When the LLM detects intent, it calls the function and Vapi swaps in the next assistant — keeping the audio session alive, no re-dial.

Greeter: "Hi, Acme Hotels. How can I help?"
User:    "I'd like to book a room for next weekend."
Greeter: [calls transferCall(destination: "BookingSpecialist")]
         "Let me transfer you to our booking specialist."
[BookingSpecialist takes over with full conversation context]
BookingSpecialist: "Hi! I see you're looking to book for next weekend. What city?"

The user perceives one continuous call.

Squad vs single assistant with tools

Squad Single + Tools
Each agent has independent voice / language / model One voice for everything
Easy to A/B test specialists individually Have to A/B the whole stack
Smaller, focused prompts One mega-prompt
Best for >2-3 distinct personas Fine for 1-2

FAQ

Q: Does the next assistant get the conversation history? A: Yes — Squad transfers preserve the full conversation context so the receiving agent doesn't ask the same questions twice. You can also pass an explicit transferContext if you want to summarize state in custom format.

Q: Can a Squad include a Workflow? A: Yes — a Squad member can be either a free-form assistant OR a Workflow. Useful pattern: Greeter is free-form (handles small talk), BookingSpecialist is a Workflow (script-driven booking flow).

Q: How is this different from Workflow's transfer node? A: Workflow's transfer is one-way (pass the call to a human or another assistant and don't come back). Squad transfers are bidirectional — the BookingSpecialist can hand back to Greeter when the booking is done. Squads are state-aware; Workflow transfers are exits.


Quick Use

  1. Have at least 2 Vapi assistants created (greeter + specialist)
  2. POST a squad definition to /squad with assistantDestinations between members
  3. Start a call with squadId in the call request — Vapi handles transfers automatically

Intro

Vapi Squads connect multiple voice agents into a single coordinated stack — caller starts with a Greeter, who hands off mid-call to a Specialist, who routes back to a Closer. Each agent has its own system prompt, tools, and voice. Best for: voice products where a single mega-prompt becomes brittle (e.g. medical intake → triage → scheduling). Works with: Vapi platform; Squads can include Workflows or free-form assistants. Setup time: 5 minutes (define agents → wire transfers).


Why split into a squad

A single prompt that says "Be a hotel concierge AND handle bookings AND transfer to maintenance AND…" produces an agent that's mediocre at everything. Squads let you write three small focused prompts:

  • Greeter (warm, redirects fast)
  • BookingSpecialist (knows pricing, calendar, upgrades)
  • MaintenanceTriage (categorizes issues, transfers to humans)

Each has its own toolset and voice. The squad routes between them based on intent.

Define a squad

curl -X POST https://api.vapi.ai/squad \
  -H "Authorization: Bearer $VAPI_API_KEY" \
  -d '{
    "name": "Acme Concierge Squad",
    "members": [
      {
        "assistantId": "greeter-id",
        "assistantDestinations": [
          { "type": "assistant", "assistantName": "BookingSpecialist", "message": "Let me transfer you to our booking specialist." },
          { "type": "assistant", "assistantName": "MaintenanceTriage", "message": "Connecting you to maintenance." }
        ]
      },
      {
        "assistantId": "booking-specialist-id",
        "assistantDestinations": [
          { "type": "assistant", "assistantName": "Greeter", "message": "Anything else I can help with?" }
        ]
      },
      {
        "assistantId": "maintenance-triage-id",
        "assistantDestinations": [
          { "type": "assistant", "assistantName": "Greeter" }
        ]
      }
    ]
  }'

How transfers happen

Inside the Greeter's system prompt, you give the LLM tool access to a transferCall function with destinations declared in the squad. When the LLM detects intent, it calls the function and Vapi swaps in the next assistant — keeping the audio session alive, no re-dial.

Greeter: "Hi, Acme Hotels. How can I help?"
User:    "I'd like to book a room for next weekend."
Greeter: [calls transferCall(destination: "BookingSpecialist")]
         "Let me transfer you to our booking specialist."
[BookingSpecialist takes over with full conversation context]
BookingSpecialist: "Hi! I see you're looking to book for next weekend. What city?"

The user perceives one continuous call.

Squad vs single assistant with tools

Squad Single + Tools
Each agent has independent voice / language / model One voice for everything
Easy to A/B test specialists individually Have to A/B the whole stack
Smaller, focused prompts One mega-prompt
Best for >2-3 distinct personas Fine for 1-2

FAQ

Q: Does the next assistant get the conversation history? A: Yes — Squad transfers preserve the full conversation context so the receiving agent doesn't ask the same questions twice. You can also pass an explicit transferContext if you want to summarize state in custom format.

Q: Can a Squad include a Workflow? A: Yes — a Squad member can be either a free-form assistant OR a Workflow. Useful pattern: Greeter is free-form (handles small talk), BookingSpecialist is a Workflow (script-driven booking flow).

Q: How is this different from Workflow's transfer node? A: Workflow's transfer is one-way (pass the call to a human or another assistant and don't come back). Squad transfers are bidirectional — the BookingSpecialist can hand back to Greeter when the booking is done. Squads are state-aware; Workflow transfers are exits.


Source & Thanks

Built by Vapi. Commercial product with free trial.

docs.vapi.ai/squads — Official docs

🙏

Source et remerciements

Built by Vapi. Commercial product with free trial.

docs.vapi.ai/squads — Official docs

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires