LLMs generate fluent plans for robots but routinely violate the syntactic and se8mantic constraints they must satisfy to execute, and existing remedies trade formal guarantees against plan quality: soft methods (affordance scoring, grounded decoding) give no guarantee, while symbolic planners (LLM+P) discard the LM's commonsense. We propose Meta-Ctrl, a constrained-decoding framework that guarantees the encoded constraints while preserving the base LM's plan quality. Meta-Ctrl introduces meta-tokens---a compact vocabulary of grounded actions---enforcing syntax at the token level and semantics (preconditions, goals, ordering) at the action level, an exact factorization that cuts the memory of constrained decoding from over 107TB to under 2GB. With it, a small open-weight LM becomes competitive where it otherwise sits at the bottom of the leaderboard: on WAH-NL under the LoTa-Bench protocol it reaches the highest reported subgoal success rate, exceeding GPT-4's, with consistent gains across the Embodied Agent Interface. We further demonstrate it on a real tabletop robot, where every generated plan satisfies its preconditions and goals by construction. Project website: https://metactrlg.github.io
Figures & tables
Figure 1: Meta-Ctrl enforces preconditions that the base LM violates. Task: put dishes in dishwasher; PUTIN requires holding an object and an open container. The base LM (top) attempts PUTIN while the dishwasher is closed. Meta-Ctrl (bottom) enforces the action-level precondition, inserting OPEN (dishwasher).
Figure 2: Level 2: action-level semantics. The parser τ projects each action block of tokens (e.g. {"GRAB":"plate"} ) to one meta-token ( Grab (plate)). A DFA Dβ over meta-tokens enforces preconditions and goal progress (e.g. Put requires the container open). Operating on a small action vocabulary, rather than raw tokens, is what makes the factored computation below tractable.
Method
Base LM
SR
SSR
Exec
External references (different LM / executor)
SayCan
—
0.010
0.021
—
ProgPrompt
—
0.030
0.187
—
LoTa-Bench
GPT-4
—
0.342
—
LoTa-Bench
LLaMA-1 65B
—
0.433
—
STEP †
(larger)
0.400
0.620
—
Table 2: WAH-NL (single-agent, n=100 ) under the LoTa-Bench protocol. External references use different LMs and executors; we report them as ballpark context, not strict baselines. Empty entries are not reported. Same-LM rows (Llama 3.1 8B) are direct comparisons. † STEP is closed-loop; ours is open-loop.
Action Sequencing
Subgoal Decomposition
Task SR
Exec SR
Task SR
Exec SR
Model
VH
BEH
VH
BEH
VH
BEH
VH
BEH
Representative baselines
GPT-4o
71.5
47.0
81.3
53.0
87.6
49.0
91.1
55.0
Claude-3.5 Sonnet
76.1
60.0
81.3
69.0
89.1
39.0
92.0
44.0
o1-preview
65.2
81.0
72.5
91.0
89.4
60.0
93.2
62.0
Table 3: Embodied Agent Interface results on VirtualHome (V; n=342 AS, 338 SD) and BEHAVIOR (B; n=100 AS, 100 SD). Task SR and Execution SR (%). Leaderboard baselines from [ 9 ] ; Each base LM is grouped with its full Meta-Ctrl ( γ+β ) result. Bold : best per column; underline : second-best. ‡ The gpt-oss rows use a keyword-based BEHAVIOR affordance prior; the Llama rows use the taxonomy-derived specification of Appendix G . Our VirtualHome cells are means over six evaluator seeds (Appendix K ).
Base LM
unconstrained
+ Meta-Ctrl
changed lines
Llama 3 8B Instruct
21.3 / 23.6
90.7 / 97.7
—
Qwen3-8B
50.8 / 58.4
90.7 / 97.7
∼40
Gemma-3-12B-it
47.5 / 50.5
89.4 / 96.1
∼35
Table 4: Porting Meta-Ctrl to newer base LMs, VH AS ( n=342 ), task / execution SR (%). Each port rebuilds γ over the new tokenizer automatically and uses a uniform token-level HMM over the new vocabulary; the meta level is unchanged (uniform meta-surrogate rows for all three bases). No training of any kind. VH-AS means over six evaluator seeds.
Method (Llama 3 8B)
VH AS
VH SD
BEH AS
BEH SD
LLM only (unconstrained)
21.3 / 23.6
48.8 / 58.0
10 / 16
22 / 29
LLM + syntax-only GCD ( γ mask)
1.4 / 97.3
0.0 / 96.0
12 / 20
19 / 31
Classical planner, full domain
47.2 / 84.6
n/a
13 / 37
n/a
with our meta-level automata:
Search, no LLM
83.8 / 93.1
72.5 / 79.0
31 / 77
52 / 64
LLM + masking (reachability only)
81.7 / 87.5
88.7 / 92.6
33 / 85
38 / 51
Table 5: What each component contributes, task / execution SR (%) on Llama 3 8B. Rows 3–6 share the same constraint construction (meta-tokens, γ and β compiled from the prompt and the public object taxonomy) and the same guarantee; they differ only in the guidance signal. Search, no LLM is breadth-first search over the meta-level automaton with the LM removed. Masking keeps only the support of the lookahead term, a reachability yes/no. Uniform and trained instantiate the lookahead measure itself. Classical planner is Fast Downward given the benchmark’s own PDDL domain, i.e. a complete transition model, strictly more information than our automata encode; SD asks for goal states rather than actions, so planners do not apply.
Figure 3: Real robot setup with xArm 7 and deployed tabletop manipulation tasks. Top-row tasks require only pick-and-place; bottom-row tasks require specialized motion primitives (e.g. open door).
Meta-Ctrl (ours)
Baseline (Llama 3 8B)
Task
Planning
Perception
Execution
Planning
Perception
Execution
Put donut in canister
20/20
17/20
16/20
2/20
18/20
1/20
Pick up green block (under blocker)
20/20
19/20
18/20
1/20
19/20
1/20
Stack dishes by size
20/20
20/20
17/20
0/20
19/20
0/20
Table 6: Real robot evaluations on an XArm7, 20 repetitions per task. Meta-Ctrl columns are a cascade: plan success holds by construction; perception and execution are conditional on preceding stages. Baseline perception is scored per-module, independent of plan validity; its execution is end-to-end and bounded by planning failures. Baseline downstream columns are thus not directly comparable to Meta-Ctrl’s.
Appendix figures & tables4 assets
Supplementary material from the paper’s appendix.
Appendix
Vocab
Token-level HMM
Meta-token HMM
VH-AS
132 actions / 128 K tokens
∼16.4 M
∼33 K
VH-SD
123 predicates / 128 K
∼16.4 M
∼32 K
BEH-AS
132 actions / 128 K
∼16.4 M
∼33 K
BEH-SD
123 predicates / 128 K
∼16.4 M
∼32 K
WAH-NL
7 actions + 128 ids / 128 K
∼16.4 M
∼34 K
Appendix
Table 7: HMM parameter counts. Token-level HMM size is dominated by the emission matrix H×∣V∣ ; meta-token HMM is dominated by the H×H transition matrix at this scale. H=128 throughout; token-level ∣V∣ shown for the Llama-3 tokenizer (gpt-oss uses ∣V∣≈201 K ⇒∼25.7 M).
Task
Prompt id
DFA-only ( γ mask)
Meta-Ctrl ( γ+β )
Turn on light
scene_1_125_2
NEXT_TO(character.65, light.411)
PLUGGED_IN(light.411), ON(light.411)
Appendix
Table 9: Representative outputs from DFA-only ( γ hard mask) and Meta-Ctrl ( γ+β ) on VirtualHome Subgoal Decomposition. DFA-only emits a single locally-true predicate and stops; Meta-Ctrl produces the predicates required to reach the goal.
Module
Error class
Raw Llama 3 8B
Meta-Ctrl
Total
Benchmark-side
LM-fault
BEH AS
Parsing
0.0%
0.0%
0.0%
0.0%
Hallucination
15.0%
0.0%
0.0%
0.0%
Parameter
9.0%
0.0%
0.0%
0.0%
Sum format/hallucination
24.0%
0.0%
0.0%
0.0%
VH AS
Parsing
14.4%
1.3%
1.3% a
0.0%
Appendix
Table 10: Format and hallucination error rates for raw Llama 3 8B and Meta-Ctrl. Parsing : output fails the evaluator’s parser. Hallucination : output references objects or predicates not present in the evaluator’s per-task vocabulary. Parameter : argument arity, type, or formatting mismatch. The Meta-Ctrl benchmark-side column counts plans rejected by the evaluator even though they comply with the prompt’s stated grammar and vocabulary (footnotes identify each case). The LM-fault column is the residual after removing benchmark-side rejections, and is zero across every module and error class.
Action Sequencing
Subgoal Decomposition
VH
BEH
VH
BEH
Model
T
E
T
E
T
E
T
E
Avg
Recent frontier models
Claude Opus 4.8
87.9
86.2
74.0
81.0
90.8
93.8
61.0
65.0
78.4
Claude Opus 4.7
77.7
76.1
73.0
82.0
91.1
93.8
64.0
71.0
76.5
Claude Opus 4.6
74.4
74.8
78.0
87.0
92.9
95.6
78.0
82.0
80.8
Appendix
Table 11: Extended Embodied Agent Interface results on recent models, evaluated by us under the official EAI protocol. Task SR (T) and Execution SR (E) on VirtualHome (VH; n=342 AS, 338 SD) and BEHAVIOR (BEH; n=100 AS, 100 SD). Meta-Ctrl rows from Table 3 included for reference. Bold : best per column; underline : second-best.