Open-source project
RLinf/RPent avatar
RLinf/RPent

RPent: a service-oriented agent framework for robots, reviewed for adoption

RPent: Agentic Infrastructure for the Physical World

1,305 stars106 forksPythonApache-2.0

At a glance

What is it?
RPent (Recursive Physical Agent) wires a planner, a frozen VLA and a simulator into one embodied agent stack. This review covers its architecture, its pip install path, and where it stops being the right tool.
Who is it for?
Adopt RPent if you are running LIBERO-PRO, RoboCasa or RoboTwin experiments and want a memory-guided planner layer above a frozen VLA, or if you are prototyping on Franka and SO-101 hardware. Do not adopt it if you need a stable API: pyproject.toml declares Development Status 2 - Pre-Alpha and version 0.0.0, and the README's quick start is written for a full end-to-end stack rather than a minimal install.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The gap RPent targets: a frozen VLA with no plan above it

A vision-language-action model maps observations to actions. It does not decide what to do first, remember what failed last time, or recover when a grasp slips. RPent's premise, stated in the README, is that a frozen VLA can be steered into "reliable manipulation primitives" by an agent layer sitting above it. The framework is aimed at four groups the README names explicitly: embodied intelligence researchers working on long-horizon manipulation, online-learning and reinforcement-learning researchers studying self-evolving agents, robotics application developers deploying on real hardware, and end users who install RPent with real-robot extensions and run predefined tasks without ML expertise. That last group is the interesting one. Most agent frameworks assume the person running them can read a training script. RPent ships a CLI entry point called rpent and a separate rpent-memory tool, which suggests the intended surface is a command, not a notebook.

How the pieces connect: planner, primitive, simulator, memory

The README's feature matrix lays out four columns, and that layout is effectively the architecture. An Agentic Planner is the top layer, with Claude Code and Codex as the two supported planners and a documented path for a custom one. Below it sit Action Primitives, split into VLA models (Pi0.5, RLDX-1, LingBot-VLA) and a WAM category listing DreamZero. Simulators (LIBERO-PRO, RoboCasa, RoboTwin) and real hardware (Franka, SO-101) are the execution targets. The planner decides; the primitive executes; the simulator or robot returns observations; memory records what happened. The README describes the loop as "recursive interaction, reflection, and memory-distillation," and the pyproject.toml confirms the plumbing: pydantic-ai-slim with anthropic and openai extras, claude-agent-sdk, openai-codex, and mcp between 1.23.0 and 2.0.0. FastAPI and uvicorn are dependencies, which means the framework exposes an HTTP service rather than importing everything in-process. That is the service-oriented claim made concrete. It also means the planner runs as a client against a server, so a planner crash does not necessarily take the simulator down with it. The README does not document the wire format between those services, so treat the boundary as real but underspecified.

Installing RPent and running a first LIBERO-PRO episode

The README gives a three-step quick start. The first command clones the repository and installs the full extra, which the README describes as the default end-to-end stack: openpi Pi0.5, the LIBERO-PRO and RoboCasa365 simulators, and SAM 3.0 on the RLinf runtime. Narrower extras exist but the README points to the installation docs rather than listing them.

bash
git clone https://github.com/RLinf/RPent rpent && cd rpent
pip install -e ".[full]"

Note the Python constraint in pyproject.toml: requires-python is >=3.10,<3.13. If your environment is on 3.13 or newer, the install will refuse before it reaches any dependency resolution.

The second step pulls simulator assets. Expect a large download, and expect it to hit Hugging Face by default.

bash
liberopro-download-assets --skip-existing

The README offers a mirror for slow connections, using the HF_ENDPOINT environment variable:

bash
HF_ENDPOINT=https://hf-mirror.com liberopro-download-assets --skip-existing

The third step sets credentials and a checkpoint path. The README shows ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL as the planner credentials, and notes the base URL is unnecessary against the official endpoint. The checkpoint is fetched with the hf CLI, excluding optimizer.pt to avoid pulling training state you do not need for inference.

bash
export ANTHROPIC_API_KEY=sk-xxx
hf download RLinf/RLinf-Pi05-LIBERO-130-fullshot-SFT \
  --exclude optimizer.pt \
  --local-dir ./checkpoints/RLinf-Pi05-LIBERO-130-fullshot-SFT
export PI05_CHECKPOINT_PATH=$PWD/checkpoints/RLinf-Pi05-LIBERO-130-fullshot-SFT

The README's quick start is truncated at the SAM 3.0 checkpoint step, so the exact invocation that launches an episode is not visible in the published quick start. The installed console script is rpent, per pyproject.toml, and rpent-check-llm exists as a separate entry point, which is presumably how you confirm the planner credentials work before spending time on a simulator.

Where RPent is the wrong tool

The version number is 0.0.0 and the classifier is Development Status 2 - Pre-Alpha. That combination is a fair warning about API churn. If you are building a product on top of RPent and pinning to a tag, expect the internal interfaces to move. The framework also assumes you have a planner credential. Claude Code and Codex are the two supported planners, and both route through external services, so RPent is not a self-contained offline stack even when the VLA and simulator run locally. For a lab with no outbound API access, that is a blocker rather than a configuration detail. There is a second constraint in the dependency list: mcp is pinned to >=1.23.0,<2.0.0. If another tool in your environment needs MCP 2.x, you will be resolving that conflict by hand. Finally, the README's own framing is simulation-first. LIBERO-PRO, RoboCasa and RoboTwin have documented setup pages; Franka and SO-101 appear in the feature matrix as real-world targets with no checkmark and no linked documentation in the README excerpt. Treat real-hardware support as present in the architecture and unproven in the docs.

RPent against a plain VLA inference script

The obvious alternative is to skip the agent layer and run the VLA directly: load Pi0.5, feed observations, execute the returned actions. That approach is simpler and has fewer moving parts. The difference is what happens after a failure. A direct VLA loop has no representation of the task beyond the current observation window. RPent inserts a planner that can decompose a long-horizon task, a memory store that persists across attempts, and a reflection step that feeds outcomes back. The README claims this composition "consistently lifts task success beyond what a frozen VLA delivers alone," and points to the Harness VLA paper (arXiv 2607.08448) for the evidence. The trade-off is latency and operational surface: you now need a planner service, credentials, and an HTTP boundary. The README's August 2026 note about a non-reasoning mode reducing average execution time by roughly 40% is a direct acknowledgement that the reasoning layer costs time and that the framework offers a way to dial it back. If your task is a single short pick with no recovery requirement, the planner layer is overhead.

Maintenance signals, licence and upgrade cost

The repository is not archived. The last push date was not available, so I cannot tell you how current the code is, and I will not guess. There are no retrieved releases, which means there is no tagged version to pin against; installation via pip install -e from a clone is the documented path, and that tracks the default branch. Practically, upgrading means pulling main and reinstalling, with whatever breakage that brings in a pre-alpha project. The licence is Apache-2.0, declared in pyproject.toml via license = {file = "LICENSE"} and confirmed by the LICENSE file at the repository root. Apache-2.0 permits commercial use and modification and includes a patent grant, but it also carries notice and attribution obligations, and the repository bundles or downloads third-party components: SAM 3.0 is pulled from a git URL in the sam3 extra, and the VLA checkpoints come from Hugging Face under their own terms. Those are separate licences from RPent's, and you should check each one for the components you actually deploy. This is not legal advice.

Editorial conclusion

Adopt RPent if you are running LIBERO-PRO, RoboCasa or RoboTwin experiments and want a memory-guided planner layer above a frozen VLA, or if you are prototyping on Franka and SO-101 hardware. Do not adopt it if you need a stable API: pyproject.toml declares Development Status 2 - Pre-Alpha and version 0.0.0, and the README's quick start is written for a full end-to-end stack rather than a minimal install. Before committing, verify that the .[full] extra resolves on your machine, that liberopro-download-assets completes against your chosen Hugging Face endpoint, and that the PI05_CHECKPOINT_PATH directory contains the checkpoint files the runtime expects.

Frequently asked questions

What Python versions does RPent support?

pyproject.toml sets requires-python to >=3.10,<3.13, so Python 3.10 through 3.12 are the supported range. An environment on 3.13 or newer will fail at install time.

How do I install RPent?

The README's quick start clones the repository and runs pip install -e ".[full]", which it describes as the default end-to-end stack: openpi Pi0.5, LIBERO-PRO and RoboCasa365 simulators, and SAM 3.0 on the RLinf runtime. Narrower extras are covered in the installation docs rather than the README.

Which planners and VLA models does RPent support?

The feature matrix lists Claude Code and Codex as planners, plus a documented path for a custom planner. On the action-primitive side it lists Pi0.5, RLDX-1 and LingBot-VLA as VLA models, with DreamZero under a separate WAM category.

Which simulators and robots can RPent drive?

The README lists LIBERO-PRO, RoboCasa and RoboTwin as supported simulators, each with its own documentation page. Franka and SO-101 appear in the feature matrix as real-world targets without checkmarks or linked documentation in the README excerpt.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/rlinf-rpent.svg)](https://hysenlabs.com/projects/rlinf-rpent)