Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Agent stays "speaking" forever when the avatar participant leaves mid-reply

Aperta
#8,027 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@regalmoix ci sta già lavorando.

Dal 21/10/2026.

  • #8028 di @regalmoix — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
54/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python

Direzione di ricerca

Start by locating DataStreamAudioOutput and its playout wait and clear-buffer timeout handling, then compare the Synthesia plugin's participant-disconnect teardown. Trace how participant_disconnected should release a pending segment, including after the avatar rejoins; done means pending playout completes as interrupted and the agent no longer stays in speaking.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Title: Agent stays "speaking" forever when the avatar participant leaves mid-reply

With any avatar built on DataStreamAudioOutput, if the avatar participant disconnects while a reply is pending, lk.playback_finished never arrives. wait_for_playout() has no timeout, so the agent stays speaking until the user interrupts. With allow_interruptions=False, or a user waiting in silence, it never recovers.

It also stays stuck after the avatar rejoins with the same identity: the old segment is never finished, so every later playout wait is behind it.

Repro

  1. Start an AgentSession with an avatar plugin (e.g. Anam).
  2. session.say("<long text>", allow_interruptions=False)
  3. Mid-reply, remove the avatar participant. Killing the avatar worker also works once the server's departure timeout fires.
  4. The speech never completes; agent_state stays speaking.

DataStreamAudioOutput doesn't listen for participant_disconnected at all. Only the Synthesia plugin handles avatar loss, and its teardown doesn't release pending playout either.

Expected: pending playout completes as interrupted, the same as the existing clear-buffer timeout fallback.

Lingua principale
Python
Stelle
14.6k
Fork
3.9k
Merge medio
3g 11h
PR unite (30g)
196

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di livekit/agents

Tutte le issue di livekit/agents

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.