Hi everyone!
I’m looking into implementing a regression testing strategy for our self-hosted LiveKit Agents and would love to hear how other teams are approaching this.
As agents become more complex, changes to prompts, LLM models, STT/TTS providers, plugins, tools, and conversation flows can introduce regressions that aren’t always easy to catch with traditional unit or integration tests.
I’m particularly interested in two approaches:
1. Supervised regression testing
Testing agent behavior against predefined scenarios with expected outcomes.
For example:
-
Running predefined conversations with specific user inputs and expected agent responses.
-
Validating tool/function calls, arguments, and execution order.
-
Checking whether the agent follows the expected conversation flow.
-
Evaluating response quality, correctness, and adherence to instructions.
-
Comparing results across different versions of prompts, models, or agent configurations.
Ideally, these tests would run automatically as part of our self-hosted deployment pipeline, before promoting a new agent version to production.
2. Unsupervised regression testing
Monitoring and evaluating real conversations without requiring predefined expected responses for every scenario.
Some ideas I’ve been considering:
-
Replaying production conversations against a new agent version and comparing behavior.
-
Detecting significant changes in conversation patterns, tool usage, or agent decisions.
-
Identifying unexpected conversation endings, interruptions, hallucinations, or failure patterns.
-
Using LLM-as-a-judge to evaluate conversations and flag potential regressions.
-
Comparing evaluation metrics between the current production version and a candidate version.
A few questions
-
Has anyone implemented a regression testing framework specifically for self-hosted LiveKit Agents?
-
Are you using tools such as DeepEval, Ragas, LangSmith, Braintrust, or custom evaluation pipelines?
-
How do you simulate or replay conversations while preserving the behavior of real-time components such as VAD, turn detection, STT, and TTS?
-
How do you evaluate multi-turn conversations rather than isolated LLM responses?
-
Do you maintain golden datasets of conversations and continuously expand them using production traffic?
-
How do you integrate these evaluations into your own CI/CD pipelines?
-
Are there any LiveKit-specific tools or recommended approaches for running automated end-to-end evaluations without relying on LiveKit Cloud?
I’m particularly interested in self-hosted, reproducible solutions where we have full control over the infrastructure, test datasets, execution environment, and evaluation pipeline.
If you’ve built something similar, I’d really appreciate hearing about your architecture, tooling, datasets, and lessons learned.
Thanks in advance for any help!