Start where a correction becomes an action
Mistral’s Voxtral 3 booking demonstration shows a caller replacing reference 4402 with 4420 1187 before a referral lookup. The correction illustrates a practical test: does recognizing the replacement also prevent the original reference from authorizing a booking? Mistral’s model index dates the release to October 20, 2026. The company describes a LiveKit-based pipeline connecting realtime transcription, a separate reasoning model, tools and speech generation. Sources: Mistral AI
Mistral claims realtime transcription below 500 ms and agent turns below one second. Its demonstration provides no correction-success rate, and its documentation does not establish that conversational interruption cancels pending requests or prevents writes. This guide proposes an experiment; it reports no prototype results. Evaluate stopping speech, ignoring obsolete reasoning, canceling requests, preventing writes and reversing committed writes as separate capabilities. An application can act on a correction only after receiving it. Sources: Mistral AI
Build a booking service with an explicit commit boundary
Use a fictional appointment service with synthetic customers. Make both the original reference and its replacement valid records, so a mistaken lookup can succeed instead of conveniently failing. Store references as strings, preserve leading zeroes and have the agent read digits individually. Represent each appointment with an explicit date, time zone and slot identifier. The proposed sequence separates information gathering from the operation that creates a booking.
- Look up the reference and record the exact identifier and current conversation revision.
- Create a reviewable proposal containing the selected record and slot, without writing a booking.
- Commit only the current, confirmed proposal, with an idempotent operation that prevents duplicate bookings on retry.
Maintain application-owned state for the conversation revision, reference, selected record, proposal, confirmation evidence, pending operations and booking status. When the application recognizes a correction, increment the revision and invalidate dependent proposals and confirmations. Tag each lookup with its starting revision, and prevent obsolete results from authorizing subsequent booking decisions. Validate proposal freshness and confirmation inside the backend transaction that creates the booking. Checking before a network wait leaves room for the conversation to change before the write.
Instruct the model to incorporate corrections, clarify ambiguous identifiers, read back proposals and announce success only after a successful backend response. Compare a prompt-only baseline, a variant with a separate proposal and readback step, and a variant with application-enforced commit checks. Give the last variant revision checks, obsolete-result rejection and idempotent writes. Keep audio, models and tool workloads identical across comparisons. This design tests what confirmation contributes and what additional protection backend enforcement provides.
Instrument audio, handlers and database writes
Replay recorded audio at realtime pace for repeatable comparisons. Mistral documents manual audio submission and an audio output event. Input must be signed 16-bit little-endian pulse-code modulation, mono, at 48 kHz; the SDK does not resample it. Convert telephone recordings before submission and retain each correction’s acoustic onset time. Mistral’s latency guidance recommends audio-based timestamps and distinguishes the first sound from the first useful answer. Sources: Mistral AI
Log audio input, transcript revisions, handler entry, backend requests, database commits, response receipt and actual playback. Session transcript events expose an identifier, role, content and final flag. The tool_call_started event contains an identifier and name but no arguments; tool_call_ended includes arguments and the result. Capture arguments at handler entry because an end event cannot establish precisely when a write began. Distinguish client receipt times from server timestamps and document clock alignment. Close sessions during cleanup, as Mistral’s documentation directs. Sources: Mistral AI
Mistral warns that turn events can precede remaining transcript text. Its Voice Agents SDK handles turn detection internally and does not expose turn.eager_end events to applications. Measure the interval from a correction’s acoustic onset to its arrival in application-visible events. Preserve that interval alongside the database timeline so failure traces show what the application knew when it accepted a proposal. Sources: Mistral AI
Inject corrections at the vulnerable boundaries
Establish a clean booking baseline before injecting faults. Replay the same scripts across the variants, changing where the correction lands relative to lookup, readback and commit. The table below defines proposed cases and inspection points. Check both the conversation and the backend audit trail for every case.
Table
Proposed correction and tool-failure scenarios
| Scenario | Injected condition | Inspect |
|---|---|---|
| Same-utterance correction | Replace 4402 with 4420 1187 | First lookup reference |
| Correction after a pause | 200, 500 or 900 ms before correction | Premature lookup |
| Interrupt readback | Correct the last four digits to 1187 | Speech stop and proposal invalidation |
| Correction during lookup | Delay the original request | Authoritative result |
| Out-of-order results | Original lookup returns last | Obsolete state overwrite |
| Slot change during filler | Request Wednesday morning | Pending proposal freshness |
| Withdraw consent | Affirm, then immediately withdraw | Any booking write |
| Duplicate execution | Lose response after successful write | Number of bookings |
| Ambiguous confirmation | Confirm only the reference | Mistaken booking consent |
| Backchannel or noise | Acknowledgment, cough or background speech | False interruption or confirmation |
Vary tool delays, then separately test a timeout and a lost response after a successful write. The lost-response case tests whether retrying creates a duplicate appointment. Use asynchronous delays so fault injection does not itself block audio handling; reserve a deliberately blocking handler for a separate diagnostic. Compare filler enabled and disabled while keeping useful-answer latency distinct from the first audible response. Mistral’s latency guidance says fillers can make waiting sound more responsive without shortening the tool wait. Sources: Mistral AI
Tune one timing control at a time
Begin with the documented agent defaults, then vary one control at a time. Mistral’s configuration example uses voxtral-mini-transcribe-realtime-3. Language, context bias and turn-detection options require a Voxtral 3 realtime model; unsupported models return HTTP status 422. The table below pairs agent configuration settings with proposed screening choices. Use those choices to expose timing boundaries, rather than treating them as optimal production settings. Sources: Mistral AI
Table
Agent timing defaults and proposed screening values
| Control | Documented baseline | Proposed screening |
|---|---|---|
| Streaming delay | 240 ms; range 80–1,200 ms | 80, 240 and 800 ms |
| Minimum silence | 500 ms | 300, 500 and 900 ms |
| Interruptions | Enabled by default | Keep enabled |
| End threshold | 0.33; lowering it delays replies and reduces premature cutoffs | Hold fixed initially |
| Start threshold | 0.5; raising it can reduce noise-triggered starts | Hold fixed initially |
Screen for vulnerable boundaries before running every combination, then concentrate repetitions where corrections and tool completion overlap. Treat the initial exercise as a small prototype study and report accented speech and noisy audio separately. Follow recorded comparisons with live conversations to test adaptive timing. Publish scripts, audio offsets, model identifiers, SDK version, configuration, region and the injected-delay seed. Record mutable model aliases when exact model versions cannot be pinned.
Score the booking outcome and preserve each failure
Use the database audit trail as the outcome authority: a spoken success claim is not proof of a booking. Record corrected-reference accuracy, obsolete lookups, acceptance of obsolete results, wrong-record or wrong-slot bookings, confirmation violations, duplicates and false success claims. Measure interruption response from correction onset to the last audible agent sample. Measure useful-answer latency from the caller’s final utterance end to the first task-relevant answer. Report numerators and denominators beside percentages, plus median and 95th-percentile latency, following Mistral’s latency guidance. Count an incorrect intermediate write even when the final booking is correct. Sources: Mistral AI
Task-based evaluation has a precedent in τ-Voice, published in March 2026 before Voxtral 3. Across 278 tasks, its authors report 85% completion for GPT-5 reasoning in text. Voice agents achieved 31–51% under clean conditions and 26–38% under realistic conditions in that evaluation. Those results support measuring completed tasks alongside speech quality; they do not measure Voxtral 3 or predict outcomes for real callers. For each failed booking, locate the first divergence in transcription, correction interpretation, tool arguments, obsolete-result handling, confirmation or backend execution. Use those traces to choose which boundary to repair before expanding the prototype. Sources: arXiv