OpenRange
OpenRange is a multi-agent cybersecurity gymnasium where Red and Blue agents co-evolve on validated enterprise networks that mutate between episodes, requiring long-horizon planning across 50–100 step trajectories with s
Core trick
Compiles a business manifest into a network, validates it against reference traces, then freezes it as a snapshot for red-blue episodes.
Description
OpenRange is a multi-agent cybersecurity gymnasium where Red and Blue agents co-evolve on validated enterprise networks that mutate between episodes, requiring long-horizon planning across 50–100 step trajectories with sparse delayed rewards on infrastructure that exceeds any single context window. The environment drives its own improvement through a curriculum-aware mutation policy that generates new challenges, escalates difficulty, and couples adversarial self-play rewards so neither agent can plateau.
README excerpt
<div align="center"> <h1>OpenRange</h1> <img src="assets/evolving_gym_hero.png" alt="OpenRange: validator-admitted enterprise cyber range" width="800" /> <br /> <br /> <img src="https://img.shields.io/badge/Package-open--range-blue" alt="Package: open-range" /> <img src="https://img.shields.io/badge/Runtime-red%2Fblue%2Fgreen-red" alt="Runtime: red/blue/green" /> <img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache 2.0" /> </div> OpenRange is a manifest-first cyber range for training red and blue agents in bounded enterprise worlds. It compiles a business manifest into a world, validates that world with private reference traces and deterministic probes, freezes it as an immutable snapshot, and runs episodes with red, blue, and green-user dynamics. This branch exposes OpenRange as an installable Python package and CLI. It is not the legacy OpenEnv server/client stack from `main`. ## Why OpenRange Static cyber tasks are useful for evaluation, but they are a weak training target. They are fixed, narrow, easy to memorize, and usually offense-only. OpenRange is aimed at the opposite shape: families of admitted enterprise-like worlds that can be replayed, mutated between snapshots, and used for runtime and training-data generation. | | Static cyber task | OpenRange | |--|-------------------|-----------| | **World** | One fixed puzzle | Admitted enterprise world from a manifest | | **Reset** | Same challenge again | Load a stor