Bird
Raised Fist0
Agentic AIml~5 mins

ReAct pattern (Reasoning + Acting) in Agentic AI

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

The ReAct pattern helps AI think step-by-step and take actions to solve problems better. It mixes reasoning with doing, like how we think and then act.

When an AI needs to solve complex problems by thinking through steps.
When an AI must gather information before making a decision.
When an AI interacts with tools or environments and must decide what to do next.
When you want an AI to explain its thought process while working.
When debugging AI decisions to understand why it acted a certain way.
Syntax
Agentic AI
Thought: <reasoning about the problem>
Action: <an action to take>
Observation: <result from the action>
... (repeat Thought, Action, Observation as needed)
Final Answer: <the answer or decision>

The pattern alternates between Thought (reasoning) and Action (doing something).

Observation records what happened after the action, helping the AI learn and decide next steps.

Examples
This shows the AI thinking, searching, seeing the result, and giving the final answer.
Agentic AI
Thought: I need to find the capital of France.
Action: Search('capital of France')
Observation: Paris
Final Answer: The capital of France is Paris.
The AI uses an external tool (weather API) to get information before answering.
Agentic AI
Thought: I want to know today's weather.
Action: CallWeatherAPI('today')
Observation: Sunny, 25°C
Final Answer: Today's weather is sunny and 25 degrees Celsius.
Sample Model

This simple program shows the ReAct pattern. The agent thinks about the question, acts by searching, observes the result, and then gives the final answer.

Agentic AI
class ReActAgent:
    def __init__(self):
        self.knowledge = {}

    def think(self, question):
        print(f"Thought: I need to answer '{question}'")
        if 'capital' in question.lower():
            print("Action: Search('capital of France')")
            observation = 'Paris'
            print(f"Observation: {observation}")
            print(f"Final Answer: The capital of France is {observation}.")
        else:
            print("Action: No action available")
            print("Observation: None")
            print("Final Answer: Sorry, I don't know.")

agent = ReActAgent()
agent.think('What is the capital of France?')
OutputSuccess
Important Notes

The ReAct pattern helps AI explain its steps, making it easier to trust and improve.

It works well when AI can use tools or APIs to get information.

Each cycle of Thought, Action, Observation helps the AI refine its answer.

Summary

The ReAct pattern mixes thinking and doing for better AI problem solving.

It uses clear steps: Thought, Action, Observation, and Final Answer.

This pattern helps AI explain its reasoning and use tools effectively.

Practice

(1/5)
1. What is the main purpose of the ReAct pattern in AI problem solving?
easy
A. To store large datasets efficiently
B. To speed up training of neural networks
C. To combine reasoning steps with actions for clearer problem solving
D. To replace human decision making completely

Solution

  1. Step 1: Understand the ReAct pattern components

    The ReAct pattern mixes reasoning (thought) and acting (actions) to solve problems step-by-step.
  2. Step 2: Identify the main goal

    Its goal is to help AI explain its reasoning clearly while using tools effectively.
  3. Final Answer:

    To combine reasoning steps with actions for clearer problem solving -> Option C
  4. Quick Check:

    ReAct = Reasoning + Acting [OK]
Hint: ReAct means think and do together for better answers [OK]
Common Mistakes:
  • Confusing ReAct with data storage methods
  • Thinking it speeds up training only
  • Believing it replaces humans fully
2. Which of the following shows the correct sequence of steps in the ReAct pattern?
easy
A. Action -> Thought -> Observation -> Final Answer
B. Thought -> Action -> Observation -> Final Answer
C. Observation -> Thought -> Action -> Final Answer
D. Final Answer -> Thought -> Action -> Observation

Solution

  1. Step 1: Recall the ReAct step order

    The ReAct pattern follows Thought (reasoning), then Action (doing), then Observation (seeing results), and finally Final Answer.
  2. Step 2: Match the correct sequence

    Thought -> Action -> Observation -> Final Answer matches this exact order.
  3. Final Answer:

    Thought -> Action -> Observation -> Final Answer -> Option B
  4. Quick Check:

    Step order = Thought, Action, Observation, Final Answer [OK]
Hint: Remember: Think first, then do, then check, then answer [OK]
Common Mistakes:
  • Swapping Action and Thought order
  • Placing Final Answer too early
  • Confusing Observation with Action
3. Given this simplified ReAct code snippet, what will be the final answer output?
thought = "Check if number is even"
action = "Divide number by 2"
observation = 4 / 2
final_answer = "Number is even" if observation == 2 else "Number is odd"
print(final_answer)
medium
A. None
B. Number is odd
C. Error: division by zero
D. Number is even

Solution

  1. Step 1: Evaluate the action and observation

    The action divides 4 by 2, resulting in observation = 2.
  2. Step 2: Determine the final answer based on observation

    Since observation == 2, the final answer is "Number is even".
  3. Final Answer:

    Number is even -> Option D
  4. Quick Check:

    4 / 2 = 2 -> even number [OK]
Hint: Check the observation value to decide final answer [OK]
Common Mistakes:
  • Confusing observation value with input number
  • Assuming division error
  • Ignoring the if-else condition
4. Identify the error in this ReAct pattern snippet:
thought = "Find square root"
action = "Calculate sqrt of 16"
observation = sqrt(16)
final_answer = "Square root is " + observation
print(final_answer)
medium
A. Missing import for sqrt function
B. Incorrect string concatenation with number
C. Wrong variable name for observation
D. No error, code runs fine

Solution

  1. Step 1: Check usage of sqrt function

    The code uses sqrt(16) but does not import sqrt from math module.
  2. Step 2: Identify missing import causing error

    Without 'from math import sqrt', this will cause a NameError.
  3. Final Answer:

    Missing import for sqrt function -> Option A
  4. Quick Check:

    sqrt needs import from math [OK]
Hint: Always import math functions before use [OK]
Common Mistakes:
  • Assuming string concatenation error
  • Thinking variable names are wrong
  • Believing code runs without imports
5. You want an AI agent using the ReAct pattern to answer: "Is 15 a prime number?" Which sequence best shows how the agent should reason and act?
hard
A. Thought: Check divisibility from 2 to 14 -> Action: Test divisibility by 3 -> Observation: 15 divisible by 3 -> Final Answer: Not prime
B. Thought: Check if 15 is even -> Action: Divide by 2 -> Observation: Not divisible -> Final Answer: Prime
C. Thought: Check if 15 is greater than 10 -> Action: Return yes -> Observation: None -> Final Answer: Prime
D. Thought: Guess number is prime -> Action: Return prime -> Observation: None -> Final Answer: Prime

Solution

  1. Step 1: Understand prime checking logic

    To check if 15 is prime, test divisibility by numbers from 2 up to 14.
  2. Step 2: Follow ReAct steps correctly

    The agent thinks about divisibility, acts by testing 3, observes 15 is divisible, then concludes not prime.
  3. Final Answer:

    Thought: Check divisibility from 2 to 14 -> Action: Test divisibility by 3 -> Observation: 15 divisible by 3 -> Final Answer: Not prime -> Option A
  4. Quick Check:

    Divisible by 3 means not prime [OK]
Hint: Test divisors stepwise to confirm prime status [OK]
Common Mistakes:
  • Only checking even divisibility
  • Guessing without testing
  • Ignoring observations in reasoning