← Field notes

July 18, 2026 · Michael Rodriguez

An amber signal trying to travel from a phone on a dark home desk at dawn along a circuit path, hitting four small broken gaps in the line where each one glows red before an amber patch closes it, showing the boring plumbing failures of a first voice agent getting fixed one at a time
Build in public

What Breaks When You Build Your First Voice Agent, and How Do You Fix It?

What breaks first when you build a voice agent is almost never the AI. It is the boring plumbing around it, the microphone permission, the recording that saves as an empty file, the note that gets parsed into the wrong field, and the save that silently fails. Fix them in that order, catch each failure loudly, and read the work back before you trust it. Here is the exact list of things that broke on my first voice agent, in the order they broke, and the small fix for each one, from someone who sells cars for a living and built this with no tech background.


I sell cars for a living. Twenty years in automotive retail, no tech background, no computer science degree.

When I built my first voice agent, I thought the AI would be the hard part.

It was not.

The AI part worked almost immediately. What broke was everything around it. The boring plumbing nobody films.

The microphone. The recording. The note that landed in the wrong field. The save that said it worked and did not.

This build log is the exact list of what broke, in the order it broke, and the small fix for each one.

The short answer

What breaks first when you build a voice agent is almost never the AI. It is the plumbing around it. The microphone permission the phone refuses, the recording that saves as an empty file, the note parsed into the wrong field, and the save that silently fails. Fix them in that order. Get clean audio off the device before you parse. Give the parser a fixed shape instead of letting it guess. Make every failure loud instead of convenient. And read the work back out of the destination before you trust that it saved.

Definition

Voice agent:

a small agent that takes a spoken note, turns your words into a tiny structured record, and writes that record to a destination you use, so you can capture work by talking instead of typing. The hard part of building one is not the language model. It is the capture, parse, save, and verify plumbing around it.

What breaks first when you build a voice agent?

The microphone. Every time.

Before you get anywhere near the smart part, you have to get real audio off the device, and a phone browser fights you the whole way.

First it refuses the microphone unless the page is served over HTTPS. On plain HTTP the mic call just fails, and if you swallow that error you get a silent nothing and no idea why.

Then, once you fix that, the permission prompt shows up at the wrong moment and the customer, or you, taps it away out of reflex. Now the agent thinks it is recording and it is not.

Then the first clip you finally capture saves as a zero-length file. You stopped the recording a hair before the audio stream flushed, so the note is technically saved and completely empty.

None of that is AI. All of it stops you cold.

The fix is an order, not a trick. Prove you can record a real note on the actual device and play it back before you send one word to the model. If you cannot hear yourself back, nothing downstream matters.

A dark charcoal home desk at dawn rendered in amber line-light, a phone with a single glowing microphone node, an amber sound wave leaving it and hitting a broken gap in the circuit that flares red, then an amber patch closing the gap, representing the microphone and recording layer failing and being fixed before anything else
A dark charcoal home desk at dawn rendered in amber line-light, a phone with a single glowing microphone node, an amber sound wave leaving it and hitting a broken gap in the circuit that flares red, then an amber patch closing the gap, representing the microphone and recording layer failing and being fixed before anything else

Why does the agent put my words in the wrong field?

Because you asked it to guess, and it did.

My first parser was one loose instruction. Here is a spoken note, pull out the details. That is it.

So I said a first name, a phone number, and a truck, and it filed the phone number as the name. Another time it invented a vehicle model I never said, because the sentence was messy and it wanted to be helpful.

A confidently wrong field is worse than a blank one. A blank field you can see. A wrong field looks finished, so you trust it, and it burns you later when the follow-up references a truck the customer never asked about.

The fix is to take the cleverness away.

Give the agent a tiny fixed shape with named fields. Name here. Contact here. Task here. Tell it to copy the words you actually said into those fields, and to leave a field empty if you did not say it, instead of guessing something plausible.

Capture the words, not the intent. The model is good at filling gaps. On a first agent, filling gaps is exactly the behavior that hurts you.

Capture the words, not the intent

A blank field is safe because you can see it is missing. A confidently guessed field is dangerous because it looks done. Give the parser a fixed shape, tell it to copy what you said and leave the rest empty, and it stops inventing details you have to catch later.

This is the same discipline as picking three fields and no more when you build a lead-capture agent. If you want that version of the argument, I wrote it up in how to build a lead-capture agent for a dealership floor.

Why does the save say it worked when it did not?

This is the one that cost me actual work.

The agent called the save. Got no error back. Told me the note was captured. I believed it.

Two days later I went to find that note and the destination was empty. The write had failed the whole time. A token had quietly expired, and the call came back looking fine.

No error is not the same as saved.

A crash is honest. A crash tells you to look. A silent success is a lie that lets you believe the work landed when it is gone, so you never go check, and you never find out why things feel leaky.

The fix is a read-back, and it is the single most important habit on this list.

After the agent writes the record, it reads that record straight back out of the destination and confirms the fields are actually sitting there. Only then does it tell me done.

A failure you catch in the moment is a save you can retry. A failure you find three days later is work that is gone.

Speak the note
Parse into fixed fields
Write to destination
Read it back
Confirm or retry
The honest path. The last two boxes are the ones new builders skip, and they are the ones that keep a silent failure from eating your work.

I built the deeper version of getting a save to actually land where you meant it in how to make sure a voice agent sends work to the right destination. The read-back is the heart of it.

A dark amber switchboard where a spoken note travels along a rail and reaches a save node that lights green, then a second return rail reads the record back out and a small confirmation glow appears beneath it, while a faint parallel path shows a save that flared red and was caught and retried, representing verify-before-trust
A dark amber switchboard where a spoken note travels along a rail and reaches a save node that lights green, then a second return rail reads the record back out and a small confirmation glow appears beneath it, while a faint parallel path shows a save that flared red and was caught and retried, representing verify-before-trust

In what order should you fix the failures?

In the order they hit, from the device outward.

The mistake is chasing the interesting bug first. The interesting bug is usually the parser, because that one feels like AI. But if your audio is empty, a perfect parser has nothing to read, and if your save is silently failing, a perfect parse goes nowhere.

So you work outward from the device.

One. Capture. Record a real note on the real device and play it back. HTTPS on, permission asked at the right moment, no zero-length files. Prove the audio is real before anything else.

Two. Parse. Give the model a fixed shape and tell it to copy your words, not guess. Look at the parsed fields with your own eyes before you let it save a single one.

Three. Save. Write to one destination you already check every day. Not a shiny new tool. One place you actually look at.

Four. Verify. Read the record back out and confirm the fields are there before you report done.

Five. The boring parts. Sign-in, permissions, the plumbing. Ship those before the cool demo, because the boring parts are what break in daily use.

The failure that hides

A silent save failure is the worst bug on a first agent because it does not look like a bug. It looks like success. You only find it when you go to use the work and it is not there. The read-back is what turns that invisible leak into a loud, catchable failure. Do not ship a voice agent without one.

Notice that none of these five are hard computer science. They are boring, specific, and fixable one at a time. That is the whole reason an operator with a day job can build this. You do not need to be clever. You need to refuse to move past a step until you can prove it works.

The AI was the easy part. The microphone, the empty recording, the wrong field, and the silent save were the hard part. On a first voice agent, the plumbing is the project.

How do you keep a first voice agent small enough to actually finish?

You fix one failure at a time and you ship after each fix.

Do not try to solve all four in one sitting. Get clean audio and stop for the day. Next window, add the fixed-shape parse and look at the fields. The window after that, the save and the read-back.

I build in the margins of a full day on the floor, in thirty to ninety minute windows. That schedule only works because each step is small enough to finish in one window and prove before I close the laptop.

  • Prove you can record and play back a real note before you parse anything.
  • Give the parser a fixed shape and tell it to copy your words, not guess.
  • Make every failure loud instead of swallowing the error.
  • Save to one destination you already check every day.
  • Read the record back and confirm before you report it done.
  • Ship auth and the boring plumbing before the cool part.

On a first voice agent, the AI works and the plumbing breaks. Fix it from the device outward, capture, parse, save, verify, and make every failure loud. The read-back is the habit that separates a build you can trust from a demo that quietly loses your work.

An amber signal now traveling cleanly along a repaired circuit path on a dark charcoal background, four small patched sections glowing steady amber where the breaks used to be, arriving at a single confirmed node with a calm glow beneath it, representing a first voice agent whose plumbing has been fixed one failure at a time
An amber signal now traveling cleanly along a repaired circuit path on a dark charcoal background, four small patched sections glowing steady amber where the breaks used to be, arriving at a single confirmed node with a calm glow beneath it, representing a first voice agent whose plumbing has been fixed one failure at a time

The reason to build this way, if you take one thing from the log, is that a first agent teaches you a habit worth more than the agent itself. Verify before you trust. It is boring and it is the whole game.

When the parsed note has to travel from your phone into a saved record, the honest way to wire it is the Model Context Protocol, the open standard for how an AI reaches a tool, so the same note can write to a list or a channel without you hand-wiring each one and losing track of which save actually landed. And if you want a plain, external read on why voice input is worth the trouble at all, Nielsen Norman Group's research on voice interaction is an honest source, people speak far faster than they type, which is exactly why capturing a note by voice beats a form on a busy floor.

That is how the stack grows. Five rivers, twenty-two agents, all built the same way, one small verified step at a time, on less than fifty dollars a month in hosting. Not because any one of them is clever. Because each one records, parses honestly, saves, and reads the work back.

The community where operators ship these in public, bugs and all, is the free build log at skool.com/agent-empire-4291. Come break your first voice agent in good company, and fix it. Build log, not a landing page.

While I sell cars for a living.

Michael

FAQ

What breaks first when you build a voice agent?

The microphone and the recording break first, long before the AI does. On a phone the browser will refuse the mic until you serve the page over HTTPS and ask for permission at the right moment, and even then the first recording often saves as an empty or zero-length file because you stopped it before the audio stream actually flushed. New builders assume the AI is the hard part and get surprised that they never got a usable clip to send it. Fix the capture layer first, prove you can record a real note and play it back, and only then wire it to anything smart. If you cannot get clean audio off the device, nothing downstream matters.

Why does a voice agent parse my note into the wrong field?

A voice agent puts your words in the wrong field because you asked one loose prompt to guess structure from a messy spoken sentence, and it guessed. You said a name, a number, and a truck, and it filed the number as the name or invented a vehicle you never said. The fix is to stop asking it to be clever. Give it a tiny fixed shape with named fields, tell it to copy your words into those fields and not infer anything you did not say, and leave a field empty rather than fill it with a guess. Capture the words, not the intent. A blank field you can see is safe. A confidently wrong field is the one that burns you later.

How do you fix a voice agent that says it saved but did not?

You fix a silent save failure by never trusting the write. The agent calls the save, gets no error back, and reports success, but the record never landed because a token quietly expired or a destination got renamed. No error is not the same as saved. The fix is a read-back. After the agent writes, it reads the record straight back out of the destination and confirms the fields are actually sitting there before it tells you it is done. A failure you catch in the moment is a save you can retry. A failure you find three days later is work that is gone for good.

Do you need a coding background to debug a voice agent?

No. Debugging a first voice agent is mostly reading the error out loud and fixing the one boring thing it points at, not deep computer science. I sell cars for a living and built mine with no tech background. The skill that matters is not cleverness, it is refusing to move past a step until you can prove it works, record and play back real audio before you parse, see the parsed fields before you save, and read the record back before you trust it. Each failure is small and specific. You fix them one at a time, in order, and the order is what makes it manageable.

Michael Rodriguez

Michael Rodriguez has spent 20 years on a dealership floor. With no tech background, he built and runs 22 production AI agents across four businesses on less than $50 a month, in evenings and lunch breaks. Agent Empire is where he ships it in public.

Building agents around a day job? Agent Empire is where operators ship it in public, together. Come build with us.