Skip to Content
Run a trial

Run a trial

Start a trial, wait for it, read the pass rate, and compare two versions of your agent.

When you finish this page, you have a pass rate for your agent and know how to compare a new version against it on the same tasks. You need a candidate id from Add your agent and the shell variables from Before you start.

How a trial runs

  • A trial fixes the bench’s tasks at the moment it starts.
  • An attempt is one candidate on one task, with one archetype (a kind of simulated user the bench may define), once.
  • Repeats run each pairing more than once: 1 by default for a smoke trial, 3 for a full one.

So each candidate gets tasks × archetypes × repeats attempts. Each one runs in a fresh world and is graded on its own.

1. Start a smoke trial

Start small, to check that your agent works on the bench: a smoke trial on two tasks, with no archetypes.

Open the bench and choose Run trial, then Smoke test. Name it, pick the tasks and your candidate, leave Persona at None, and choose Run smoke test. The console opens the trial’s results page.

Starting a smoke test

For a full run, choose Full trial instead: every task, every archetype, and the repeats you set.

Starting a full trial

2. Wait for it

The results page shows the trial’s status and how many attempts are judged and pending, and keeps the trial moving while it is open.

Each attempt ends as completed (it ran; passed says how it did) or failed (it could not finish). How long a trial takes depends on the bench and your agent: a small smoke trial can finish in minutes, and a full trial with many tasks and three repeats can take hours.

3. Read the result

The leaderboard shows each candidate’s pass rate with its 95% interval, the cost per task, turns, tool calls and duration.

The leaderboard of a finished trial

To see why an attempt passed or failed, choose attempts next to the trial’s status and open one. It shows each check’s verdict, the transcript, and the agent’s tool calls and service requests.

One attempt: its checks and transcript

Two attempts say little: the interval runs from 9% to 91%. Run a full trial before you draw conclusions.

When an attempt fails on Veris’s side

An attempt that failed because of Veris, not your agent, has "failure_class": "platform" ("candidate" means your agent’s side). You can leave such attempts out of the pass rate. This is API only:

curl -s -X PUT "$BENCH_API/trials/$TRIAL_ID/exclusions" \ -H "Authorization: Bearer $VERIS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"attempt_ids": ["att_..."], "reason": "platform failure"}'

Send the same ids with "reason": null to count them again.

4. Compare a new version

A candidate is one fixed image. A new version of your agent is a new candidate: push the new image, register it, then add it to the same trial. Both versions then face the same tasks, the same archetypes and the same worlds.

On the trial’s results page, choose Add to trial, then Candidates. Pick the new version and choose Add. The trial runs again for that candidate only, and the leaderboard gets a row for it.

Adding a new version to the trial

Reading a change. Compare the intervals, not just the pass rates. When two intervals overlap, the difference may be noise. With 25 attempts, an interval is about ±18 points wide; more tasks or more repeats narrow it.

If you changed a candidate after it ran, re-run it in place with {"candidate_ids": ["cand_..."], "replace": true}.

When the bench changes under a trial

A trial keeps its tasks fixed. When the bench changes, read the trial to see whether a new candidate still gets a fair comparison:

curl -s "$BENCH_API/trials/$TRIAL_ID" \ -H "Authorization: Bearer $VERIS_API_KEY" \ | jq '{outdated, outdated_reasons, edited_task_ids, stale_persona_ids}'
  • outdated: true, with outdated_reasons: the bench changed since the trial started, for example a task was removed. The trial refuses new candidates.
  • edited_task_ids or stale_persona_ids not empty: tasks or archetypes were edited since they ran. The trial still accepts new candidates, but their attempts run the edited text, so they no longer face the same tasks as the earlier versions.

In both cases, start a new trial and compare versions there.

Next: run it from CI/CD.