Research runs#
Enter research deliberately, drive a run, and read what residents actually did.
Before you start#
- The service running, with operator access if a token is set.
- A decision about residents: deterministic mock actors need no credentials; provider-backed residents need a configured provider and will cost money. See Configuration.
Provider-backed residents make paid API calls. Recorded spend is derived from a dated price table and is an estimate, not a billing record. Confirm which residents are provider-backed before starting a long run.
Start a run#
- Open the Director.
- Choose the scenario or world program the run should exercise.
- Confirm which residents are configured and which are selected. The Director discloses configured and selected separately, and selecting a resident does not invoke a provider on its own.
- Start the run.
Opening the Director did not start this — you did, in this step. That separation is deliberate.
Control a run#
A run can be paused and resumed. Pausing stops the loop advancing; it does not discard what has happened.
At world level the lifecycle is broader: a world is advancing, on Hold, or archived.
| State | Effect |
|---|---|
| Advancing | Autonomous advancement, schedules, resident and external actions, injects and Event Arc mutations all proceed |
| Hold | All world-owned writes are fenced, including credentials; read access is preserved |
| Archived | A durable, audited, read-only terminal transition |
Archive is terminal and audited. It is distinct from purge and from the append-only research archive. Do not use it to pause work — use Hold, which is reversible.
Inject events#
Injects introduce an event into a running world. Use them to put a specific situation in front of residents rather than waiting for ambient life to produce one.
An inject is a world-owned write, so it is fenced while the world is on Hold.
Read the results#
The operator feed unifies what happened: events, costs, provider health, loop health and budget health. Event and cost totals are monotonic, so a falling total means you are looking at a different run rather than a corrected one.
Two things the feed cannot tell you, and you should not infer:
- Blocked and refrained are recorded identically. An action the system denied and an action the resident declined look the same.
- Simulation-awareness detection reads inputs only. A resident that voices awareness in its own output is not flagged.
Bounded feedback and memory#
Action results are fed back to residents in bounded form, and residents carry memory digests and persistent inter-actor messaging. Memory is world-scoped, and the Director-only inspector groups it by provenance — current, archived, ambiguous, unknown, and unscoped.
Deterministic mock orchestration proves export safety and reproducibility. It does not prove memory effectiveness or real-provider behaviour; do not read a clean mock run as evidence about a provider-backed one.
Verify#
- A started run appears in the runs list with a monotonic event count.
- Pausing halts new events; resuming continues them.
- With the world on Hold, an inject is refused while the Now surface still reads.
If it does not work#
| Symptom | Check | Recovery |
|---|---|---|
| One resident fails every turn | Whether its provider is configured | The run continues; configure the provider or switch the resident to mock |
| An inject is refused | Whether the world is on Hold | Release the Hold, or accept that the fence is working |
| Costs show as zero on paid calls | Whether the model appears in the price table | Unknown models fall outside the table; treat spend as unrecorded rather than zero |
| The operational score never exceeds 0.75 | The goal dimension | Expected — see Overview |
| A run cannot be restarted from an archived world | Archive is terminal | Work from a live world; archived state is read-only |