Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
GRPO training code which scales to 32xH100s for long horizon terminal/coding tasks. Base agent is now the top Qwen3 agent on Stanford's TerminalBench leaderboard.
| Date | Stars |
|---|---|
| 2026-07-31 | 398 |
| 2026-08-06 | 398 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# 🤓 Terminal-Bench-RL: Training Long-Horizon Terminal Agents with Reinforcement Learning
**TL;DR:**
- I successfully built stable RL training infrastructure that scales to 32x H100 GPUs across 4 bare metal nodes for training long-horizon terminal-based coding agents.
- In doing so, I developed Terminal-Agent-Qwen3-32b to become the **highest scoring Qwen3 agent on [terminal-bench](https://github.com/laude-institute/terminal-bench)**. WITHOUT training!:
- Unfortunately I am too GPU poor to train a SOTA coding agent 😅 (estimated £30k-£50k in compute required), but if anyone has the GPUs, this project should get you there!
This project builds upon the [rLLM framework](https://github.com/rllm-org/rllm) developed by UC Berkeley Sky Lab, extending it with custom environments and infrastructure specifically designed for terminal-based agent training.

## 📚 Table of Contents
- [💻💰 Training on $1M worth of compute](#-training-on-1m-worth-of-compute)
- [Other training runs](#other-training-runs)
- [🏆 Placing a spot on the Terminal Bench Leaderboard](#-placing-a-spot-on-the-terminal-bench-leaderboard)
- [🏗️ Action-Based Architecture](#️-action-based-architecture)
- [Training details](#training-details)
- [⚖️ Reward Design](#️-reward-design)
- [✅ Answer Verification (65% weight)](#-answer-verification-65-weight)
- [🤖 LLM-as-a-Judge (35% weight)](#-llm-as-a-judge-35-weight)
- [🧪 Judge Evaluation System](#-judge-evaluation-system)
- [🔄 Dynamic LLM Judge Switching](#-dynamic-llm-judge-switching)
- [🏗️ rLLM Integration Architecture](#️-rllm-integration-architecture)
- [Terminal Agent (`TerminalBenchAgent`)](#terminal-agent-terminalbenchagent)
- [Docker Environment (`DockerIsolatedEnv`)](#docker-environment-dockerisolatedenv)
- [🔄 Training & Rollout Details](#-training--rollout-details)
- [🔁 Rollout Strategy](#-rollout-strategy)
- [⚙️ Training Configuration Presets](#️-training-configuration-presets)
- [📊 Key Hyperparameters (Production Config)](#-key-hyperparameters-production-config)
- [🗂️ Dataset Details](#️-dataset-details)
- [📊 Dataset Structure](#-dataset-structure)
- [🐳 Training Environment Creation](#-training-environment-creation)
- [🧹 Docker Resource Management](#-docker-resource-management)
- [📂 Dataset Preparation Pipeline](#-dataset-preparation-pipeline)
- [🚀 Getting Started](#-getting-started)
- [Development Setup](#development-setup)
- [Terminal Bench Evaluation Reproduction](#terminal-bench-evaluation-reproduction)
- [Training Deployment](#training-deployment)
- [Single Node Training](#single-node-training)
- [Multi-Node Training](#multi-node-training)
- [🔮 Future Improvements](#-future-improvements)
- [🚀 Full Training Run](#-full-training-run)
- [🤓 Curriculum learning](#-curriculum-learning)
- [📊 Dataset Expansion](#-dataset-expansion)
- [🎯 Smart Data Filtering](#-smart-data-filtering)
- [Acknowledgements](#acknowledgements)
---
## 💻💰 Training on $1M worth of compute
This image shows my training code running at full throttle on 32x H100's, distributed across a 4x bare metal node cluster, training Qwen3-32B. Thank you [Hyperbolic](https://hyperbolic.ai/) for such a streamlined experience! This was fun!



Due to the extreme cost of this level of compute, I was not able to run it forever! So I made sure it worked and also ran the code on less extravagent hardware setups too.
### Other training runs
I also ran Qwen3-32B training for longer on a 2x bare metal node cluster with 16x H100s:


Also 1 VM instance wiExcerpt of 24,025 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:2f6bca246d0f312e, llm:description: 'GRPO training code which scales to 32xH100s for long horizon terminal/coding tasks. Base agent is now the top Qwen3 agent on Stanford's TerminalBench leaderboard.'; language: Python
matched fp:2f6bca246d0f312e, llm:description: 'GRPO training code which scales to 32xH100s for long horizon terminal/coding tasks. Base agent is now the top Qwen3 agent on Stanford's TerminalBench leaderboard.'; language: Python
matched fp:2f6bca246d0f312e, llm:description: 'GRPO training code which scales to 32xH100s for long horizon terminal/coding tasks. Base agent is now the top Qwen3 agent on Stanford's TerminalBench leaderboard.'; language: Python