EdTech Voice Tutors
A voice tutor has different priorities than a contact-center bot. Clarity and patience matter more than shaving milliseconds off every turn, and factual accuracy matters more than in almost any other vertical: a hallucinated collections policy is annoying, but a hallucinated math step teaches a student the wrong thing.
This guide covers the architecture and tuning common to EdTech voice agents, then walks through the Tutor Agent example as the concrete implementation.
In short: slow the TTS down, let the LLM reason through step-by-step problems, and turn on wiki_grounding for anything factual so the tutor doesn’t confidently teach something wrong.
Architecture
This is the standard voice-agent pipeline with a few deliberate changes from a latency-first setup like IVR:
Keep conversation context across the whole session
Unlike a single-intent contact-center call, a tutoring session builds on itself. A student’s question 10 turns in often references something explained earlier, so keep the full session in context (within the model’s context window) rather than resetting per question.
Let the LLM think for step-by-step problems
Math and science explanations benefit from the model actually reasoning through steps before answering. This is a case where the latency cost of reasoning_effort is worth paying, unlike routine conversational turns elsewhere.
Recommended models & params
Latency targets
EdTech is more tolerant of latency than telephony IVR. A 1–2 second pause while sarvam-105b reasons through a step-by-step explanation reads as “thinking,” not as a dropped connection, especially in an app UI where you can show a typing/thinking indicator.
- Don’t let it drift too far, though: still use streaming STT and streaming TTS so the student hears the first words of a response quickly, even while the full explanation is still generating.
- For quick factual lookups (definitions, quick facts) that don’t need deep reasoning, route to
sarvam-30bto keep the interaction snappy. Save the extra latency budget for genuinely hard problems.
Pitfalls
Hallucinated facts
An EdTech bot that confidently states something wrong is worse than one that says “let me think about that differently.” Enable wiki_grounding for factual/general-knowledge questions rather than trusting the model’s parametric memory unconditionally.
Pace too fast for the content
The 1.0 conversational default is tuned for natural dialogue, not for a student parsing a multi-step algebra explanation for the first time. Use pace=0.9 (or slower) as the default for instructional content specifically.
No check for understanding
The Tutor Agent system prompt explicitly instructs the model to “ask questions to check understanding” and adapt explanations. Don’t skip this in your own prompt: a tutor that only lectures isn’t actually tutoring.
Reasoning mode left on for every turn
reasoning_effort (and the default “low” thinking mode) adds latency and cost. That’s fine for problem-solving but wasted on “good job, next question” style turns. Consider disabling it (reasoning_effort=None) for short acknowledgement or encouragement turns.
Ignoring the student's level
A single generic system prompt won’t serve a 6th grader and a 12th grader equally well. Pass grade level and subject as session context rather than baking one difficulty level into the prompt.
Full example
The Tutor Agent guide has the complete, runnable code (Pipecat-based). The teaching-approach portion of the system prompt:
TTS tuned for instructional pacing: