Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#8,027 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@regalmoix ya está trabajando en esto.

Desde el 21/10/2026.

  • #8028 de @regalmoix — abierto

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
54/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Python
Estrellas
14.6k
Forks
3.9k
Merge medio
3 d 21 h
PR fusionados (30 d)
197

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de livekit/agents

Todos los issues de livekit/agents

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.