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

# Simulations

> Run simulated conversations with your agents

[Calibrate](https://calibrate.artpark.ai) lets you simulate entire conversations with your agent using simulated users matching the personas of your target audience for specific scenarios defined by you. This guide walks you through setting up and running your first simulation.

## Create an agent

From the sidebar, click **Agents** → **New agent**. You have two options for setting up your agent:

<Frame>
  <img src="https://mintcdn.com/amandalmia/TsDdvjhyewlsTagk/quickstart/images/agent-choice.png?fit=max&auto=format&n=TsDdvjhyewlsTagk&q=85&s=2b2986eeed02108e2e78523ab1f2583d" alt="New Agent Dialog" width="2010" height="1386" data-path="quickstart/images/agent-choice.png" />
</Frame>

<AccordionGroup>
  <Accordion title="Build your agent in Calibrate" icon="flask" defaultOpen>
    Configure the LLM/STT/TTS models, set instructions, and define the tools your agent can use — all within Calibrate.

    See our [Core Concepts: Agents](/docs/core-concepts/agents) guide for the full setup.
  </Accordion>

  <Accordion title="Connect your existing agent" icon="link">
    If you already have a deployed agent, you can connect it to Calibrate via its HTTP endpoint. Calibrate will call your agent directly to run simulations.

    See our [Core Concepts: Agent Connections](/docs/core-concepts/agent-connections) guide for the full setup.

    <Note>
      Agent connections support **text simulations** only. For **voice simulations** (with STT/TTS latency metrics), use an agent built within Calibrate with STT and TTS providers configured.
    </Note>
  </Accordion>
</AccordionGroup>

## Create personas

From the sidebar under **End-to-End Tests**, click **Personas** → **Add persona**.

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_personas.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=79815991a748bf0aa26839bc492731a8" alt="Personas List" width="2400" height="1522" data-path="quickstart/images/sim_personas.png" />
</Frame>

Define `WHO` the simulated user is - their personality, speaking style, and behavior.

<Tip>
  Learn more about personas in [Core Concepts -
  Personas](/docs/core-concepts/personas)
</Tip>

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_persona_add.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=3b1a04be251abca59bc44d4acf444f1a" alt="Add Persona Dialog" width="2400" height="1522" data-path="quickstart/images/sim_persona_add.png" />
</Frame>

## Create scenarios

Click **Scenarios** → **Add scenario**.

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_scenarios.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=72fae76388d119587c77d7d046c6e03b" alt="Scenarios List" width="2400" height="1522" data-path="quickstart/images/sim_scenarios.png" />
</Frame>

Define `WHAT` the simulated user should accomplish during the conversation.

<Tip>
  Learn more about scenarios in [Core Concepts -
  Scenarios](/docs/core-concepts/scenarios)
</Tip>

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_scenario_add.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=0dfbdf589107ea3ea13cd188f71b1aa5" alt="Add Scenario Dialog" width="2400" height="1522" data-path="quickstart/images/sim_scenario_add.png" />
</Frame>

## Create metrics

Click **Metrics** → **Add metric**.

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_metrics.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=1106434c4be8ba229fbfb77e34f97c0a" alt="Metrics List" width="2400" height="1522" data-path="quickstart/images/sim_metrics.png" />
</Frame>

Define how to evaluate whether the agent performed well.

<Tip>
  Learn more about metrics in [Core Concepts - Metrics](/docs/core-concepts/metrics)
</Tip>

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_metric_add.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=c37a13d48f37b4dc646a5b4034d46277" alt="Add Metric Dialog" width="2400" height="1522" data-path="quickstart/images/sim_metric_add.png" />
</Frame>

## Create a simulation

Click **Simulations** → **Add simulation** and enter a name.

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_create.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=c072b2810d119faed8ceff2f3fc2440a" alt="Create Simulation" width="2400" height="1522" data-path="quickstart/images/sim_create.png" />
</Frame>

Select the agent, personas, scenarios, and metrics for your simulation.

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_config.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=14a6493dea91e6c5d4f7e3d66652a263" alt="Simulation Configuration" width="2400" height="1522" data-path="quickstart/images/sim_config.png" />
</Frame>

Click **Create** after filling in the details to save the simulation configuration. This creates the simulation but does not run it yet.

## Run the simulation

After creating, you'll see a **Launch** button. Click it to start a simulation run and choose between:

* **Text simulation** — text-only conversations (faster)
* **Voice simulation** — full STT/TTS pipeline with latency metrics

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_launch_options.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=bf1258a4960efd36710bd14a24122076" alt="Launch Options" width="2400" height="1522" data-path="quickstart/images/sim_launch_options.png" />
</Frame>

Each run creates one simulated conversation for each persona × scenario combination.

### Text simulation

After launching a text simulation, the run page opens showing each conversation streaming in real-time.

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_text_running.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=4d99f6fd754b803b8de882e3ca88acda" alt="Text Simulation Running" width="2400" height="1522" data-path="quickstart/images/sim_text_running.png" />
</Frame>

Once conversations complete, results show the metric evaluations for each row.

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_text_results.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=436d986a9ed31816450ca2be4144dcc8" alt="Text Simulation Results" width="2400" height="1522" data-path="quickstart/images/sim_text_results.png" />
</Frame>

Click any row to view the full transcript.

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_text_transcript.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=10fca1ff82aac74d160ce07b185f39e4" alt="Transcript View" width="2400" height="1522" data-path="quickstart/images/sim_text_transcript.png" />
</Frame>

The **Overall metrics** show the aggregated values for each metric across all conversations.

### Voice simulation

<Note>
  [Agent connections](/docs/core-concepts/agent-connections) support **text
  simulations** only. For **voice simulations** (with STT/TTS latency metrics),
  use an agent [built within Calibrate](/docs/core-concepts/agents) with STT and TTS
  providers configured.
</Note>

Voice simulations use the full STT/TTS pipeline for more realistic testing. After launching, conversations stream in real-time like text simulations.

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_voice_running.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=150186497877bc12e26476d21b1353de" alt="Voice Simulation Running" width="2400" height="1522" data-path="quickstart/images/sim_voice_running.png" />
</Frame>

Click any row to view the transcript with audio playback for each turn and the full conversation.

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_voice_transcript.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=5142609bf1b2381f1f346bdea85cd83a" alt="Voice Transcript with Audio" width="2400" height="1522" data-path="quickstart/images/sim_voice_transcript.png" />
</Frame>

Once complete, voice simulations show results with the **Performance** tab displaying aggregated evaluation metrics across all conversations.

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_voice_results.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=dd75114d9542f3d7ccee41f36c53eb37" alt="Voice Simulation Results" width="2400" height="1522" data-path="quickstart/images/sim_voice_results.png" />
</Frame>

Switch to the **Latency** tab to view detailed timing metrics for each component:

* **stt/ttft** and **stt/processing\_time** — Speech-to-Text latency
* **llm/ttft** and **llm/processing\_time** — LLM response latency
* **tts/ttft** and **tts/processing\_time** — Text-to-Speech latency

<Frame>
  <img src="https://mintcdn.com/amandalmia/9WG7zY0NvA0Dr3yW/quickstart/images/sim_voice_latency.png?fit=max&auto=format&n=9WG7zY0NvA0Dr3yW&q=85&s=e35d3f45f6fc2950e94c3bbde451ac7c" alt="Voice Simulation Latency Metrics" width="2400" height="1522" data-path="quickstart/images/sim_voice_latency.png" />
</Frame>

<Tip>
  Voice simulations take longer than text simulations due to the full audio
  pipeline, but provide more realistic testing of your agent's voice experience.
</Tip>

## Sharing simulation results publicly

Once a simulation run completes, you can share the results publicly. Open a completed run and click the **Share** button.

<Frame>
  <img src="https://mintcdn.com/amandalmia/UFssmcyObcv9X1pQ/quickstart/images/sim_public.png?fit=max&auto=format&n=UFssmcyObcv9X1pQ&q=85&s=c766adc7e97075c46c4a5db1b2d100e3" alt="Simulation run with Share button" width="2510" height="1040" data-path="quickstart/images/sim_public.png" />
</Frame>

This toggles the run to **Public** and generates a shareable link.

Anyone with the link can view the overall metrics, per-conversation results, and transcripts without needing a Calibrate account.

<Frame>
  <img src="https://mintcdn.com/amandalmia/UFssmcyObcv9X1pQ/quickstart/images/sim_public_preview.png?fit=max&auto=format&n=UFssmcyObcv9X1pQ&q=85&s=e07c2df55416294bfcf5b807375d69e5" alt="Simulation run with Share button" width="3024" height="846" data-path="quickstart/images/sim_public_preview.png" />
</Frame>

Click the **Public** button again to make the run private.

## Next steps

<CardGroup cols={2}>
  <Card title="Personas" icon="user" href="/docs/core-concepts/personas#best-practices">
    Best practices for creating realistic personas
  </Card>

  <Card title="Scenarios" icon="list" href="/docs/core-concepts/scenarios#best-practices">
    Best practices for creating effective scenarios
  </Card>
</CardGroup>
