gpt-live-1) is a full-duplex voice model. It listens while it speaks, so it
handles interruptions, backchannels (“mm-hmm”) and overlapping speech on its own. It goes in the
pipeline’s llm slot with no separate STT, TTS, VAD or turn detector.
The voice model does not call tools itself. When a request needs reasoning or a tool, it
delegates to a backend model, keeps talking while the backend works, and then says the
result in its own words.
OpenAI Live is available in the Python SDK.
Setup
Set your OpenAI API key in the worker environment. Generate a key from the OpenAI dashboard:Usage
PassOpenAILive to the pipeline’s llm slot and give the agent its tools as usual. The
backend model calls them; the voice model speaks the result.
Python
Delegation
The type ofconfig picks who answers when the voice model delegates.
Omit
config to use the backend with its defaults.Answering with your own LLM
Python
zeroruntime.inference it
runs on the gateway with no vendor key; from zeroruntime.plugins it needs its own key.
Writing the delegation policy
GPT-Live decides whether to delegate from its instructions; the backend then picks which tool to call from your tool schemas. Give the agent’s instructions a delegation policy in three labeled parts:instructions, and business rules and tool
guidance in the config’s instructions.
Steering a live call
Three session methods add context to the running model from anywhere in your agent:on_enter,
a tool body, or a background task.
Python
- Each append can contain up to 500 tokens.
- Appends accumulate in the model’s context; they do not replace the agent’s instructions or previous appends.
- Do not put secrets in thinking updates, since they may still be spoken aloud.
Only duplex models take appends. With any other model, the call logs a warning and sends nothing.
Vision
Neither the voice model nor the OpenAI backend takes images, so vision needsOpenAIDelegateLLMConfig with an LLM that reads images. With Room(vision=True), each time
GPT-Live delegates, the caller’s latest camera or screen frame goes to the delegate LLM with the
request. With OpenAIBackendConfig, frames are dropped with a warning.