From the team behind Papers with Code, Llama 2 and Llama 3
The Home of RLEnvironments
Train and evaluate agents on 360+ reinforcement learning environments with zero infrastructure setup.
Your agent
Model call
Any provider or harness
OpenReward
Session router
One open API
Environment
Isolated runtime
Scales on demand
Training loop
Verified reward
Ready to hillclimb
Built for frontier teams
330+ environments
The platform
Improve your models with the highest-quality RL environments
OpenReward provides high-quality environments through API endpoints, allowing you to improve your models with minimal integration cost. It is built on an open standard that lets you run on our infrastructure or yours.
Quickstart
Run your first rollout.
Sample from an OpenReward environment using a single API.
The example is ready to run as shown.
Set your API keys
export OPENAI_API_KEY='your-openai-api-key'
export OPENREWARD_API_KEY='your-openreward-api-key'Run the rollout
from openai import OpenAI
from openreward import OpenReward
import json
or_client = OpenReward()
oai_client = OpenAI()
MODEL_NAME = "gpt-5.4"
environment = or_client.environments.get(name="kanishk/EndlessTerminals")
tasks = environment.list_tasks(split="train")
tools = environment.list_tools(format="openai")
example_task = tasks[0]
with environment.session(task=example_task) as session:
rollout = or_client.rollout.create(
run_name="EndlessTerminals-train-quickstart",
rollout_name="example_task",
environment="kanishk/EndlessTerminals",
split="train",
print_messages=True
)
prompt = session.get_prompt()
input_list = [{"role": "user", "content": prompt[0].text}]
rollout.log_openai_response(input_list[0])
finished = False
while not finished:
response = oai_client.responses.create(
model=MODEL_NAME,
tools=tools,
input=input_list
)
rollout.log_openai_response(response)
input_list += response.output
for item in response.output:
if item.type == "function_call":
tool_result = session.call_tool(item.name, json.loads(str(item.arguments)))
reward = tool_result.reward
finished = tool_result.finished
tool_result_item = {
"type": "function_call_output",
"call_id": item.call_id,
"output": tool_result.blocks[0].text
}
input_list.append(tool_result_item)
rollout.log_openai_response(tool_result_item, reward=reward, is_finished=finished)
if tool_result.finished:
finished = True
break
or_client.rollout.close()Environment catalogue
Built for more than toy tasks
Train and evaluate across browsers, science, ML research, games, data work, and more.
Eigent/SETA
18Implementation of the SETA environment https://www.camel-ai.org/blogs/seta-scaling-environments-for-terminal-agents
Command Line Interface TasksTrain1K-10K tasksEigent/toolathlon-gym
15Large-Scale Long-Horizon Environments for Tool-Use Agents 503 multi-tool tasks backed by a local PostgreSQL database — no external APIs required This is a port of EigentAI's [Toolathlon-GYM](https://www.eigent.ai/blog/toolathlon-gym-large-scale-long-horizon-environments-for-tool-use-agents) to OpenReward.
Tool Use in Large Language ModelsTrain500-1K tasksbenchflow/skillsbench
14SkillsBench is an evaluation framework that measures how skills work, and the first dataset that measures how powerful models are at using skills on expert-curated tasks across high-GDP-value, diverse domains.
Diverse Task EvaluationTest<50 tasksHarborCommunityLeaderboardmartian/fs-review
12Review a full set of financial statements the way an auditor does — as one interlinked whole — and flag where the numbers don't tie out.
Financial Statement Analysis
Open by design
An Open Environment Standard
OpenReward is built on the independent Open Reward Standard, a common contract for tasks, tools, observations and rewards that works across infrastructure.
Read the standardRun anywhere
The same environment contract works on a laptop, your cluster or OpenReward.
Scale when needed
Use managed hosting for rollout bursts without changing agent code.
Leave when you like
Move environments in or out freely. Your work is never trapped in our platform.