- The simulated user opens the conversation, reacts in character to each agent reply, and ends the conversation itself:
GOAL ACHIEVEDwhen the agent genuinely got them there,USER GAVE UPwhen the persona would realistically walk away, orTURN LIMIT REACHED. - The agent side of each turn is exactly a Playground run - same model settings, same tools, including simulated tool results for schema-only tools.
- With an Evaluator config selected (“Scored with judge” in the Playground), the finished transcript is scored 0-10 against its criteria (reference-free - a simulated conversation has no expected answer); the result names the judge that scored it.
- Turns stream into the transcript in real time as each exchange completes, and every finished simulation is kept in the Playground’s History (Runs | Simulations) for later review or re-running.
sim-<id> session with metadata.simulated: true - each turn a real span tree (the model call and any tool executions as timed child spans, so the trace dialog’s Execution Timeline works). That means the simulation shows up in Observe → Sessions like any conversation: the built-in Session Baseline Judge judges it once idle, session-scoped evaluators score it, and Add to dataset works from the session view - so a bad simulated conversation converts directly into regression test cases.
