This release is a pre-release and may not be stable for production use.
awp-sim
The reference world for the Agent World Protocol. It has one simulated arm and runs in either time model. It exists to exercise the protocol, not to model physics.
It is built from these parts:
- a sans-IO world engine;
- a WebSocket server;
- an audit log;
- a scenario suite that records wire traces.
It speaks AWP through the protocol layer of awp-python: its message codec, frame codec, schemas, and lifecycle table.
It targets specification revision 0.1-draft.9, pinned as the spec/ submodule. This is an alpha, so it will change along with the draft.
Status
The world is Core World: AWP-conformant against 0.1-draft.9 in both time models, and so is every feature it offers. awp-conformance reports no failure and nothing untested. conformance/ holds the reports and the evidence for their manual rows, and CI runs the suite on every change. Every recorded trace also passes the spec's own checker, which verifies:
- schemas;
- the action lifecycle table;
- idempotency;
- replay;
- frame sequencing.
| Implemented | Not implemented |
|---|---|
Lockstep (on_tick, any_session) and streaming |
barrier tick authority |
Inline and ws stream bindings |
Other stream bindings (webrtc, webtransport, shm, grpc) |
Full action lifecycle; preemption (replace, queue, reject, blend); idempotency |
Grant expiry |
| Watchdog and safe state, heartbeats, resumption with replay and acknowledgement | Multi-bind and shared control (one embodiment) |
Spatial, velocity, and rate envelopes (command_check), monitored during execution |
Robotics profile (a simulated arm proves nothing physical) |
Audit log with redaction and hash chain; e-stop; world.reset |
|
Beyond Core (--features): task, approval and standing approvals, transfer, seeding, snapshots, replay bundles, a servo command channel |
Quickstart
pip install --pre awp-sim
awp-sim serve # streaming world on ws://127.0.0.1:8710
awp-demo # in another terminal: awp-python's demo agent
Other ways to run it:
- Lockstep:
awp-sim serve --mode lockstepruns the lockstep world. - Remote access: any non-loopback bind requires a token (
--token, or$AWP_SIM_TOKEN) and TLS (--tls-cert,--tls-key). Pass the same token to the agent withawp-demo --token. - Logs: audit logs go to
./awp-audit, and--record-diralso writes each session's wire trace. - E-stop:
kill -USR1engages the e-stop andkill -USR2releases it.
Run the failure scenarios:
awp-sim scenarios --out traces
Layout
src/awp_sim/ world engine, arm, server, audit log, loopback, scenarios, replay, CLI
tests/ engine, server, feature, scenario, and evidence tests
conformance/ conformance reports and evidence
spec/ agent-world-protocol, pinned at spec-v0.1-draft.9
scripts/ trace checking against the spec's checker
Development
Requires Python 3.11+ and uv. Node 20+ is needed only for the trace checker.
git clone --recurse-submodules https://github.com/Hyperduality/awp-sim
cd awp-sim
uv sync
uv run ruff check && uv run ruff format --check
uv run mypy
uv run pytest --cov
uv run awp-sim scenarios --out traces && uv run python scripts/check_traces.py traces/*.jsonl
The world tracks the draft revision of awp-python. To move to a new one:
- Check out its tag in
spec/. - Update the
awp-pythonrequirement. - Fix whatever the tests report.
License
Apache-2.0. See LICENSE.
Release files for awp-sim 0.1.0a4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| awp_sim-0.1.0a4.tar.gz | 149.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| awp_sim-0.1.0a4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 201.3 kB
Release files / awp_sim-0.1.0a4.tar.gz
| Download URL | awp_sim-0.1.0a4.tar.gz |
|---|---|
| Size | 149.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f9ecf1b9273226348634daf024b62837a43286024f7a64214803b650df34a787
|
|
BLAKE2b-256 checksum How to use checksums |
cab752bc7b5958c912afb09af42842973ec9a3442bdc5cd1fed706dd63821aa0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / awp_sim-0.1.0a4-py3-none-any.whl
| Download URL | awp_sim-0.1.0a4-py3-none-any.whl |
|---|---|
| Size | 52.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6ce1e7515732d81c7cd2f22bf0d5149a5f08b4b5b61c8dca312eb315d5545982
|
|
BLAKE2b-256 checksum How to use checksums |
2a3bf8f5176be23a9d76f1e2003e66dbb254f421056f8868fdb1360441d70f26
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log