Pipecat 1.0 removes many deprecated APIs from the 0.0.x series. If you were already using the non-deprecated replacements, most of these changes won’t affect you.
Before upgrading, search your codebase for the deprecated imports and patterns listed below to identify what needs to change.
Pipecat 1.0 requires Python 3.11 or later. Support for Python 3.10 has
been dropped. Python 3.11 through 3.14 are supported.
1. Universal LLMContext
LLMContext is a universal context that works with all LLM providers. It allows you to dynamically switch LLMService at runtime, passing a compatible context between services. Pipecat maintains adapters for each LLM service, which are applied automatically at the time of inference.
Use the standard messages format along with FunctionSchema and ToolsSchema to define tools in a provider-agnostic way.
Before (1.0)
After (1.0)
What was removed
2. Turn Management
Turn management was unified into the user context aggregator configuration. Strategies for interruptions, muting, and idle detection are now configured via LLMUserAggregatorParams.
Before (1.0)
After (1.0)
What was removed
3. VAD & Turn Analyzer Configuration
VAD and turn detection configuration moved from transport params to the user aggregator. Additionally, the VADParams default stops_secs changed from 0.8 to 0.2. This ensures that STT services create transcripts with optimal latency and sufficient silence padding.
The UserTurnStrategies (stop) now control how long to wait before the user’s turn has stopped:
SpeechTimeoutUserTurnStopStrategy has a user_speech_timeout parameter that you can configure to control how long to wait before the user’s turn has stopped.
TurnAnalyzerUserTurnStopStrategy uses the smart-turn model to dynamically modify the wait time. No configuration is required.
Before (1.0)
After (1.0)
By default, the TurnAnalyzerUserTurnStopStrategy stop strategy is used, which includes the LocalSmartTurnAnalyzerV3 turn analyzer.
What was removed
4. Service Import Paths
All flat service imports have been removed. Services now use submodule imports.
Pattern change
Renamed/moved service modules
Removed service classes
These service have been removed.
5. Transport Import Paths
Transport imports moved from services subdirectory to transport-specific subdirectories.
6. Frames
Several frame classes were renamed or removed. Update any direct references in your code.
7. Service-Specific Parameter Changes
Individual services renamed or removed configuration parameters. Find your service below to see what changed.
8. Transport Parameters
All camera_* transport parameters were renamed to video_*. VAD-related transport params were removed — VAD is now configured on the user aggregator (see section 3).
9. Other API Changes
Smaller breaking changes across the rest of the API.
Pipeline
TTS service
Processors
RTVI
- Deprecated RTVI models (
RTVIConfig, RTVIServiceConfig) removed
RTVIActionFrame removed
RTVIProcessor.handle_function_call and handle_function_call_start removed
Other