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, 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 the detectionTimeout no longer
forces emission — AMD keeps waiting for post-speech silence and a positive
end-of-turn from the session's turn detector before emitting. Useful for
outbound voicemail flows where leaving a message early would overlap the
greeting. noSpeechTimeout (uncertain) still fires normally (no audio at
all means there is nothing to wait for). Defaults to false.
Mirrors python detector.py wait_until_finished.
Hard ceiling for the entire detection. After this, settle with whatever evidence exists.