Skip to content
robot-agent-explorationPublic

About

RAX harness: coding agents that learn robot tasks by online exploration

Resources

Stars

173 stars

Watchers

0 watching

Forks

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAX logo

RAX: Scaling Online Exploration for Robot Agents

arXiv Paper Project WebPage Videos Skill Library Session Logs

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

📰 News

  • [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.

🌿 Branches

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.

📊 Results

  • 📈 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×

🚀 Getting started

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

Agent harnesses and model providers

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.

🧠 How RAX works

RAX method overview

  1. 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.
  2. 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.
  3. 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.

System architecture

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
coding agent (Codex / Claude Code)
  in an offline Docker container
  ├─ MCP ─────────────┐
  └─ Bash / Python ───┴─► robot service
                          ├─ harness tools:
                          │   status, episode
                          │   control, Gemini
                          └─ backend
                              RoboDojo │ BEHAVIOR-1K
                              ├─ control · planner
                              └─ cameras
operator ── arm / disarm ──► <session>/operator/
                  (agent cannot write; read every tick)
coding agent (sandboxed CLI)
  ├─ MCP ─────────────┐
  └─ Bash / Python ───┴─► robot service (audit log)
                          ├─ harness tools:
                          │   status, operator, Gemini
                          └─ backend services/<robot>/
                              ├─ vendor control SDK
                              ├─ planner · URDF · cameras
                              └─ recorder (read-only)

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.

🧩 Agent skills

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.

📚 Skill library

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) and franka.
  • 🧾 Skills with evidence. Every skill keeps its code, preconditions, checks, failure modes, run records and camera frames; it is verified only after two unattended successful runs.
  • 🔁 Grows across sessions. The harness clones the robot's library into each session's workspace. Guided by the continual-learning skill, 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.

🗂️ Session logs

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.

🦾 Bring RAX to your robot

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.

🙏 Acknowledgements

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.

📄 License

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.

📝 Citation

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}
}

About

RAX harness: coding agents that learn robot tasks by online exploration

Resources

Stars

173 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors