Logo Xingxin on Bug

Action Chunking in VLA: A Cheat Sheet for H and K Horizons

July 16, 2026
5 min read

Prerequisite

In classic MDP, an agent outputs a single action ata_t given a state sts_t or an observation oto_t. However, an action chunking policy π(Atot)\pi(\mathbf{A}_t \mid \mathbf{o}_t) outputs a sequence of actions, or an action chunk,

At=[at,at+1,,at+H1]\mathbf{A}_t=[\mathbf{a}_{t}, \mathbf{a}_{t+1},\dots,\mathbf{a}_{t+H-1}]

instead of single action.

Here, HH is the prediction horizon (the number of actions predicted) and KK is the execution horizon (the number of actions actually executed).

Tip

The execution horizon is often shorter than the prediction horizon (KHK \leq H). This means we intentionally discard the remaining predicted actions and run inference again to react to new observations.

Remark

In 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 (HH) and execution horizon (KK) for several popular Vision-Language-Action (VLA) models.

As of July 2026, there is no universally optimal pair of HH and KK. Based on my observations, HH is typically fixed based on the model checkpoint or task, whereas KK is a deployment-side choice used for replanning.

Tip

From an application perspective, this means HH is fixed during training, but KK can be tuned during deployment.

OpenPI

ConfigurationHHKK in official example
π0\pi_{0} / π0.5\pi_{0.5} architecture default50Client-defined
π0\pi_{0}-FAST architecture default32Client-defined
ALOHA real, π0\pi_{0} or π0.5\pi_{0.5}5025
ALOHA simulation5010
DROID, π0\pi_{0}108
DROID, π0\pi_{0}-FAST108
DROID, π0.5\pi_{0.5}158
LIBERO, π0\pi_{0}505
LIBERO, π0\pi_{0}-FAST or π0.5\pi_{0.5}105

For the default HH values in the base checkpoints of π0\pi_{0}, π0.5\pi_{0.5}, and π0\pi_{0}-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.

Error

One upstream bug is worth noting: the current DROID server defaults to π0.5\pi_{0.5} with H=15H=15, but the client still asserts a stale shape of (10,8)(10, 8). The intended configuration is (15,8)(15, 8), though the code example currently needs its assertion fixed.

Isaac-GR00T

© NVIDIA Isaac-GR00T

For the latest N1.7 release:

N1.7 checkpoint/taskHHKK used officially
Base N1.7-3B4016 offline; commonly 8 real-time
DROID4015 in the real-robot example
LIBERO168
SimplerEnv Google robot81
SimplerEnv WidowX84
Custom SO-100/1011616 offline; 8 real-robot

GR00T’s documentation explicitly distinguishes the prediction action_horizon from the execution_horizon. The base N1.7 model uses H=40H=40, with K=16K=16 for offline evaluation and K=8K=8 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 H=16H=16 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

© AllenAI
Released checkpoint/tagHHKK
DROID1515
Bimanual YAM3030
SO-100/1013030
LIBERO / Think-LIBERO1010
Franka-MolmoAct1010
Google Robot BC-Z1010
WidowX Bridge55
Google Robot Fractal/RT-133

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.

Warning

There is one concrete exception: the released YAM metadata says (H,K)=(30,30)(H,K)=(30,30), but the included YAM client hard-codes 25, and its rollout replans every 25 actions. Its effective deployed pair is therefore: (H,K)=(30,25),(H,K)=(30,25), with the final 5 predictions discarded.

See also...