Engineering
11 min read
ReAct interleaves reasoning and action one step at a time. Plan-and-Execute commits to a plan up front, then runs it. Both work. They fail differently, and that difference is what should decide it.
Most of the debate treats this as a question of capability, as though one loop were simply better. It is closer to a question of risk tolerance. The right answer changes depending on whether the agent is reading or writing, and on how expensive it is to undo what it just did.
The two loops
ReAct runs a cycle: think, act, observe, repeat. Each reasoning step sees the result of the previous action, so the agent can adapt as it goes. If a record is missing or a callout fails, the next step accounts for it without anyone having anticipated that case.
Plan-and-Execute separates the two phases. The agent produces a full plan, the plan is inspected or approved, and then the steps run. The reasoning happens once, up front, against whatever context was available at the time.
The structural difference is where uncertainty is absorbed. ReAct absorbs it continuously and pays for that in tokens and unpredictability. Plan-and-Execute absorbs it once and pays for that in brittleness when reality diverges from the plan.
How each one fails
ReAct fails by wandering. On a long task the agent takes a slightly wrong step, observes an ambiguous result, and reasons its way further from the goal. Each individual step looks defensible in the trace. The aggregate is nonsense. This is difficult to debug precisely because no single step is obviously the error.
It also fails economically. Every step is another round trip with the full context attached, and cost grows with the square of task length once you account for the accumulating history. A task that takes forty steps is not four times the cost of one that takes ten.
Plan-and-Execute fails by assumption. A step written against a belief about the org runs into a record that does not match, and without the context to recover, it either errors or does something confidently wrong. The failure is sharper and easier to locate, which is a genuine advantage when someone has to explain it afterwards.
ReAct: gradual drift, expensive traces, hard to attribute blame.
Plan-and-Execute: sharp failure at a known step, cheap, easy to attribute.
ReAct recovers from surprise. Plan-and-Execute does not.
Plan-and-Execute can be reviewed before anything happens. ReAct cannot.
Cost and auditability
The auditability difference is underrated and it is usually what decides real deployments.
With Plan-and-Execute you can show an administrator the plan before a single record changes. You can diff what was planned against what actually ran. When something goes wrong you can point at step four and say that step four was wrong, which is a conversation that ends with a fix.
With ReAct you can show a trace, and a trace is a narrative rather than a contract. It explains what happened without ever having promised what would happen. For a read-only research task nobody minds. For an agent updating opportunities in a production org, the inability to preview intent is close to disqualifying.
The hybrid we default to
The practical answer is rarely pure. For Agentforce workloads that write data, we default to Plan-and-Execute with a bounded replan step.
The agent proposes a plan. A human or a rule approves it. The steps run. If a step fails, the agent gets exactly one opportunity to revise, and if the revision also fails, it escalates to a person rather than continuing.
That bound is the entire trick. Unbounded replanning is just ReAct with extra ceremony: you get the drift back, you get the cost back, and you have lost the preview that justified the design in the first place. One replan recovers from the common case, which is a stale assumption about a single record. More than one means the plan was wrong at a level the agent cannot see.
Propose, approve, execute, and allow exactly one revision.
Escalate on second failure rather than reasoning further.
Log the original plan alongside what actually ran.
Keep the approval step meaningful by keeping plans short.
Choosing by write risk
The cleanest decision rule we have found ignores the task and looks at the consequences.
If the agent only reads, use ReAct. Nothing is at risk, wandering costs tokens rather than data, and the adaptability genuinely improves answers. Optimise for answer quality and stop worrying about the trace.
If the agent writes, and the writes are additive and cheap to undo, either loop is defensible. Pick based on how long the task is, because ReAct gets expensive faster than most teams expect.
If the agent writes destructively, or touches records other people depend on, use Plan-and-Execute with a human on the approval. The point is not that the model cannot be trusted. The point is that a preview costs almost nothing and turns an incident into a rejected plan.
The short version
Neither loop is better. ReAct trades predictability for adaptability, and Plan-and-Execute trades adaptability for a preview you can show somebody.
Decide by reversal cost, not by benchmark. Read-only work wants ReAct. Anything that writes to production wants a plan, an approval, and a hard limit on how many times the agent may change its mind.