Agents in a logistics app: the driver's hands are the constraint
Hands-free is a legal requirement in a cab, not a convenience. What a logistics agent should do, how proof of delivery works spoken, and the offline case.
About this article
In a logistics app, hands-free is a legal constraint rather than a convenience: 49 CFR 392.82 bars a commercial driver from using a hand-held phone, and 390.5 counts pressing more than one button as use. The tasks worth giving an agent are load search, arrival logging, exception reporting and proof of delivery, each with a confirm step and an explicit offline state.
In most verticals, speaking to an app is a preference. Some users like it, some find it awkward in public, and the product team argues about whether it earns its place. In a cab it is a legal question, and the regulation is more specific than most people building for this market realise.
Under 49 CFR 392.82, “No driver shall use a hand-held mobile telephone while driving a CMV”, and the same rule binds the carrier: “No motor carrier shall allow or require its drivers to use a hand-held mobile telephone while driving a CMV.” Driving includes being temporarily stopped in traffic. The only exception is contacting law enforcement or emergency services.
What counts as use is the part that matters for an interface. 49 CFR 390.5 defines it as holding the phone with at least one hand for a voice call, “dialing or answering a mobile telephone by pressing more than a single button”, or reaching for it in a way that takes the driver out of a properly belted seated position.
Read that as a design constraint and it is unusually precise. One button is allowed. Two is not. A voice feature that requires the driver to unlock, open the app, tap a microphone and then speak has already failed the test before the model gets involved.
That constraint reaches further into the build than it looks, because it rules out several of the shapes described in the honest cost of adding an agent. A push-to-talk button is not available to you here, and everything downstream of that decision changes.
Someone already shipped the reference architecture#
The useful thing about this vertical is that the in-app framing is not a theory here. Truckstop launched AVA on 9 July 2026, and FreightWaves reports that it operates directly inside the existing Truckstop Go mobile app rather than as a separate product or a phone line. Drivers use it to search load boards, check whether a rate is competitive, start a negotiation with a broker, and find fuel and parking, by voice while driving.
Jacky Zhao, Truckstop’s head of innovation, framed the problem the way an operator would: “The last thing carriers need while they’re driving is the stress of not knowing their next load or a notification that takes their eyes off the road.” It ships at no extra cost on several account tiers, with no separate setup.
Every other vertical we write about has to argue that the agent belongs inside the app the user already opened. Here, the company with the load board simply did it.
The four tasks#
Load search is the one the regulation forces and the one with the most interesting query. A driver saying “anything going north out of Laredo that pays over two fifty” is describing a filtered search with a rate threshold, which your board already supports and your UI makes them assemble by hand across four controls.
Arrival and departure logging is trivial technically and valuable operationally, because the alternative is a timestamp entered later from memory. Two taps with gloves on is a worse interface than one sentence.
Exception reporting is where the value hides. Every field operation has a free-text box for “what went wrong” and every field operation finds it empty, because typing a paragraph at a dock is nobody’s priority. Spoken exceptions get reported because speaking one costs eight seconds. The data quality improvement here is larger than anything the search feature produces, and it is the hardest to put in a business case.
Proof of delivery is the fourth, and it is the one that needs the most care.
Proof of delivery, spoken#
A single sentence carries most of a delivery record: status, count, damage, who received it. Timestamp, location and driver identity come from the device, which is both more accurate than a transcript and harder to dispute.
Two things decide whether this works in practice.
The first is the confirm step. A delivery record is a commercial document, and a transcription error in a count becomes a claim three weeks later. The agent proposes the filled record, the driver sees the numbers, and the write happens on a tap. This is the same interception described in intercepting a write before it runs, and the logistics case is the clearest argument for it, because the cost of a wrong write is measured in money rather than embarrassment.
The second is correction. “Twelve, not fourteen” has to change one field and leave the other five alone. A design that restarts the turn on any correction will be abandoned in a week, because the first correction happens on day one. That means the agent needs the previous turn’s proposed record in context, which is a state problem, not something a better model fixes.
The photo is the honest gap. Signature capture and damage photos need a camera and a hand, and no amount of speech removes that. The agent’s job is to get everything else out of the way so the only manual step left is the one that genuinely requires eyes.
Interruption is not a nicety here#
An agent reading a load description aloud while the driver needs to say something is worse than useless, because a driver who cannot interrupt will reach for the phone. Barge-in has to cancel the speech, stop the audio and claim the microphone within the same moment the driver starts talking, and every state in the interface has to be interruptible.
Our SDK runs five states for this: idle, listening, transcribing, thinking and speaking. The transition that matters is any of them back to listening, immediately, on the first frame of the driver’s voice. What an interruption costs mid-answer covers the engineering, which is mostly about cancelling work that is already in flight rather than about detecting speech.
The other reason interruption matters is that cab audio is hostile. Road noise, an open window, a radio, and a recognition model that was tuned on conference-room speech. This is the same evaluation problem the language cluster deals with in a different guise, and the answer is the same: test on recordings from the environment you actually ship into, not on a clean corpus.
The answer belongs on the screen, not in the ear#

A spoken question does not require a spoken answer, and in a vehicle the distinction is the whole design. Reading out six available loads with rates and pickup windows is a memory test. Saying “six, best pays two seventy” and drawing the list means the driver hears the decision and looks at the detail when it is safe to look at anything.
That is the argument for an agent that returns native UI, and it is more obviously right in a cab than anywhere else.
The offline problem#
Freight routes run through places with no coverage, and an agent is a network-dependent feature by construction. The recognition is remote, the model is remote, and the tool call is remote.
Three states, and the design decision is in the middle one. With a good signal the turn runs normally. With no signal at all the agent refuses and says so, which is unhelpful and honest. The dangerous case is an intermittent connection, where a capture can be held locally and queued.
A queued write is only safe under two conditions. The driver can see the queue, with a count and a plain label saying nothing has been sent. And the server can reject a stale one, because a delivery confirmation that arrives four hours late may be contradicted by something that happened in between.
The latency conversation changes shape here too. A driver on a weak connection is not comparing your agent to a fast one, they are comparing it to a form that at least told them it had failed. The latency budget and who owns each segment of it covers normal conditions, and the cab is the environment where the tail of that distribution is what people remember.
Where to start#
Pick exception reporting first. It has no confirm-step design work, no camera dependency, no regulatory exposure, and it produces data your operations team currently does not have. If drivers use it, the case for the other three makes itself. If they do not, you have learned that cheaply.
For the mechanics of interruption, endpointing and what the SDK reports per turn, see the speech configuration reference. For the category question underneath all of this, what an in-app agent is is the place to start.
Sources#
- Legal Information Institute, Cornell Law School, “49 CFR 392.82, Using a hand-held mobile telephone” and “49 CFR 390.5, Definitions”. Accessed 12 September 2026.
- FreightWaves, “Truckstop.com launches industry’s first voice-native carrier assistant”, 9 July 2026.
Next
How a spoken turn is put together, and which parts of it are somebody else's server rather than your code.
Read the voice docsThe rest of Business
Open the clusterBuild versus buy, what an agent changes about activation and support load, and the measurements that tell you before the quarter ends.
- How to add an AI agent to a mobile app: the complete guideWhat an in-app agent is made of, what each of its five pieces costs to own, and the honest path from a first spoken turn to something you can hand to users.12 min
- What typing on a phone actually costs your appPeople type about 36 words a minute on a phone. Here is what the research measures, what it does not, and why the fix is removing the form.8 min
- What a checkout screen costs, and what the research measuresThe checkout abandonment numbers everyone quotes, what they were actually measured on, and which reasons a redesign can move.8 min
- Using an agent to get a user to first valueOnboarding leaks where people have to type. An agent can collapse setup into one request, and there are four kinds of friction it genuinely cannot touch.8 min
- The metrics that tell you an in-app agent worksSeven numbers worth tracking, what each one hides, and why containment is the one that looks best while telling you least about the feature.9 min
- Conversational commerce numbers that survive checkingWe opened every source behind the statistics people quote about voice and AI shopping. Here is what held up, what did not, and what nobody has measured.10 min
- Build vs buy: what an in-app agent really costs to ownWiring a speech API to a model takes an afternoon. The nine workstreams that turn it into something you can hand to a user do not have an end date.10 min
- The business case for an in-app agent, and its missing numberHow to build an ROI model for an in-app agent when the one input that decides the answer has no public benchmark, and which of the levers you can honestly measure.8 min
- Deflection is the wrong number: measure whether the task finishedA deflection rate scores a user who gave up the same as one who was helped. What Gartner's own self-service figures show, and what to count instead.9 min
- Agents in a travel app: rebooking is the feature worth buildingBooking is already a form. The task an agent is uniquely good at is rebooking under disruption, and it needs four read tools before it can answer anything.8 min
- An agent in a healthcare app: booking, refills, and the stop lineThe three patient-facing tasks an in-app agent does well, the escalation line that belongs in code, and the compliance question to settle before any of it.9 min
- Agent runtimes for mobile apps: an honest comparison (2026)OpenAI Realtime, LiveKit, ElevenLabs, Vapi and Retell compared on what a mobile team actually chooses between: layer coverage, client SDKs and the write path.8 min
- Where in-app agents are being adopted fastestAdoption is running ahead of the English-speaking world in several large markets. What that means for a team shipping an agent outside its home country.10 min
- What the first week of real assistant traffic teaches youReal users ask for things no test plan contains. Three questions only live traffic answers, and the metric that looks good while telling you nothing.10 min
Elsewhere on the map
- Which agent actions deserve Face ID, and which do notBiometric-gating everything trains users to approve without reading. Tier agent actions by what they can destroy, and let the platform decide how.Safety10 min
- Letting users reorder by voice in three tool callsRepeat purchase is the cheapest first agent feature to ship. Three tools carry it, only one of them writes, and a confirm card sits between the second and the third.Agent basics6 min
- Designing an agent conversation people can actually useThe seven decisions that make or break a conversational feature: discoverability, endpointing, barge-in, errors, confirmation, latency and the visual answer.Voice11 min
