Turn-taking in my multi-agent voice game was solvable. Giving the agents a shared, accurate memory was the real fight — and I’m ~80% there

I’ve been building a voice social-deduction game (werewolf-style): several AI agents playing roles alongside a human, each on its own realtime model session. Turn-taking I’ve basically solved — a central conductor owns whose turn it is, one agent speaks at a time, no free-for-all. The harder problem was context: separate sessions share zero memory, so out of the box the agents are individually coherent but collectively amnesiac. Someone gets accused and answers something unrelated, because they never “heard” it.
What I’ve landed on, and where I’m still stuck:
Dumping the full transcript into each agent made it worse. They fixate on the wrong lines and lose the thread — the classic long-context failure. Capacity isn’t comprehension.

What worked far better: a cheap side-model extracts structured claims after each turn — who said they were where, who accused whom, who contradicted an earlier statement — into a single shared state object. Before each agent speaks, I refresh its whole system prompt with a rendered view of that state. Hidden-role agents get an asymmetric view (the werewolves see packmate info the villagers don’t). This gives them a shared, consistent picture without every session drowning in raw history. Discrepancy detection (X said the Mill on turn 3, the Forge on turn 7) falls out of it for free.
The wall I’ve hit: structured extraction flattens the conversation to facts, and in a deduction game the facts aren’t the point — the subtext is. Sarcasm, a bluff, an implied accusation, someone going suspiciously quiet — all of that gets compressed out. The agents reason accurately over a flattened transcript and miss the social layer that makes deduction actually interesting. Facts: solved. Social nuance: not.

And the stubborn tail is still audio. Two that cost me days: mic feedback bleeding into the sessions and truncating responses mid-sentence, and a nasty one where closing an eliminated agent’s socket tore down the realtime subscription that was driving turn dispatch — so the whole loop silently died after the first elimination. Real-time voice punishes every one of these audibly; there’s no hiding a bug behind a spinner.

For people doing multi-agent: how are you preserving the social layer of a conversation — tone, implication, evasion — when you compress history into structured state? Everything I’ve tried keeps the facts and loses the subtext, and I can’t tell if that’s a prompt problem, an extraction-schema problem, or just the wrong abstraction.

reddit.com
u/Talklet-CV — 4 days ago

You can rehearse your salary number all you want but saying it out loud is a different skill

Something I’ve noticed, both for myself and watching others: people prep negotiations endlessly on paper. The number, the justification, the BATNA, the comeback to “we don’t have budget.” Then they get in the room and their voice does something they didn’t rehearse — they soften the ask, they over-explain, they fill the silence after stating their number, they apologize.

The gap isn’t knowledge. Most people who lose a negotiation knew the right move. The gap is that saying a high number out loud, to a real person, and then shutting up, is a physical skill you can’t build by reading. Silence after your ask feels unbearable until you’ve actually sat through it a few times.
What’s worked for me to close that gap:
Saying the exact words out loud, not in my head the number, then nothing.

Practicing the pause specifically. State the ask, count to five, say nothing. That five seconds is where most people cave.

Rehearsing the pushback responses out loud too, because “let me think about that” sounds calm in your head and shaky when you actually say it cold.

For those of you who negotiate well: did you build that out-loud composure through reps, or some other way? And how do you practice the silence without a real counterpart in front of you? That last part is the bit I still find hardest to train.

reddit.com
u/Talklet-CV — 8 days ago

Building voice AI for reflection without letting people mistake it for therapy — where’s the line?

I build a voice app with reflective AI personas — you talk out loud and they help you think through what’s on your mind. One persona is squarely in the mental-wellbeing space, and that’s forced me to think hard about a line I see this sub wrestle with.

The tension: the more supportive and emotionally attuned you make the AI, the more some people start treating it as a therapist. That’s a problem, not a win. So I’ve ended up building guardrails that deliberately make it less sticky in the wrong moments:

**•**	It’s framed as reflection and practice, not treatment — and it says so.  
**•**	Anything that reads as crisis gets routed out of the casual flow toward real human help, fast. Designing that routing to fire on real distress without over-triggering on normal venting is genuinely hard.  
**•**	The underlying belief: AI conversation should be a bridge toward talking to real humans, not a replacement for them. If someone ends up relying on the AI instead of a person or a professional, the product failed even if engagement looks great.

What I’m still unsure about: how explicit to be. Too many disclaimers and it feels cold and clinical; too few and you risk someone leaning on it for something it can’t carry.

For those of you using AI this way — as the user or building it — where do you think the honest line is? When does “supportive” quietly become “pretending to be a therapist,”? These are interesting questions.

reddit.com
u/Talklet-CV — 13 days ago

Multi agent turn taking falls apart the second you add real-time voice and a human in the room

Most multi-agent orchestration discussed here is text and async — agents take turns in a loop, you read the trace later. I built a real-time voice version: several AI agents playing roles in a live deduction game, humans in the same audio room. Most of what I assumed from text agents broke.

What didn't transfer:

Agents can't self-select turns. In text, "whoever has something to say goes next" works. In voice it's chaos — two agents talk at once, or wait forever. I pulled turn-ownership out of the agents and gave it to an external orchestrator: agents propose, the orchestrator decides who speaks and for how long. The "control mechanisms" layer people post about here stops being optional in real-time.

Coordination bugs become audible. A text agent acting out of order is a log entry. A voice agent speaking out of turn is a human hearing two robots talk over each other. The control layer has to be right, not eventually-consistent.

The bug that taught me most: agents speaking out of turn that I couldn't reproduce by point-debugging. Six dispatch paths bypassed the turn router entirely. I only found them by auditing the system against one invariant — every utterance must pass through the router — not by chasing symptoms.

The VAD tax: with a hosted realtime API, voice detection lives on the model server, so muting an agent locally doesn't stop it from being triggered. You have to turn detection off explicitly or your "silent" agents keep waking up.

For those running multi-agent in prod: do you let agents negotiate turn order, or hand it to a separate controller? And how do you handle barge-in when multiple agents and humans share one channel? Still my messiest area.

reddit.com
u/Talklet-CV — 15 days ago

Building voice AI agents that take turns like humans — the gotchas nobody warns you about

Spent months building real-time voice AI agents — 1:1 personas and a multi-agent setup where several agents run a social deduction game. Lessons that cost me real time and money:

  1. Turn-taking is the whole game. Stop the instant a human speaks, wait for real silence, reply in short turns. Monologues kill it.
  2. "getUserMedia succeeded" ≠ audio flowing. OS mute keeps the track silent, VAD never fires, agent sits stuck on "listening." Measure RMS, don't trust the permission.
  3. Muting the mic track does NOT stop billing on a server-side Realtime API. VAD runs on the model server. You have to turn off turn detection in a session update to actually pause it.
  4. Never feed the agent's own TTS back into STT. Echo and self-listening loops are instant death. Filter taps, breathing, mobile feedback too.
  5. Role should change with the room. Active in 1:1, mostly quiet in a group — step in only on silence or when invited.
  6. For multi-agent orchestration, don't let models free-run. An external orchestrator that owns whose turn it is beats agents deciding among themselves.

Still messy for me: barge-in and false-interrupt filtering on mobile. How do you handle it?

reddit.com
u/Talklet-CV — 15 days ago
▲ 1 r/ThreadGames+2 crossposts

Two Truths and a Lie — but the jury is three AIs who argue out loud about you

The classic party game, played against an AI jury.

Each round you give three statements about yourself — two true, one lie. Three AI jurors (three different voices) each ask you one probing question, deliberate out loud about which statement is the lie, and vote. Fool them and you take the point — and they start bickering about whose fault it was. Get caught and they will absolutely gloat.

5 rounds, score out of 5, about 5 minutes.

• Free, plays in the browser, no signup (3 games a day as a guest)
• Speak your answers or type them — mic optional
• Best in a normal browser — if you open it inside the Reddit app it'll nudge you to pop out

Solo dev here. The jurors' reasoning has been through a week of live tuning — they used to fall for obviously impossible answers; now they fact-check you and hold grudges. Brutally honest feedback welcome, I usually ship fixes same day.

talklet.com
u/Talklet-CV — 23 days ago