Agent stays "speaking" forever when the avatar participant leaves mid-reply
Los mantenedores suelen responder en 1 día
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
- Área
- audio-video-rtc, backend
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
- Start an
AgentSessionwith an avatar plugin (e.g. Anam). session.say("<long text>", allow_interruptions=False)- Mid-reply, remove the avatar participant. Killing the avatar worker also works once the server's departure timeout fires.
- The speech never completes;
agent_statestaysspeaking.
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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de livekit/agents
-
Assistant markup is stripped from chat history when expressive mode is offPosiblemente ocupada @ShivamSharma43 la tomó hace 15 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
docs: openai.LLM vs openai.responses.LLM for HTTP OpenAI-compat hostsQuizá libre de nuevo @AbarnaaSree la tomó hace 55 días y no hay ningún pull request abierto. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
livekit/agents#7022 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Anthropic plugin ignores parallel_tool_calls=False unless tool_choice is also setPosiblemente ocupada @sarankumar1325 la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 30/100
Los mantenedores suelen responder en 1 día
-
OpenAI Realtime engine: expose the WebSocket close code and reason to subclassesPosiblemente ocupada @ninglinLiu la tomó hoy. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
Los mantenedores suelen responder en 1 día
Todos los issues de livekit/agents
Issues similares
-
style: article/section 📝 system: cloud.rc ☁️ system: security 🔐
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
uabrc/uabrc.github.io#1262 ·
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
NCAR/miles-credit#526 ·
-
documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 76/100
conda/conda-lock#957 ·
Los mantenedores suelen responder en 1 día
-
Type: Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
aws-samples/sample-per-model-bedrock#464 ·
Los mantenedores suelen responder en 1 día