skrl
Route public skrl 2.1.0 reinforcement-learning workflows across PyTorch, JAX, NVIDIA Warp, Gymnasium environments, multi-agent IPPO/MAPPO, runners, checkpoints, and experiment operations.
SKILL.mdskills/repositories/repo-skills/skrl/SKILL.md
GitHubskrl
Use this skill when a task names skrl, asks for modular reinforcement learning with Gym/Gymnasium, or needs skrl agents, models, memories, trainers, framework wrappers, IPPO/MAPPO, Runner configurations, checkpoints, or TensorBoard/W&B experiment controls. This is a public package-use guide, not a maintainer guide for editing a checkout.
Start with the route
- Identify whether the environment is single-agent or multi-agent and whether
it is Gymnasium, Gym, PettingZoo, or an external simulator. Read
environment-integrationbefore choosing a wrapper. - Choose exactly one compute family. Read
framework-selection, then use the matching route:torch-agent-training,jax-agent-training, orwarp-agent-training. - For IPPO, MAPPO, per-agent model/memory dictionaries, simultaneous scopes,
Runner YAML, or distributed launch, use
multi-agent-and-runnerafter the environment route. Do not reuse a single-agent model dictionary for a multi-agent constructor. - Read the nearest sub-skill reference for model role keys, spaces, config defaults, and failure recovery. Keep a small component/wrapper smoke separate from training, checkpoint writes, or external simulator startup.
Installation and first check
skrl requires Python 3.10 or newer and installs common dependencies
Gymnasium, packaging, TensorBoard, and tqdm. Install only the framework extra
needed by the task:
python -m pip install "skrl[torch]"
# JAX: install the desired CPU/CUDA jaxlib first, then:
python -m pip install "skrl[jax]"
python -m pip install "skrl[warp]"
Use skrl[all] only when the task genuinely needs all three framework
families. Optional simulator packages (Isaac Lab, ManiSkill, MuJoCo Playground,
Shimmy, and PettingZoo) are separate prerequisites; an skrl extra does not
install their simulators, assets, or middleware. Verify the selected extra
without assuming a CUDA device:
python -c "import skrl; print(skrl.__version__)"
python scripts/check_frameworks.py --help
python scripts/check_frameworks.py --framework torch
The bundled check reports missing optional dependencies and performs a CPU
configuration probe; it does not train, download data, write experiment files,
or prove accelerator execution. Read framework-selection
for the JAX installation ordering and device rules.
Core composition contract
A normal single-agent flow is: create the original environment, call the
framework-specific wrap_env, inspect observation_space, optional
state_space, action_space, num_envs, and device, define models with the
required role keys, allocate RandomMemory when the algorithm needs it,
configure an agent, and pass it to a trainer. PPO, for example, normally
needs policy and value models; off-policy algorithms add target and critic
roles. The framework routes contain the exact table.
For multi-agent flows, first inspect possible_agents, agents, per-agent
spaces and global state. Then construct nested dictionaries keyed by every
possible agent and use IPPO or MAPPO as documented by the multi-agent route.
Operational boundaries
- Set experiment
write_intervalandcheckpoint_intervalto0for a read-only construction probe.autocreates TensorBoard/checkpoint output during a real trainer run. - Checkpoint loading requires the same model architecture, role keys and
framework-specific module arrangement used at save time. Recreate the agent
before calling
loadand validate the path. - CPU imports do not validate CUDA, distributed NCCL/JAX multi-process, Warp kernels, or simulator integrations. External stacks require their own installation, assets, drivers, and often headless/GPU configuration.
- For install, import, device, wrapper, config, and checkpoint failures, start
with
troubleshooting.
Version and refresh
This graph was distilled from the repository state in
repo-provenance.md. Read it before using a
checkout-specific detail; if its commit, package version, public entry points,
or evidence paths differ, use refresh-repo-skill rather than treating this
graph as current.