Coding Agents for Generalized Task and Motion Planning Problems
Matteo Merler, Bowen Li, Josh Roy, Yichao Liang, Qianwei Wang, Yixuan Huang, Tom Silver
cs.RO, cs.AI
2026-09-25
Coding agents write reusable TAMP programs from a simulator and a $20 budget; Astra hits 95% success vs 47% for planners, with ~10x less compute per instance.
Task and motion planning (TAMP) stays hard even with full observability and object-centric states. Discrete choices are tied to geometric, kinematic, and dynamic constraints. Generalized TAMP tries to reuse regularities across instances so each new problem is cheaper than planning from scratch. Existing methods pay for that reuse with hand-written predicates, operators, samplers, and skills.
Coding agents have moved fast on software-engineering benchmarks. The same models do poorly when they are asked to make geometric decisions inside a TAMP stack, even with the geometry in the prompt. This paper asks whether off-the-shelf coding agents can write reusable programs and skip most of that TAMP-specific engineering.
The setup is AgenticGenPlan. For each environment the agent gets a task description and a simulator (reset, step, rendering) and a $20 synthesis budget. It chooses which experiments to run, writes probe scripts, and revises a program inside that budget. The program is then frozen. At test time there is no LLM. Evaluation is 100 held-out instances per program, 60 seconds per instance.
The main sandbox has Python, NumPy, and SciPy, no environment source, and no hand-written TAMP abstractions. A +source variant lets the agent read the implementation and call helpers such as inverse kinematics.
Three backends: Claude Code with Opus 5 (high), Codex with GPT-5.6 Sol (medium), Codex with GPT-6 Astra (high). Baselines are the KinDER / PDDLStream planners (available in 16 of 28 environments), LLMGenPlan (same Opus 5, same budget, source code given, but no self-directed experiments), and the first LLMGenPlan draft (one-shot).
Scale: 25 KinDER environments (kinematic/dynamic × 2D/3D) plus three PDDLStream domains (Packing, Blocked, Rovers). Five independent synthesis runs per method per environment, 980 programs, 98,000 evaluation episodes.
On the 16 environments with a planner, the three agent configs average 56% to 95% success against the planner's 47%. Claude Code is at 82% (about 1.7×), Astra 95%, Sol 56%. As object counts grow, the programs keep higher success and use about an order of magnitude less compute per instance: 29 s for the planner versus 2.1 s for Opus programs and 0.5 s for Astra, averaged over 14 environments with multiple object counts.
| Method | Success on planner envs | Setting |
| Hand-engineered TAMP planner | 47% | 16 environments |
| Codex GPT-5.6 Sol | 56% | main |
| Claude Code Opus 5 | 82% | main |
| Codex GPT-6 Astra | 95% | main |
By family, Astra scores 99% on Kinematic2D, 97% Dynamic2D, 93% Kinematic3D, 65% Dynamic3D, and nearly 100% on PDDLStream. Opus is at 96%, 92%, 90%, 45%, and 78%. Astra beats Opus in 20 of 28 environments and beats the planner in 15 of 16. Across all 28 environments the means are 74% for Opus and 86% for Astra.
Source access lifts Opus from 74% to 84% and Astra from 86% to 95%. LLMGenPlan, given the same source and the same $20, reaches 28%. The gap is that the agent can write tests and revise.
The logs show the mechanism. In Shelf, Opus uses a grasped cube as a marker and fits a Kinova Gen3 kinematic model, cutting RMSE from 38.9 mm to 1.8 mm. In Blocked, a Sol commit that adds a distant spare-block fallback raises success from 15% to 56%, later 83%. In SweepIntoDrawer, every main-setting Opus run scores zero; the best Astra program skips the sweeper, picks cubes up one by one, and solves all 100 instances.
For robot planning, this puts coding agents on the board as a strong generalized-TAMP baseline: no predicates, no samplers, a frozen program at test time, zero LLM cost on new instances. The strategies are not always textbook TAMP. Some programs first find blocking obstacles, then move them. Some ignore the provided sweeper and use the gripper. The authors treat strategies absent from published solutions as evidence against pure memorization of the benchmark.
The bill is also clear. Synthesis costs $20 and a simulator. Test-time programs are fast (Astra about 1.3 ms per action), but someone already paid for synthesis. Dynamic 3D tasks that need sweeping or pouring many small objects still fail often in the main setting.
States are fully observed and object-centric, and synthesis has a simulator. That does not transfer to noisy perception on hardware. Training data are undisclosed, so leakage of benchmark code cannot be ruled out; interaction logs and unexpected strategies are circumstantial. Sol runs at medium while the other two run at high, so agent gaps mix model quality with reasoning effort. Five seeds per environment is thin: Opus on Shelf spans 0% to 100%, and means are sensitive to that spread. KinDER is simplified manipulation. What is being solved is program synthesis, not deployed motor skill.