- horizon
- 30d
- events
- identical
- output
- world_a
Counterworld platform
FORKa living software world. RUNan agent. COMPAREoutcomes.
Counterworld combines stateful software, grounded simulated users and controllable time in one runtime. Run current and candidate agents under identical conditions, then compare the business state each one creates.
- horizon
- 30d
- events
- identical
- output
- world_b
01 / How it works
One controlled run from starting state to business outcome.
The agent operates through normal interfaces. Counterworld controls the world, its clock and the experiment around it.
01 / CREATEdone worlds.create(definition)→ world_8f202 / CONNECTdone agent.connect(scoped_endpoint)→ credential_agent03 / RUNdone world.run(agent@v17)→ trajectory_a04 / ADVANCEdone clock.advance({ days: 30 })→ checkpoint_day_3005 / FORKdone world.fork(checkpoint_day_00)→ world_candidate06 / EVALUATEdone compare(world_a, world_b)→ report.json
02 / Inside a world
Complete interfaces. Exhaustive behavior.
For every workflow in scope, the API surface, business rules and mutations are fully executable—not generated call by call.
Production-shaped interfaces
Endpoints, schemas, authentication, pagination and error contracts.
Every valid consequence
Permissions, lifecycle rules, invariants and cross-system side effects.
The unhappy paths too
Idempotency, retries, timeouts, rate limits, partial failures and 4xx/500 responses.
| Entity | Records |
|---|---|
| customers | 5,749 |
| orders | 125,204 |
| payments | 128,901 |
| fulfilments | 119,442 |
| tickets | 1,496 |
09:41:02checkout.submitted
Order #8421 enters mutation gate09:41:03payment.captured
Payment P-81 commits $12809:41:03inventory.reserved
SKU-91 available 18 → 1609:42:10buyer.message
Customer C-204 requests an update
- Buyer / C-204Maya ChenWaiting on split fulfilment
- Admin / A-17Dev Patel3 approvals due today
- Operator / O-04Leah GrantWarehouse shift ends 18:00
03 / Controlled comparison
Change the agent, not the conditions.
Forking creates two futures from the same checkpoint. Both agents face the same history, users, permissions, schedules, failures and external events.
Current agent
model: large-v4 prompt: support-17 memory: retrieval-v2 policy: refunds-4
Agent under review
model: small-v7 prompt: support-18 memory: retrieval-v3 policy: refunds-4
04 / Evaluation output
Grade the world, not only the final response.
Every run produces evidence at the task, business, state and trajectory levels so teams can see whether an agent improved—and what it broke along the way.
| Metric | Current | Candidate | Delta |
|---|---|---|---|
| Resolution SLA | 91% | 96% | +5 pt |
| Open backlog | 184 | 142 | −42 |
| Duplicate refunds | 2 | 0 | −2 |
| Human interventions | 38 | 31 | −7 |
| Compute cost | 1.00× | 0.71× | −29% |
refund_total ≤ capturedPASSinventory.available ≥ 0PASSledger.debits = creditsPASSnotification.sent_oncePASSrole.can_mutate(resource)PASS
world.diff / order_8421
- refund.status: "pending_review"
+ refund.status: "approved_partial"
+ refund.amount: 42.67
+ audit.policy: "refunds-4"
ledger.balanced: true
05 / Integration
Control the experiment without changing the agent.
Use the Counterworld SDK to create and operate worlds. Give the agent only a production-shaped endpoint and scoped credentials for its instance.
Production-shaped access
API, SDK, MCP and tool interfaces with role-specific permissions.
Privileged experiment access
World creation, clock control, checkpoints, forks, full-state inspection and evaluators.
const world = await counterworld.worlds.create({
systems: [
catalog.shopify(),
catalog.stripe(),
],
history: { years: 3 },
population: [buyers(), storeAdmins()],
evaluators: [
noDuplicateRefunds(),
balancedLedger(),
],
})
const start = await world.checkpoint()
const current = await world.run(currentAgent, {
days: 30,
})
const candidateWorld = await world.fork(start)
const candidate = await candidateWorld.run(
candidateAgent,
{ days: 30 },
)
const report = await compare(current, candidate)
06 / Trust and boundaries
Controlled rehearsal, with explicit limits.
Counterworld provides isolated, inspectable worlds for experimentation. It does not require production access by default or claim that simulated behavior predicts real human conversion.
Start with one workflow
Define the world required to judge the outcome.
Choose a consequential workflow, identify the state and actors that affect it, then run current and candidate agents under the same conditions.
- World isolation
- Separate state, credentials, clock and lifecycle for every run.
- Data source
- Synthetic histories and populations by default; production data is not required.
- Replay
- Reproducible when starting state, seeds and future workload are fixed.
- Evaluation access
- Privileged state inspection remains outside the agent boundary.
- Interface fidelity
- Coverage is explicit for every modeled API, SDK, MCP or tool surface.
- UI fidelity
- API fidelity does not automatically imply a faithful browser interface.
- Interpretation
- Behavioral parameters define controlled test conditions, not human forecasts.
- Production role
- Simulation supports release decisions; it does not replace production monitoring.