When To Use
Use this skill when a user wants to train, resume, evaluate, or configure reinforcement learning for an Isaac Lab task.
Do not use this skill to design environment observations, rewards, or resets from scratch. Use isaaclab-building-environments (skills/user/create-environments/) for environment construction first, and use isaaclab-debugging-rl-training when training behavior or reward metrics are already failing. Use isaaclab-training-multi-gpu for multi-GPU or multi-node launches and for distributed runs that hang or fail inside NCCL.
Workflow
- Identify the registered task name, workflow type, action space, observation space, target backend, device, and desired RL framework.
- Read the RL training guide and the training tutorial before writing commands or configs.
- Start from an existing agent config under
source/isaaclab_tasks/isaaclab_tasks/that matches the framework and task family. - Keep framework-specific config formats separate. Do not mix RSL-RL Python configs with RL-Games, SKRL, or SB3 YAML/config files.
- Use suffixless task names in commands, for example
Isaac-Cartpole. - From the Isaac Lab checkout, use
uv run isaaclab trainanduv run isaaclab playrather than the deprecated per-library scripts underscripts/reinforcement_learning/. If--rl_libraryis omitted, the command loads the task's registereddefault_agent; pass--rl_libraryto select a different library. To drive train/play from Python instead, use thetrain/playfunctions withTrainingRequest/PlaybackRequestfromisaaclab_rl(see Examples).playapplies the environment config'splay_mode()method (caps environments at 50 and disables observation noise or corruption, depending on the workflow); override that method on a task config for custom playback. - Omit visualizer flags for fastest headless training. Use
--vizonly when an explicit visualizer is needed. - Run a small smoke training job before scaling environment count, horizon, network size, or logging integrations.
- For visual observations, confirm the sensor pipeline and renderer requirements before enabling large environment counts.
- For multi-backend tasks, validate training on one backend before introducing backend presets.
- Record the exact task, framework, backend, seed, and config overrides needed to reproduce the result.
Validation
Use this checklist:
- Confirm the task can reset and step without the training runner.
- Confirm the selected agent config belongs to the intended RL framework.
- Run a short training command with a small number of environments.
- Resume or load a checkpoint only after the initial run writes expected artifacts.
- Check logs for device, observation shape, action shape, and backend errors.
For skill changes, run:
uv run --no-project python tools/skills/cli.py check
Maintenance
Keep this skill synchronized with docs/source/concepts/reinforcement_learning.rst, docs/source/setup/installation/index.rst, RL training tutorials under docs/source/how-to/, and agent configs under source/isaaclab_tasks/isaaclab_tasks/. If framework commands or config formats change, update the official training docs or maintained examples first.