Post-Discharge Voice Agent
Calls patients 72 hours after discharge — and escalates on hardcoded clinical rules the AI is never allowed to touch.
- 100%
- Sensitivity across 92 evaluation casesmeasured in repo
- 0%
- False-escalation ratemeasured in repo
- 418
- Passing testsmeasured in repo
- ~0.7s
- In-call LLM responsemeasured in repo
The problem
Post-discharge follow-up is exactly the kind of high-volume, low-complexity task that should be automated, and exactly the kind where automation failure is unacceptable. If a patient describes chest pain and the system does not escalate, that is not a degraded user experience. The design constraint follows directly: the language model must never be the thing that decides whether a patient is in danger.
Architecture
Two safety layers run outside the conversational LLM entirely. Layer A scans raw transcription fragments in real time, before any model interprets them. Layer B applies a structured clinical rules engine to end-of-phase data. Either layer can trigger escalation, and ties always resolve upward toward escalating. The LLM's only job is filling structured data slots — escalation messages are hardcoded templates, never generated. This is deliberately less capable than letting the model decide, and that is the point.
What broke
100% sensitivity is measured across 92 evaluation cases, and 92 cases is a small denominator for a safety claim — it means no missed escalations on the scenarios I thought to write, which is not the same as no missed escalations. The rules engine is also intentionally conservative, so the 0% false-escalation figure holds on the current eval set and would drift the moment rules loosen. And the honest limitation of the whole design: hardcoded rules cannot catch a symptom pattern nobody encoded, which is precisely why a nurse stays in the loop rather than being replaced by one.
Results
Zero missed escalations and zero false escalations across the evaluation set, backed by 418 passing tests. Sub-second conversational latency — Claude Haiku around 0.7s, Cartesia TTS between 0.09s and 0.29s — which is what keeps a phone call from feeling like a phone tree.