Pipecat Flows provides a suite of behavioral evaluations to verify that example bots correctly execute Flows/LLM functions, handle arguments, and respond appropriately. By default, these run in text-only mode, which is fast and deterministic, focusing on node transitions and function calling without the variance of audio I/O.
Running the full suite
To run all scenarios defined in the manifest (the recommended 'release gate' check), run the following from the repository root:
uv run pipecat eval suite evals/manifest.yaml
Iterating on a single scenario
For faster development, you can run a single bot in headless mode and drive a specific scenario against it in a separate terminal:
Terminal 1: Start the bot
uv run examples/food_ordering.py -t eval
Terminal 2: Run the scenario (verbose mode)
uv run pipecat eval run evals/scenarios/food_ordering_pizza.yaml -v
Configuration and Debugging
- Concurrency: You can tune the number of simultaneous scenarios by adjusting the
concurrency: key in evals/manifest.yaml. - Logs: If a test fails, inspect the logs located in
evals/eval-runs/<timestamp>/logs/<scenario>.eval.log. - Audio Recording: Add the
-a flag to record conversation audio (primarily useful for audio-mode runs).