FlushSentinel 与 PREFLIGHT 抢占机制深度分析
范围:LiveKit Agents 中两个核心低延迟优化机制的完整实现:FlushSentinel(TTS 分段信号)和 PREFLIGHT_TRANSCRIPT(意图预判与抢占生成)
综合自:livekit/agents(
sources/agent-harness/livekit-agents/)优先级:P0
概述
上一篇笔记描述了 LiveKit Agents 的整体管道架构。本文深入两个机制,它们共同回答了一个问题:框架如何在 <500ms 内让用户听到回复?
- FlushSentinel:解决 LLM→TTS 之间的"分批合成"问题——LLM 说完第一句话时,TTS 就开始合成,不等 LLM 生成完整回复
- PREFLIGHT_TRANSCRIPT:解决 STT→LLM 之间的"提前开工"问题——用户还没说完,LLM 就提前开始推理,等用户说完时 LLM 已经领先了一段
两者在时序上互相配合:
用户说话 ──────────────────────── 停止说话
↑ PREFLIGHT 触发 ↑ 确认用户意图
│ LLM 开始推理 │ 直接调度已有 SpeechHandle
│ 生成第一句话 ──FlushSentinel──▶ TTS 立即合成第一句
│ 继续生成第二句 ──FlushSentinel──▶ TTS 合成第二句
▼
"有了这两层优化,用户停止说话的瞬间音频就可以开始播放"