Model or dataset
AgileRL/AgileRL avatar
AgileRL/AgileRL

AgileRL: evolutionary hyperparameter optimization as a replacement for repeated training runs

Streamlining reinforcement learning with RLOps. State-of-the-art RL algorithms and tools, with 10x faster training through evolutionary hyperparameter optimization.

950 stars79 forksPythonApache-2.0

At a glance

What is it?
AgileRL is an Apache-2.0 Python library that folds hyperparameter search into a single training run using evolutionary population methods, and extends the same idea to multi-agent RL, offline training and LLM fine-tuning. The interesting part is the mechanism; the part to check before adopting is whether your workflow looks like the benchmarks it publishes.
Who is it for?
Adopt AgileRL if your bottleneck is hyperparameter search rather than environment throughput, and you are training on-policy or off-policy agents where a population of mutants can share the environment. Do not adopt it if you need a single reproducible training curve for a paper, or if your project depends on an algorithm outside the evolvable set.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem AgileRL targets is the cost of finding hyperparameters, not the cost of a training step

Most reinforcement learning libraries assume you already know which hyperparameters work. The README makes this explicit: algorithms and libraries are usually benchmarked once optimal hyperparameters are known, but reaching that point can take hundreds or thousands of experiments. AgileRL attacks that pre-training phase. Instead of running a full training job per hyperparameter configuration and comparing final returns, it maintains a population of agents inside one run and evolves them. The README claims this produces an order of magnitude speedup in hyperparameter optimization versus popular RL training frameworks combined with Optuna. The audience is therefore teams that already have an environment and an algorithm choice, and are stuck in a sweep loop rather than in a modelling problem. It is a poor fit for someone who wants to read a single clean training curve, because the population approach deliberately spends compute on exploration of the hyperparameter space.

Evolutionary HPO inside the training loop, and what the population costs you

The mechanism the documentation describes is evolutionary HPO: agents are mutated and selected during training so that the run converges on good hyperparameters without separate training runs. The README frames the comparison in terms of global steps, defined as the sum of every step taken by any agent in the environment, including across an entire population. That definition matters because it is the honest denominator. A single AgileRL run is not cheaper per step than a single baseline run; it is cheaper in total because it replaces many runs. The trade-off is memory and environment throughput. A population of networks has to coexist, and the environment has to absorb steps from multiple agents. The benchmark chart for classic RL compares one AgileRL run with automatic tuning against Optuna's multiple training runs, which is the correct comparison and also the one that flatters the approach. If your environment is slow or stateful, the population amplifies that cost rather than hiding it. The README also notes multi-agent support using the Petting Zoo-style parallel API, with MADDPG and MATD3 benchmarked against epymarl's MADDPG with grid-search HPO on simple speaker listener and simple spread.

LLM fine-tuning is the newest surface, and the benchmark details are worth reading closely

The README describes evolvable LLM fine-tuning as an included capability, and the LLM benchmark is the most specific claim in the repository. AgileRL's CISPO was benchmarked against ART and TRL on the GEM Sudoku Hard task, described as a multi-turn problem requiring a context length of 32k tokens and up to 50 turns per rollout. All runs used the same starting hyperparameters. The sync AgileRL run used a single agent with the framework; the async and HPO runs were performed on Arena, AgileRL's hosted RLOps platform. AgileRL runs used A100 40GB nodes while ART and TRL required A100 80GB nodes, attributed in the README to a lack of optimizations in those frameworks. Two things follow from this. First, part of the reported advantage comes from memory efficiency, not only from search. Second, the strongest configuration in the comparison ran on AgileRL's own hosted platform, so reproducing the async and HPO numbers locally is not something the README shows how to do. The recent release notes for v2.18.2 and agilerl-arena v0.9.0 mention clamping generation to remaining context per turn, which suggests multi-turn context handling is still being adjusted.

Installing AgileRL and choosing the extras you actually need

The base install is a single command: pip install agilerl. For development mode the README gives git clone https://github.com/AgileRL/AgileRL.git followed by cd AgileRL and pip install -e ., with a note that extras must be quoted in development mode. The extras are where the real dependency decisions live. agilerl[box2d] pulls in the Box2D physics engine for Gymnasium environments. agilerl[arena] installs the Arena SDK and CLI, which the README describes as validating custom environments and training and deploying agents on managed cloud infrastructure. agilerl[llm] is required for LLM reinforcement fine-tuning. agilerl[all] covers everything. If you only need classic on-policy or off-policy training, the base package is the right starting point, and adding agilerl[all] will pull in physics and LLM dependencies you may never import. The repository topics list distributed training, and the README links a distributed training documentation section, but the install table does not map distributed training to a specific extra, so check the docs before assuming it ships with the base install.

Where AgileRL is the wrong tool

Evolutionary HPO assumes the hyperparameter landscape can be explored by mutating a population during a single run. If your evaluation protocol requires a fixed configuration for reproducibility, for example a paper submission where reviewers expect one seed and one set of hyperparameters, the population approach is a liability rather than an optimization. The same applies to debugging. When a run fails, a single-agent training loop gives you one loss curve to inspect; a population gives you several, plus selection dynamics that can mask the failure. There is also a hardware constraint implied by the benchmark: AgileRL's LLM runs used A100 40GB nodes, which is a smaller footprint than the 80GB nodes the README says ART and TRL required, but it is still datacenter-class hardware. Anyone expecting to run the LLM fine-tuning path on a consumer GPU should treat that as unverified from the supplied material. Finally, the algorithm coverage is described as constantly expanding, which is a polite way of saying it is not complete. If your method is not in the evolvable set, the library's main advantage does not apply to you.

AgileRL against Optuna, and against a plain RL library

The comparison the README draws is against Optuna, and the difference is architectural rather than a matter of tuning. Optuna is a general hyperparameter search framework: it samples configurations, launches training runs, reads back a metric, and repeats. Each trial is a separate process with its own environment and its own network. AgileRL keeps the search inside the training process, so the population shares the run and the environment steps are counted globally. That is why the README can claim an order of magnitude reduction in optimization time while still admitting the population takes more steps per wall-clock second than a single agent. The other comparison in the README is against epymarl for multi-agent work, where the difference is grid-search HPO versus evolutionary HPO on MADDPG. Against a plain RL library with no search at all, AgileRL is not competing on algorithm implementation quality; it is competing on the fact that you do not have to write the sweep yourself. If you already have a working Optuna pipeline and your trials are cheap, the migration is not obviously worth it.

Licence, release cadence and what upgrading costs

AgileRL is Apache-2.0, which permits commercial use and modification provided the licence and notices are preserved. That is a permissive choice, and it is consistent with a library that wants to be embedded in other people's training stacks. It is not legal advice; check the licence text and your own obligations. On maintenance, the release history supplied shows v2.21.0 on 2026-09-10 with the note dispatch local training through paradigm strategies, v2.18.2 on 2026-09-08 clamping generation to remaining context per turn, and agilerl-arena v0.9.0 on the same day with the same clamp note. Two things stand out. First, the cadence is fast, with multiple releases in a single week, so pinning a version is advisable for anything you need to reproduce. Second, v2.21.0 changes how local training is dispatched, which is the kind of internal restructuring that can move behaviour without changing your code. The version jump from 2.18.2 to 2.21.0 within days also suggests minor versions are not a stability promise. Read the release notes before upgrading rather than assuming a patch-level change.

Editorial conclusion

Adopt AgileRL if your bottleneck is hyperparameter search rather than environment throughput, and you are training on-policy or off-policy agents where a population of mutants can share the environment. Do not adopt it if you need a single reproducible training curve for a paper, or if your project depends on an algorithm outside the evolvable set. Before committing, verify that your environment exposes the parallel Petting Zoo-style API for multi-agent work, that your hardware fits the memory profile of a population rather than one network, and that pip install agilerl[llm] resolves against your CUDA and PyTorch versions.

Official sources

  1. AgileRL/AgileRL on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
Community notes

Community notes