---
pattern_id: pattern_macro_action_descriptions
applicable_symptoms: [macro_action_descriptions]
domain: Planning_Decision
---

# VLN agent struggles to decompose long, complex natural language instructions into executable low-level steps, leading to ambiguous or incorrect navigation.

**Domain**: `Planning_Decision`

## Fix

Use a fixed vocabulary of macro-action descriptions (e.g., 'go to the door', 'turn left') as an intermediate representation between natural language instructions and low-level motor commands, generated by an LLM-based parser.

## Anti-pattern

Directly mapping free-form instructions to low-level actions without intermediate abstraction.

## Cross-domain analogies

- **Perception_Vision** → Use actional atomic concepts as grounded decomposition units for hierarchical step parsing.
  - related fix: Use actional atomic concepts (natural language phrases combining atomic action and object) as a compact grounded unit to bridge visual and linguistic features.
- **Learning_Training** → Hierarchical decomposition: first supervised step parsing, then reinforcement fine-tuning on subgoal completion.
  - related fix: Two-stage training: first supervised fine-tuning on expert demonstrations, then reinforcement fine-tuning with policy gradient (e.g., PPO) to maximize task completion reward
- **Control_Locomotion** → Use reinforcement learning to map language instructions directly to navigation actions.
  - related fix: Use reinforcement learning to learn a control policy that directly maps sensor observations to actuator commands for plasma shape and position control.

## Patch

```diff
--- macro_action_descriptions.before.py
+++ macro_action_descriptions.after.py
@@ -1,2 +1,4 @@
-# --- BEFORE (vulnerable to the symptom below) ---

+# --- AFTER (ROSCLAW heuristic graft) ---

 # Symptom: VLN agent struggles to decompose long, complex natural language instructions into executable low-level steps, leading to ambiguous or incorrect navigation.

+# Fix    : Use a fixed vocabulary of macro-action descriptions (e.g., 'go to the door', 'turn left') as an intermediate representation between natural language instructions and low-level motor commands, generated by an LLM-based parser.

+# Avoid  : Directly mapping free-form instructions to low-level actions without intermediate abstraction.

```
