ReAct: Synergizing Reasoning and Acting in Language Models
Shunyu Yao, Jeffrey Zhao, Dian Yu, et al.2023ICLR 2023
Read it on arxiv.org(opens in a new tab)Why this one
Read this after Chain-of-Thought Prompting Elicits Reasoning in Large Language Models, then read Toolformer and SGLang as two answers to the same problem. ReAct is the small idea that became the default agent loop: think a little, call something, observe the result, think again. What people get wrong is treating it as a product architecture or a magic prompt template. It is more useful than that and less glamorous. It shows that reasoning without contact with the world drifts, while tool use without an explicit scratchpad becomes brittle glue code. If you are building an assistant that searches, browses, queries a database, or drives an environment, this paper gives you the primitive loop before frameworks hide it behind decorators and YAML.
What to take away
- Interleave thoughts, actions, and observations instead of doing all reasoning before tool use.
- The observation channel is what lets the model repair bad plans instead of compounding them.
- ReAct is a control loop pattern, not a benchmark trick or a full agent architecture.
Reads with
- Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
it supplies the scratchpad that react grounds with observations
- Toolformer: Language Models Can Teach Themselves to Use Tools
it learns when to call tools instead of hand prompting the loop
- SGLang: Efficient Execution of Structured Language Model Programs
it turns react style agent loops into an efficient serving runtime