Ivan Savchenko
← All demos
Callie

An AI receptionist passed 16 of 23 simulated calls; 5 of the 7 failures were mishearing

Callie takes browser calls and is built for phone calls (Twilio, not yet tested on a live call): it books, moves and cancels appointments after a read-back and hands off to a person when it should.

16 / 23
simulated calls handled correctly end to end through audio (70%)
8/8 · 0
changes after a read-back and a yes (a process check: 1 of 4 booked names was still misspelled) · bookings of a time no tool offered
5 of 7
failures traced to speech recognition, mostly names and digits
4.7 s / 1.4 s
voice to voice, p50 (p95: 9.4 s / 1.5 s): turns with the free-tier LLM / turns answered by rules
Interactive demo

Call Brightside Dental

Type what a caller would say: book a cleaning, ask a question, report an emergency. Then force the model to slip and watch the code refuse. Speech is skipped, and a keyword matcher plays the model.

A small browser version with a deterministic fake model — no API key, nothing leaves your device. The real project is in the repo.

What it solves

A dental practice, a garage or a salon misses calls after hours, at lunch and while the front desk is busy. The project's premise, which it does not measure, is that many callers who reach voicemail leave no message and ring the next business instead. A voice agent that picks up must also never invent an opening or book something the caller did not confirm.

How it works

  1. A streaming voice pipeline: Silero VAD, faster-whisper and Kokoro-82M run on CPU, and the language model is any OpenAI-compatible endpoint, Anthropic or a free OpenRouter model.
  2. Rules run before the model: emergencies, angry callers and requests for a person are transferred, and a plain “yes” to a read-back is executed by a rule without another model call.
  3. Safety is enforced in code: times come only from calendar tool results, dates are parsed by a deterministic parser, and nothing is written until the caller's very next reply is a clear yes after a read-back.

The honest verdict

On 23 simulated calls with free models, 16 passed (70%). Every calendar change had a read-back and a yes (8 of 8), no time was booked that a tool had not offered, and all 3 escalations reached a person. That counts process, not outcomes: one of the four booked names was still misspelled by speech recognition, because the simulated caller answered “That's correct” to a wrong read-back. Of the 7 failures, five were speech-recognition errors (four with names and phone numbers, one an “mm-hmm” taken for an interruption) and two came from the free model, which once booked a second appointment instead of moving one and once dropped a detail the caller gave (after which the caller model lost the thread too). A guard added afterwards refuses the double booking, but it was not re-run on the scenarios. A reply takes 4.7 s at the median (9.4 s at p95) when the model is involved and 1.4 s (1.5 s at p95) when a rule answers; free-tier queueing dominates, with a worst-case first token of 13 s. The callers are LLM-written lines spoken by synthetic voices, and the caller model made mistakes of its own, so 70% is a regression benchmark, not a promise for real traffic. No live Twilio call was made, and Google Calendar was only tested against a mock.

PythonFastAPIfaster-whisperKokoro-82M
Next demoSift →