Detecting and Explaining Robot Policy Failures from Sparse Internal Features

TL;DR MIND splits a VLA policy's activations into sparse features with names that hold on held-out episodes, then flags failing executions from those features and reports which concepts went wrong. On π0.5 in LIBERO it detects failures at 0.991 AUROC with half the false alarms of a monitor on the raw activations.
What they do
When a vision-language-action (VLA) policy fails, the video shows what went wrong but not why. MIND decomposes the policy’s activations into sparse, named features and uses them both to detect a failing execution and to name the concepts behind the alarm. It is tested on OpenVLA, LingBot-VLA 2.0 and π0.5 in simulation (LIBERO, RoboTwin 2.0), and on π0.5 driving a Franka Panda with an Inspire hand.
How it works
- Sparse autoencoder. Fitted without labels on every token of a middle layer, with four times as many features as the layer is wide.
- Naming. A feature is named after a fixed state concept (bowl grasped) or decision concept (sign of an action axis, gripper command) only at 0.9 precision, and only if the name still holds on held-out episodes. Clamping checks decision names in closed loop.
- Monitor. Each named feature’s activity, running means over three windows and switching rate feed a logistic score; three frames above a threshold set for 5% false alarms raise the alarm.
- Explanation. The linear score splits exactly into per-concept contributions, and Qwen2.5-7B-Instruct turns the top ones into a short note.
Results
- On OpenVLA, names hold at unseen initial states and on an unseen task, where neurons, raw coordinates and random directions name no concept. Clamping one feature moves the arm the named way on 0.92-1.00 of steps (from 0.00-0.25) for 12 of 14 motion concepts.
- π0.5 in LIBERO: 0.991 vs 0.988 AUROC for the dense activation, catching 99% vs 95% of failures with 3% vs 6% false alarms.
- Real robot: the dictionary names 14 stove-task and 6 cup-task concepts that no baseline names. The main monitors stay within chance intervals because the operator stops a failing attempt after about two seconds; the best monitor fixed in advance catches 8 of 11 stove failures with one false alarm.
- The note’s failure category matches the simulator for 15 of 48 OpenVLA failures, about as often as a mechanical rule.
Limitations
MIND does not recover from failures, and its explanations are bounded by the predefined concepts. On π0.5, clamping moves the arm along the named axis but in the opposite direction. Robot data is small (19 stove and 22 cup attempts) and closed-loop clamping was not run on the robot.
Figures




Abstract
Visuomotor policies can handle many robot manipulation tasks, but understanding their failures remains difficult. Unfamiliar conditions and small action errors can lead to failure, yet watching the robot alone tells us little about what went wrong inside the policy. We introduce MIND (Mechanistic Interpretability for Neural Diagnosis), a method that looks inside a trained policy to detect failures during execution and identify the internal concepts involved. MIND uses a sparse autoencoder to break down the policy's internal activations into features that can be studied individually. We give meaning to these features by linking their activity to the robot's position, movement, and surroundings, and by steering their activations to examine how they affect the robot's actions. From successful and failed executions, we learn how the features behave on the way to a failure. During execution, MIND flags deviations from these patterns and uses the meaningful features contributing most to the change to describe the problem. Experiments in simulation and on a physical robot show that changes in these internal features help detect and explain failures. By using the same features for detection and diagnosis, MIND connects failure signals to understandable changes inside the policy.
Summaries are written automatically from each paper's text. Figures and videos come from the paper and its project page; all credit goes to the authors.
