Diffusion-based trajectory planners can synthesize rich, multimodal action sequences for offline reinforcement learning, but their iterative denoising incurs substantial inference-time cost, making closed-loop planning slow under tight compute budgets. We study the problem of achieving diffusion-like trajectory planning behavior with one-step inference, while retaining the ability to sample diverse candidate plans and condition on the current state in a receding-horizon control loop. Our key observation is that conditional trajectory generation fails under naïve distribution-matching objectives when the similarity measure used to align generated trajectories with the dataset is dominated by unconstrained future dimensions. In practice, this causes attraction toward average trajectories, collapses action diversity, and yields near-static behavior. Our key insight is that conditional generative planning requires a conditioning-aware notion of neighborhood: trajectory updates should be computed using distances in a compact key space that reflects the condition, while still applying updates in the full trajectory space. Building on this, we introduce Keyed Drifting Policies (KDP), a one-step trajectory generator trained with a drift-field objective that attracts generated trajectories toward condition-matched dataset windows and repels them from nearby generated samples, using a stop-gradient drifted target to amortize iterative refinement into training. At inference, the resulting policy produces a full trajectory window in a single forward pass. Across standard RL benchmarks and real-time hardware deployments, KDP achieves strong performance with one-step inference and substantially lower planning latency than diffusion sampling. Project website, code and videos: https://keyed-drifting.github.io/
Figures & tables
Figure 1: Given condition c , full-window distance selects neighbors dominated by unconstrained future dimensions (orange), encouraging mode-averaged trajectories (left bottom). Key distance selects condition-matched neighbors (magenta), preserving diverse conditional trajectories (right bottom).
Figure 2: Overview of KDP. A condition key retrieves condition-matched dataset windows, which train a one-step generator by attracting trajectories toward matched data and repelling them from nearby generated samples, enabling one-step closed-loop planning at inference.
Figure 3: D4RL simulation environments.
HalfCheetah
Hopper
Walker2D
Avg ↑
NFE ↓
ME
M
ME
M
ME
M
Offline selection
BC [ 32 ]
55.2
42.6
52.5
52.9
107.5
75.3
64.3
–
CQL [ 24 ]
91.6
44.0
105.4
58.5
108.8
72.5
80.1
–
IQL [ 23 ]
86.7
47.4
91.5
66.3
109.6
78.3
80.0
–
DT [ 6 ]
86.8
42.6
107.6
67.6
108.1
74.0
81.1
–
Table 1: Performance in short horizon control on D4RL Locomotion (ME=Medium-Expert, M=Medium).
Table 3: Long horizon manipulation analysis. PL is in s/step. (UM=U-Maze, Med.=Medium, Lar.=Large)
Ablation
Locom. ↑
Maze2D ↑
Act. div. ↑
Full method (KDP)
90.7
128.2
0.93
No keying (full-window distances)
2.91
9.6
0.14
Include self-negatives
78.08
91.3
0.93
Attraction-only (no repulsion)
1.05
3.7
2.2e6
No drift normalization
86.93
131.5
0.93
Single τ
92.37
102.1
0.93
Table 4: Training objective ablations. (Locom.=Locomotion, Act. div.=Action diversity)
Task
Diffuser [ 18 ]
KDP
Score
T(s)
Score
T(s)
pen-clone
10.7
1.634
53.4
0.020
door-clone
56.7
1.598
61.8
0.024
hammer-clone
53.1
1.532
79.6
0.034
relocate-clone
56.2
1.685
62.8
0.036
Table 5: Adroit results.
Task
L
Diff.
KDP
adroit-pen
1
38%
57%
adroit-pen
8
41%
73%
adroit-hammer
1
47%
62%
adroit-hammer
8
41%
63%
adroit-relocate
1
35%
65%
adroit-relocate
8
64%
71%
Table 6: Action chunking.
Figure 4: Qualitative real-time hardware results. Left: Crazyflie navigation trajectories for KDP (pink) and Diffuser (green). Right: SO-100 manipulation; the full behavior is best seen in the supplementary.
Domain
Method
Succ. (%)
TTS (s)
Replan (Hz)
Planner p50
E2E p50
Navigation
Diffuser
92
12.5
4.1
242
312
Navigation
KDP
94
12.0
38
8
26
Manipulation
Diffuser
88
35
3
311
410
Manipulation
KDP
90
32
17
9
47
Table 7: Real-world closed-loop results on a Crazyflie and an SO-100 arm. Setup: Diffuser ( K=64 , T=20 ); KDP ( K=64 ).