Simulated apps for agent training

A simulated app is a working copy of a piece of software, built so an AI agent can operate it inside an RL environment and have its actions checked.

Reviewed by Evan JolleyUpdated Also called simulated apps, app simulation, app clone, mock website

A computer use agent reads the screen, clicks and types, and is rewarded for finishing the job (/domains/computer-use). In training it does this over and over, so it needs software it can practice in. A simulated app gives it that, with data behind it, and each attempt runs in its own sandbox (post-training stack).

What goes into one

  • The interface. Screens the agent can see and operate. The same environment can serve agents that work from screenshots and browser agents that read the page structure (/domains/computer-use).
  • The data behind it. Records, files and history, so the app has something to work on. Our environments start from real-world material where we can license it, and experts build on top of it. Private details are made up for the problem, and example documents are fictional (/domains/knowledge-work).
  • A starting state. Each attempt gets its own sandbox, so no attempt inherits another's changes (post-training stack).
  • Checks. Each sandbox includes a grader for the problem (same source). A grader can read the app's final state, the agent's output or both.

A simulated app is one part of an RL environment. Mock websites and the data behind them are others. You can buy these parts on their own from us (/domains buying FAQ).

Many apps at once

Work rarely stays in one app. In MEMTRACK (NeurIPS 2025 Workshop), the facts an engineer needed were spread across Slack, Linear and Git, with noisy and conflicting information, and the best model tested reached 60% correctness. Knowledge work environments hold the documents, tools and messages of a job (/domains/knowledge-work).

How realistic is realistic enough

Realistic enough that an expert can do the problem the way they would at work (/domains/computer-use). Realism matters for behavior as well as skill, since a model that notices it is being tested can behave differently (/domains/alignment).

In our own post-training, we trained a model on computer use problems in a GitHub application, working in a browser with screenshots, and on problems across five Unreal Engine projects (post-training stack). Expert behavior is the other half of the data. In FigmaTrace, a 27B open model trained on 3,469 expert design trajectories improved on five of six GUI agent benchmarks outside design.

How to judge a simulated app

  1. An expert can solve each problem in it by hand. We confirm every computer use problem can be solved this way before it is used (/domains/computer-use).
  2. It resets cleanly. Each attempt runs in its own sandbox, so leftovers from one attempt can't help or hurt the next.
  3. It holds up under load. A few percent of our evaluation attempts fail because the environment itself breaks, and an outage can zero out a whole training step (post-training stack). Count these apart from model failures.
  4. The checks read the right state. The grader should score what the agent changed in the app, not only what it said.
  5. It carries no personal data. We make private details up for the problem and check what we deliver for personal data and credentials (/domains/computer-use).
  6. Experts review it. Every Patronus environment goes through manual review by domain experts and automated checks before delivery (/domains buying FAQ).