LLM and tools
LLM
Add function calling to your Pipecat bot. Examples exist for each LLM provider supported in Pipecat.View Recipe →
LLM
Skip the schema boilerplate: pass Python functions straight into the context and let Pipecat derive the tool schema from the signature and docstring.View Recipe →
LLM
Run long tool calls in the background so the bot keeps talking while the work finishes. Covers
@tool_options, on_function_calls_started, and cancellation on interruption.View Recipe →LLM
Use a model’s thinking/reasoning mode in a voice pipeline, including reasoning alongside function calls. Examples exist for Anthropic, Google, and OpenAI Responses.View Recipe →
LLM
Give the agent live web search with
KeenableWebSearch, so it can answer questions about current events beyond the model’s training data.View Recipe →Integration
Use MCP tools to interact with external services.View Recipe →
Integration
Use MCP tools over Streamable HTTP transport for remote MCP servers.View Recipe →
Integration
Combine tools from multiple MCP servers (stdio and HTTP) in a single bot.View Recipe →
Context and memory
Context
Automatically compress conversation history as it approaches the token limit, preserving in-flight function calls. See context summarization for configuration, including using a cheaper dedicated LLM for the summary.View Recipe →
Context
Save and restore conversation context so a returning user picks up where they left off. Examples exist for standard LLMs and speech-to-speech models.View Recipe →
Context
Answer questions from a document the model was never trained on, by routing them through a second, cheaper model holding the source in its context window.View Recipe →
Context
Store and recall memories across conversations with Mem0, so the bot personalizes its greeting and responses based on past interactions.View Recipe →
Speech and audio
Recording & Logging
Collect audio frames from the user and bot for later processing or storage.View Recipe →
Audio
Play a background sound in your Pipecat bot. The audio is mixed with the transport audio to create a single integrated audio stream.View Recipe →
Audio
Play sound effects in your Pipecat bot.View Recipe →
TTS
Use
VoiceFormatter so currency, phone numbers, dates, and acronyms are spoken the way a person would say them — “$42.50” becomes “forty-two dollars and fifty cents” rather than “dollar sign four two point five zero”.View Recipe →TTS
Compose individual text transforms instead of the
VoiceFormatter bundle, for fine-grained control over which run and in what order.View Recipe →TTS
Use
PatternPairAggregator to switch TTS voices inside a single streamed response — a narrator and two characters in one story.View Recipe →STT/TTS/LLM
Change STT, TTS, and LLM settings mid-session — voice, model, language, temperature. See service settings for the API.View Recipes →
Turn management
User Interaction
Specify a strategy for mute to mute user input, allowing the bot to continue without interruption.View Recipe →
User Interaction
Use a wake phrase to wake up your Pipecat bot.View Recipe →
User Interaction
Detect when a user is idle and automatically respond.View Recipe →
User Interaction
Detect when a user has finished speaking and automatically respond. Learn more about smart-turn model.View Recipe →
User Interaction
Learn how to configure interruption strategies for your Pipecat bot.View Recipe →
User Interaction
Use the LLM to detect when the user was cut off mid-thought, suppress the response, and re-engage after a timeout instead of answering half a sentence.View Recipe →
User Interaction
Extend a turn-detecting STT’s timing with your own stop strategy — hold the turn open for a beat after Deepgram Flux proposes the end, so afterthoughts land in the same user message.View Recipe →
Events
Handle user and bot end of turn events to add custom logic after a turn.View Recipe →
Multilingual
Multilingual
A ParallelPipeline example showing how to dynamically switch languages.View Recipe →
Multilingual
Translate the user’s speech into another language and speak it back in real time.View Recipe →
Telephony
Telephony
Build a keypad-driven phone menu with no STT in the pipeline:
DTMFAggregator turns each key sequence into a transcription the LLM reacts to. See IVR navigation for the other direction.View Recipe →Vision and video
Vision
Pass a video frame from a live video stream to a model and get a description.View Recipe →
Video
Output more than one video track at once — the default camera track plus a second processed track sent to a custom destination.View Recipe →
Pipeline and reliability
Pipeline
Write your own
FrameProcessor to inspect or transform frames as they move through the pipeline. See custom frame processors for the walkthrough.View Recipe →Pipeline
Put two providers behind a
ServiceSwitcher and move work between them mid-session, manually or on failure.View Recipe →Pipeline
React to processor health with
is_usable and on_usable_changed: fall back to a second TTS provider when the first stops working, and end the bot only when the last one is gone.View Recipe →Pipeline
Pass database handles, HTTP clients, or per-user state through
PipelineWorker(app_resources=...) and read them from tool handlers and custom processors.View Recipe →Debugging and observability
Recording & Logging
Capture user and bot transcripts for later processing or storage.View Recipe →
Recording & Logging
Parse user email from the LLM response.View Recipe →
Debugging
Learn how to debug your Pipecat bot with an Observer by observing frames flowing through the pipeline.View Recipe →
Debugging
Enable heartbeat frames to detect a stalled or blocked pipeline in production.View Recipe →
Debugging
A live graphical debugger for the Pipecat voice and multimodal conversational AI framework. It lets you visualize pipelines and debug frames in real time — so you can see exactly what your bot is thinking and doing.View Recipe →
💡 Need Help Getting Started?
More Recipes
Browse all recipes on GitHub
Examples
Browse complete applications
Discord Community
Get help from the community