Skip to main content

ReWOO (Reasoning WithOut Observation)

ReWOO is an agent architecture that separates planning from execution. The model produces the full plan up front — including every tool call with placeholder variables for tool outputs — before any tool runs. Tools then execute in sequence or in parallel, and a final solver pass integrates the actual results into the final answer.

This removes the interleaved reasoning-action-observation loop that ReAct uses, cutting token cost because the model does not re-read and re-reason over each intermediate observation. The trade-off is adaptivity: if a tool returns something the planner did not anticipate, ReWOO cannot easily change course mid-execution, whereas ReAct can. ReWOO suits well-structured tasks with predictable tool behavior.

Example

A travel agent receives "Plan a 3-day trip to Kyoto within $1,200". The planner emits a single plan: `t1 = search_flights(origin, "KIX", date_range)`, `t2 = search_hotels("Kyoto", nights=3)`, `t3 = suggest_itinerary(nights=3, interests=[#E1], hotel=#t2)`. Tools run, then the solver composes an itinerary referencing the actual flight and hotel prices. Compared to a ReAct loop that re-prompts the model after each tool call, ReWOO saves several thousand tokens on the same task.

Frequently asked questions

What is ReWOO (Reasoning WithOut Observation)?

ReWOO is an agent architecture that separates planning from execution. The model produces the full plan up front — including every tool call with placeholder variables for tool outputs — before any tool runs.

How does ReWOO (Reasoning WithOut Observation) work?

This removes the interleaved reasoning-action-observation loop that ReAct uses, cutting token cost because the model does not re-read and re-reason over each intermediate observation. The trade-off is adaptivity: if a tool returns something the planner did not anticipate, ReWOO cannot easily change course mid-execution, whereas ReAct can.

Can you give an example of ReWOO (Reasoning WithOut Observation)?

A travel agent receives "Plan a 3-day trip to Kyoto within $1,200". The planner emits a single plan: `t1 = search_flights(origin, "KIX", date_range)`, `t2 = search_hotels("Kyoto", nights=3)`, `t3 = suggest_itinerary(nights=3, interests=[#E1], hotel=#t2)`. Tools run, then the solver composes an itinerary referencing the actual flight and hotel prices. Compared to a ReAct loop that re-prompts the model after each tool call, ReWOO saves several thousand tokens on the same task.

Put this into practice

Build polished, copy-ready prompts in under 60 seconds with SurePrompts.

Try SurePrompts