Prerequisite
In classic MDP, an agent outputs a single action given a state or an observation . However, an action chunking policy outputs a sequence of actions, or an action chunk,
instead of single action.
Here, is the prediction horizon (the number of actions predicted) and is the execution horizon (the number of actions actually executed).
TipThe execution horizon is often shorter than the prediction horizon (). This means we intentionally discard the remaining predicted actions and run inference again to react to new observations.
RemarkIn academic literature, the term action chunk and action horizon are often used interchangeably.
Prologue
This is a cheat sheet detailing the sizes of the prediction horizon () and execution horizon () for several popular Vision-Language-Action (VLA) models.
As of July 2026, there is no universally optimal pair of and . Based on my observations, is typically fixed based on the model checkpoint or task, whereas is a deployment-side choice used for replanning.
TipFrom an application perspective, this means is fixed during training, but can be tuned during deployment.
OpenPI
| Configuration | in official example | |
|---|---|---|
| / architecture default | 50 | Client-defined |
| -FAST architecture default | 32 | Client-defined |
| ALOHA real, or | 50 | 25 |
| ALOHA simulation | 50 | 10 |
| DROID, | 10 | 8 |
| DROID, -FAST | 10 | 8 |
| DROID, | 15 | 8 |
| LIBERO, | 50 | 5 |
| LIBERO, -FAST or | 10 | 5 |
For the default values in the base checkpoints of , , and -FAST, here is the code evidence:
During SFT on dataset like DROID and 📄LIBERO: Benchmarking Knowledge Transfer for Lifelong Robot Learning, these values are overridden in the training configurations. The execution horizons are defined by the deployment systems, such as ALOHA broker, DROID controller, and LIBERO replanning loop.
ErrorOne upstream bug is worth noting: the current DROID server defaults to with , but the client still asserts a stale shape of . The intended configuration is , though the code example currently needs its assertion fixed.
Isaac-GR00T
For the latest N1.7 release:
| N1.7 checkpoint/task | used officially | |
|---|---|---|
| Base N1.7-3B | 40 | 16 offline; commonly 8 real-time |
| DROID | 40 | 15 in the real-robot example |
| LIBERO | 16 | 8 |
| SimplerEnv Google robot | 8 | 1 |
| SimplerEnv WidowX | 8 | 4 |
| Custom SO-100/101 | 16 | 16 offline; 8 real-robot |
GR00T’s documentation explicitly distinguishes the prediction action_horizon from the execution_horizon. The base N1.7 model uses , with for offline evaluation and typically used for real-time deployment (official policy guide). Fine-tuned horizons are specific to the embodiment, as seen in the registered modality configurations.
If you see quoted for GR00T, it likely refers to the older N1 or N1.5 releases and does not apply to the N1.7 base model.
📄MolmoAct2: Action Reasoning Models for Real-world Deployment
| Released checkpoint/tag | ||
|---|---|---|
| DROID | 15 | 15 |
| Bimanual YAM | 30 | 30 |
| SO-100/101 | 30 | 30 |
| LIBERO / Think-LIBERO | 10 | 10 |
| Franka-MolmoAct | 10 | 10 |
| Google Robot BC-Z | 10 | 10 |
| WidowX Bridge | 5 | 5 |
| Google Robot Fractal/RT-1 | 3 | 3 |
These values are stored per embodiment as action_horizon and n_action_steps in the released MolmoAct2 checkpoint metadata. Similarly, the LeRobot configuration for LIBERO uses chunk_size=10, n_action_steps=10.
WarningThere is one concrete exception: the released YAM metadata says , but the included YAM client hard-codes 25, and its rollout replans every 25 actions. Its effective deployed pair is therefore: with the final 5 predictions discarded.