Skip to main content
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.
Removed parameters are silently ignored, not errored. TransportParams and PipelineParams are Pydantic models that drop unknown fields, so leftover 0.0.x params like vad_analyzer, turn_analyzer, and allow_interruptions are accepted with no error or warning. Your app can start cleanly and look upgraded while turn detection is actually broken (missed user speech, no bot responses). Don’t rely on the app starting: delete these params from your transport/pipeline config and move them to LLMUserAggregatorParams as shown below.

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)

Where did allow_interruptions go? The allow_interruptions parameter was a legacy parameter used for non-voice AI applications. If you’re looking to prevent an interruption from occurring, consider using a user mute strategy instead. See the User Mute Strategies reference for more information.

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