FlowDAgger: Human-in-the-Loop Adaptation of Generative Robot Policies in Latent Space

1Microsoft Research, 2Microsoft, 3University of Washington, 4ETH Zurich

Abstract

Pretrained generative robot policies based on flow matching and diffusion have achieved impressive results across a wide range of manipulation tasks. Yet real-world deployments routinely expose failure modes outside the pretraining distribution. Closing these gaps typically requires large-scale data collection or online reinforcement learning on physical hardware, which is impractical for rapid and safe adaptation. We present FlowDAgger, a sample- and compute-efficient method for adapting frozen generative robot policies from human interventions in latent space. Our key idea is action inversion: each human expert action is mapped to the noise that would have produced it under the frozen base policy, using reverse-time integration followed by local refinement. The resulting inverted noise provides supervision for a lightweight latent policy that steers the base model at deployment time, enabling rapid skill acquisition while preserving its behavioral priors. We evaluate FlowDAgger in simulation and on real-world bimanual and single-arm manipulation, adapting both action-head VLAs and world-action models from a handful of interventions. FlowDAgger outperforms supervised fine-tuning and latent-space RL baselines and preserves pretrained skills on held-out tasks, offering a practical path for adapting robot foundation models in the real world.

Highlights

  • Action inversion: Human corrections are mapped to the noise that would have produced them under the frozen base policy.
  • Noise-space steering: A small policy learns to steer the frozen base; the base weights are never modified.
  • Sample- and compute-efficient: Adapts from a handful of interventions, training in the ≈8 GB the base policy already needs.
  • Across model families: Works on action-head VLAs (π0.5, GR00T N1.7), world-action models (Cosmos-Policy), and vanilla diffusion policies.
  • Preserves the prior: Keeps pretrained skills that fine-tuning erodes.

Approach

FlowDAgger method overview

FlowDAgger adapts a frozen generative policy from a stream of human corrections. A small latent policy πw proposes a noise vector for each observation, which the frozen base policy πgp decodes into an action; a human operator overrides that action whenever the behavior is unsatisfactory. The core step, action inversion, recovers the noise vector w* that reproduces each correction under the frozen base policy (πgp(sw*)  ≈  a*), turning an action-space correction into a target in noise space. The latent policy is then trained by regression onto these (sw*) targets. Because the base policy is never fine-tuned, FlowDAgger steers it toward the corrected behavior while preserving its pretrained skills.

Results in Simulation

On MetaWorld, FlowDAgger reaches higher success rates than supervised fine-tuning, action- and weight-space DAgger, and latent-space RL, from the same handful of corrections and at a fraction of the training memory.

Success rate vs. adaptation episodes on MetaWorld

Success rate vs. adaptation episodes adapting a frozen π0.5 on five MetaWorld tasks. FlowDAgger (green) climbs fastest and highest, while Residual-DAgger (blue) learns erratically and DSRL (purple) barely moves the base (dashed). Mean over 3 seeds.

Task Base SFT LoRA-DAgger Residual-DAgger DSRL FlowDAgger
Assembly0.640.850.810.530.640.89
Bin Picking0.560.760.680.630.760.69
Box Close0.360.700.520.690.480.59
Coffee Pull0.840.960.680.950.841.00
Dial Turn0.200.640.880.590.430.75
Door Lock0.440.480.760.850.280.75
Hammer0.400.800.680.560.270.84
Hand Insert0.840.880.720.710.920.99
Lever Pull0.280.440.520.370.350.61
Pick Place0.760.800.680.710.600.85
Soccer0.240.360.320.280.330.44
Stick Push0.840.840.920.840.731.00
Mean SR0.530.710.680.640.550.78
Δ vs. Base+0.18+0.15+0.11+0.02+0.25

Twelve MetaWorld tasks with π0.5 as the base policy. FlowDAgger gives the largest mean improvement over the frozen base (+0.25) and wins on eight of twelve tasks. Best non-base method per row in bold.

Accurate at a fraction of the memory

Success rate vs. training VRAM

Because only a small noise policy is trained, adaptation fits in the ≈8 GB that deploying π0.5 already requires — a single consumer GPU — while weight-space baselines need far more.

Adapts across policy families

Task π0.5 (VLA) Cosmos-Policy (WAM)
BaseFDΔ BaseFDΔ
Assembly0.640.89+0.250.520.92+0.40
Bin Picking0.560.69+0.130.280.44+0.16
Box Close0.360.59+0.230.360.64+0.28
Dial Turn0.200.75+0.550.440.68+0.24
Hand Insert0.840.99+0.150.760.88+0.12
Lever Pull0.280.61+0.330.560.64+0.08
Stick Push0.841.00+0.160.760.96+0.20
Mean0.530.79+0.260.530.74+0.21

The same noise-space procedure adapts an action-head VLA and a world-action model (whose actions are slices of a joint latent), with gains of comparable magnitude on both.

Preserves the base policy's skills

Method In-dist Held-out (saturated) tasks
Hammer DoorDrawerFaucetPlatePushMean Δ base
Base π0.50.401.001.000.960.880.960.96
FlowDAgger0.840.881.000.961.000.560.88−0.08
Residual-DAgger0.560.880.680.801.000.080.69−0.27
LoRA-DAgger0.680.800.000.360.000.360.30−0.66
SFT (50 demos)0.800.120.000.000.000.000.02−0.94

Adapting on Hammer, then evaluating on five tasks the base near-saturates. FlowDAgger gains the most in-distribution while holding the held-out tasks closest to the frozen base; weight-space fine-tuning collapses them. Bold: held-out scores within base noise or above.

Real-World Adaptation

On real-world bimanual manipulation, FlowDAgger adapts a frozen base policy from a handful of human corrections, turning consistent failures into reliable task completion. Clips shown at 3× speed.

Task Base SFT FlowDAgger (Δ) Episodes
Block Pick0.730.800.90 (+0.17)5
Glassware Stacking0.260.530.76 (+0.50)5
Button Push0.600.730.73 (+0.13)10
Slider0.360.430.66 (+0.30)5
Wire Pull0.400.530.70 (+0.30)10
Jenga Stacking0.760.900.86 (+0.10)5
Toolbox Packing0.130.630.80 (+0.67)10
Plug Insertion0.600.660.72 (+0.12)20

Real-hardware success over 30 rollouts on two bimanual platforms (FR3 Duo and Dual UR5e). A handful of corrections (5–20 episodes) improves the frozen base on every task, with the largest gains where the base is weakest. Best non-base per row in bold. Videos for three of these tasks are shown below.

Toolbox packing

The base policy fails to reliably seat tools and close the lid.

Before: 0.13 SR

π0.5 base policy (50 demos)

After: 0.80 SR

π0.5 + FlowDAgger (50 demos + 10 corrections)

Glassware placement

The base policy fails to stack the target glasses.

Before: 0.26 SR

π0.5 base policy (30 demos)

After: 0.76 SR

π0.5 + FlowDAgger (30 demos + 5 correction episodes)

Plug insertion

The base policy fails to insert the plug into the power strip.

Before: 0.60 SR

π0.5 base policy (100 demos)

After: 0.72 SR

π0.5 + FlowDAgger (100 demos + 20 correction episodes)