Optional detectionOptional humanSilence after a short greeting before settling as HUMAN.
Optional humanSpeech longer than this is treated as machine-like (skips the short-greeting heuristic).
Optional interruptOptional llmLLM used to classify call greetings.
LLM instance: used as-is (caller-owned; AMD will not close it).string: treated as a Cloud Inference model id (e.g. 'openai/gpt-4o-mini')
and an inference LLM is constructed (AMD-owned).undefined (default): auto-select — if LiveKit Cloud inference credentials
are available in the environment, uses 'google/gemini-3.1-flash-lite' via
the inference gateway; otherwise falls back to the session's own LLM.Optional machineSilence after machine-like speech before opening the silence gate.
Optional maxFallback end-of-turn delay (ms). When the session turn detector never
commits a turn, this synthetic backstop, armed when speech ends or a final
transcript arrives, sets the end-of-turn so a gated verdict can still emit.
Defaults to the running session activity's endpointing maxDelay (so the
backstop tracks the real turn detector), or DEFAULT_MAX_ENDPOINTING_DELAY_MS
when no activity is available. Mirrors python max_endpointing_delay.
Optional noIf no speech is heard within this window, settle as UNCERTAIN (not a machine, so no interrupt).
Optional participantRestrict AMD to a specific participant. Used to filter the
waitForTrackPublication gate (see python detector.py) and span
attribution. When unset, AMD binds to whichever participant the session
is linked to.
Optional promptOverride the AMD classification system prompt.
Optional sttDedicated STT used to transcribe call audio for AMD.
STT instance: used as-is (caller-owned; AMD will not close it).string: treated as a Cloud Inference model id (e.g. 'cartesia/ink-whisper')
and an inference STT is constructed (AMD-owned).undefined (default): auto-select — if LiveKit Cloud inference credentials
are available in the environment, uses 'cartesia/ink-whisper' via the
inference gateway; otherwise reuses the session's existing STT transcripts.Optional suppressIf true, do not log a warning when the resolved LLM is not among the bundled AMD-tested model strings. Has no effect on classification behavior.
Optional waitIf true, once any speech has been heard, detectionTimeoutMs no longer
forces emission. AMD waits for post-speech silence and either a session
end-of-turn signal or the synthetic maxEndpointingDelayMs backstop before
emitting. Useful for outbound voicemail flows where leaving a message early
would overlap the greeting. noSpeechTimeoutMs (uncertain) still fires
normally when no audio is heard. Continuous speech without a speech-end or
end-of-turn can therefore extend detection beyond detectionTimeoutMs; set
this to false when detectionTimeoutMs should remain a hard cap after
speech starts. Defaults to true.
Mirrors python detector.py wait_until_finished.
Overall detection budget. When
waitUntilFinishedistrueand speech has been heard, this no longer forces emission; AMD keeps waiting for the greeting to finish before releasing the verdict.