Esta página se muestra en inglés. Una traducción al español está en curso.
WorkflowsMay 7, 2026·5 min de lectura

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.

Listo para agents

Este activo puede ser leído e instalado directamente por agents

TokRepo expone un comando CLI universal, contrato de instalación, metadata JSON, plan según adaptador y contenido raw para que los agents evalúen compatibilidad, riesgo y próximos pasos.

Stage only · 17/100Stage only
Superficie agent
Cualquier agent MCP/CLI
Tipo
Skill
Instalación
Stage only
Confianza
Confianza: New
Entrada
Asset
Comando CLI universal
npx tokrepo install 8201bf24-1bcd-489c-a3f0-27d71891a318
Introducción

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

🙏

Fuente y agradecimientos

Built by Vapi. Commercial product with free trial.

docs.vapi.ai/squads — Official docs

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados