Digital Macaroni
Waypoint

Cascade: hear, think, speak

Three specialists in a row.

Waypoint Travel is our booking example. We built it to show how a voice agent can handle a long, detailed booking: searching live airline fares, explaining fare levels, choosing seats and bags, and reading everything back before payment. The agent answers as Linda and runs on a cascade (speech-to-text, then a language model, then text-to-speech), where one model hears, another reasons and calls tools, and a third speaks, with our own code deciding when each turn starts and ends.

Built with
  • AssemblyAI
  • Google Gemini
  • Duffel
  • Telnyx
  • Google Cloud
  • Resend

The architecture

The caller

Rings the demo number from any phone.

Phone line and call service

Telnyx streams the call to our service on Google Cloud Run, which pairs it with the live screen.

Cascade: hear, think, speak
HearsAssemblyAI Universal-3.6 Pro
ThinksGemini 3.5 Flash-Lite
SpeaksGemini 3.8 Flash-Lite TTS
Demo backend
  • Look up airports
  • Search airline fares
  • Price a flight and its fare levels
  • Switch fare level
  • Open the seat map
  • and 7 more tools
Tool calls run on our own service, against the demo’s data. Every result is shown on the live screen as it happens, and the confirmation goes out by email.

Businesses this architecture works for

This one books flights, but the same build suits any call full of names, numbers and codes that have to be exactly right, and any booking that takes several steps. A few ideas:

  • Travel agencies

    Searches and builds flights, hotels and full itineraries.

  • Hotels and vacation rentals

    Takes dates, room types and guest details, and handles changes.

  • Insurance agencies

    Collects quote details like names, addresses, vehicles and policy numbers.

  • Law firms

    Takes new-client intake with names, dates and case details, spelled right.

  • Clinic intake

    Collects patient details and insurance information before the first visit.

  • Logistics and freight

    Reads back tracking numbers and books pickups.

  • Event venues and catering

    Takes dates, headcounts, menus and special requests.

  • Car and van rental

    Handles reservation codes, pickup times and extras.

  • Accountants and tax preparers

    Books appointments and goes through what to bring.

The stack

HearsAssemblyAI Universal-3.6 Pro

Streaming transcription, primed with the words that matter (airports, cities) and with its own end-of-turn detection.

ThinksGoogle Gemini 3.5 Flash-Lite

A fast text model that reasons and calls tools through Google’s Agent Development Kit (ADK).

SpeaksGoogle Gemini 3.8 Flash-Lite TTS

A voice designed for Linda, spoken while the reply is still being written.

BackendLive fares from Duffel’s test environment

Real airline search, fare levels, seat maps and bags. Nothing is ever booked or charged.

Phone lineTelnyx Voice API

Answers the number and streams the call audio both ways in real time.

Call serviceOur own service on Google Cloud Run

Bridges the call to the engine, runs the tools, keeps the records and pairs the call with the live screen.

ConfirmationsResend

Sends the confirmation email from fixed templates, with limits so a public line can’t be misused.

What this architecture does well

The best ear for phone audio

Details make or break a booking: an airport code, a surname, a seat. In our side-by-side test on noisy phone audio, this transcriber caught 97% of the key details, against 70% for the first one we tried.

Every part chosen for its job

The ear, the brain and the voice can each be swapped on their own as better models arrive, without rebuilding the rest.

Turn-taking we control

Our code reads whether the caller has finished a thought or just paused, starts the reply early, and throws it away unheard if the caller keeps going. When the caller interrupts, queued speech is dropped and the next turn knows what they actually heard.

Exact where it matters

Codes the caller reads out are matched to the screen by code, not by the model, and common lines are prepared in advance so they play instantly.

What the demo shows on a call

  1. 01Finds the trip

    Where from, where to, when and who. She looks airports up instead of guessing.

  2. 02Searches live fares

    Real flights and prices from an airline booking system.

  3. 03Builds the booking

    Fare level, seat, bags and traveller, one step at a time.

  4. 04Re-checks and reads back

    The price is checked again and the booking read back before going ahead.

  5. 05Stops before payment

    The booking screen fills in as she talks, and the itinerary can go out by email.

Guardrails in the demo

  • Quotes only flights and prices the airline search returns
  • Re-checks the fare and reads the booking back before going ahead
  • Never books, holds or charges: the demo stops before payment
  • Never asks for passport, date of birth or card details

Trade-offs

  • A slightly longer pause before each reply than a single bidirectional model.
  • More moving parts: three models from two providers, plus our own turn-taking.
  • More engineering to build and to maintain.

The other two architectures

There’s no single right way to build a voice agent. Each demo shows a different one, and we choose per business. See them side by side.

Building for a different kind of business?

Tell us how your calls go. We’ll recommend an architecture and explain why.

Drop us a note