LiveKit preemptive generation not triggering with current STT model / missing preflight_transcript events.

We’re using LiveKit Agents Python with an STT → LLM → TTS pipeline.

We enabled preemptive generation in AgentSession, but from our timing logs it does not look like preemptive generation is actually being used. The agent still spends roughly the full LLM response time in thinking after the user turn commits.

From the installed LiveKit Agents source, it looks like preemptive generation is triggered by the STT event PREFLIGHT_TRANSCRIPT / preflight_transcript.

Can you confirm:

  1. Is preflight_transcript required for preemptive generation in the STT-LLM-TTS pipeline?
  2. Which LiveKit Inference STT models currently emit preflight_transcript?
  3. Does deepgram/nova-3 emit preflight_transcript?
  4. Does deepgram/flux-general-en emit preflight_transcript?
  5. Is there any config needed to enable this event?
  6. What log line or metric should we use to verify that preemptive generation is actually being used?

We’re trying to reduce end-of-user-speech to agent-speech latency for a phone call agent.

Thanks.

The most reliable way I know to understand preemptive generation is to look for the debug log line each turn (you won’t see these in production unless you specifically enable debug logs, but you’ll see these in the console when running in dev mode).

If you see a using preemptive generation log it means that preemptive generation was used for that turn (you’ll also see a log if the generated result was thrown away). There is also a preemptive_lead_time that shows how much time was saved, in the attributes.

To configure preemptive generation, please refer to the docs here:

It is an attribute of turn handling.