Skip to main content

Reproducible Agentic Environments System

CI Docs OpenSSF Scorecard PyPI Python License: MIT

RAES, the Reproducible Agentic Environments System, helps you describe an agentic environment, check it before anything runs, and keep evidence about what a run realized. RAES SDL is its YAML language for authored scenarios.

A RAES scenario records the nodes, links, participants, objectives, workflows, variation, and evidence needs of an environment. RAES checks the scenario against published rules. A backend that supports the features it needs can then run it. The backend's reports show what was realized and observed.

RAES validates an authored scenario and compiles a plan. An external backend, such as Shifter, LilRAE, or your own backend, realizes and runs it. Simulator and gym adapters are unreleased. Reports and evidence describe the result.

How a scenario reaches a run:

  1. Author a scenario in RAES SDL. RAES validates it and compiles a plan.
  2. Choose an external backend that supports what the scenario needs. Shifter and LilRAE (formerly APTL) are examples. You can also write your own backend. Simulator and gym adapters are unreleased.
  3. The backend builds the environment, and participants act in it.
  4. Reports and evidence describe what was realized and observed.

What RAES provides

RAES owns the meaning of an authored scenario and the formats around it:

  • the RAES SDL language, its specifications, and published schemas;
  • published contracts for the data that tools and backends exchange;
  • validation and processing that check a scenario and compile plans;
  • conformance tests that check whether a backend honors a stated boundary;
  • reference tools: the Python package, the raes command, examples, and a reference emulation backend; and
  • evidence structures that record what was requested, realized, and observed.

These parts make scenario intent portable, checkable, and shareable. They also tie that intent to evidence about what a backend realized.

Cyber, AI security, AI safety, testing, research, and evaluation are non-exhaustive application areas. Additional domains can add their own profiles, assets, examples, vocabularies, backends, and evidence rules.

Validate your first scenario

You need standard CPython 3.11 through 3.14. Install the published package in a virtual environment:

python -m venv .venv
source .venv/bin/activate
python -m pip install raes

Save this file as first-scenario.sdl.yaml:

name: first-scenario
description: A small network with one Linux host.

nodes:
  lab-network:
    type: Switch
  web:
    type: compute
    os: linux
    resources:
      ram: 2 GiB
      cpu: 1

infrastructure:
  lab-network:
    count: 1
    properties:
      cidr: 10.0.0.0/24
      gateway: 10.0.0.1
  web:
    count: 1
    links:
      - lab-network

Validate it:

python - <<'PY'
from pathlib import Path
from raes import parse_sdl_file

scenario = parse_sdl_file(Path("first-scenario.sdl.yaml"))
print(f"Validated {scenario.name} with {len(scenario.nodes)} nodes.")
PY

The command prints:

Validated first-scenario with 2 nodes.

RAES has checked the file shape and current semantic rules. It has not created infrastructure. Continue with the quickstart to learn what each part means.

Run a scenario on a backend

This repository includes contracts, stubs, a reference emulation backend, and conformance tests. It does not include a production deployment backend or a managed environment service. External backends realize scenarios outside this repository:

  • Shifter is a multi-user cyber range platform.
  • LilRAE, formerly APTL, is a single-user backend for local labs, cyber ranges, and other environments.
  • Your own backend can declare what it supports in a backend manifest and test that claim with the RAES conformance tests. Start with the backend and conformance guide.
  • OpenRAE/adapters holds adapter projects for simulators and cyber gyms. None is released. Each adapter's own conformance reports and evidence records state what it can run.

Shifter, LilRAE, and the adapters are separate projects with their own documentation. This repository does not ship or certify them. A backend's own reports and conformance evidence state what it supports.

Package and share scenarios

OpenRAE/env-packs owns environment pack structure, schemas, templates, and the tools to author, validate, and release packs. A pack carries RAES SDL scenarios and other reusable assets. RAES remains authoritative for the SDL, concept, and reusable-asset trust-policy meanings a pack relies on. Catalogs make packs easier to find. They do not add SDL semantics.

To build a pack, follow the env-packs quickstart. It scaffolds a first pack and validates it.

Choose your route

Know the limits

An authored scenario records intent. A backend may realize only the parts it supports. Reports and evidence show what was accepted, changed, observed, or left unsupported.

RAES can support a bounded reproduction attempt. It does not promise deterministic runtime behavior, equal outcomes, exact replay, scientific validity, or reproducibility. Read the current limits before choosing RAES for a study or integration.

Cite RAES

@software{raes,
  author  = {Edwards, Brad},
  title   = {RAES: Reproducible Agentic Environments System},
  year    = {2026},
  license = {MIT},
  url     = {https://github.com/OpenRAE/rae}
}

Also record the release or commit, scenario, backend, and run evidence that you used. The citation guide lists what to include.

RAES is released under the MIT License. Third-party notices are in THIRD_PARTY_NOTICES.md.

Metadata

Release files for raes 7.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for raes 7.0.0
File Size Uploaded
raes-7.0.0.tar.gz 5.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for raes 7.0.0
File Interpreter ABI Platform
raes-7.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 9.6 MB

Release files / raes-7.0.0.tar.gz

Download URL raes-7.0.0.tar.gz
Size 5.0 MB
Tags Source
SHA-256 checksum
How to use checksums
e92685889f7a73ee806802692504a2d435d2c5e7ab2385800db6a8f134240371
BLAKE2b-256 checksum
How to use checksums
413fb1734f6e57e0563030c15dede41702f6e3e5d799aec7baea337253b1c36a
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 Oct 15, 2026.

Transparency log

Release files / raes-7.0.0-py3-none-any.whl

Download URL raes-7.0.0-py3-none-any.whl
Size 4.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
3248f494ae635cd890a7697d14d31101c5525ffb92e729f4fe3f28377cc450aa
BLAKE2b-256 checksum
How to use checksums
d66dba754c6cd70a50b5b74fe974781d4eb0a83465268f617c434e92cda09763
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 Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

7.0.0 This release

2 release files

6.0.1

2 release files

5.0.0

2 release files

4.1.0

2 release files

3.5.0

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.0.0

2 release files

1.1.0

2 release files

0.25.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page