Skip to main content
A cookbook is a small Python package that ships an AgentFlow + an Evaluator together with a prepare_data.py and a pair of train_{tinker,verl}.sh scripts. Each cookbook is self-contained: install it once with pip install -e cookbooks/<name>, and the rLLM CLI discovers the agent and the evaluator by name through Python entry points.
Each cookbook is a plain async function that calls an OpenAI-compatible endpoint and returns an Episode. See AgentFlow & Evaluator for the protocol.

Available cookbooks

Click into any row for the deep-dive page — install flow, dataset, eval and train commands, and key code snippets. The full source, including the launch scripts, lives at cookbooks/ on GitHub.

Anatomy of a cookbook

Every cookbook follows the same shape:

Entry-point declaration

In pyproject.toml, the cookbook registers its flow and evaluator under two well-known groups:
The CLI’s --agent <name> and --evaluator <name> flags resolve through these groups (see rllm.eval.agent_loader and rllm.eval.evaluator_loader).

Module-name collision gotcha

Top-level Python module names must be unique across all installed cookbooks — pip install -e puts each cookbook’s modules at the import root. If two cookbooks both ship a top-level evaluator.py, only one wins. Convention: prefix module names with the cookbook name. cookbooks/math/ ships math_flow.py + math_eval.py, not flow.py + evaluator.py. cookbooks/finqa/ ships finqa_flow.py + finqa_eval.py + finqa_tools.py + finqa_constants.py.

Install + run

The same flow works for any cookbook — substitute the cookbook name and dataset.

Authoring a new cookbook

The cleanest starting point is to copy an existing cookbook that matches your interaction shape: Then:
  1. Rename the modules (prefix with your cookbook name to avoid collisions).
  2. Rewrite the flow body — call the LLM, drive your loop, return an Episode with the model’s final answer in episode.artifacts["answer"].
  3. Rewrite the evaluator — read artifacts["answer"], return an EvalOutput.
  4. Update the entry-point names in pyproject.toml.
  5. pip install --no-deps -e cookbooks/<name> and test with rllm eval.