LazerAvoca engagement
What I built at Avoca, the problem it answers, and why it’s bigger than it sounds.
Sandy Corsillo
What I built
Pin one real turn from a real call. Judge it against a rubric. Run that judgment against every team’s config in the fleet — in under a second, for pennies. A working proof of concept today.
Reproduces the exact input the model saw at one moment. No phone call, no transcription.
One defect, found by one team, runs against every team on the same base config.
Cheap enough to run on every publish — not just before a demo.
What Avoca is01
Books the job into the CRM, handles reschedules and questions, knows when to escalate — for companies that live on inbound, where a missed call is a lost job. Now expanding into new verticals.
ServiceTitan · HouseCall Pro · AutoOps · FieldEdge · Tekmetric …
↑
Avoca — the orchestration layer
↓
VAPI · ElevenLabs
Avoca owns neither end of the call. The application is an IDE — where an agent gets built, configured, and shipped. At call time it decides what the agent is told and answers every question the agent asks.
What Avoca is02
Not a model, not a codebase — a document. Hundreds of handwritten sentences: rules of speech, booking logic, domain judgment, the client’s own knowledge base.
Don’t say the word “cool.” If the caller asks to book immediately, skip the customer lookup — unless they’re an existing member. Boiler and air conditioning can be one booking — but only if it’s one unit. A confirmed safety hazard outranks whatever else is happening.
Representative, not verbatim — but this is the material.
At call time, all of it compiles into one string handed to the model:
44,197
characters — one agent, one call
What Avoca is03
Avoca built Blueprint to take full ownership of the prompt. Modules, knowledge base, global variables, overrides — assembled at call time. (Variables resolve per call, or silently don’t: a huge failure source.) Each layer inherits everything below it and can override any of it — broad control over every agent in the fleet.
| Layer | Edited by | Reaches | Knows it's a prompt |
|---|---|---|---|
| Base blueprint | Avoca | every inheriting team | yes |
| Config | Implementation | that customer | yes |
| Knowledge base, hours, transfer rules | The customer | their own agent | no |
The customer layer changes most often — and that’s correct; they’re the only ones who know their business. But the trade is real: every agent now stands on the same foundation — and the foundation changes.
The problem04
A 44,000-character prompt is doing everything at once. Three problems compound as Avoca grows:
Edit one line — a module, a KB field — and nothing tells you what else just broke.
Every bad call has ten plausible causes. It’s easy to sound smart about which line did it. Nobody knows the rate at which that guess is right.
More customers, more verticals, more use cases — one inherited base stretched across all of them.
That’s a regression problem — model-fitting across a couple hundred live accounts — run today on intuition, spot-checks, and minutes-per-answer voice tests. Churn is already real. It has to be systematized.
The problem05
And it wasn’t really thinkable.
The only testing environment caps at ten simultaneous calls.
Even a chat test takes that long to run one call — a real improvement over voice, still one order of magnitude short.
The serious conversation was about which teams could stand in as representative for the rest.
Put numbers on it: a real regression sweep — call it 200 cases across 200 accounts, 40,000 calls — at 50–80 seconds each, ten at a time, is roughly three days of wall-clock. Per base change.
Sampling is what you settle for when the real thing is unaffordable.
The insight06
Every turn is the same operation: one document goes to the model, one reply comes back. Nothing persists in between.
So any issue surfaces as a response that doesn’t match what you expected — at a specific prompt. Which raises the question: do we have everything needed to recreate that exact point, and test it alone, against changes to the blueprint?
Turns out we do. That’s what I built.
A rough estimate, worth confirming with real numbers: a whole call averages on the order of one tool call. Nearly everything the agent does is decided in the prompt.
The system07
The system08
The same 40,000-case sweep, run both ways. This isn’t a testing optimisation — it’s 40,000 conversations becoming 40,000 model calls at the moments that matter.
| Chat calls | Turn replays | |
|---|---|---|
| One case | 50–80 s | ~1 s |
| Concurrency cap | 10 sessions | model API — hundreds in parallel |
| Cost per case | a whole conversation of completions | one completion |
| The full sweep | ~3 days | minutes |
Illustrative arithmetic — 40,000 = ~200 cases × ~200 accounts; chat at 65 s average, 10 concurrent. The shape holds at any scale you pick.
The system09
Pinning a turn doesn’t reproduce it once — it creates a fixture: the document, the conversation so far, the recorded tool results, frozen at that moment. Everything else builds on it:
The system10
A small spike, deliberately small: three real calls, both platforms, eleven turns between them, replayed at temperature zero.
Same offer, same question, same refusal. Repeated replays were identical, so the mechanism is deterministic.
Where replay wasn’t character-exact, the diff wasn’t noise — ElevenLabs injects runtime content no API exposes.
Eleven turns is an encouraging signal, not a fidelity rate. Enough to build on; not enough to quote.
Demo · 2:44
Pin a turn from a real call. Judge it against a rubric. Change the blueprint. Run it again.
What it really is11
Every config edit — a module, a KB field, a variable — gets checked against the turns that matter, before it ships.
The loop goes from edit-deploy-dial-listen to seconds.
What it really is12
A defect found by one team becomes a fleet-wide answer — because you can afford to ask every team. No sampling.
What it really is13
ERP-class software — Workday, Epic, Guidewire — made implementation scale with preview environments and config regression testing. This is that, for voice agents. And it cashes the promise the product is sold on — an AI that learns from its calls and improves. Now that is literally true: any call that exposes an issue is the seed of an application-wide fix.
It turns fitting one base to a couple hundred accounts — the churn problem — from intuition into engineering. Not a testing optimisation: the difference between a system that can evolve and one that’s frozen.
The agent is a prompt.
Now the prompt has tests.
Where it stands14
Every sub-agent's compiled prompt captured per call and retrievable — merged and running in production. The artifact that made all of this possible.
Pin-a-turn, replay against any config version, LLM-judged rubric, fleet-wide grid — running end to end as a proof of concept.
Data model, adapter contract, structural checks as a gate, one run record across all three tiers — specified in a design doc, not built.
Speaker notes