Supporting documents

Conversation design spec

Iteration log

Part of Northstar | Learning tool that makes AI bias visible

<aside> 🎙️

Northstar Voice Agent is the spoken guide inside Northstar. Learners can ask about AI bias out loud and cut in mid-answer, the way they would with a teacher. I designed how it speaks, listens and recovers, then built five versions until the conversation felt natural.

</aside>

Role Solo: conversation design, the guide's instructions and the build
Iterations Five versions, the last one live
Methods Conversation analysis principles, voice persona, turn-taking design, repair strategies, iterative prototyping
Stack Deepgram Voice Agent (listening and speaking), Claude Haiku 4.5 (answers), Gemini relay as backup, Lovable
Links Try it · Case study

1. Why voice

Northstar is for high schoolers and design students. When something surprising happens in an experiment, they often want to ask about it before they can put it into words. Saying "wait, why did that happen?" is easier than typing a precise question. Voice also helps people who find typing slow or tiring, and every spoken line appears as text too.

2. Design challenge

How might a voice guide feel like talking to a patient teacher: waiting until the learner has finished, answering briefly, and letting them cut in at any moment?

Constraints. No ongoing budget, a public demo with no logins, API keys that never reach the browser, and no dead ends when a service fails.

3. Principles I designed with

Principle How I applied it
Quantity (Grice) Answers are 2 to 4 short sentences
Quality (Grice) Real-world claims are hedged. Teaching-model numbers are never presented as real statistics
Relation (Grice) Only AI bias. Off-topic questions get a friendly redirect
Manner (Grice) Everyday words and familiar examples. No lists, symbols or code read aloud
Turn-taking (Sacks, Schegloff and Jefferson) Waits for a natural pause, usually ends with a question, stops when the learner speaks
Adjacency pairs (Schegloff and Sacks) The greeting ends with a question, so the learner knows what is expected
Repair (Schegloff, Jefferson and Sacks) One short sentence asks the learner to repeat. Noise gets no response
Grounding (Clark and Brennan) State labels and a live transcript show what was heard
Face (Brown and Levinson) The guide takes the blame when something goes wrong

The full specification is in the supporting document.

4. Process

Phase What I did
Define Audience, voice persona, scope, speaking rules grounded in conversation analysis
Script Greetings, state labels and hints, repair and fallback lines
Build and break Five versions, each tested by talking to it, interrupting it and going off-topic
Diagnose Listed every symptom and traced six of them to four root causes
Rebuild Compared four real-time voice services and moved to a real-time voice agent
Show state An orb whose motion follows the loudness of the voice

5. The turning point

For four versions I adjusted timings, retries and wording. The real problem was a pipeline that could only do one thing at a time: record, transcribe, answer, then speak. Moving to a real-time agent, where listening, thinking and speaking overlap, fixed the delay and made interrupting work. The full history is in the iteration log.

6. Reflection