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

# Simulations

> Test a prompt change against synthetic callers before it goes live, and compare pass rates between two prompts.

Simulations let you ask "what would this agent do if…" **before** you ship a
prompt change. A **scenario** describes a synthetic caller — who they are, what
they want — and the **assertions** that must be true of the resulting call.
Running a scenario replays a system prompt against an LLM-driven caller, produces
a synthetic transcript, and scores it.

Run the same scenarios against your **live** prompt and again against a
**candidate** prompt, and the difference in pass rate tells you whether the edit
is safe to ship.

<Note>
  Simulations never place a real call and never touch your voice provider. They
  test the prompt, not the deployment, so they work for every provider. They also
  never appear in your [conversations](/docs/conversations), analytics, or billing.
</Note>

## Scenarios

A scenario has three parts:

* **Caller** — a persona: their role, their goal, optional behaviour traits,
  facts they only reveal when asked, and an optional opening line.
* **Assertions** — what must be true of the call. Each assertion is a question the
  judge answers about the transcript (yes/no, a number, or text) plus the
  condition that makes it pass. **Assertions decide pass/fail.**
* **Settings** — how many turns the call may run for and which model tier drives
  it.

<Tip>
  You don't have to write a scenario from scratch. In the scenario editor, describe
  what you want to test in one line ("the agent always offers a callback to angry
  callers") and **Draft with AI** generates a caller and assertions from the
  agent's live prompt for you to review and edit before saving.
</Tip>

Your agent's enabled [monitors](/docs/monitors) are also scored against the
synthetic transcript, but only for information — they never decide pass/fail,
because monitors are tuned to real traffic and can fire surprisingly on synthetic
calls.

## Export to LangWatch Scenario

When editing a saved scenario, expand **Export LangWatch code** to copy a
TypeScript [LangWatch Scenario](https://langwatch.ai/scenario/) test. The export
maps the caller persona, turn limit, and assertions from your current draft. It
includes an adapter stub — replace that stub with the integration that invokes
your agent before running the test.

## Prompt targets

A run or suite can be pointed at any of an agent's prompts:

* the **live** prompt currently deployed on the agent, or
* any **version** — a deployed incarnation, or a **candidate** prompt drafted on
  the agent's [Versions tab](/docs/agents).

Because a candidate prompt can be simulation-tested before it is ever deployed,
Simulations closes the loop from "draft an edit" to "know it's safe".

## Suite runs and compare

A **suite run** replays every enabled scenario for an agent against one prompt.
Its pass rate is the headline number. To judge a prompt change, run the suite
against your live prompt, run it again against a candidate, then open **Compare**
to see the pass-rate delta and a per-scenario breakdown of what got **fixed**,
**regressed**, or stayed **unchanged** — alongside a diff of the two prompts.

## Enabling simulations

Simulations are opt-in per organization. A Zelto admin turns the feature on from
the organization's feature-flags tab; once enabled, owners and admins see the
**Simulations** entry in the sidebar and can author scenarios and start runs.

## Related

* [Agents](/docs/agents) — where live prompts and candidate prompts live.
* [Monitors](/docs/monitors) — the monitors that are scored (informationally) on
  each simulated call.
