> ## 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.

# AWP vs Gym / dm_env

> Training APIs vs an inference-time protocol.

Gym and dm\_env standardized the **training loop**: in-process, lockstep `step(action) → (obs, reward, done)`, reward-centric. AWP standardizes **inference-time interaction across a process boundary**: self-describing worlds, two time models, action lifecycles, safety, sessions.

Gymnasium and dm\_env do expose their interfaces at runtime: `env.action_space` and `env.observation_space` (or `action_spec()` / `observation_spec()`) describe the shapes and bounds a policy must handle, and code routinely introspects them. The differences that matter are elsewhere:

* **Boundary.** Spaces are Python objects in the trainer's process. An AWP manifest is a wire artifact a remote agent reads before binding, and it also carries embodiments, time models, units and frames, and the safety policy, none of which a space describes.
* **Time.** `step()` is the only time model; there is no streaming mode where the world advances while the policy thinks.
* **Actions.** A Gym action is applied atomically per step. An AWP action has admission, permission, execution, progress, preemption, and a deadline.
* **Authority and audit.** There are no grants, envelopes, approval hooks, or a normative session record; the trainer is trusted by construction.
* **Reward.** AWP has no reward in the core; worlds MAY expose reward as an ordinary channel, keeping the protocol reward-agnostic.

They compose: the planned [gymnasium-bridge](/adapters/gymnasium-bridge) exposes a Gymnasium env as an AWP world, generating the channel and action schemas from the runtime spaces. It can claim the sim profile only for environments whose state can be snapshotted; otherwise it claims Core.
