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 test doubles for backend authors; 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.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, and conformance tests. It does not include a concrete deployment backend or a managed environment service. RAES 7.0.0 was the last release to bundle a reference backend; see the concrete backends migration. 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 9.2.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 9.2.0
File Size Uploaded Provenance Actions
raes-9.2.0.tar.gz 5.5 MB With provenance Details for raes-9.2.0.tar.gz

Built distribution (wheel)

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

Total release size: 10.5 MB

Release files / raes-9.2.0.tar.gz

Download URL raes-9.2.0.tar.gz
Size 5.5 MB
Tags Source
SHA-256 checksum
How to use checksums
ba6403ff6496b0da529e4ee9de1be8ddf156e4359d9d2df1e55a71670cd97f9d
BLAKE2b-256 checksum
How to use checksums
ec3a227adc79978a22227905142fc48398f81de4a0ecebdc5326bbbe3341a362
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

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

Download URL raes-9.2.0-py3-none-any.whl
Size 5.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7f5562544d3d87c99f1cae436c4bff8a01636a6641d35a45c106af347181992a
BLAKE2b-256 checksum
How to use checksums
62adcfca99cdaa697d7c88ba449099f9ea5cc09796849d38b888d46607279ac1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 29, 2026.

Transparency log

Security for raes 9.2.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for raes-9.2.0.tar.gz

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 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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