GPT-Live limitations and FAQs
GPT-Live limitations and FAQs
GPT-Live has a different set of supported features from Vapi’s other voice architectures. Use this page to check the requirements of your application before migrating.
These limits describe Vapi’s GPT-Live integration. A capability in OpenAI’s direct API isn’t necessarily exposed through Vapi.
Jump to: Calls and voices · Transfers · Squads · Live control · Testing · Recordings
Calls and voice
See Connect a call for working connection examples.
Transfers and keypad input
Function tools, API request tools, and endCall are supported. The other supported tool types, transferCall and dtmf, depend on the call connection:
Other tool types are unsupported. Expose external lookups through a function or API request tool. Carrier acceptance of a transfer doesn’t establish that the destination answered.
Can I use an existing squad?
Squads and assistant handoffs are currently unsupported. GPT-Live’s speaker and reasoner work within one assistant. Delegation doesn’t switch the caller to another assistant.
Early testing suggests some use cases no longer need the same divisions between assistants. See Start with one assistant for how to rethink the architecture while keeping your business requirements.
Can I inject commentary or control speech during a call?
Customer-initiated commentary injection, live message injection, and live call-control commands are currently unsupported. Incoming text commands on the raw WebSocket connection are ignored.
Vapi uses OpenAI’s commentary mechanism internally to pass reasoner results to the speaker. That doesn’t expose session.commentary.append as a customer API. Use the supported tool response flow to return results for requested work.
A caller can ask the assistant to slow down or explain differently, and you can prompt it to respond to those requests. That conversational behavior is separate from an application sending a control command.
Can I guarantee exact speech or a fixed pause?
GPT-Live generates speech and may paraphrase supplied text. Speaker instructions and personality packs guide delivery. They don’t provide exact playback, a fixed speaking rate, or a programmatic pause while work completes.
Audio URL greetings and the generated-message first-message mode are unsupported. Use a text firstMessage with assistant-speaks-first, or let the assistant wait for the caller. Without usable greeting text, it waits.
If exact prerecorded wording or strict control of every spoken step is essential, choose an architecture with those controls. See voice design for the choices available through prompting.
Which existing settings no longer apply?
Classic transcriber selection, text-to-speech controls, and start/stop-speaking plans don’t configure the GPT-Live conversation. General model fields such as temperature and maxTokens don’t tune this integration.
Use the speaker prompt for conversation behavior and the reasoner settings for task reasoning. The reasoner currently supports only the OpenAI models listed in Model settings.
Does an interruption cancel a tool call?
No. Interrupting speech changes the conversation, not an action already submitted to your service. Your application needs to check whether that action is pending, completed, or cancellable.
If the caller corrects a date during a lookup, use the result that matches the updated request. For an example, see When callers change the request.
Can I run Simulations and Evals?
Voice Simulations are currently incompatible with GPT-Live. The simulation bridge uses 16 kHz audio and listen sockets. GPT-Live’s raw WebSocket connection requires 24 kHz and doesn’t provide listen sockets.
Run voice scenarios through a supported call connection. Evals can supplement testing of supported model decisions, but they don’t establish GPT-Live’s audio quality, timing, or interruption behavior.
Recordings and post-call data
GPT-Live supports shared post-call analysis, structured outputs, scorecards, Boards, and Monitoring. Availability depends on your configuration and retained call data:
See Review and monitor calls for setup and result fields.
Troubleshooting
Use the symptom to find the setting or handler to check: