Workflow Topology
Pattern 08 of 9
ReWOO
Plan all tool calls upfront without observations, then execute in one batch.

ReWOO, which stands for Reasoning WithOut Observations, separates planning from execution. A planner model reads the task and generates a complete plan: a sequence of tool calls with their arguments, written out before any tool has been executed. The plan uses symbolic references to capture dependencies between steps, such as step 3 uses the output of step 1, without needing the actual values yet. An executor then runs all the tool calls in the plan, resolving references as it goes. A final solver synthesizes the results into an answer. The whole sequence runs with roughly two-thirds fewer tokens than a standard ReAct loop on comparable tasks.
Why it matters
ReAct loops are token-heavy because every tool observation gets added to the context before the model produces the next thought. For tasks with many tool calls, this context accumulation is expensive and slow. ReWOO avoids it by doing all the reasoning upfront, before any tools run. The planning stage is cheaper because it operates on the task description alone. The execution stage is cheap because it does not involve the LLM at all. The savings compound with the number of tool calls in the plan.
Deep Dive
The ReWOO paper from Xu et al., published in 2023, reported approximately 67% token reduction compared to ReAct on the same tasks, with comparable or better task completion rates. The gain comes from removing the observation-reason-action interleaving that makes ReAct's context grow linearly with the number of steps. In ReWOO, the context for the planning step is fixed at the task description plus the tool definitions. It does not grow as steps execute. For tasks with ten or more tool calls, this is a meaningful cost and latency difference.
The symbolic reference mechanism is the clever part. When the planner writes the plan, it does not have the actual output of step 1 yet. Instead, it writes something like: "step 3: call format_result with input=step1.output." The executor reads this plan, runs step 1, and substitutes the real output into step 3's input when it gets there. This lets the planner reason about dependencies without needing to run anything. The constraint is that the planner has to be able to specify the plan fully from the task description alone. Tasks where the right next step depends on what you actually find in the previous step's output are not a good fit.
The practical limitation of ReWOO is that it assumes the plan will not need to change mid-execution. If step 2 fails or returns something unexpected, the rest of the plan may be built on a broken foundation, and there is no mechanism to adapt mid-flight. Standard ReAct can change course based on observations. ReWOO cannot, by design. This makes ReWOO a better fit for well-understood, repeatable task types where you have confidence that a good plan will succeed, and a worse fit for exploratory or research tasks where the right path depends on what you discover.