X · Governance & ObservabilityEmerging

Simulated-User Rollout Evaluation

also known as User Simulator Eval, Dual-Control Rollout Evaluation, Synthetic Customer Agent Validation, Tau-Bench-Style Evaluation

Evaluate a conversational agent by pairing it with a second model that plays the user from a persona and a hidden goal, then score the final environment state rather than the transcript.

Context

A conversational or tool-using agent is being taken toward deployment in a domain that has its own database, its own tool APIs and its own policy document — retail returns, telecom support, retail banking. Quality in such a domain is a property of whole episodes rather than of single replies: the agent has to ask for the account number it was never given, notice that the stated travel dates contradict the booking on file, and refuse the discount the policy forbids. A team preparing a release needs to measure that property before real customers do, and needs to measure it again on every model, prompt or tool change.

Problem

A held-out dataset of fixed inputs cannot express a counterpart who withholds a detail until asked, misstates a date, changes their mind halfway through, or has to be talked through an action on their own device. Recruiting people to play that counterpart produces the right signal at the wrong cadence and cost, so it happens once a quarter rather than once a commit. Scoring the transcript instead of the outcome rewards an agent that sounds cooperative while leaving the database wrong, and a single run per task hides the fact that the same task succeeds on one attempt and fails on the next.

Forces

  • Multi-turn quality only appears against a partner who withholds, misstates and changes their mind, and a fixed list of inputs cannot hold that behaviour.
  • Human trials give the most trustworthy counterpart but cannot be re-run on every commit, while a model playing the user finishes an episode in minutes for a few cents.
  • The model playing the user is itself an instrument with error: on identical retail tasks, measured agent success moves by up to 9 percentage points depending only on which model plays the user.
  • Comparing the final database state against an annotated goal state is cheap and objective, but it only covers what the task annotation anticipated; judging the transcript covers the rest and is an opinion.
  • One episode per task is affordable and misleading, while repeating each task exposes inconsistency and multiplies the bill.

Example

A team is about to ship a change to an airline support agent. Instead of replaying fifty saved questions, they start fifty episodes in which a second model plays a passenger who wants to move a flight, does not mention the second bag until asked, and has already spent one of two travel vouchers. Each episode runs to the end, and the score is whether the booking in the test database matches what the passenger actually wanted. Two personas that always passed now fail on the voucher split, which no saved question had covered.

Diagram

Solution

Therefore:

Give the evaluation two policies instead of one. The agent under test keeps its usual tools and its usual policy document, and is not told that the episode is a test. Opposite it sits a second model instantiated from a persona — who is speaking, how they speak, what they will volunteer unprompted — and a scenario stating what they want and which facts stay back until asked. Where the domain lets the user act as well, such as resetting a router or toggling a setting on their own phone, the simulated user is given its own tool set and its own view of the shared state, so its behaviour is bounded by what the environment permits rather than by prompt wording alone. The two converse until the goal is met, a stopping rule fires, or the turn budget runs out. Grading then compares the final environment state — the database rows, the created ticket, the amended booking — against the goal state annotated with the task, so an episode that reads well but leaves the world wrong scores nothing. Each task is run several times and reported as a consistency figure over the repeats rather than as a single pass. Personas and scenarios are enumerated from named dimensions instead of free-form prompting, and the simulator is periodically checked against real people, because it is an instrument with a bias of its own.

What this pattern forbids. The agent under test must not be told that its counterpart is simulated, and the simulated user may not receive the annotated goal state or the agent's private reasoning. A rollout cannot be scored from the transcript alone: grading compares the final environment state against the annotated goal state. No single episode may stand as a task's result — each task is repeated and reported as a consistency figure — and a simulated-user number must not be published as a human-user result before the simulator has been checked against real people.

The smaller patterns that complete this one —

  • usesAgent Persona ProfileTreat agent identity as a structured profile object — persona, primary motivator, allowed actions, knowledge bindings — rather than a free-form role sentence in the system prompt.

And the patterns that stand alongside it, or against it —

  • complementsEval Harness★★Run a held-out dataset against agent versions to detect regressions and measure improvement.
  • complementsLLM-as-Judge★★Use an LLM to score open-ended outputs against rubric criteria when no exact-match metric applies.
  • complementsAgent EvaluatorA dedicated agent or harness whose sole job is running tests against another agent's outputs to evaluate performance; distinct from eval-harness (offline batch) and llm-as-judge (per-output).
  • complementsCAMEL Role-Playing·Have two agents role-play a user-assistant interaction to autonomously complete a task neither could solve alone.
  • complementsDimensional Synthetic Eval SetGenerate evaluation inputs not by free-form LLM prompting (which mode-collapses) but by enumerating tuples over explicitly named dimensions and seeding generation from each tuple.
  • complementsChecklist Partial-Credit ScoringScore each long-horizon task against task-specific graded checkpoints instead of a single pass/fail bit, so progress and regression that leave the binary outcome unchanged still show up in the report.
  • complementsChance-Corrected Judge ValidationMeasure an automated judge against human labels on a held-out meta-evaluation set with a chance-corrected agreement statistic, and publish that number beside every score the judge is allowed to gate.
  • complementsDual Evaluation (Offline + Online)Run two parallel evaluation tracks — offline benchmark gates before deploy AND online production-traffic monitoring after — so drift is caught even when pre-deploy benchmarks pass.

Neighbourhood

Click any neighbour to follow the language. Scroll to zoom, drag to pan.

Used in frameworks

References

Provenance