Simulation & Regression Eval Suite
The Simulation & Regression Eval Suite runs a crafted set of customer scenarios against an agent and grades every transcript with an LLM judge — so a prompt or model change gets pass/fail evidence before it reaches a live channel. Two run modes share the suite:- Live-persona run (
POST /api/v1/agents/:id/persona-simulation, the Agent → Testing → Persona panel) — an LLM caller improvises turn-by-turn. Best for exploring how the agent copes with a mood or an unexpected customer. - Scripted regression gate (
POST /api/v1/agents/:id/simulation-eval) — a fixed caller utterance script replays exactly the same conversation on every run, the LLM judge grades the finished transcript, and the batch returns a booleanpassedgate. This is the mode to wire into CI: the caller text never changes, so two runs of the same suite compare cleanly.
https://api.orbit.devotel.io.
1. What the suite does
Each scenario describes a customer persona (name, mood), the situation, the objective the agent must achieve, and optional rubric criteria the judge grades against. On every run, the simulator:- Drives a live LLM caller turn-by-turn against your agent (not a scripted prompt list).
- Sends the full transcript to the LLM judge, which scores it against the objective and each rubric criterion.
- Returns a rollout-gate report: pass rate, mean judge score, per-scenario verdicts, and the tools the agent invoked.
2. What goes into a scenario
The endpoint rejects more than the supported batch size (default: all
scenarios in one payload, up to the per-endpoint maximum) — send a short
curated set, not a dump of the corpus.
3. Run the suite
Dashboard path: Agents → your agent → Testing → Persona — enter/edit scenarios inline, set the optional candidate version, and press Run suite. API (live-persona mode):Scripted regression gate (simulation-eval)
Same suite shape, but each scenario carries a scripted_utterances array —
one utterance played back per caller turn, in order, regardless of what the
agent says. The judge and the regression gate then score a conversation that
never changes from run to run, which is what makes the result safe to gate
a rollout on.
gate block to the summary: gate.passed is true
only when the batch pass rate clears min_pass_rate (default 1) and the
error rate stays under max_error_rate (default 0.2 — one in five
inconclusive runs is tolerated); gate.reasons names
the failing criterion so a CI job can print why a candidate was rejected.
The scenario persona object is optional in gate mode — the script is
the caller, the persona is only a label for the judge. Owner, admin, and
developer roles only.
4. Common results and what to do about them
- A 503 “LLM_UNAVAILABLE” envelope — the LLM provider is not configured for the environment. The suite cannot run until that is fixed by an owner/admin.
- A 422 “VALIDATION_ERROR” envelope — one of the field constraints
(empty
title/persona.name/situation/objective, or more than 10 rubric criteria) is violated. Fix the scenario and retry. - A 404 envelope from the scripted gate — the agent id does not exist in this tenant; the gate checks for the agent before spending a single runtime call.
- A scenario fails on rubric criteria — inspect the per-scenario judge
reasoning in the panel (or the
reasoningtext in the API response) before promoting the candidate prompt/model. - The whole suite times out — the endpoint is rate-limited tighter than ordinary calls (the persona + runtime + judge fan out per scenario). Split the batch and retry.
5. Where it fits in the rollout pipeline
The eval suite is the offline gate that qualifies a candidate before the canary ladder accepts it:- Replay regression tests and run persona simulations against the candidate (guide: Safely Roll Out an AI Agent).
- Promote the version (docs: Agent Versions).
- Keep production sampling enabled (docs: Continuous Production Evals).