> ## Documentation Index
> Fetch the complete documentation index at: https://www.agentworldprotocol.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sim to real

> One agent binary, two worlds.

The portability contract is AWP-TIM-008: a world offering both time models must keep manifests, schemas, and lifecycles identical across them — and a sim adapter and a robot adapter for the same platform should share one manifest by construction.

What changes between sim and real:

| Aspect               | Sim (lockstep)     | Real (streaming)                                                    |
| -------------------- | ------------------ | ------------------------------------------------------------------- |
| Session mode         | `lockstep`         | `streaming`                                                         |
| Observation delivery | pulled per tick    | pushed with capture and send time; staleness measured per frame     |
| Clock                | session clock only | agent clock synchronized over the heartbeat (AWP-CLK-008)           |
| Deadlines            | advisory           | binding (AWP-ACT-004)                                               |
| Stale intents        | advisory           | `basis_ts_mono_ns` checked against `max_basis_age_ms` (AWP-SAF-013) |
| Determinism          | seeded, replayable | none                                                                |
| Envelopes            | often loose        | enforced tight                                                      |

What must not change: channel ids, action types, param schemas, frames, units. Practical recipe: develop in lockstep against a simulator adapter (the planned `awp-sim` is the reference design); graduate to *streaming against the simulator* (same worlds often offer both) to shake out staleness handling; only then point the same binary at the robotics adapter with conservative envelopes and approval on risky types.
