Digital Macaroni
Northline

Single bidirectional model

One model, streaming both ways.

Northline is our home-services example. We built it to show how a voice agent can book, move and cancel service visits from a live schedule, quote fees, handle a caller who changes their mind, and take a message when nothing fits. The agent answers as Ellie and runs on a single bidirectional, speech-to-speech model, Google’s Gemini 3.8 Live, which hears the caller, reasons, calls tools and answers out loud in one continuous stream.

Built with
  • Google Gemini
  • Google ADK
  • Twilio
  • Google Cloud
  • Resend

The architecture

The caller

Rings the demo number from any phone.

Phone line and call service

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

Single bidirectional model
Gemini 3.8 Live
HearsThinksSpeaks

One live session, audio in and out at once.

Demo backend
  • Look up services and fees
  • Fill in the service request
  • Check the schedule
  • Book a visit
  • Move a visit
  • and 3 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 answers for a home-services company, but the same build suits any phone line where callers interrupt, change their minds and want something booked. A few ideas:

  • Plumbing, HVAC and electrical

    Books repair visits from the live schedule and flags emergencies to the on-call tech.

  • Roofing and contractors

    Qualifies storm-damage and quote calls and books the inspection.

  • Dental and medical clinics

    Books, moves and confirms appointments, and takes messages for the front desk.

  • Salons, spas and barbers

    Books the right service with the right person and fills last-minute cancellations.

  • Restaurants

    Takes reservations, answers hours and menu questions, and passes on large-party requests.

  • Auto repair shops

    Books service slots, explains drop-off and answers “is my car ready?” calls.

  • Property management

    Logs maintenance requests and puts urgent ones straight through.

  • Veterinary clinics

    Books visits and sends “is this urgent?” calls to the team right away.

  • Gyms and fitness studios

    Books classes and intro sessions and answers membership questions.

The stack

Hears, thinks and speaksGoogle Gemini 3.8 Live

A native-audio model: sound goes in and sound comes out, with no separate transcription or voice step.

Agent frameworkGoogle Agent Development Kit (ADK)

Defines the agent and its tools once, and runs the live session.

BackendThe Northline demo backend

Schedule, services and fees, bookings and messages. Fictional data, real logic.

Phone lineTwilio Programmable Voice

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

Lowest delay

Audio streams in and out over one live connection. Nothing is handed from a transcriber to a reasoning model to a voice, so replies start almost as soon as the caller stops.

Natural interruptions

The caller can cut in mid-sentence. The model hears it, stops, and picks up from what was actually said, the way a person would.

Hears the voice, not a transcript

Because it listens to the audio itself, it picks up tone and hesitation as well as words, so a worried caller gets a calmer answer.

Tool calls during the conversation, sync or async

Gemini 3.8 Live can call backend tools while the stream keeps flowing. Each tool is set to wait for its result or run in the background. Ellie’s booking tools wait, so she never says “booked” before the system has booked it; ending the call runs in the background after the goodbye.

What the demo shows on a call

  1. 01Understands the problem

    What’s wrong, where, and how soon. If it sounds dangerous, safety comes first.

  2. 02Checks the real schedule

    Only times the schedule actually returns. No guessing, no double-booking.

  3. 03Reads it back

    Day, time, address and fee, and she waits for a yes.

  4. 04Calls the tool

    Books, moves or cancels the visit, or leaves a message for the team.

  5. 05Confirms it

    The schedule updates on screen and a confirmation can go out by email.

Guardrails in the demo

  • Offers only times the live schedule returns
  • Reads the details back and waits for a yes before booking or changing
  • Moves the same visit rather than double-booking
  • For gas, sparking or flooding near electrics: leave and call 911 first

Trade-offs

  • Voices come from the model’s built-in set rather than a voice designed from scratch.
  • Less control over exact wording than when a separate text model writes every reply.
  • Hearing, reasoning and speech all come from one provider.

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