Skip to main content

Reproducible Agentic Environments System

CI Docs PyPI Python License: MIT

RAES, the Reproducible Agentic Environments System, helps you describe and check an agentic environment. RAES SDL is its YAML language for authored scenarios.

You can use RAES to record nodes, links, participants, objectives, workflows, variation, and evidence needs without tying the scenario to one deployment backend.

Validate your first scenario

You need Python 3.11 or newer.

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: VM
    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.

Choose your route

Understand what RAES promises

An authored scenario records intent. A processor and backend may turn supported parts of that intent into runtime resources. 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.

The repository does not include a production deployment backend or a managed environment service. It includes contracts, stubs, examples, conformance checks, and reference code. Read the current limits before choosing it for a study or integration.

See where RAES fits

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.

RAES separates these concerns:

  • Authored scenario: The meaning written in RAES SDL.
  • Processor: The code that validates, expands, and compiles that meaning.
  • Backend: The implementation that accepts a supported runtime request.
  • Runtime: The resources and participant activity that occur during a run.
  • Evidence: The records used to state and inspect a bounded result.

The strongest current examples come from cyber ranges and agent evaluation. The core model is not limited to those areas.

Work from a repository checkout

Install the locked development environment:

git clone https://github.com/RAESystem/rae.git
cd rae
uv sync --project implementations/python --all-extras --frozen
uv run --project implementations/python raes --help

Run the canonical verification graph:

uv tool run --from 'nox[uv]==2026.4.10' nox -f noxfile.py -s verify

Useful repository roots are:

  • docs/public/ for hosted reader documentation;
  • docs/README.md for developer and working records;
  • specs/ for normative specifications;
  • contracts/ for published schemas and fixtures;
  • examples/ for authored scenarios and reusable patterns;
  • implementations/python/ for the reference implementation.

Project status

RAES is an academic and engineering project with one maintainer. Contributions are welcome. The project does not require a second maintainer or independent reviewer for every change.

Release Please owns package versions, GitHub releases, and CHANGELOG.md. Published schemas carry separate stability labels. See GOVERNANCE.md and MAINTAINERS.md for the current decision and maintenance model.

Cite RAES

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

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

raes-3.0.0.tar.gz (2.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

raes-3.0.0-py3-none-any.whl (2.4 MB view details)

Uploaded Python 3

File details

Details for the file raes-3.0.0.tar.gz.

File metadata

  • Download URL: raes-3.0.0.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for raes-3.0.0.tar.gz
Algorithm Hash digest
SHA256 8fe3e6cdfa9d53f7ff09e0faeaec54c8abe9518211f2a5c96ced55a0dc9bcbda
MD5 796d00709fa24f9e403d79a9e3d684c1
BLAKE2b-256 49b5c2705152dfb74f5e15671aa38b963b4ce9d6188849e1e306b7165ad03b11

See more details on using hashes here.

Provenance

The following attestation bundles were made for raes-3.0.0.tar.gz:

Publisher: release-please.yml on RAESystem/rae

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file raes-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: raes-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for raes-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c580c88447caf86643093dc7a39be8aa9983f0f10b81046221a4533ffbe9bcd5
MD5 ebe6b96844ad1e6c337252ac92e70474
BLAKE2b-256 44e91651aebe2b98030e47cf0b9e56c3dee6a6f89274fcb870176f4bf5c9867d

See more details on using hashes here.

Provenance

The following attestation bundles were made for raes-3.0.0-py3-none-any.whl:

Publisher: release-please.yml on RAESystem/rae

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

3.5.0

2 files

3.3.0

2 files

3.2.0

2 files

3.1.0

2 files

This release

3.0.0 This release

2 files

2.0.0

2 files

1.1.0

2 files

0.25.0

2 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