jyotir/OS
BUILDING WITH AGENTS
filesystem

/work/dawa.md

DAWA

Vernacular medication voice agent

status
shipped
language
Python
year
2026
role
Team of 4 — owned the voice layer
stack
Python · FastAPI · Sarvam AI

A Hindi-language voice agent that calls patients at dose time. Built with a team of four; I owned the voice layer.

what it does

A dose-time call runs Sarvam Saaras STT into a policy-bound five-state dialogue and back out through Bulbul TTS. Verified live, end to end.

designing it so it cannot give medical advice

The interesting constraint here wasn't making the agent fluent — it was making it structurally incapable of saying the wrong thing. Every spoken line is a fixed template with the drug name injected from the medication graph. The model never writes words the patient hears.

That is a stronger guarantee than instructing a model not to give advice, because it doesn't depend on the model complying.

keeping the safety path deterministic

Adherence is decided by a Latin/Devanagari regex, not by inference. The LLM refines only unknowns, and it can raise a refusal flag but never clear one.

The property this buys: a dead LLM still completes the call. Degrading to the deterministic path is the normal operating mode, not an error case — which is the behaviour you want when the thing on the other end of the line is a patient waiting to be told whether to take a dose.

[ back to /work ]

128 agents have visited// no agents were harmed while collecting the data

© 2026 Jyotiraditya SinghBuilt with Next.js · Hosted on Vercel