
A clinic can let a voice agent answer the phone. What it cannot do is act on a name, a date of birth or a phone number that only a model says it heard. A transposed digit means the reminder never arrives, a missed allergy is a clinical risk, and a drug name heard as a similar one is worse than none at all. Voice agents hand over a transcript and a summary, both the model's own account of the call. Twiceheard is a phone-first intake agent for outpatient clinics, built on the AssemblyAI Voice Agent API. Try it: twiceheard.vercel.app/call takes the call in your browser and prints four lines to read out, one of them in Hinglish. twiceheard.vercel.app/desk, clinic code KD7E2N6Z54, is what the clinic receives: every finished call, each field graded verified, check or missing. Every critical value is read back in a sentence the server composes rather than the model, so only a yes to that exact sentence counts. After the call the chart is rebuilt from the session record rather than from what the model reported, and the recording is transcribed a second time with Universal-3.5 Pro, in batch, speakers on separate channels, a confidence score on every word. A field is verified only when both hearings agree, and the check is bound to the question that was asked, so a caller's "no" to one question cannot verify another. Measured, and reproducible with npm run verify: 482 tests at 100% statements, branches, functions and lines; 27 browser tests including a whole call driven by a synthetic microphone; 26 scripted evaluation cases, of which 7 are values the caller confirmed live that the recording contradicts or cannot support, and all 7 are downgraded. On a live call today a caller said "yes" to a name the agent had wrong, and the chart still came back amber and not ready. The honest limit: both hearings are the same vendor's model family, so a mishearing they share would pass both; the RxNorm lookup is what stands behind drug names, and it is not a look-alike list.
30 Sep 2026

Track 1 rewards one thing above all, passing the accuracy gate on the fewest Fireworks tokens. Frugal Router treats that as a confidence problem, not a routing problem. Every scored answer has to come from a Fireworks call, so the real question is not whether to call the API but how cheap each call can be. A free local model runs first. It classifies each task into one of the eight categories, drafts an answer, and measures its own confidence using self-consistency voting and a pessimistic logprob signal. High confidence lets the agent send a compact confirmation prompt. Low confidence triggers a full remote solve, with reasoning only where a category needs it. Capping reasoning effort cut completion tokens by roughly a third in testing with no loss of accuracy. The agent is built around the harness contract. It reads tasks from the input file, writes a valid results file after every task so a timeout never zeroes the run, and always exits cleanly. Remote calls run in parallel so a large batch finishes inside the ten minute budget. Answers are shaped for the intent judge, so a sentiment reply carries its justification and a debugging reply carries the corrected code. On a local evaluation across all eight categories the agent reached full accuracy while spending under two hundred tokens per task. Model ids are read from the environment at run time, nothing is cached or hardcoded, and no credentials ship in the image.
13 Jul 2026