Option to start a reply on time when caller noise began while the agent was thinking (1.6.6 behavior)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 40/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- python
- Área
- ai, audio-video-rtc
Línea de trabajo
Start in AgentActivity._reconcile_playout_pause, where the hold on a paused speech handle is decided, and in on_start_of_speech, which records the pause with agent_state. Then check generation._audio_forwarding_task to see where playback resumes. Done means a new InterruptionOptions flag that defaults to current behavior, and a test showing that with the flag off, a reply paused during thinking resumes at forwarding start. Confirm the design with maintainers before coding, since the issue proposes the setting but nobody has agreed to it.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Feature Type
Would make my life easier
Feature Description
An InterruptionOptions setting to start a reply's audio on time when caller noise began while the agent was thinking, as 1.6.6 did. For example hold_reply_while_user_speaking: bool = True; when false, _reconcile_playout_pause would resume at forwarding start.
What changed (1.6.6 → 1.8.6, unchanged in 1.8.7 and 2.0.0b1)
When VAD start-of-speech arrives while the agent is thinking, on_start_of_speech pauses the current speech handle. That is the same in both versions.
- 1.6.6:
generation._audio_forwarding_taskbegan withaudio_output.resume(), so the reply played as soon as its audio was ready. - 1.8.x:
_reconcile_playout_pausekeeps that pause ("a paused playout stays paused regardless of forwarding status"). The reply waits for VAD end of speech, which is the sound's length plusmin_silence_duration. A sound of 0.5 s or more also counts as an interruption, so the reply then waits forfalse_interruption_timeouttoo.
Impact (telephony, Deepgram Flux with turn_detection="stt", interruption mode "vad")
Scripted VAD and STT through a real AgentSession. LLM first token after 0.7 s. First audio at 2.48 s with no noise:
| Caller sound near reply start | 1.6.6 first audio | 1.8.6 first audio |
|---|---|---|
| none | 2.48 s | 2.48 s |
| 0.1–0.3 s | 2.48 s | 3.05–3.25 s |
| 0.6 s | 2.48 s | 5.35 s |
On phone lines, breaths, line noise and short "mm" sounds near reply start are common. Each adds 0.6 s or more of dead air before the agent answers.
Workarounds / Alternatives
- We currently monkeypatch
AgentActivity._reconcile_playout_pauseto callaudio_output.resume()unconditionally, matching 1.6.6, and pin its source in a test so upgrades surface changes. - Setting
false_interruption_timeout=Noneremoves the hold, but also turns off resuming after a false interruption mid-reply, which we want to keep. - Making VAD less sensitive also changes endpointing and interruptions.
Additional Context
The setting could apply only to pauses recorded while the agent was thinking (_PausedSpeechInfo.agent_state == "thinking"). Interruptions during playback would keep today's behavior.
- Lenguaje dominante
- Python
- Estrellas
- 14.6k
- Forks
- 3.9k
- Merge medio
- 3 d 1 h
- PR fusionados (30 d)
- 173
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
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Assistant markup is stripped from chat history when expressive mode is offPosiblemente ocupada @ShivamSharma43 la tomó hace 8 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 47 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
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
-
DuplexRealtimeAdapter: transcript fragment for audio that is never sent anchors the next burst, shifting transcripts by one utterancePosiblemente ocupada @dyyfk la tomó hoy. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
Todos los issues de livekit/agents
Issues similares
-
documentation good first issue
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
sujithputta02/Esapay#13 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Flaky: credential-proxy admission metric test asserts a wall-clock bound it does not establishAbiertoneeds-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
gke-labs/kube-agents#3277 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
jbacalso24/mimry#291 ·
Los mantenedores suelen responder en 1 día
-
good first issue
Dificultad 2/5 Menos de una hora Aptitud para principiantes 82/100
eli-alvarado/us-watchlist-alerts#14 ·
Los mantenedores suelen responder en 1 día