AI Engineer World's Fair 2026

Simulation-Maxxing: How Nubank ships agents 20× faster with simulations

Shreya RajpalAman Gupta· Principal Machine Learning Engineer, Nubank16:29

Read the talk

Simulation-Maxxing: How Nubank ships agents 20× faster with simulations

Nubank uses simulated customers and consistent mocked tool state to test agent changes before live experiments, shortening the wait for useful evaluation signal.

From a talk by Shreya Rajpal and Aman Gupta

Before you start: Familiarity with tool-calling agents, offline evaluation and production A/B testing will help you follow the workflow.

Improving support without waiting on every live experiment

How do you improve customer-support agents quickly when every production experiment puts a real customer’s experience at stake? At Nubank, the setting is substantial: Aman Gupta reports 135 million customers across Brazil, Mexico and Colombia, with US expansion still ahead at the time of the talk. Quarterly revenue had crossed five billion in Q1 2026. AI agents handle routine requests end to end, while human experts concentrate on difficult and long-tail cases.

Gupta attributes a 20× faster agent shipping cycle to generating evaluation data in simulation instead of waiting for production data. That is a reported operational result, without a defined timing baseline or aggregation method in the talk. The customer-quality evidence is separate: the opening chart tracks average TNPS, a customer-satisfaction measure, across five production agents. Initially weak results improved over months of work and several quarters of effort, approaching the expert-human benchmark.

Chart titled “Results First: Closing gap to human agents” shows a rising purple line from Launch to Now beneath a dotted expert human tNPS benchmark, with a QR code at upper right.Open full source frame
Production results: +26 pp average tNPS gain across five deployments.

Gupta says the displayed results were already stale and that several agents had subsequently exceeded human quality. He also points to a KDD paper. The related Building Customer Support AI Agents at 100M-User Scale documents Nubank’s evaluation-driven framework; its earlier results place most agents below expert-human TNPS, so the later superiority claim remains Gupta’s update rather than a result established by that paper.

0:320:47
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:32 · section reference included

An agent example is a trajectory

Reaching those results requires an evaluation system that supports repeated experiments. Evaluation has two inputs: metrics and data. For metrics, Rajpal describes an established, if demanding, process: use LLM-as-a-judge classifiers, align their decisions with human judgments and task rubrics, then improve them through automated optimization and prompt tuning. A judge becomes useful when its scores reflect the behavior the team actually wants.

The harder bottleneck is obtaining the data those judges score. Structured machine-learning examples and single-turn question answering can often be represented as independent rows. A multi-turn agent example is a trajectory: user messages, agent responses, internal tool calls and the state those calls read or modify. Generating one example means making that entire sequence coherent; annotating it means understanding what happened across the sequence. Repeating that work over a useful sample set compounds the cost.

2:212:31
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

2:21 · section reference included

Two ways to obtain data, two different costs

Teams commonly obtain evaluation trajectories through manual authoring or production traces. Each imposes a different constraint:

SourceWhat it requiresExperimentation constraint
Manual authoringPlan the trajectory, state updates and tool responsesEvery call must preserve coherent synthetic state
Production tracesCollect conversations from normal operationCandidate behavior reaches real customers

Manual authors must anticipate how the conversation unfolds and keep synthetic state consistent across every tool call. Production traces arrive as a by-product of serving customers, but testing changes through those traces means exposing customers to the changes. That makes many parallel production experiments difficult.

Two columns contrast hand-planning state updates and maintaining consistent synthetic state with testing on live users and limits on parallel experiments.Open full source frame
Manual authoring and production traces impose different evaluation constraints.
4:495:01
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

4:49 · section reference included

Remove the wait for feedback

A conventional release starts with a change to the agent harness—the prompts, tools and surrounding logic that control the language model. Gupta describes implementation taking hours in the best case, followed by days of offline evaluation on hand-curated data. Production A/B testing then introduces another wait: customer feedback forms produce sparse, noisy observations, and establishing a statistically significant improvement can take much longer.

Gupta reports shortening a weeks-long cycle to less than a day, sometimes hours or minutes. Simulation accelerates the evaluation signal, not the implementation work. Harness changes still take hours. What changes is the ability to generate conversations with a simulated user immediately, rather than wait for people to curate new examples or for enough customers to submit feedback. The resulting offline signal helps predict whether a candidate will perform well in production.

5:466:02
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

5:46 · section reference included

Run the real agent inside a simulated environment

For agent evaluation, simulation means exercising the real agent while controlling the customer and the external environment it encounters. Rajpal describes Snowglobe as providing that infrastructure by pointing its SDK at an agent without changing the agent’s code. The current tutorial makes the integration work explicit through wrappers, tool declarations and decorators; the talk’s description should not be read as a universal promise of zero integration code.

The pipeline separates configuration from the conversations it produces:

  1. Identify tools to mock. Determine which external dependencies the simulator must answer for the agent.
  2. Configure the scenarios. Supply personas, use cases and the situations the simulation should explore.
  3. Run conversations. Exercise the real agent over multi-turn interactions, supplying mocked tool responses as needed.
  4. Judge the trajectories. Apply evaluation judges to obtain per-turn information about agent behavior, then feed it into the existing evaluation pipeline.

The output is a dataset of complete conversations, potentially numbering in the thousands, rather than a collection of isolated prompts. The mocked environment makes those conversations usable for evaluating behavior that depends on tool calls and state.

7:207:32
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

7:20 · section reference included

Maria Souza: a persona with consistent account state

The concrete example is Maria Souza, an explicitly synthetic customer. She is a designer, a first-time credit-card customer, and wants to order a card. The simulator gives her more than a biography: it generates a fake address and credit-card data that remain consistent throughout the agent’s execution. Those facts provide the grounding needed to test whether the agent handles her request correctly.

Maria also has a configured interaction style. Her short, curt, one-line messages follow that persona rather than the verbose, cooperative dialogue a generic simulated user might produce. When the agent calls a tool, the simulator returns valid mocked information identifying Maria and supplying her address for verification. Account data grounds the conversation as well. The test therefore exercises two coupled requirements: the user must behave consistently with her intent and style, and the tools must describe the same customer throughout.

A compact JSON record makes those requirements explicit. It captures the demonstrated scenario and the consistency checks a test fixture needs; the generated address and account values would be shared across the mocked responses that use them.

json

{
  "persona": {
    "name": "Maria Souza",
    "occupation": "designer",
    "first_time_credit_card_customer": true,
    "intent": "order a credit card",
    "message_style": "curt, one-line messages"
  },
  "grounding_requirements": {
    "identity": "same customer across tool responses",
    "address": "same generated address throughout the conversation",
    "credit_card": "consistent generated card data",
    "account": "consistent generated account data"
  }
}

The critical property is coherence across calls: a tool response that supplies an unrelated address would undermine the test even if each individual response looked plausible.

8:428:56
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

8:42 · section reference included

Evaluate real and simulated conversations together

An agent team faces two uncertainties at once: whether the agent is good, and whether the evaluations can tell. Nubank’s improvement loop starts by shipping and observing an agent, then building robust evaluations. Gupta describes investing in automated prompt optimization, including GEPA, to improve those evaluations.

The team then runs simulations and passes both simulated conversations and real production conversations through its evaluations. Those measurements provide the signal for optimizing the agent harness. After verifying that an optimization is good, the team ships again. Repeating this loop supports many experiments across multiple agents: production observation informs the evaluation system, while simulation supplies additional conversations for testing candidate changes.

10:1010:18
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

10:10 · section reference included

Check whether simulation tracks production

Simulation is useful only if its results say something about real behavior. Nubank compares quality measured by evaluations on simulated conversations with quality measured on production conversations. Gupta reports high correlation between the two, without giving a numerical coefficient.

Gupta reports that 80% of domain-expert labels confirmed that simulation data was usable. The talk does not provide the review sample size or detailed labeling rubric. He describes usefulness for both mature agents and greenfield agents, allowing the team to improve an existing system or bring up a new one before it has accumulated a large production history.

11:1411:28
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

11:14 · section reference included

Screen candidates while preserving self-service

Simulation also catches changes that should never reach a live experiment. Gupta describes one regression detected before production and, in a separate agent, an issue that could have reduced the self-service rate. These are different failure modes: a candidate can harm customer experience, or it can make support less efficient by resolving fewer requests without human help.

Gupta reports that one agent’s TNPS doubled through simulation, robust evaluations and systematic improvement work together. No baseline scores are supplied, and the result is attributed to the combined process rather than simulation alone. The team now tries ideas in Snowglobe and waits until it is satisfied with simulation output before launching a candidate.

His illustrative comparison is a team that might otherwise run ten A/B tests in a quarter. It could screen multiple ideas in simulation and move a selected candidate into one live test, avoiding several preliminary experiments. That is a workflow example, not a measured reduction in test count. Production A/B testing remains the next validation step.

Customer satisfaction and self-service must be evaluated together. Higher TNPS can come at the cost of lower self-service if the agent hands more work to humans. Gupta says Nubank improved self-service rather than sacrificing it for satisfaction. Gupta reports a 4% self-service-rate improvement in one case. The talk does not specify whether that means a relative percentage increase or percentage points.

11:5512:04
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

11:55 · section reference included

Shortlist models before testing them live

The same infrastructure supports model selection. Nubank places different open-source models inside its agent harnesses, runs them through simulation and evaluates which versions work well for its tasks. Keeping the harness, simulation and evaluation setup available makes it practical to explore more candidates before committing to online experiments.

Gupta reports that simulation saved multiple weeks of effort in screening open-source models. The accompanying slide makes the experiment scale visible: it describes parallel screening of model variants and time saved in online experiments. At the time of the talk, production A/B tests were still running to establish whether the selected open-source models matched frontier models. The demonstrated outcome is a faster shortlist, not established production parity.

Slide contrasts production testing with simulation-based screening and highlights “12 variants” executed in parallel and “6 weeks” saved in online experiments.Open full source frame
Benchmarking 12 OSS model variants in simulation, with six weeks reported saved in online experiments.
13:3313:42
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

13:33 · section reference included

Continuous improvement depends on trustworthy signal

Generating evaluation data on demand removes the need to wait for production feedback on every candidate. But faster generation pays off only when the team closes the sim-to-real gap: compare simulation with observed production behavior through offline metrics, online metrics and human review. That comparison establishes when the simulation deserves trust.

For an enterprise agent, continuous improvement rests on two concrete capabilities: metrics aligned with the outcomes that matter, and a reliable way to generate data on which those metrics produce useful signal. Together, they support a repeated loop of feedback, harness changes, verification and release. The destination is an agent that can improve from those signals; the foundation is an evaluation system that makes each proposed improvement worth testing.

14:2614:36
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

14:26 · section reference included

Resources

From the talk

Transcript download
Read the transcript and explore slides

Loading transcript and slides…