DOCS / SIMULATION Docs overview

Simulation

The world keeps moving around the agent.

Buyers, customers, admins, employees and operators keep deciding and acting while scheduled events fire.

Simulated users are stateful actors

A simulated user is not a prompt that returns one response. It may be a buyer, customer, store admin, sales rep, support agent, employee, approver or operator with its own records, goals, constraints and decision policy.

01ObserveRead allowed records and recent events
02DecideApply goals, constraints and behavior
03ActUse valid software mutations
04UpdateCarry consequences into the next decision

Behavior changes through explicit parameters

Parameters alter decisions while preserving the actor’s identity and history. This makes population changes inspectable and repeatable.

Price sensitivity
How strongly price and discounts affect conversion or abandonment.
Return propensity
Likelihood of returning an eligible purchase under given conditions.
Patience
How long a user waits before following up, escalating or leaving.
Loyalty
How prior experience changes tolerance, retention and future demand.
Population parameters are causal inputs. They should change user decisions and therefore world outcomes, not merely relabel generated records.

Configure behavior and scheduled changes

await world.simulation.configure({
  population: {
    buyers: { discountSensitivity: 0.68, returnPropensity: 0.18 },
    storeAdmins: { approvalDelayHours: 6 },
    supportAgents: { escalationThreshold: 0.74 },
    warehouseOperators: { shiftCoverage: 0.82 },
  },
});

await world.simulation.schedule({
  at: "2026-11-20T00:00:00Z",
  change: {
    seasonalDemand: 1.6,
    discountSensitivity: 0.78,
  },
});

await world.clock.advance({ days: 45, mode: "until-idle" });

For an immediate controlled intervention, use world.simulation.intervene() and record the intervention in the run configuration.

History creates the conditions the agent inherits

Before an agent begins, buyers, customers, admins, employees and operators generate years of linked purchases, payments, tickets, approvals, promises, failures and prior interventions.

History matters when the correct action depends on earlier state, such as a partial refund, repeated churn warning, expired approval or unresolved commitment.

The clock controls when the world changes

Advancing time releases scheduled system events and actor decisions in timestamp order. Pausing stops simulated time without changing the world.

Day 43Agent promises a follow-up
Day 45Customer pays before follow-up
Day 47Check whether the agent adapts

Rewinding restores an earlier checkpoint. It does not reverse mutations in place; it recreates the exact earlier state so the scenario can run again.

Controlled does not mean static

A world can contain variable user decisions while remaining reproducible. The run records the definition, starting checkpoint, seed, configuration and every subsequent event.

  • Use identical seeds to reproduce the same baseline run.
  • Change one behavior parameter to isolate its effect.
  • Fork from one checkpoint to compare agents under matched conditions.
  • Calibrate actor distributions against real aggregate behavior when available.