* Fix Langfuse tracing for GoogleLLMService with universal LLMContext - Fixed issue where input appeared as null in Langfuse dashboard for GoogleLLMService - Added fallback to use adapter's get_messages_for_logging() for universal LLMContext - Ensures proper message format conversion for Google/Gemini services - Handles system message conversion to system_instruction format - Also fixes serialization of empty message lists ([] now serializes correctly) This fix ensures Langfuse tracing works correctly for Google services using both OpenAILLMContext/GoogleLLMContext and the universal LLMContext. * Add unit tests for Langfuse tracing with GoogleLLMService - Test that tracing correctly captures messages with universal LLMContext - Test that empty message lists are properly serialized - Test that adapter's get_messages_for_logging is used instead of context method - All tests verify that input is correctly added to Langfuse spans * Fix test mocking to patch opentelemetry.trace.get_tracer correctly The tests were failing in CI because they were trying to patch 'pipecat.utils.tracing.service_decorators.trace' which doesn't exist as an attribute. The trace module is imported from opentelemetry, so we need to patch 'opentelemetry.trace.get_tracer' instead. * Skip tracing tests when opentelemetry is not installed The tracing dependencies (opentelemetry) are optional in Pipecat and not installed in the CI environment. Added a skipif marker to skip these tests when opentelemetry is not available, preventing CI failures while still allowing the tests to run when tracing dependencies are installed locally. * Install tracing dependencies in GitHub Actions CI Instead of skipping the tracing tests, install the 'tracing' extra (opentelemetry) in the CI environment so the tests can run properly. Removed the skipif condition from the tests since opentelemetry will now be available in CI. * Use the context type to determine which messages to use, fix tool_count and tools (#3032) --------- Co-authored-by: Mark Backman <mark@daily.co>
🎙️ Pipecat: Real-Time Voice & Multimodal AI Agents
Pipecat is an open-source Python framework for building real-time voice and multimodal conversational agents. Orchestrate audio and video, AI services, different transports, and conversation pipelines effortlessly—so you can focus on what makes your agent unique.
Want to dive right in? Try the quickstart.
🚀 What You Can Build
- Voice Assistants – natural, streaming conversations with AI
- AI Companions – coaches, meeting assistants, characters
- Multimodal Interfaces – voice, video, images, and more
- Interactive Storytelling – creative tools with generative media
- Business Agents – customer intake, support bots, guided flows
- Complex Dialog Systems – design logic with structured conversations
🧠 Why Pipecat?
- Voice-first: Integrates speech recognition, text-to-speech, and conversation handling
- Pluggable: Supports many AI services and tools
- Composable Pipelines: Build complex behavior from modular components
- Real-Time: Ultra-low latency interaction with different transports (e.g. WebSockets or WebRTC)
🌐 Pipecat Ecosystem
📱 Client SDKs
Building client applications? You can connect to Pipecat from any platform using our official SDKs:
JavaScript | React | React Native | Swift | Kotlin | C++ | ESP32
🧭 Structured conversations
Looking to build structured conversations? Check out Pipecat Flows for managing complex conversational states and transitions.
🪄 Beautiful UIs
Want to build beautiful and engaging experiences? Checkout the Voice UI Kit, a collection of components, hooks and templates for building voice AI applications quickly.
🛠️ Create and deploy projects
Create a new project in under a minute with the Pipecat CLI. Then use the CLI to monitor and deploy your agent to production.
🔍 Debugging
Looking for help debugging your pipeline and processors? Check out Whisker, a real-time Pipecat debugger.
🖥️ Terminal
Love terminal applications? Check out Tail, a terminal dashboard for Pipecat.
📺️ Pipecat TV Channel
Catch new features, interviews, and how-tos on our Pipecat TV channel.
🎬 See it in action
🧩 Available services
| Category | Services |
|---|---|
| Speech-to-Text | AssemblyAI, AWS, Azure, Cartesia, Deepgram, ElevenLabs, Fal Wizper, Gladia, Google, Groq (Whisper), NVIDIA Riva, OpenAI (Whisper), SambaNova (Whisper), Sarvam, Soniox, Speechmatics, Ultravox, Whisper |
| LLMs | Anthropic, AWS, Azure, Cerebras, DeepSeek, Fireworks AI, Gemini, Grok, Groq, Mistral, NVIDIA NIM, Ollama, OpenAI, OpenRouter, Perplexity, Qwen, SambaNova Together AI |
| Text-to-Speech | Async, AWS, Azure, Cartesia, Deepgram, ElevenLabs, Fish, Google, Groq, Hume, Inworld, LMNT, MiniMax, Neuphonic, NVIDIA Riva, OpenAI, Piper, PlayHT, Rime, Sarvam, Speechmatics, XTTS |
| Speech-to-Speech | AWS Nova Sonic, Gemini Multimodal Live, OpenAI Realtime |
| Transport | Daily (WebRTC), FastAPI Websocket, SmallWebRTCTransport, WebSocket Server, Local |
| Serializers | Plivo, Twilio, Telnyx |
| Video | HeyGen, Tavus, Simli |
| Memory | mem0 |
| Vision & Image | fal, Google Imagen, Moondream |
| Audio Processing | Silero VAD, Krisp, Koala, ai-coustics |
| Analytics & Metrics | OpenTelemetry, Sentry |
📚 View full services documentation →
⚡ Getting started
You can get started with Pipecat running on your local machine, then move your agent processes to the cloud when you're ready.
-
Install uv
curl -LsSf https://astral.sh/uv/install.sh | shNeed help? Refer to the uv install documentation.
-
Install the module
# For new projects uv init my-pipecat-app cd my-pipecat-app uv add pipecat-ai # Or for existing projects uv add pipecat-ai -
Set up your environment
cp env.example .env -
To keep things lightweight, only the core framework is included by default. If you need support for third-party AI services, you can add the necessary dependencies with:
uv add "pipecat-ai[option,...]"
Using pip? You can still use
pip install pipecat-aiandpip install "pipecat-ai[option,...]"to get set up.
🧪 Code examples
- Foundational — small snippets that build on each other, introducing one or two concepts at a time
- Example apps — complete applications that you can use as starting points for development
🛠️ Contributing to the framework
Prerequisites
Minimum Python Version: 3.10 Recommended Python Version: 3.12
Setup Steps
-
Clone the repository and navigate to it:
git clone https://github.com/pipecat-ai/pipecat.git cd pipecat -
Install development and testing dependencies:
uv sync --group dev --all-extras \ --no-extra gstreamer \ --no-extra krisp \ --no-extra local \ --no-extra ultravox # (ultravox not fully supported on macOS) -
Install the git pre-commit hooks:
uv run pre-commit install
Note
: Some extras (local, gstreamer) require system dependencies. See documentation if you encounter build errors.
Running tests
To run all tests, from the root directory:
uv run pytest
Run a specific test suite:
uv run pytest tests/test_name.py
🤝 Contributing
We welcome contributions from the community! Whether you're fixing bugs, improving documentation, or adding new features, here's how you can help:
- Found a bug? Open an issue
- Have a feature idea? Start a discussion
- Want to contribute code? Check our CONTRIBUTING.md guide
- Documentation improvements? Docs PRs are always welcome
Before submitting a pull request, please check existing issues and PRs to avoid duplicates.
We aim to review all contributions promptly and provide constructive feedback to help get your changes merged.




