Skip to content

Squads ​

A squad is several assistants sharing one call, with explicit handoffs. A triage assistant answers, identifies intent, and hands off to billing or support — each with its own prompt, voice and tools, none of them carrying the others' baggage.

API ​

Full parameters and responses: squad reference.

GET    /api/v1/squads
POST   /api/v1/squads
GET    /api/v1/squads/{id}
PATCH  /api/v1/squads/{id}
DELETE /api/v1/squads/{id}
POST   /api/v1/squads/{id}/publish
GET    /api/v1/squads/{id}/snapshot
GET    /api/v1/squads/{id}/validate
POST   /api/v1/squads/{id}/resolve-handoff

As a file ​

yaml
name: Front desk
members:
  - assistant: Triage
    isDefault: true
    handoffTo: [Billing, Support]
  - assistant: Billing
    handoffDescription: Invoices, payments, refunds.
  - assistant: Support
    handoffDescription: Technical problems with an existing order.

Exactly one member is isDefault — it answers the call. callagent validate rejects a squad with two, and one that names an assistant no file declares.

Handoff context ​

A handoff carries the conversation so far plus any variables the previous assistant set, so the caller is not asked their order number twice. The handoff itself appears in the call timeline as handoff.started / handoff.completed.

Documented against the code. Anything not yet implemented is labelled, never described as working.