Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@
"group": "Evaluations",
"pages": [
"guides/fundamentals/evaluations/overview",
"guides/fundamentals/evaluations/bluejay"
"guides/fundamentals/evaluations/bluejay",
"guides/fundamentals/evaluations/cekura"
]
},
"guides/fundamentals/ivr",
Expand Down
253 changes: 253 additions & 0 deletions guides/fundamentals/evaluations/cekura.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
---
title: "Cekura"
description: "Simulation and production monitoring platform for Pipecat agents with flexible connection methods and metric-driven QA."
---

## Overview

[Cekura](https://www.cekura.ai) is a simulation and production monitoring platform for voice AI agents. The broad idea is to use the same evaluation system across the full lifecycle of a Pipecat agent: simulate conversations before deployment, validate infrastructure continuously in CI, monitor real calls after deployment with metrics, dashboards, and alerts, and turn production issues back into new simulations so you can fix regressions and verify them before shipping again.

<Frame>
<img
src="/images/pipecat_integration.gif"
alt="Cekura Pipecat integration"
/>
</Frame>

With Cekura, you can:

- Treat simulations and monitoring as one continuous QA workflow
- Connect to Pipecat through telephony, SIP, or native Pipecat WebRTC flows
- Run scenario-based tests from the dashboard or API with automated or manual session control
- Track quality with predefined metrics and custom metrics tailored to your agent's workflow

## Simulations

Testing in Cekura is built around scenarios, metrics, and repeatable runs. The main design choice is how you want Cekura to connect to your Pipecat agent:

- Use **telephony or SIP** when you want to validate the full voice and network path
- Use **native Pipecat connections** when you want faster, more direct WebRTC-based testing

After you choose the connection method, the workflow is straightforward: create or select scenarios, run them from the dashboard or your CI pipeline, and review transcripts, recordings, run status, and metrics in Cekura. Telephony and SIP are useful when you want the full call path in the loop; native Pipecat connections are better when you want faster and more direct WebRTC-based simulation against your Pipecat runtime.

### Automated Pipecat connection

For Pipecat Cloud agents, configure the following fields in Cekura:

- **Provider**: Select `Pipecat` as the voice integration provider
- **Assistant ID**: Optional Pipecat assistant identifier
- **Pipecat Cloud API Key**: Used by Cekura to create and manage sessions
- **Pipecat Agent Name**: Identifier used for your agent in Pipecat
- **Agent Configuration (JSON)**: Optional request body sent to Pipecat's start endpoint
- **Room Properties (JSON)**: Optional Daily room configuration for the WebRTC session

After setup, you can run scenarios from the dashboard or API and let Cekura handle session creation, lifecycle management, execution, and cleanup automatically. This is the simplest path for repeatable Pipecat Cloud simulations.

<CardGroup cols={2}>
<Card
title="Automated Pipecat Testing"
icon="sliders"
iconType="duotone"
href="https://docs.cekura.ai/documentation/integrations/pipecat/automated"
>
Configure Pipecat Cloud credentials once and let Cekura create and manage
sessions for each test run.
</Card>

<Card
title="Manual Pipecat Testing"
icon="plug"
iconType="duotone"
href="https://docs.cekura.ai/documentation/integrations/pipecat/manual"
>
Provide your own room URL and token when you want explicit control over
Pipecat session creation and lifecycle.
</Card>
</CardGroup>

### Manual Pipecat connection

If you want to control the session yourself, Cekura also supports a [manual Pipecat connection flow](https://docs.cekura.ai/documentation/integrations/pipecat/manual). In this mode, you provide the Pipecat room URL and token for each run, and Cekura joins the session you created instead of provisioning one automatically.

This mode is useful when you need custom session orchestration, want to test nonstandard environments, or already manage Pipecat rooms in your own infrastructure.

<Note>
The automated flow is the best default for Pipecat Cloud. Use the manual flow
when you need explicit control over room creation and access tokens.
</Note>

### Infrastructure Suite

For infrastructure-focused validation, Cekura provides an [Infrastructure Suite](https://docs.cekura.ai/documentation/guides/testing-agents/infrastructure-suite) with 18+ pre-built scenarios for latency, audio quality, interruption handling, language support, and failure cases such as packet loss and rapid-fire speech.

Instead of building these tests from scratch, you can add the suite to your project from the Cekura dashboard and run the scenarios as a group. This makes it a good fit for validating the parts of your stack around the LLM itself, such as transport behavior, turn-taking, silence handling, and voice pipeline stability.

<CardGroup cols={2}>
<Card
title="Pre-Built Infra Tests"
icon="server"
iconType="duotone"
href="https://docs.cekura.ai/documentation/guides/testing-agents/infrastructure-suite"
>
Add Cekura's predefined infrastructure scenarios to your project with the
appropriate metric mappings already set up.
</Card>

<Card
title="GitHub Actions CI"
icon="code-branch"
iconType="duotone"
href="https://docs.cekura.ai/documentation/guides/github-actions-ci-cd"
>
Run tagged infrastructure scenarios automatically on pull requests, pushes,
or scheduled workflows.
</Card>
</CardGroup>

Cekura documents this suite as a good fit for CI/CD. A practical setup is to tag those scenarios as `infrastructure-suite` and execute them on every pull request:

```yaml
name: Cekura Infrastructure Tests

on:
pull_request:
types: [opened, synchronize]

jobs:
infrastructure-tests:
runs-on: ubuntu-latest
steps:
- name: Run Cekura Infrastructure Suite
uses: cekura-ai/cekura-github-actions@v1.0.0
with:
agent_id: ${{ vars.AGENT_ID }}
tags: "infrastructure-suite"
api_key: ${{ secrets.CEKURA_API_KEY }}
```

This gives you a straightforward CI gate for infrastructure regressions before you ship changes to your Pipecat agent.

## Production observability

Cekura can also monitor production calls after they complete. For Pipecat, the core pattern is simple: send completed calls to Cekura, use metrics and dashboards to track quality, infrastructure health, and workflow performance over time, then turn failed or interesting real calls into new simulations so the same issues are covered in your future test suite.

### Send calls to Cekura

If you want observability for Pipecat traffic, send recordings and transcripts to Cekura's observability API:

```bash
POST https://api.cekura.ai/observability/v1/observe/
X-CEKURA-API-KEY: <your-cekura-api-key>
Content-Type: application/json
```

The observability API accepts `transcript_type: "pipecat"` along with either an `agent` ID or `assistant_id`, plus a `voice_recording` or `voice_recording_url`.

### Example: send a Pipecat production call

```python
import requests

headers = {
"X-CEKURA-API-KEY": "<your-cekura-api-key>",
"Content-Type": "application/json",
}

payload = {
"call_id": "call_123",
"agent": 2421,
"transcript_type": "pipecat",
"voice_recording_url": "https://storage.example.com/recordings/call_123.mp3",
"transcript_json": [
{
"role": "user",
"content": "I need help with my order",
"timestamp": "2026-04-03T20:15:01Z",
},
{
"role": "assistant",
"content": "Sure, let me look that up for you.",
"timestamp": "2026-04-03T20:15:03Z",
},
],
"call_ended_reason": "customer-ended-call",
"timestamp": "2026-04-03T20:15:45Z",
}

response = requests.post(
"https://api.cekura.ai/observability/v1/observe/",
headers=headers,
json=payload,
)

result = response.json()
print(result)
```

Once calls are ingested, Cekura stores them for review in its observability workflow, where you can inspect call logs, transcripts, recordings, and evaluation output.

### Metrics and performance insights

Cekura's metrics system can be used in both simulations and production monitoring. For reference, see the [metrics overview](https://docs.cekura.ai/documentation/key-concepts/metrics/overview), [predefined metrics](https://docs.cekura.ai/documentation/key-concepts/metrics/pre-defined-metrics), and [custom metrics](https://docs.cekura.ai/documentation/key-concepts/metrics/custom-metrics).

Relevant predefined metrics for production monitoring include:

- **Latency** with percentile statistics for response-time monitoring
- **Infrastructure Issues** to detect failures to respond within a configured timeout
- **Transcription Accuracy** for STT quality checks
- **AI Interrupting User** and **Stop Time After User Interruption** for turn-taking quality
- **Gibberish Detection**, **Average Pitch**, and other speech-quality metrics for audio analysis
- **CSAT**, **Sentiment**, and **Dropoff Node** for agent-performance and user-experience insights

Beyond the predefined set, Cekura also supports custom metrics so you can evaluate whether your agent followed the right workflow, completed key business logic, or handled domain-specific tasks correctly. That is useful for measuring the logical performance of the agent itself, not just infrastructure or audio quality.

<Tip>
For production monitoring, audio recordings improve what Cekura can measure.
Several of the speech-quality and turn-taking metrics in their docs require
audio, and some require stereo recordings for the most precise results.
</Tip>

For day-to-day operations, Cekura's observability tooling is designed around dashboards, detailed call logs, and alerting for critical issues and anomalies. In practice, that gives you voice-quality metrics, agent-performance insights, and infrastructure-failure visibility in one monitoring loop.

## Next steps

<CardGroup cols={2}>
<Card
title="Pipecat Integration Guide"
icon="plug"
iconType="duotone"
href="https://docs.cekura.ai/documentation/integrations/pipecat/automated"
>
Step-by-step setup for running automated Pipecat tests in Cekura.
</Card>

<Card
title="Testing Overview"
icon="flask"
iconType="duotone"
href="https://docs.cekura.ai/documentation/guides/testing-agents/overview"
>
Start with Cekura's broader guide to scenario creation, execution, and
testing workflows.
</Card>

<Card
title="Observability Overview"
icon="tower-broadcast"
iconType="duotone"
href="https://docs.cekura.ai/documentation/guides/observability/custom"
>
Learn how Cekura structures production monitoring, observability, and call
review workflows.
</Card>

<Card
title="Metrics Overview"
icon="chart-line"
iconType="duotone"
href="https://docs.cekura.ai/documentation/key-concepts/metrics/overview"
>
Review predefined metrics and custom metrics for workflow, logic, speech,
and infrastructure evaluation.
</Card>
</CardGroup>
4 changes: 2 additions & 2 deletions guides/fundamentals/evaluations/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,9 @@ Several platforms offer simulation testing and production monitoring for voice A
title="Cekura"
icon="shield-check"
iconType="duotone"
href="https://www.cekura.ai"
href="/guides/fundamentals/evaluations/cekura"
>
Automated testing and quality assurance platform for voice AI agents.
Automated testing and monitoring platform with native Pipecat Integration for WebRTC/Text based testing and support for Mock Tools, Custom Dynamic Variables and more!
</Card>
</CardGroup>

Expand Down
Binary file added images/pipecat_integration.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading