Gate The Planner Before It Ships A Downgrade
Four configurations in one paper form a build-decision table, and the cheapest line in it is the acceptance criterion that stops a fluent planner from quietly costing you sixteen points.
Why a fluent plan misses the page
The agent opens the live page and reaches for a button that is not on it. Then it reports back that the step is done. The mechanism here is not model quality. The failing planner was finetuned without ever seeing the target sites, so it emitted steps that were linguistically correct and referentially empty, naming buttons, fields and flows the page did not contain. The executor has no veto. It receives a step, tries to satisfy it, reports back. Fluency is what makes this expensive. A plan that reads like competent human instruction passes every review a team actually runs, including the demo.
Granularity is the other half, and it is a spec problem the product team owns rather than a training problem. The paper's planner writes "input New York as the arrival city" instead of "input the arrival city", because the vaguer version leaves the executor guessing which value belongs in the box. One step covers exactly one unit of work. "Search for the product in the search box" is a step. A single click is too small. "Analyze the search results" is not a step at all. It hands the reasoning back to the executor the planner exists to relieve. Planner prompts are reviewable copy, not config. They belong in the same review queue as user-facing strings.
Read the progression as a build decision
| Configuration | Added runtime cost | Delta vs no planner | Verdict |
|---|---|---|---|
| Executor only, ReAct-style | none | baseline | Most likely your current state |
| Planner with no environment grounding | +1 planner call per plan | -16.37 pts | Ship-blocker |
| Grounded planner | +1 planner call per plan | +6.66 pts | Good ROI, needs grounded training |
| Grounded planner + dynamic replanning | +1 planner call per executor step | +16.97 pts | Best quality, explicit cost dial |
The middle two rows carry the product lesson. The same architectural change is a downgrade or an upgrade depending entirely on whether the planner was trained against the environment it will act in. That is a data question, not a modeling question. It is answerable before a single percent of traffic moves.
Where the old loop decays
The ReAct baseline's weakness is structural, not a tuning gap. Every thought, action and observation is appended to one growing prompt and nothing ever leaves, so a failed search from step three is still competing with the original objective at step twelve. Teams tell themselves the agent gets confused on hard tasks. What session replays show is degradation as a function of task length, and no amount of prompt polish fixes an append-only architecture. Plan-and-Act's executor strips HTML it no longer needs after each action, and replanning replaces the failed step instead of accumulating it.
Instrument tokens-in-context per step against task success by step count, and context pollution stops being an argument in a design review and becomes a number on a dashboard.
The dial, and the thing that is not a moat
Dynamic replanning produced the largest single increment, +10.31 points, at roughly one extra planner call per executor step. The paper's authors flag that cost as unresolved and suggest letting the executor decide when to replan. Treat that as a tiering decision rather than a default. Always-on replanning for enterprise and high-value tasks, executor-triggered replanning on free and high-volume paths. The unsolved half is where a differentiator lives, because every competitor is busy copying the solved half.
The caveat worth holding. All of this is public, cheap and reproducible by backend engineers with no ML hire. It moves the quality number and it does not defend it. What cannot be copied is the environment-grounded training data and the frozen eval set drawn from your own task distribution, which is exactly why the ungrounded planner failed. The forcing function before the next sprint plan is to name which of those two exists today, and staff the one that does not.
What to do
Add one line to the agent epic's acceptance criteria this week: no planner variant enters percentage rollout unless it beats the current planner-free loop on the internal eval set.
Freeze 50-150 tasks from your own product surface into a scored eval set this sprint, graded on end-to-end success, before the next harness change merges.
Spec replanning as a per-tier product dial by end of quarter: always-on for enterprise and high-value tasks, executor-triggered on free and high-volume paths.