Skip to content
Period 11 / 11

Five Patterns, and You Own All Five

Before you start

Prerequisite: Lessons 01-09, all six named failures and their fixes, plus compliance and evaluation. This lesson assumes you've seen every pattern once already; it doesn't teach anything new, it shows you the five shapes hiding inside the six failures. After this lesson, you can: name all five orchestration patterns this course teaches, trace each one back to the lesson that introduced it, and explain why none of them is waiting on a smarter model to work.

Nine lessons, six named failures. This lesson does no new teaching. It's the moment you step back and see that six failures were never six unrelated problems. They collapse into five patterns, and every one of them is something the engineer building the agent already owns.

The public failures are the same evidence, read narrower

This course opened by noting it isn't the first place these headlines have shown up. If you've taken Why Agents Fail on this site, you've already seen the full four-incident timeline (Air Canada, McDonald's × IBM, Klarna, Taco Bell) used there as evidence for a broader claim: these are harness failures, not model failures. That timeline lives there; this course won't reprint it.

What's worth adding here is a narrower, voice-specific reading of the two incidents from that timeline that actually ran through a spoken or phone-adjacent channel: Air Canada's chatbot and McDonald's drive-through AI. Both read differently once you've spent nine lessons on concurrent systems instead of chatbots in general. Air Canada's hallucinated refund policy being ruled binding is what lesson 07 spent an entire lesson on: a model that was allowed to be the source of a customer-facing fact instead of state as source of truth being the only thing permitted to speak. McDonald's drive-through AI, pulled after wrong orders piling up under real-time pressure, reads through this course's lens as a system making an effectively irreversible decision (the order that's about to be handed to a car) inside a live, turn-taking interaction with no undo: the same shape lesson 03's turn-taking and lesson 05's cooperative cancellation exist to prevent. Klarna and Taco Bell, by contrast, are chat and order-flow incidents: real evidence for the harness-failure claim generally, but weaker fits for a course specifically about the phone.

None of these were unserious teams. Read through this course's lens, they didn't fail because the model was insufficiently capable. They failed in a concurrent-systems-shaped way: state lost at a boundary, a decision executing at the wrong moment, a channel with no undo. That's this course's own claim, sitting on top of evidence already on the record elsewhere on this site.

Six failures, five patterns

Here's the collapse. Six named failures across this course resolve into five reusable patterns, because one pattern, progressive control, turns out to be the shared gate shape behind three separate failures, not three different fixes.

Six failures collapse into five patterns
#PatternFromWhat it fixes
1Semantic turn-takingLesson 03"Was that a complete thought?" sitting above raw ASR endpointing, so the agent doesn't cut a caller off mid-sentence just because they paused.
2Two-tier interrupt classifierLesson 04A fast word-count path plus a small LLM with context, so the system can tell a real interruption from a backchannel like "mm-hm" without either one working like a chat tool call.
3Cooperative cancellationLesson 05One shared cancellation token, checked at every safe point by every in-flight operation, so a "stop" mid-tool-call actually stops the reply instead of letting a stale answer play anyway.
4State as source of truthLesson 07The LLM picks which tool to call; the application, not the model, writes and owns the state that gets spoken aloud, so a hallucinated number is structurally incapable of reaching a customer's ears.
5Progressive controlLessons 06, 08, 09Agentic by default, with a deterministic hard gate at the seams where being wrong is expensive: the wrap-up gate before a call can end (06), the validated-envelope gate before a transfer can fire (08), and the disclosure gate before the LLM gets the mic (09). Three failures, one gate shape

None of it is waiting on a better model

Not one of these five patterns is waiting on a better model. Every one is an orchestration-layer decision the engineer already controls today.

Quick check — Which pattern is the shared fix behind three separate failures in this course — call-ending, handoff, and disclosure?

The takeaway

The sentence this whole course has been building toward

Voice agents are concurrent systems, not turn-based ones.

The components (ASR, TTS, the LLM itself) shipped; they're increasingly things you buy rather than build. Your leverage is the orchestration layer wrapped around them, and you own it entirely. Latency, not intelligence, is what drives abandonment, which is why lesson 09 insisted on measuring p95 instead of an average that hides the calls that actually made someone hang up. And across every failure in this course, the fix came back to the same instinct: let the LLM pick the tool, never the truth.

If your framework assumes the user hits a "send" button when they're done talking, voice will break it in ways that look like model failures but are really architecture failures. Now you know which five patterns close that gap, and which lesson to reopen when you need the mechanics again.

Back to the course overview

That's all nine lessons. Revisit any one of them from the course overview, or start applying the five patterns to the voice agent you're actually building.

Have a question about this lesson?

Reply here and it goes straight to Rod. Same as replying to one of his emails.