RAX: Scaling Online Exploration for Robot Agents
Runhan Huang1*, Xiangcheng Zhang1*†, Haoyu Chen1‡, Yitong Li2‡, Yen-Jen Wang3‡, Bohan Lyu3‡, Haotian Ye5, Chuye Hong3, Yixuan Wang2, Chloe Su1, Haoyu Xiong4, Yangzhen Wu3, Enze Xie2, Travis Manderson4, Stefano Ermon5, Pieter Abbeel3, Antonio Torralba4, Dawn Song3, Weirui Ye4, Yilun Du1
1Harvard University 2NVIDIA 3UC Berkeley 4MIT 5Stanford University
*Equal contribution †Project lead ‡Core contributor
- [2026-10-21] 🔥 DeepSeek and Kimi are here, and you can serve the model yourself! The simulation branches now run DeepSeek Harness and Kimi Code alongside Codex CLI and Claude Code, natively or in a container. Try local serving: three commands prepare, serve and validate DeepSeek-V4.1-Flash with vLLM on one node with four H200s, and Claude Code or DeepSeek Harness then drives the robot through your own endpoint, no hosted API needed. Kimi Code runs through OpenRouter, the Moonshot API, a Kimi account or any compatible endpoint. 👉 Self-host DeepSeek · Agent harnesses · DeepSeek model results
- [2026-10-17] 🌿 HumanoidArena and DexJoCo branches released, each as a container and a native branch. See Branches.
- [2026-10-16] 🗂️ All real-robot sessions released on Hugging Face. robot-session-logs holds every Franka and RB-Y1 session: the agent's full transcripts, every tool call, robot state, camera recordings and the code and skills it wrote. See Session logs.
- [2026-10-15] 📄 The paper is on arXiv: 2610.22496.
- [2026-10-13] 🌿 RoboDojo, BEHAVIOR-1K and real-robot branches released: simulation as a container and a native branch, and the real Franka FR3 and Rainbow RB-Y1 harnesses.
Important
The code lives on the branches below. main is an index; switch to a branch for the
harness, setup guide and usage guide of that setting. Each branch is self-contained.
| Branch | Setting | Contents | Status |
|---|---|---|---|
robodojo-behavior/container |
🖥️ Sim | RoboDojo and BEHAVIOR-1K (Isaac Sim 5.1). The agent runs in an offline Docker container; formal evaluation uses held-out layouts. | ✅ available |
robodojo-behavior/native |
🖥️ Sim | The same benchmarks with the agent CLIs running natively, sandboxed by the CLI itself. | ✅ available |
humanoid-arena/container |
🖥️ Sim | HumanoidArena (Isaac Sim 6.1): Unitree G1 with Dex3 hands under the frozen SONIC whole-body controller. The agent runs in an offline Docker container; formal evaluation uses the official test episodes. | ✅ available |
humanoid-arena/native |
🖥️ Sim | HumanoidArena with the agent CLIs running natively, sandboxed by the CLI itself. | ✅ available |
dexjoco/container |
🖥️ Sim | DexJoCo (MuJoCo): Franka arms with Allegro hands on one GPU. The agent runs in an offline Docker container; formal evaluation uses the official evaluation episodes. | ✅ available |
dexjoco/native |
🖥️ Sim | DexJoCo with the agent CLIs running natively, sandboxed by the CLI itself. | ✅ available |
real/franka |
🦾 Real | Franka FR3: one 7-DoF arm, Franka Hand, three ZED cameras. | ✅ available |
real/rainbow |
🦾 Real | Rainbow RB-Y1: wheeled base, 6-joint torso, two 7-DoF arms, grippers, head ZED 2i. | ✅ available |
RAX (Robot Agent eXploration) is an open-source framework for robot agents built around scaling exploration. A general-purpose coding agent (Codex CLI or Claude Code, with a frozen model) drives a robot through perception and control tools, learns the task from its own online experience, and compiles what worked into a modular robot program that runs without the agent.
- 🚫 No demonstrations. No action demonstration data, hand-engineered action primitives or value-function guidance.
- 📈 Exploration scales. Generalization to unseen environments improves consistently as online experience grows.
- ⚡ Exploration compiles into code. The program the agent writes runs up to 241× faster than the agent itself.
- 🤖 One harness, every body. Single-arm, bimanual, dexterous, mobile and humanoid robots, in simulation and on real hardware. New robots plug in through their API alone.
- 📈 Scaling exploration. Mean success on unseen scenes rises from 25% to 79% as the exploration budget grows from 4 to 128 episodes, against 41.2 for the best prior SOTA.
- 🖥️ Simulation. RAX beats the top baseline models by +37.4% on average.
- 🦾 Real robots. Learns memory-dependent, articulated, high-precision, deformable and long-horizon mobile manipulation tasks without human demonstrations.
Exploration compiles into code. The program RAX writes replaces the agent at run time:
| Task | Agent | Compiled program | Speed-up |
|---|---|---|---|
| Air fryer | 72 min | 18 s | 241× |
| Bandu tower | 17 min | 10 s | 103× |
| I want to... | Start here |
|---|---|
| Run the simulation benchmarks | robodojo-behavior/container |
| Run the simulation benchmarks without Docker (e.g. on a cluster that does not allow containers) | robodojo-behavior/native |
| Run the humanoid benchmarks | humanoid-arena/container or humanoid-arena/native |
| Run the dexterous-hand benchmarks | dexjoco/container or dexjoco/native |
| Run RAX on a Franka or an RB-Y1 | real/franka or real/rainbow |
| Bring RAX to a new robot | Real-robot adaptation guide, then fork the closest real-robot branch |
| Port the agent skills to a new robot | skills/ |
| Reuse task skills agents learned on a real robot | skills-lib |
The simulation branches support Codex CLI, Claude Code, DeepSeek Harness and Kimi Code in both native and container execution. Choose the harness that manages the agent's reasoning and tools, then connect it to OpenRouter, a supported vendor account or API, or your own model endpoint.
| Guide | What you can do |
|---|---|
| Agent harnesses | Compare backends, choose an authentication method and configure a session. |
| Self-host DeepSeek | Deploy the pinned model on four H200s, tune CUDA Graphs and DSpark, and validate the endpoint. |
| DeepSeek model results | Compare DexJoCo task scores, model configurations and API pricing. |
- Explore. The agent solves the task by hand from observations, calling the robot's tools one step at a time, and records what worked (preconditions, actions and effects) in its memory.
- Compile. It turns the successful decision sequence into a program,
controller.py:main(ctx), made of step functions that check what they observe, and tests it unattended. - Evaluate. In simulation, the frozen program, or a live copy of the agent, plays held-out layouts it has never seen. On hardware, the operator resets the scene and the program runs end to end.
Everything the agent learns lives in its workspace: TASK.md, AGENTS.md, skills/,
memory/ (notes, tips, verified skills) and code/<project>/controller.py, the compiled
program.
The harness (workspace generator, skills, launcher, sandbox, MCP frontend) never imports a robot or simulator package. Each simulator or robot is a backend behind the same tool interface, so one agent, one set of skills and one workflow run on every embodiment.
| 🖥️ Simulation | 🦾 Real robot |
|---|---|
|
|
The robot service is the only process that commands the robot. On real hardware the vendor stack stays untouched, safety is layered from a physical e-stop down to the vendor controller's limits, and the agent's sandbox has no path to the robot except the MCP tools. The adaptation guide covers the full design.
skills/ collects the universal, robot-agnostic skills every branch
gives its agent: manual and autonomous control, experience memory, learning from
demonstrations, transfer handoff, continual learning, multi-env and multi-agent
exploration, VLM perception, camera inspection, object localization and the live
stream.
- 🔌 Robot-agnostic. Skills name tools by role; a table maps each role to the tools of RoboDojo, BEHAVIOR-1K, Franka and RB-Y1.
- 🌿 Reflects each branch. A matrix links every skill to its version on each branch and says how simulation and real robots differ.
- 🦾 Ready to port. A
robot-interfacetemplate holds the facts a new robot fills in.
skills-lib is a companion repository holding the task skills agents wrote on real robots. RAX is the general harness; skills-lib is what its agents learned with it.
- 🦾 One library per embodiment. Each robot has its own branch:
rby1(box, bucket and chair moves, cup stacking, whole-body hand reach, a six-step room tidy) andfranka. - 🧾 Skills with evidence. Every skill keeps its code, preconditions, checks, failure
modes, run records and camera frames; it is
verifiedonly after two unattended successful runs. - 🔁 Grows across sessions. The harness clones the robot's library into each
session's workspace. Guided by the
continual-learningskill, the agent reads it, runs or composes the skills that match, and merges back what it improves. Every new real robot should get one; the adaptation guide shows how.
The raw logs of the real-robot sessions are on Hugging Face: robot-session-logs. It holds 5 Franka and 7 RB-Y1 sessions. Each one keeps the agent's full transcripts, every robot tool call with its result, the robot state log and camera recordings, the operator's instructions, and the code, notes and skills the agent wrote.
A new robot needs a backend, not a dataset. The real-robot adaptation guide walks through it:
- Five design principles: wire the vendor stack without modifying it, measure every control mode before advising the agent, universal skills in a sandbox with a skill library that persists across sessions, observe on request and record continuously, and keep the harness separate from the robot.
- The backend contract, layered safety and the shared error shape.
- The characterization protocol and how to turn its numbers into skills.
- A 12-step bring-up checklist, from mapping the system to a dry agent session with a person at the e-stop.
The simulation branches build on RoboDojo, BEHAVIOR-1K, HumanoidArena, SONIC, DexJoCo, MuJoCo, NVIDIA Isaac Sim and Isaac Lab, and cuRobo. Each branch lists the exact versions it pins.
RAX's original source code and accompanying documentation are licensed under the Apache License 2.0. Copyright 2026 RAX contributors.
Third-party code, simulator software, assets, model weights and datasets retain their own licenses. See NOTICE and the relevant upstream releases.
If you find RAX useful, please cite:
@article{huang2026scaling,
title={Scaling Online Exploration for Robot Agents},
author={Huang, Runhan and Zhang, Xiangcheng and Chen, Haoyu and Li, Yitong and Wang, Yen-Jen and Lyu, Bohan and Ye, Haotian and Hong, Chuye and Wang, Yixuan and Su, Chloe and others},
journal={arXiv preprint arXiv:2610.22496},
year={2026}
}