CaseAdvancedShipping & Model Lifecycle / Prototyping with LLMs and rapid POCs / #8

How would you prototype an agent workflow before building the agent?

The direct answer
Size the prototype's test scenarios as the number of task categories the agent has to sort, times a floor of scenario types per category, covering the clean case, the missing-detail case, the multi-issue case, and the badly-worded case, not one pass of the easiest example in each bucket. Double that floor only where a wrong decision costs a real customer or real money. Then check the whole thing against how long it takes one person to hand-run it: if simulating the agent by hand costs more hours than actually coding a rough version would, the prototype has quietly stopped being a prototype.
Do this, in order
  1. Size scenarios as category count times a scenario-type floor, not a run of easy examples.Why: a handful of clean walkthroughs proves the logic works on tickets that were never going to be hard, since the easiest ticket in a category is the one with nothing wrong with it.
  2. Set a real floor of scenario types per category: clean, missing a detail, multi-issue, and badly worded.Why: fewer than that can't tell working logic from logic that got lucky on the cases someone happened to write.
  3. Double the floor only where a wrong decision costs a real customer or real money.Why: a misrouted how-to question and a misrouted cancellation are not the same size of loss, and a flat floor treats them as if they were.
  4. Check the total against how long a person can actually hand-run it before the prototype stops paying for itself.Why: a prototype that takes longer to simulate by hand than the real build would take to code has stopped being a shortcut.
  5. Know whether the scenario floor or the category count is the thing moving your total.Why: cut the wrong one and you either waste the review time you have or thin out exactly the categories the floor was meant to protect.
  6. Revisit the category list once the real tool chain behind the agent is actually decided.Why: more chained tool calls means more places the logic can branch, and the scenario count should grow with that, not stay fixed from the first sketch.

How to answer this, stage by stage

Nobody is grading whether you land on exactly 32. They're grading whether you define the sizing logic before touching a number, whether the costliest categories get more than an equal share, and whether the total survives a check against what a person can actually sit down and do. Seven moves get you there.

1
Scope it to one real agent, not "an AI agent" in the abstract
Say it like this
"Let's ground this in something real. Say I'm the PM at Corbel, a helpdesk platform other companies' support teams run on. I want to prototype an agent that reads every incoming ticket and decides which queue it goes to, before an engineer wires up a single tool call."
Why this works
Interviewers can't grade "I'd write some test cases." A named product with a named decision gives them something to push on.
2
Say what a prototype is actually proving
Say it like this
"A prototype here isn't a demo. It's proof that the routing logic holds up on real tickets, not just the ticket I picked because it makes a clean five-minute walkthrough."
Why this works
This is the reframe. Most candidates treat "prototype" as "a smaller build." The real job is proving the decision logic survives a messy ticket before anyone writes real code.
3
Say the equation out loud
Say it like this
"The number of scenarios to hand-run through the prototype equals the number of task categories the agent has to sort, times a floor of scenario types per category. Not one string of the easiest ticket in each bucket."
Why this works
States the build-up before a single figure lands, so what follows reads as arithmetic, not a guess.
4
Own the numbers for the real categories
Say it like this
"Corbel already has six named ticket categories: billing, login, bug reports, cancellations, how-to questions, and plan upgrades. I'd set a floor of four scenario types per category: a clean case, a case missing a key detail, a case that touches two categories at once, and a case where the tone is angry or the wording's a mess. Six times four is twenty-four."
Why this works
Turns "enough scenarios" into a number a reviewer can check against a real, named list of categories.
5
Double the floor where a wrong route costs something real
Say it like this
"Cancellation tickets and billing tickets aren't like the rest. Route a cancellation into the wrong queue and a customer who wanted to be saved just churns instead. Route a refund wrong and real money moves. I'd double those two floors to eight each. That's eight more, so twenty-four plus eight is thirty-two scenarios."
Why this works
This is the decision the whole estimate turns on. A flat floor treats every wrong route as equally cheap, and it isn't.
6
Sanity check it against one person's actual afternoon
Say it like this
"Thirty-two scenarios, hand-run at about eight minutes each, reading the ticket, deciding the route the way I want the agent to, writing it down, comes to a little over four hours. Under half a working day. If hand-running the prototype ever costs more hours than it'd take to just code a rough version of the tool calls, I've stopped prototyping and started doing the job by hand instead."
Why this works
Ties the estimate to something a person can actually feel, not just a share of some larger set.
7
Name what moves it most, then close
Say it like this
"If I had to bet on what swings this number, it's the scenario floor, not the category count. Raising the floor by one type across six categories, with the doubled ones counting twice, adds eight. A whole new ordinary category only adds four. So: six categories, four scenario types each, doubled to eight for cancellations and billing, thirty-two scenarios, about four hours to hand-run, and the floor is the first thing I'd revisit if that number needs to move."
Why this works
Answers the hardest follow-up directly and closes in one breath, the way a strong answer actually sounds.
If you remember one thing A prototype that only ever meets the easiest ticket in every category will always look finished. Size it as a floor per named category, doubled where a wrong call actually costs someone something, checked against how many hours a person can actually spend proving it by hand.

Let's learn

What does it actually prove when a prototype gets every test case right?

Say we build an agent that reads every ticket landing in a helpdesk queue and decides where it should go: billing, login, a bug report, a cancellation, a how-to question, or a plan upgrade. Before any of that gets built for real, tools wired up, a model calling them, someone has to prove the decision logic underneath it actually holds.

Knowledge spark: what's a scenario floor? A floor is the smallest number of test cases you'd trust before believing a pattern is really covered, not just guessed right once. Below the floor, you can't tell working logic from logic that got lucky on the one example you happened to write.

The first way to prove it: pull one easy ticket from each category, walk the logic through by hand, get six for six right. Fast. Clean. Convincing in a room.

The second way: pull a real week of tickets, nothing picked out on purpose, and run the same logic against all of it.

A prototype that only ever meets the easiest ticket in every category will always look finished. It never shows you where the actual work is.

At its worst, that gap costs a whole team's quarter: engineers spend weeks wiring up real tool calls around logic that quietly falls over the first time it meets a ticket that mentions two things at once.

The decision that mattered Size the prototype's scenarios by category count times a scenario-type floor, not by how convincing a hand-picked walkthrough looks. Six for six proves nothing if every ticket was the easiest one in its pile.

The choice I would take back. The first test set was built from the single newest, cleanest ticket in each category, instead of a real, unpicked batch. The fix: six categories, a floor of four scenario types each (clean, missing a detail, touching two categories at once, angry or garbled), twenty-four scenarios. Double the floor for cancellation and billing, since a wrong route there either loses a customer who wanted to be saved or moves money that shouldn't move, adding eight more. Thirty-two scenarios, not six, before a single tool call gets built.

What I would leave alone. How-to and feature-request tickets don't need this treatment. Route one of those wrong and a human just moves it, thirty seconds, no customer ever notices. Not every category is worth doubling the floor for, only the ones where a miss costs something a customer can actually feel.

The lesson. A number like "six for six" sounds like proof. It's only proof of whatever you were careful enough to leave out of the test.

Now here is the same thing as a story

Skip this if you already believe a hand-picked walkthrough and a real, unpicked batch aren't the same test. Read on if you want to feel why they aren't.

The whiteboard behind Sabina Okereke's desk still has six columns drawn on it in dry-erase marker: Billing, Login, Bug, Cancel, How-to, Upgrade. She drew them the week she pitched the idea, and nobody's erased it since.

Sabina has run product for ticket routing at Corbel for three years. Corbel is the helpdesk platform sitting under a few hundred other companies' support teams, the software their agents use to receive, sort, and answer their own customers' tickets. The router that ships with it today just runs down a list of keyword rules: sees "refund" or "invoice," calls it billing; sees "password" or "locked out," calls it login. It's been good enough for years. Sabina wanted to replace it with an agent that actually reads the ticket.

Before asking anyone to build it, she wanted proof the decision logic behind it actually worked. So one Tuesday, before her first meeting, she pulled the newest ticket sitting at the top of each of the six queues, one billing question, one login problem, one bug report, and so on, and walked each one through the routing logic she'd sketched out, playing the agent herself, deciding the way she wanted the real thing to decide. Six tickets. Six right.

She put it in front of the exec team that Thursday. Six for six, clean logic, ready to build. She asked for three engineers for the quarter. She got them.

Two weeks into the build, a new hire in support ops was sitting in on Sabina's walkthrough deck during onboarding and asked one small question: what happens on a ticket where someone says they want a refund and mentions canceling in the same message? Is that billing, or is that cancel?

Sabina didn't have an answer. None of her six tickets had asked that question. None of them had asked any hard question at all, because she'd pulled the newest ticket in each queue that morning, and the newest ticket in a queue is whatever just came in, not whatever was actually going to be difficult to route.

Hand-sketched comparison. Left panel, a single clean document labeled demo tickets picked by hand, captioned one easy ticket per pile, six total. Right panel, a thick stack of tickets labeled a real week, nothing picked out, captioned forty tickets, messy ones left in.
The same six columns on the whiteboard, filled two different ways. One only holds the ticket that was never going to be hard. The other holds whatever actually showed up that week.

She went back to the real queue that afternoon, and this time pulled a whole week instead of a morning, forty tickets, nothing picked out on purpose. Eleven of them didn't sit cleanly in one category. Three were angry enough that the actual request was buried past the second sentence. Run against her six-for-six logic, seven of the eleven came out wrong.

We didn't build a prototype that proved the routing logic worked. We built a demo that proved it worked on the tickets that were never going to be hard.

Here's the part that actually cost something. It wasn't the seven wrong tickets. It was that three engineers had already spent two weeks wiring up real tool calls around logic nobody had actually stress-tested, and finding that out in week two instead of week zero meant redoing work, not just rewriting a test.

So here's what I'd take back. Building that first test set from the single newest, easiest ticket in each category, instead of a real, unpicked batch. It made sense the week Sabina just wanted a fast yes or no on whether the idea was worth exploring before asking anyone for real engineering time. It stopped making sense the moment a whole quarter's sprint got committed on the strength of it.

Sabina rebuilt the test set properly: six categories, a floor of four scenario types each, doubled to eight for cancellation and billing, thirty-two scenarios total, and this time nobody hand-picked which tickets went in. Every scenario type was written to match a real pattern from that forty-ticket week. Run against the logic as it stood, twenty-four of the thirty-two came out right on the first pass, and every miss sat in the same two places: multi-issue tickets, and the angry, garbled ones. Two fixes: check for a cancellation phrase before checking anything else, and ask one clarifying question the moment a ticket touched two categories at once. Rerun: thirty of thirty-two.

The real agent went live that quarter. In its first month, it routed 91 percent of tickets correctly on the first pass. The keyword router it replaced had managed 74. And the ticket that used to sit in the billing queue for two days while a customer's account quietly canceled underneath it, the one where someone asks for a refund and mentions canceling in the same breath, gets caught on the first read now.

The thing I'd tell myself, the Tuesday I pulled six clean tickets and called it proof: a test built from the easiest example in every category will always look finished. That's exactly what makes it useless. You built it specifically to avoid the part where the real work was hiding.

BOUND: the letters, run against a real week of tickets

This is a sizing question about how many scenarios to hand-run and for which named categories, not a person's trust flipping between two settings, so BOUND fits and FLIPS doesn't.

B, break it down. The number of scenarios to hand-run through the prototype equals the number of task categories the agent has to sort, times a floor of scenario types to test per category. Not one pass of the easiest ticket in each bucket.
O, own the numbers. Corbel already names six ticket categories: billing, login, bug reports, cancellations, how-to questions, and plan upgrades. A floor of four scenario types per category, clean, missing a detail, touching two categories at once, angry or garbled, gives six times four, twenty-four. Cancellation and billing tickets cost something real if the route is wrong, so their floor doubles to eight each, adding eight more. Total: thirty-two scenarios.
U, use a range. If the prototype only tests the classification decision itself, three scenario types per category is probably enough, and the total drops to about twenty-four. If the real agent chains three tool calls per ticket, looking up the account, checking the subscription, and drafting a reply, each one is a place the workflow can branch, and covering those branch combinations pushes the floor to six types per category, toward forty-eight. Start at thirty-two, the plain four-type floor, and only widen it once the tool chain is actually decided.
N, nail the sanity check. Thirty-two scenarios, hand-run at about eight minutes each, reading the ticket, working the logic by hand, writing down the route, comes to a little over four hours. Under half a working day, which is the whole point of a prototype: cheap enough to run before a single tool call gets built. If that number ever crept past what it'd take to actually code a rough version of the real tool calls, the prototype would have quietly turned into doing the job by hand instead of testing it.
D, direction. The scenario floor moves this more than the category count does. Raising the floor by one type across all six categories, with the doubled ones counting double, adds eight. A whole new ordinary category only adds four. If this number needs to shrink, the floor is the first place to look, not the category list, since cutting a category means an entire kind of ticket goes untested.

The build-up: six categories, then the two that got doubled
6 categories, flat floor of 4 scenario types24
+ Cancellation tickets, floor doubled to 828
+ Billing tickets, floor doubled to 832
The flat floor across six categories does most of the work. The two doubled categories only add 8 scenarios between them, but they're the 8 that would have caught the ticket a new hire's one question exposed.
What moves the total most
Scenario floor raised from 4 to 5 across every category+8
A new ordinary category is added (e.g. security tickets)+4
The multi-issue scenario type gets dropped from the floor−8
Two ordinary categories merge into one (how-to and upgrade)−4
Changing the floor swings the total twice as hard as changing the category count, in either direction. That's why the floor, not the category list, is the first thing worth re-checking if this number needs to move.

And if you want to be sure it really works, try it somewhere else

A veterinary chain runs the same idea on the phone instead of a ticket queue. An agent reads a transcript of an incoming call or message and decides where it goes: routine scheduling, a prescription refill, an urgent same-day symptom, or a true emergency that needs an immediate transfer to the ER.

B, break it down. The number of scenarios to hand-run equals the number of triage categories, times a floor of scenario types per category. Four named categories: routine scheduling, prescription refill, urgent same-day, and true emergency.
O, own the numbers. A floor of three scenario types per category, clean, missing a detail, and language that makes the urgency ambiguous. Four times three is twelve. True emergency gets that floor tripled, not doubled, to nine, since a missed emergency risks an animal's life rather than just an inconvenienced customer, adding six more. Total: eighteen.
U, use a range. Testing only the triage decision itself, two scenario types per category is close to enough, dropping the total to twelve. Chaining in the patient record lookup, the appointment calendar, and the refill history, the real tool calls a finished agent would need, pushes the floor to five types per category, toward thirty.
N, nail the sanity check. Eighteen scenarios, at about five minutes each for a short phone transcript, comes to ninety minutes. Well inside one afternoon, which is exactly what a phone-based prototype should cost before anyone builds the real call-handling integration.
D, direction. Same shape as Corbel's. Raising the floor by one type across four categories, with the tripled one counting three times, adds six. A new ordinary category only adds three. The floor moves it more.

Same shape, different lever At Corbel, doubling the floor protected against a lost customer or money moving the wrong way. At the vet chain, tripling the floor for one category protects against a missed emergency, a bigger jump for a bigger stake, but the same lever: the floor moves the number more than the category list does.

Swap the trigger and it still runs.
Speed: an interviewer caps the answer at 90 seconds. Skip straight to the split: floor of 4, doubled to 8 for the two costliest categories, 32 total, about four hours to hand-run. The build-up backs it up if they ask.
Cost: instead of a scenario count, a manager caps the prototype at two hours of one person's time. Work backward: at 8 minutes a scenario, that's about 15 scenarios, cover the two doubled categories first and leave the rest for the next pass.
The model got better: a newer base model rarely misses an obvious billing ticket anymore. The floor doesn't drop on its own. Rerun the cancellation and multi-issue slices specifically, since a clean overall pass rate hides the one pattern that used to fail.

Where people run it wrong.
They size the prototype by how convincing the walkthrough looks, six clean tickets in a row, instead of a floor times a category count.
They pull the test tickets by hand instead of a real, unpicked batch, which quietly excludes exactly the tickets the logic most needs to meet.
They let the scenario count grow until hand-running it costs more hours than actually building the real tool calls would, so the prototype stops paying for itself.

How to use it live. Say the equation before any number: "the scenario count is category count times a per-category floor, doubled wherever a wrong call actually costs someone something." That buys the time to name real categories instead of guessing a round number that sounds thorough.

Flashcards (click a card to flip it)

1 · THE FRAMEWORK
What framework fits a question about prototyping an agent workflow before building it, and why not FLIPS?
Tap to flip
ANSWER
BOUND. This is a sizing question, how many test scenarios to hand-run before writing agent code, not a person's trust flipping between two settings.
2 · THE PERSON
Who is this answer about?
Tap to flip
ANSWER
Sabina Okereke, product lead for ticket routing at Corbel, a helpdesk platform other companies' support teams use to receive and route their customers' tickets.
3 · THE HABIT
What did Sabina stop doing once her six-ticket demo went perfectly?
Tap to flip
ANSWER
Testing the routing logic against anything harder than the newest, cleanest ticket in each category. She never pulled a real, unpicked week until a new hire asked about a ticket that didn't fit cleanly.
4 · THE BUILD-UP, IN THIS STORY
What's the scenario-sizing build-up this answer turns on?
Tap to flip
ANSWER
Six ticket categories at a floor of four scenario types each (24), with cancellation and billing doubled to eight each (+8), for 32 scenarios total.
5 · THE OLD DECISION
What decision would you take back, and why did it make sense at first?
Tap to flip
ANSWER
Building the first test set from the single newest, easiest ticket in each category instead of a real, unpicked batch. It made sense as a fast gut check before asking for engineering time, not once three engineers' quarter was riding on it.
6 · THE NUMBER
Fill in the blank: six categories at a floor of four, doubled to eight for the two risky ones, comes to ___ scenarios, about ___ hours to hand-run.
Tap to flip
ANSWER
32 scenarios, about 4 hours.
7 · THE REPLAY
Same rebuilt test set, real launch. What changes?
Tap to flip
ANSWER
Hand-run against the real 32, the logic gets 24 right first pass, misses concentrated in multi-issue and angry tickets. After two fixes it reruns at 30 of 32. Live for its first month, the real agent routes 91 percent of tickets correctly on the first pass, versus 74 for the old keyword router.
8 · CROSS-PRODUCT TRANSFER
Section 4 answers this same question for a different product. Which product, and which category gets the biggest floor there?
Tap to flip
ANSWER
A veterinary chain's phone-triage agent. True emergency gets the biggest floor there, tripled instead of doubled, since a missed case risks an animal's life.

Check yourself Score: 0 / 0

Short answer, the number question
1. Say cancellation tickets turned out not to be high-risk after all, and their floor dropped back from 8 to the standard 4, while billing stayed doubled. What would the new total be? Show the math.
Show hint
Start from the flat six-category floor of 24, then add only billing's extra.
Show answer
28 scenarios. Six categories at the standard floor of 4 gives 24. Billing still doubles to 8, adding 4 more. Cancellation now contributes nothing extra. 24 plus 4 is 28.
Multiple choice
2. Why does the cancellation category get a doubled floor instead of the same 4 as how-to tickets, even though both are "just sorting a ticket"?
  • A. It's harder to write realistic cancellation tickets.
  • B. Cancellation tickets take longer for a human agent to read.
  • C. A wrong route there risks losing a customer who could have been saved, and a flat floor treats that the same as a harmless mistake.
  • D. Cancellation tickets get filed more often than how-to questions.
Show hint
Ask what actually happens to the customer after a bad route, not how the ticket reads.
Show answer
C. A misrouted how-to ticket costs a human thirty seconds to move. A misrouted cancellation can cost a customer who wanted to be saved, and the floor should say so instead of pretending every wrong route costs the same.
True or false
3. True or false: raising the scenario floor from 4 to 5 moves the total more than adding one new ordinary ticket category.
  • True
  • False
Show hint
Check the sensitivity chart. Which bar is longest?
Show answer
True. Raising the floor by one type across all six categories, with the doubled ones counting twice, adds 8. A new ordinary category on its own only adds 4. The floor moves the total more.
Fill in the blank
4. Six categories at a floor of four scenario types, doubled to eight for cancellation and billing, comes to ___ scenarios, which at about eight minutes each to hand-run is about ___ hours of one person's time.
Show hint
Check the O step's own numbers, then the N step's time math.
Show answer
32 scenarios, about 4 hours. 24 from the flat floor, plus 8 more from doubling two categories, is 32. 32 times 8 minutes is 256 minutes, a little over 4 hours.
Short answer, apply it yourself
5. Pick an AI product you use yourself that has to sort something into one of several buckets. What's one input it would probably route wrong that a clean, hand-picked example would never surface?
Show hint
Look for the kind of input a normal, well-meaning use of the product would never accidentally create on its own.
Show answer
Model answer: "A photo app that sorts pictures into People, Places, and Screenshots probably gets tested on clean, single-subject photos. A photo of a whiteboard with someone's face faintly reflected in a window behind it is the kind of case a hand-picked demo set would never include, but a real, unpicked camera roll has a handful of them."
Multiple choice
6. What old decision does this answer actually take back?
  • A. Hiring more support engineers.
  • B. Building the first test set from the single newest, easiest ticket in each category instead of a real, unpicked batch.
  • C. Replacing the keyword router in the first place.
  • D. Cutting the number of ticket categories from six to four.
Show hint
A dial turned up or down doesn't count. Look for the actual sampling decision made when the first test set was built.
Show answer
B. The first test set only ever held the cleanest ticket in each category, so it had no way to catch how the logic handled a ticket that didn't sit cleanly in one place.
From U2xAI Academy

From answering questions to owning outcomes.

A live workshop where you ship a working AI agent, defend a launch decision, and walk away with a portfolio recruiters can't wave off, not just more questions to study.

  • A live AI agent you actually shipped
  • A launch decision you can defend under pressure
  • An interview-ready portfolio, not more flashcards
Know more