Multi-Task Robot Manipulation · Preprint 2026

VQActFlow: Vector-Quantized Action Mode Steering
for Multi-Task Robot Manipulation

Zhigen Zhao, Mark Leggiero, Yipu Chen, Haoran Liu, Yifan Wu, Huishu Xue, Sirui Zhan, Ye Zhao

Institute for Robotics and Intelligent Machines (IRIM), Georgia Institute of Technology, Atlanta, GA 30332

Abstract

In multi-task manipulation, a policy has to commit to the action mode that matches the current instruction. Pick the wrong mode and the robot does the wrong task. VQActFlow tokenizes action chunks into a discrete codebook and generates the codes with Variational Flow Matching, so it carries a distribution over action modes through every step of generation. At inference time, classifier-free guidance and a learned codebook critic reshape that distribution. Neither one retrains the policy.

81.0% LIBERO-Goal peak success (w=4), vs. 61.5% for the closest discrete baseline
79.3% LIBERO-90 success with CFG and the critic, above every VQ-based baseline
57.5% G1 humanoid success at w=6, up from 23.8% with no guidance
82.5% Bimanual average success with CFG and the critic together
Method

How VQActFlow represents and steers actions

VQActFlow framework: VQ-VAE action tokenization followed by a Variational Flow Matching policy with CFG and codebook critic guidance.
Figure 1. A VQ-VAE tokenizes action chunks into a discrete codebook. A Variational Flow Matching policy then generates code sequences, keeping logits over the full codebook at every step. CFG and a codebook critic act on those logits to steer the result.

Most flow-matching policies work in a continuous space with no explicit notion of action mode, so guidance can only reshape a single continuous distribution. VQActFlow instead carries a discrete distribution over action modes through generation, which gives guidance a categorical target to act on from the first step to the last.

  • 1
    CFG on language conditioning. At every step it extrapolates between the conditional and unconditional logits, which sharpens how firmly the policy commits to the instructed task.
  • 2
    A learned codebook critic. A small transformer, trained contrastively, scores how feasible each code is and pushes the distribution toward feasible modes.

Both operate on the same categorical distribution, so you can apply them together, and neither one needs extra training.

Experiments

A G1 humanoid, a bimanual platform, and LIBERO in simulation

Across all three platforms, VQActFlow beats both continuous and discrete baselines trained on the same encoder, data, and step budget.

Humanoid whole-body manipulation

A Unitree G1 with two dexterous hands runs four pick-and-place tasks in one shared workspace; only the target object and the instruction change.

Table I. Aggregated G1 hardware policy success rate (%).
CFG weightSuccessMissed graspWrong task
w=123.835.041.3
w=657.540.02.5

Almost all of CFG's gain here comes from fixing wrong-task errors, which fall from 41.3% to 2.5%. It helps the policy choose the right task; it does not make the motion itself any cleaner.

A CFM policy trained the same way (same DiT backbone, data, and training protocol) converges in training but oscillates in every G1 rollout and never completes a grasp, with or without CFG. The oscillation shakes the robot's torso, so we stopped its evaluation early for safety and count its success rate as 0%.

VQActFlow: success
CFM baseline: unstable
Figure 3. VQActFlow and the CFM baseline on the G1, shown in real time. VQActFlow places the red ball in the box. Under CFM an arm suddenly lunges toward the table; we ran it only briefly to avoid damaging the hardware.

Bimanual manipulation

Two ALOHA-style arms on four contact-rich tasks, three of them needing coordinated bimanual use.

Table II. Success rates (%) on bimanual manipulation tasks, mean ± std over 5 evaluation sessions of 20 trials per task.
MethodwλBatteryDuckCylinderBallAvg.
Discrete Policy1–53±7.654±8.968±4.568±4.560.8±5.0
Discrete Policy4–64±5.571±5.578±4.570±10.070.8±2.9
VQActFlow1060±7.976±5.577±7.655±11.267.0±4.9
VQActFlow1167±2.777±4.584±9.663±11.072.8±2.7
VQActFlow4074±4.280±3.585±7.975±15.478.5±4.5
VQActFlow4176±4.285±5.090±6.179±6.582.5±3.0

Each row is 400 real-robot rollouts, run in five sessions on different days. With CFG and the critic, VQActFlow beats Discrete Policy at the same weight by 11.7 points (95% CI [7.4, 16.0], p < 0.001). The critic raises success on every task at both weights (8 of 8 comparisons, sign test p = 0.008), though neither average gain is significant on its own at this number of trials. Ball varies most between sessions because the red ball is sensitive to lighting. These results use a revised gripper: after the change we re-collected about 100 demonstrations per task and retrained every policy.

With the same backbone, a continuous flow-matching baseline fails all four tasks. Its joints oscillate violently, roughly two orders of magnitude rougher than VQActFlow.

VQActFlow: success
CFM baseline: failure
Figure 6. The same task and the same backbone, shown in real time. VQActFlow completes the place; the continuous-flow CFM baseline oscillates and fails. Recorded with the earlier gripper.
Table III. Bimanual inference time per action chunk (ms), RTX 5090.
ConfigurationUnguidedCFGCriticCFG + critic
Inference time155.2288.9216.7350.2

350 ms fits comfortably inside the 1.28 s budget per action chunk, and asynchronous inference computes the next chunk while the current one runs.

CFG on LIBERO-Goal

Guiding the discrete distribution directly works better than guiding a continuous approximation of it.

LIBERO-Goal success rate vs. CFG weight for VQActFlow and Discrete Policy.
Figure 7. Success rate vs. CFG weight. VQActFlow peaks at w=4 (81.0%); Discrete Policy needs stronger guidance and still tops out lower (61.5%).

Multi-task scaling on LIBERO-90

At this scale, CFG and the codebook critic each contribute their own gains, and the gains mostly stack.

Table IV. LIBERO-90 success rate (%) for different policies, trained from scratch under matched conditions. Mean ± std over 5 evaluation seeds.
MethodTypeCFG wCritic λSuccess
MT-ACTContinuous––72.2±0.2
CFMContinuous––76.2±1.2
CFMContinuous2.0–78.3±0.9
VQ-BeTVQ-based––23.0±1.3
Discrete PolicyVQ-based1.0–49.8±1.2
Discrete PolicyVQ-based2.0–60.8±1.0
VQActFlowVQ-based1.00.071.8±0.7
VQActFlowVQ-based1.01.074.2±1.5
VQActFlowVQ-based2.00.076.6±1.5
VQActFlowVQ-based2.01.079.3±1.1

CFG helps both kinds of policy: at w=2 it adds 2.1 points to CFM and 4.8 to VQActFlow. The critic adds 2.4 points on its own and 2.7 more on top of CFG. VQActFlow's 1.0-point margin over CFM with CFG (95% CI [−0.5, 2.4]) is within noise, while its margins over the other baselines are significant.

Table V. Ablation on codebook size K, LIBERO-90, guidance disabled. Mean ± std over 5 evaluation seeds.
Codebook size1282565121024
Success rate63.7±0.867.3±0.271.8±0.770.6±0.7

Success peaks at K=512. Smaller codebooks limit how finely actions can be quantized; larger ones blow up the per-position classification space and make the categorical prediction harder to learn.

Table VI. LIBERO-90 success rate (%) for three independently trained seeds, each evaluated with one fixed evaluation seed.
MethodCFG wCritic λSeed 1000Seed 2000Seed 3000Mean ± std
CFM––75.976.074.275.4±1.0
VQActFlow1.00.072.672.171.972.2±0.3
VQActFlow1.01.074.473.873.573.9±0.5
VQActFlow2.00.078.979.178.078.7±0.6
VQActFlow2.01.080.980.378.579.9±1.3

Results hold across training seeds. The spread across three independently trained models (0.3–1.3 points) is no larger than the spread across evaluation seeds in Table IV. Across the retrained models, CFG adds 6.5 points (95% CI [5.3, 7.6]) and the critic adds 1.7 at w=1 ([1.5, 1.9]). On top of CFG the critic helps for all three seeds (+2.0, +1.2, +0.5), though three seeds are too few to resolve that gain.

Table VII. LIBERO-90 success rate (%) vs. CFG weight w, critic disabled. Mean ± std over 3 evaluation seeds.
CFG weight w1.01.52.03.04.0
Success rate71.9±1.076.4±0.977.1±1.772.4±0.467.8±1.0
Change vs. w=1–+4.5+5.1+0.4−4.2

The response to guidance has the same shape as on LIBERO-Goal: clear gains at w=1.5 and 2, none at w=3, and a loss at w=4 (95% CI [−7.4, −0.9]). The w=2 used here sits at the optimum, and the plateau from 1.5 to 2 means the choice needs no fine tuning. Each benchmark uses one w for all of its tasks, picked by a coarse sweep. Benchmarks whose tasks share one fixed scene (LIBERO-Goal, the G1, the bimanual platform) need stronger guidance, because only the instruction tells their tasks apart.

Table VIII. LIBERO-90 success rate (%) vs. critic weight λ at w=1, averaged over 3 evaluation seeds.
Critic weight λ00.5123
Success rate71.974.075.074.374.9

Every λ from 0.5 to 3 beats running without the critic by 2–3 points in every evaluation seed, and no two values are separable, so the result does not depend on a finely tuned critic weight.

Table IX. LIBERO-90 success rate (%) with learned task-ID embeddings vs. CLIP language embeddings. Mean ± std over 5 evaluation seeds; Δ with 95% CI.
GuidanceTask IDLanguageΔ [95% CI]
w=1, λ=060.6±0.971.8±0.7−11.3 [−12.5, −10.1]
w=1, λ=162.4±1.974.2±1.5−11.8 [−14.2, −9.3]
w=2, λ=072.7±0.976.6±1.5−3.9 [−5.8, −2.0]
w=2, λ=174.1±1.079.3±1.1−5.2 [−6.7, −3.7]

Replacing the instruction with a learned task ID, one per unique instruction (74 IDs, so both carry the same information), lowers success at every guidance setting: by 11.3 points at w=1 and 3.9 at w=2. The policy uses what the instruction says, not just which instruction it is. CFG closes part of the gap, and the critic still helps with task IDs (+1.8 at w=1, +1.4 at w=2). All instructions here were seen in training; generalization to new instructions is not tested.

What the codebook critic learns

The critic is trained only on demonstrations and constructed negatives. On LIBERO-90 we check whether its scores track real rollout outcomes, and which negatives its guidance depends on.

Table X. Critic ranking accuracy (AUROC) on LIBERO-90 rollouts collected with the critic disabled.
Scored unitw=1w=2
Action chunks (successful vs. failed)0.830.82
Episodes (mean chunk score vs. outcome)0.970.96

We scored 4,500 rollouts per guidance weight, labeling each action chunk as failed if it falls at or after the point where a failed episode goes wrong. The ranking also holds within each task: the per-task AUROC averages 0.85 at w=1 and 0.83 at w=2, and all 90 tasks are above chance.

Table XI. Negative-family ablation. Each row is a critic retrained with the listed negatives. Ranking: AUROC of successful vs. failed action chunks (w=2). Task disc.: AUROC of chunks scored under the correct vs. a wrong instruction. Success: LIBERO-90 success rate (%) with the critic guiding the policy (w=2, λ=1). L wrong language, V wrong vision, O wrong observation, X cross-demonstration swap, R random code replacement, S temporal shuffle, T temporal shift.
CriticNegativesRankingTask disc.Success
No critic–––76.9
All seven (used in the paper)L V O X R S T0.820.9778.8
Leave one family out
No languageV O X R S T0.780.9679.0
No observationL X R S T0.830.9678.2
No temporalL V O X R0.810.9678.8
No code replacementL V O S T0.830.9666.4
No conditioning (L, V, O)X R S T0.800.6878.7
Subsets
Code matching onlyV O R S T0.750.9477.8
Code corruptions onlyR S0.750.6076.3
Corruptions and shift onlyR S T0.750.5976.7
Language onlyL0.770.9876.8
Language and swap onlyL X0.810.9773.9

Ranking outcomes well is not the same as guiding well. The critic trained without code-replacement negatives ranks rollouts as well as the full critic (0.83) but, used as guidance, drops success to 66.4%. Random replacement (R) and cross-demonstration swap (X) are the only negatives that put codes from outside the episode at a fixed observation and instruction, and the gradient needs both: keeping them without any conditioning negatives retains the full gain (78.7). The language and observation negatives supply task discrimination (0.97 with them, 0.68 without) but are not needed for the success gain, since CFG already conditions on the task. The critic's useful signal is feasibility: whether an action is right for this instruction in this scene.

Citation

BibTeX

@article{zhao2026vqactflow,
  title={VQActFlow: Vector-Quantized Action Mode Steering for Multi-Task Robot Manipulation},
  author={Zhao, Zhigen and Leggiero, Mark and Chen, Yipu and Liu, Haoran and Wu, Yifan and Xue, Huishu and Zhan, Sirui and Zhao, Ye},
  journal={arXiv preprint arXiv:2606.21600},
  year={2026}
}