τ₀-VLA: Hierarchical VLA with World-Model-Guided Test-Time Computation for Long-Horizon Robot Manipulation
Picture asking a robot to clean a room — a real room, with 25 sequential manipulation steps spanning 12 minutes. The robot must locate scattered objects, open drawers, sort a bookshelf, and confirm each step completed before moving on. This is long-horizon manipulation — and it is exactly the scenario where today's best VLA models collapse entirely.
GR00T N1.7: 0/10. LingBot-VLA: 0/10. π0.5: 22.5%. τ₀-VLA: 45% — nearly double the next-best model.
On July 27, 2026, the SII Research team (Shanghai Innovation Institute, Agibot, CUHK) released τ₀-VLA (arXiv:2608.16885) with fully open-source code at GitHub under Apache 2.0. This guide covers the architecture, installation, training, and inference in depth.
Why Long-Horizon Manipulation Is So Hard
Current VLA models excel at single-step tasks (pick-and-place, open a drawer) but fail when tasks stretch to 14–25 steps because of three fundamental gaps:
- No persistent context: After step 5–6, the model has forgotten what it already did and what comes next.
- No error recovery: One failed step breaks the whole task — there is no rollback or retry mechanism.
- Fixed compute per decision: Every choice gets the same inference budget, whether it is trivial ("pick up the cup") or critical ("which book goes on the top shelf?").
τ₀-VLA solves all three with a two-level hierarchy + world-model test-time computation.

Source: sii-research/tau-0-vla
Architecture: Two Policies, Four Components
τ₀-VLA runs two policies asynchronously in parallel — while the low-level policy executes the current subtask, the high-level policy is already computing the next one, reducing overall latency.
High-Level Policy — Strategic Brain (Qwen3.5-9B)
The high-level policy runs on Qwen3.5-9B VLM and contains four tightly coupled components:
1. Proposal Model
Input: current visual observation, overall task instruction, execution memory, previous subtask. Output: proposed next subtask ("Open the refrigerator", "Pick up the tomato") + a routing decision via an adaptive router based on token confidence statistics.
When confidence is high → fast path: commit immediately to the proposal. When confidence is low → slow path: invoke full TTC beam search.
2. World Model
When TTC is triggered, the world model predicts what the head-camera image will look like after executing a candidate subtask. Think of it as: "If I issue 'Open the refrigerator', what will the scene look like afterward?" The world model is initialized from Step1X-Edit and fine-tuned on start–end frame pairs from real robot trajectories.
3. Value Model
Scores each candidate subtask via ordinal VQA: from "clearly wrong" to "clearly correct", mapped to numerical values in [0.05, 0.95]. This component determines which branches survive beam pruning.
4. Reflective Model
Receives all retained beam-search branches plus real observation-aligned context, synthesizes the final committed subtask. It may reproduce a high-scoring candidate or generate a novel alternative grounded in accumulated evidence.
Test-Time Computation (TTC) — The Core Breakthrough
This is τ₀-VLA's most important contribution — and the reason it generalizes so well to distribution-shifted settings:
TTC_Search(observation, task, memory, N, B, D):
1. [Proposal] Sample N subtask candidates per retained branch
2. [World Model] Predict terminal image for each candidate
3. [Value] Score each candidate's quality
4. [Prune] Retain top-B branches by cumulative score
5. [Recurse] Repeat to depth D
6. [Reflect] Reflective model commits to final subtask
On the Book Organization task (out-of-distribution), TTC raises subtask prediction accuracy from 50% to 74% — just by thinking longer on hard decisions.

Source: tau0-vla.github.io
Low-Level Policy — Motor Executor (Qwen3.5-2B + MoT)
The low-level policy runs at higher frequency and handles precise motor execution:
- Vision-language backbone: Qwen3.5-2B VLM (lighter but sufficient for single-subtask execution)
- Action expert: Mixture-of-Transformers (MoT) — specialized transformer streams for action generation
- Unified 40-dimensional state/action space: covers end-effector motion, arm joints, grippers, waist, and mobile base — single interface for fixed-base, bimanual, and mobile robots
- Generation method: Masked flow matching with 10 inference steps, respecting per-embodiment channel validity
- Input: Multi-view RGB cameras + proprioceptive state
- Precision: BF16, ~3B parameters
The 40D unified space is a key design choice: inactive channels for a given embodiment are masked before velocity-field evaluation, so one policy genuinely controls all robot types without architecture changes.
Execution Memory — Task Progress Tracker
Often underestimated, execution memory tracks task progress in real time. It can:
- Advance: mark a subtask complete when visual evidence confirms it
- Rollback: revert when failure is detected
- Retry: re-issue a failed subtask
The policy is trained on perturbed memories — examples where memory lags behind or runs ahead of the actual observation — teaching it to reconcile stored history with current visual evidence.
Ablation result: execution memory alone improves next-subtask accuracy by +11 percentage points.
Installation
Requirements:
- Python 3.11
- CUDA 12.8
- PyTorch 2.7.1
- GPU VRAM: 40 GB+ recommended (A100 / H100) for the full pipeline
# Clone the repository
git clone https://github.com/sii-research/tau-0-vla
cd tau-0-vla
# Automated environment setup
bash scripts/setup.sh
Download model weights from Hugging Face:
pip install huggingface_hub
huggingface-cli download sii-research/tau-0-vla --local-dir ./checkpoints
The world model weights are also available separately at sii-research/tau-0-wm.
Training — Fine-tuning on Your Own Dataset
τ₀-VLA uses LeRobot v3.0 format for trajectory data. If you already have data collected with LeRobot, you can use it directly without conversion. An example subset is provided in example_data/, with full format documentation at src/tau0_vla/data/DATASET_FORMAT.md.
For a primer on LeRobot data collection and training pipelines, see LeRobot Hands-on: From Data to Deployment.
Step 1: Prepare your config
Templates live in configs/_template/. Copy and edit:
cp -r configs/_template/ configs/my_robot/
Key fields in configs/my_robot/train.yaml:
model_name_or_path: /path/to/checkpoints
dataset:
path: /path/to/your/dataset
format: lerobot_v3
robot:
embodiment: fixed_base # or: mobile, bimanual
dof: 7 # degrees of freedom
training:
epochs: 100
batch_size: 32
learning_rate: 1e-4
Step 2: Run training
bash scripts/train.sh configs/my_robot/train.yaml \
--model_name_or_path /path/to/checkpoints
Low-level policy training proceeds in three stages:
| Stage | Description | Purpose |
|---|---|---|
| 1. Knowledge-isolated co-training | Multimodal + robot data; no gradient flow across components | Prevent VLM knowledge forgetting |
| 2. End-to-end co-training | Full gradient flow through the entire system | Joint optimization |
| 3. Task-specific fine-tuning | Fine-tune on your target dataset | Maximize task performance |
The four high-level policy models are trained independently: the proposal model on aligned + perturbed execution histories; the world model initialized from Step1X-Edit on subtask transition frames; the value model on offline rollouts with ordinal quality labels; and the reflective model supervised from simulated rollouts.
Inference and Deployment
Open-loop evaluation (no robot required):
python deploy/openloop.py --ckpt outputs/<run_name> --no-plot
Launch inference server (for physical robot deployment):
python -m deploy.server --model outputs/<run_name>
The high-level and low-level policies are served asynchronously in production: while the low-level policy executes the current subtask, the high-level policy precomputes the next — significantly reducing overall wall-clock latency.
Adaptive routing in practice:
A single threshold is calibrated per-task on held-out data. On familiar tasks the model mostly uses the fast path; on unfamiliar or distribution-shifted tasks it automatically triggers full TTC search. You do not manually select which path to use — the confidence router handles it.
Results
Head-to-head comparison on long-horizon tasks
Four evaluation tasks on a full mobile manipulation robot (13–25 steps, up to 12 minutes):
| Method | Clean Room (25 steps) | Prepare Ingredients (14 steps) | Stir Fry (22 steps) | Milk Tea (13 steps) | Average |
|---|---|---|---|---|---|
| GR00T N1.7 | 0/10 | 1/10 | 0/10 | 0/10 | 2.5% |
| LingBot-VLA | 0/10 | 0/10 | 0/10 | 0/10 | 0.0% |
| π0.5 | 4/10 | 2/10 | 0/10 | 3/10 | 22.5% |
| τ₀-VLA (Direct) | 4/10 | 2/10 | 0/10 | 5/10 | 27.5% |
| τ₀-VLA (Hierarchical) | 5/10 | 4/10 | 4/10 | 5/10 | 45.0% |
Impact of Test-Time Computation
| Task | Plan Once | With TTC | Gain |
|---|---|---|---|
| Book Organization (OOD) | 50% acc. | 74% acc. | +24 pp |
| Clean Room | 5/10 | 7/10 | +20% |
| Make Milk Tea | 5/10 | 7/10 | +20% |
| Book Organization (in-domain) | 6/10 | 9/10 | +30% |

Source: tau0-vla.github.io — accuracy rises sharply at low compute budgets, then plateaus
Accuracy rises steeply at low compute budgets and saturates — a hallmark of a well-designed search algorithm that does not waste resources indefinitely.
Cross-embodiment results
τ₀-VLA is not locked to a single robot:
- ARX AC One mobile (Collect Laundry, 5 steps): 10/10 — perfect
- Franka fixed-base (Tidy Makeup Table, 8 steps): 9–10/10 across subtask groups
- GR00T comparison: 4/10 and 8–10/10 respectively; LingBot-VLA: 2–9/10
Ablation highlights
- Execution memory alone: +11 pp improvement in next-subtask accuracy
- Hierarchical vs. flat execution: 45.0% vs. 27.5% average success — the hierarchy accounts for the single largest jump
- TTC vs. Best-of-N (same N samples without recursive search): TTC at 74% vs. Best-of-N at 57.5% — structured beam search beats naive sampling
Comparison with Related Work
vs. π0/π0.5: τ₀-VLA adds explicit hierarchy and test-time planning on top of the flow-matching action head. Result: nearly double success rate on long-horizon tasks (45% vs. 22.5%).
vs. GR00T N1.7: τ₀-VLA dominates on sequential long-horizon tasks (45% vs. 2.5%), while GR00T focuses on broad sim-to-real generalization. Different design priorities, complementary strengths.
vs. classical hierarchical robot systems (handcrafted task planner + motion planner): τ₀-VLA learns when to plan and how to recover entirely from data — no manual state machines required.
For deeper context on world-model-augmented VLA approaches, see Dream-Chunk Reactive VLA with World Model and Weaver: World Model Meets π0.5 for Manipulation.
When to Use τ₀-VLA
Good fit:
- Tasks longer than 5 sequential steps requiring explicit planning
- Environments that change mid-task (objects moved, need adaptation)
- Cross-embodiment deployment across multiple robot types
- Research baseline for long-horizon manipulation benchmarks
- You have 40 GB+ GPU (A100/H100) for the Qwen3.5-9B high-level policy
Not the right tool:
- Simple single-step pick-and-place (overkill — use ACT or Diffusion Policy)
- Strict edge deployment with <8 GB VRAM
- Hard real-time requirements (<100 ms/action) — TTC search adds latency
Conclusion
τ₀-VLA represents a meaningful architectural shift: instead of squeezing all robot intelligence into a single monolithic policy, it separates planning from execution and uses a world model to sanity-check plans before committing to them. Paired with LeRobot v3.0 data format, dual Qwen3.5 backbones, and Apache 2.0 licensing, it is one of the strongest available baselines for long-horizon robot manipulation research.
If you are working on manipulation tasks longer than 10 steps, τ₀-VLA is the right starting point.
Resources:
- Paper: arXiv:2608.16885
- Code: github.com/sii-research/tau-0-vla
- Weights: huggingface.co/sii-research/tau-0-vla
- Project: tau0-vla.github.io



