> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coval.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Simulations

> What a simulation is, and what you need to set one up.

A **simulation** is a [conversation](/concepts/conversations/overview) between a Coval-driven user and your voice or chat agent. Instead of testing your agent by hand, Coval plays the role of a realistic user, talks to your agent end to end, and then evaluates how the conversation went against criteria you define.

You run simulations to catch regressions before they reach production, measure how your agent performs across many different users and scenarios, and understand exactly where and why a conversation goes wrong.

Coval supports two kinds of simulations:

* **Text-based** — for chat agents using text inputs and outputs.
* **Voice-based** — for voice agents with audio inputs and outputs.

## What you need to set up a simulation

A simulation brings together four building blocks. Each answers a different question about the test, and each lives in its own section of Coval so you can reuse it across many simulations.

<CardGroup cols={2}>
  <Card title="Agent" icon="robot" href="/concepts/agents/overview">
    **Who is being tested.** A reusable connection to your voice or chat agent. Without an agent, there's nothing to talk to — this is how Coval reaches your system.
  </Card>

  <Card title="Persona" icon="circle-user" href="/concepts/personas/overview">
    **Who is doing the talking.** The simulated user — their voice, accent, and behavior. Personas let you test how your agent holds up against the range of real people it will actually meet.
  </Card>

  <Card title="Test Set" icon="database" href="/concepts/test-sets/overview">
    **What the conversation is about.** A collection of test cases (scenarios, goals, scripts) that tell the simulated user what to do. This defines the situations you want to cover.
  </Card>

  <Card title="Metrics" icon="ballot-check" href="/concepts/metrics/overview">
    **How you measure success.** The pass/fail criteria applied to each conversation — from latency and sentiment to custom LLM-judged questions. Metrics turn a transcript into an answer about whether your agent did its job.
  </Card>
</CardGroup>

Once you have these, you don't have to wire them together by hand every time. A [**Template**](/concepts/templates/overview) saves a combination of agent, persona, test set, and metrics so you can launch the same evaluation consistently — or [schedule it](/concepts/runs/overview#scheduled-runs) to run on a recurring basis.

## Launching a simulation

When you launch an evaluation, Coval starts the simulation and then evaluates the result. A single launch is called a **run**, and a run can contain many simulations at once — for example, one per test case in your test set.

Head to the **Simulate** page and follow these steps:

<img src="https://mintcdn.com/coval-2e18a559/0xS7RQYpuXc3JEUF/images/simulations/simulate-launch-light.png?fit=max&auto=format&n=0xS7RQYpuXc3JEUF&q=85&s=9419ad7a6c49d640325074a11878631d" alt="The Simulate page — configure the agent, persona, test set, and metrics for a run" className="rounded-lg block dark:hidden" noZoom width="3010" height="1404" data-path="images/simulations/simulate-launch-light.png" />

<img src="https://mintcdn.com/coval-2e18a559/0xS7RQYpuXc3JEUF/images/simulations/simulate-launch-dark.png?fit=max&auto=format&n=0xS7RQYpuXc3JEUF&q=85&s=f5fd9e0726e123e663f1530d66c12eaa" alt="The Simulate page — configure the agent, persona, test set, and metrics for a run" className="rounded-lg hidden dark:block" noZoom width="3018" height="1396" data-path="images/simulations/simulate-launch-dark.png" />

<Steps>
  <Step title="Open the Simulate page">
    Click **Simulate** in the sidebar to open the page where you'll configure your run.
  </Step>

  <Step title="Pick a template, or configure manually">
    Start from a saved [template](/concepts/templates/overview) for a one-click launch, or set it up yourself:

    * Select an [**agent**](/concepts/agents/overview) to test
    * Select a [**persona**](/concepts/personas/overview)
    * Choose a [**test set**](/concepts/test-sets/overview)
    * Set your **simulation parameters**
    * Choose the [**metrics**](/concepts/metrics/overview) to track
    * *(Optional)* Add **tags** to label this run
  </Step>

  <Step title="Launch">
    Click **Launch** — Coval runs the simulations and evaluates them against your metrics.
  </Step>
</Steps>

Once launched, every run appears on the [**Runs**](/concepts/runs/overview) page — the list of all your evaluations, where you can read the results and dig into individual [conversations](/concepts/conversations/overview) to see exactly where things went right or wrong.

## Re-running a simulation

If a single simulation looks off, select it in the run's results table and click **Resimulate** to run it again in place against your latest configuration. This overwrites the previous result, so launch a new run instead if you want to keep the old one for comparison.

## Time limits

Each simulation runs up to **10 minutes** by default and **15 minutes** at most. It ends when the conversation wraps up naturally, the objective is met, or the timeout is reached — whichever comes first. If you need longer conversations, contact [support@coval.dev](mailto:support@coval.dev).

## Next steps

<CardGroup cols={2}>
  <Card title="Connect your agent" icon="plug" href="/concepts/agents/overview">
    Set up the connection to your voice or chat agent.
  </Card>

  <Card title="Launch your first run" icon="play" href="/concepts/runs/overview">
    Put the pieces together and run your first evaluation.
  </Card>
</CardGroup>
