ReAct Pattern
- reason and act
- reasoning and acting loop
What is ReAct Pattern?
The ReAct pattern alternates thought, action and observation: the model reasons briefly about what to do, emits a tool call, receives the result, and reasons again with that result in hand. It is the structural basis of most single-agent implementations.
In practice
The value of interleaving is that reasoning is grounded in evidence the agent has actually gathered. A plan-then-execute agent commits to a full sequence before seeing any results, so a wrong assumption at step one corrupts everything after it. A ReAct-style loop re-plans after each observation, which makes it far more robust to a search returning nothing, an API shape differing from expectation, or a file not being where the model assumed.
The cost is latency and tokens. Every cycle is a full model call carrying the entire accumulated transcript, so a ten-step run is ten calls over a context that grows monotonically. Practical implementations therefore bound the loop with a step limit, compact or summarise older observations, and truncate verbose tool results before appending them. Without those controls the failure mode is not an error but a slow, expensive run that ends at the step ceiling with nothing to show.
The misconception is that ReAct is the right default because it is the best known. Many tasks have a known shape — retrieve, then summarise, then format — and encoding that shape directly as a pipeline is faster, cheaper and far easier to test than asking a model to rediscover it on every request. Reserve the open loop for genuinely variable work where the number and order of steps cannot be known in advance.
Related terms
Articles covering this
Where ReAct Pattern shows up in practice rather than in definition.