ReAct Prompting: The 2026 Framework for AI That Thinks AND Acts

Chain-of-thought prompting was 2023's breakthrough. In 2026, the technique that consistently outperforms it on real-world tasks is ReAct prompting โ€” a framework that makes AI models actively consult external tools, search for fresh information, and take actions between reasoning steps. Here's the complete guide.

What Is ReAct Prompting?

ReAct (short for Reason + Act) is a prompting framework introduced by researchers at Princeton and Google that interleaves verbal reasoning traces with actions in a single loop. Instead of generating a reasoning chain and stopping, a ReAct-powered model continuously cycles through three steps:

  1. Thought โ€” The model decides what to figure out next
  2. Action โ€” The model calls an external tool (search, lookup, calculator)
  3. Observation โ€” The model processes the tool's response and updates its reasoning

This cycle repeats until the model has enough information to produce a final answer. The key insight: reasoning and action are not sequential โ€” they are interleaved, so the model's thinking evolves in real time as it encounters new information.

The core difference from chain of thought: CoT assumes the model knows everything it needs to reason correctly. ReAct acknowledges that many real tasks require information the model doesn't have in its weights โ€” current prices, medical guidelines updated last week, or a user's personal files. ReAct bridges that gap by design.

How ReAct Works: The Think-Act-Observe Loop

The ReAct loop operates on a state variable โ€” often called context or agent_memory โ€” that accumulates over the cycle. Each iteration appends a thought, an action, and an observation until a terminating condition is met.

Thought: I need to find the current exchange rate between USD and JPY.
Action: search[USD to JPY exchange rate today]
Observation: 1 USD = 149.82 JPY (September 27, 2026)
Thought: Now I can calculate: 500 USD ร— 149.82 = 74,910 JPY
Action: finish[74,910 JPY]

The search[] and finish[] syntax is how the model signals tool calls. In practice, when you write ReAct prompts for ChatGPT, Claude, or Gemini, you write these as natural-language instructions the model learns to interpret.

Why ReAct Consistently Beats Chain of Thought

On paper, chain-of-thought (CoT) prompting delivers impressive gains. In practice, ReAct outperforms CoT on five task categories where the gap matters most:

On the HotpotQA multi-hop reasoning benchmark, ReAct achieves 73.4% accuracy versus CoT's 68.1%. On Fever, ReAct reaches 83.6% versus 80.9% for CoT. When combined with self-consistency (generate multiple ReAct trajectories, vote on the most common answer), performance climbs to 87.1% on HotpotQA โ€” a 19-point gain over standard prompting.

ReAct vs. Other Prompting Techniques

Technique Reasoning Tools Best For
Standard Prompting None None Simple factual questions
Chain of Thought Single linear chain None Math, logic, step-by-step analysis
Tree of Thoughts Branching exploration Optional Strategic planning, creative ideation
ReAct Iterative with observations Required Research, dynamic QA, multi-tool workflows
ReAct + Self-Consistency Multiple trajectories, vote Required High-stakes reasoning tasks

What Tools Does ReAct Use?

ReAct is tool-agnostic โ€” the framework works with any function the model can call. Three tool categories dominate real implementations:

1. Search and Retrieval

Web search, internal knowledge bases, or vector database lookups. The model identifies what information it needs, calls the search tool, and incorporates the result into its next reasoning step.

2. Computation

Calculators, code interpreters (Python execution), or symbolic math tools. Particularly valuable for financial analysis, data processing, or any task where arithmetic precision matters.

3. Action Execution

Sending emails, updating records, triggering workflows via API calls. The model's reasoning determines when and what to execute, while the action step performs it.

8 ReAct Prompt Templates for 2026

These templates are ready to copy into ChatGPT, Claude, or Gemini. Each follows the explicit think-act-observe format and includes a worked example.

Template 1: Research & Synthesis

You are a research assistant using ReAct prompting. For each question, you will:
  1. THINK: Decide what you need to know and which query will find it
  2. ACT: Issue a search in the format search[your search query]
  3. OBSERVE: Incorporate the result into your reasoning

  Continue this loop until you can give a complete, sourced answer.
  When you have enough information, respond with: finish[your answer]

  --- EXAMPLE ---
  Question: What is the current federal funds rate and how does it affect mortgage rates?

  Think: I need the current federal funds rate. The most reliable source is the Federal Reserve's official website.
  Act: search[Federal Reserve federal funds rate September 2026]
  Observe: The current federal funds rate is 4.75%โ€“5.00% as of September 2026, set by the FOMC on September 17, 2026.

  Think: Now I need to connect this to mortgage rates. Mortgage rates typically follow the 10-year Treasury yield, which moves in response to Fed rate changes with a lag of several months to a year.
  Act: search[how federal funds rate affects mortgage rates 2026]
  Observe: According to Freddie Mac, the 30-year fixed mortgage rate was 6.89% in the week of September 19, 2026. Economists broadly agree that mortgage rates track the 10-year Treasury, not the Fed rate directly, with an approximately 6โ€“18 month transmission lag.

  Think: I now have sufficient information to synthesize the connection between the federal funds rate and mortgage rates.
  Act: finish[Rates are related but not directly linked. The Fed's 4.75%โ€“5.00% rate influences the 10-year Treasury yield, which drives mortgage rates. The 30-year fixed rate of 6.89% reflects market expectations for future Fed policy.]

  --- YOUR TASK ---
  Question: [INSERT YOUR QUESTION]

Template 2: Multi-Step Calculation with Verification

You are solving a multi-step calculation using the ReAct framework.

  Format:
  Thought: [What I need to calculate and why]
  Action: calculate[expression to evaluate]
  Observation: [Result and whether it makes sense]

  Continue until you reach a verified final answer.
  Respond: finish[answer with units]

  --- EXAMPLE ---
  Question: If a company has $2.4M in revenue, a 34% gross margin, and operating expenses of $680K, what is its operating profit?

  Thought: I need gross profit first: revenue ร— gross margin = $2.4M ร— 0.34
  Action: calculate[2400000 * 0.34]
  Observation: Gross profit = $816,000

  Thought: Now subtract operating expenses from gross profit to get operating profit.
  Action: calculate[816000 - 680000]
  Observation: Operating profit = $136,000

  Thought: Let me verify: $2.4M revenue, $816K gross profit (34%), $680K opex leaves $136K operating profit. That's a 5.67% operating margin, which is reasonable for a growing software company.
  Act: finish[Operating profit = $136,000 (5.67% operating margin)]

  --- YOUR TASK ---
  Question: [INSERT YOUR CALCULATION QUESTION]

Template 3: Competitive Analysis

You are a business analyst using ReAct prompting to research competitors.

  For each competitor, follow this loop:
  Think: What do I need to know about this competitor?
  Act: search[competitor name + specific aspect]
  Observe: Key finding from the search

  After researching all competitors, synthesize findings in a comparison table.
  When complete: finish[your synthesized competitive analysis]

  Competitors to research:
  1. [Competitor A]
  2. [Competitor B]
  3. [Competitor C]

  Research dimensions: pricing, key features, market position, and recent news (last 90 days).

  --- YOUR TASK ---
  Competitors: [LIST COMPETITORS]
  Research question: [WHAT YOU WANT TO COMPARE]

Template 4: Code Debugging

You are debugging the following code using ReAct prompting.

  BUG REPORT: [DESCRIBE THE BUG]
  EXPECTED BEHAVIOR: [WHAT SHOULD HAPPEN]
  ACTUAL BEHAVIOR: [WHAT HAPPENS INSTEAD]

  Debug loop:
  Think: Based on the error/bug, what is the most likely cause?
  Act: explain_code[the specific line or function you suspect]
  Observe: What the code actually does vs. what it should do

  If you need to test a theory:
  Action: suggest_fix[your proposed change and why it should work]
  Observe: [Result of the fix]

  When the bug is fixed:
  Act: finish[summary of the fix and what caused the problem]

  --- YOUR TASK ---
  Bug report: [DESCRIBE BUG]
  Code:
  [PASTE CODE]

Template 5: Decision Analysis

You are advising on [DECISION TO MAKE] using ReAct prompting.

  For each option, follow this loop:
  Think: What information do I need to evaluate this option?
  Act: search[relevant information]
  Observe: Key finding that affects this option

  Evaluate at least 3 options, then build a decision matrix.
  When your analysis is complete:
  Act: finish[recommendation with reasoning and confidence level]

  --- EXAMPLE ---
  Decision: Should a startup build in-house or use a third-party API for speech-to-text?

  Option 1: In-house (Whisper)
  Think: What does it cost to self-host Whisper? What infrastructure is needed?
  Act: search[Whisper self-hosting infrastructure costs 2026]
  Observe: Whisper large-v3 model requires ~10GB VRAM. A single A100 80GB instance on AWS costs ~$3.40/hr. At 100 hours/month usage, that's ~$340/month plus engineering overhead of 20-30 hours for setup and maintenance.

  Option 2: Third-party API (Deepgram/AssemblyAI)
  Think: What are current third-party pricing rates for speech-to-text?
  Act: search[Deepgram speech-to-text pricing 2026]
  Observe: Deepgram Nova-2 is $0.0043/min for batch, $0.0143/min for real-time streaming. At 100 hours/month, that's $25.80 (batch) or $85.80 (streaming), plus no infrastructure overhead.

  Option 3: Hybrid (fine-tuned model)
  Think: What would fine-tuning Whisper for our specific domain require?
  Act: search[Whisper fine-tuning cost and dataset requirements]
  Observe: Fine-tuning large-v3 requires ~100+ hours of labeled audio and 4-8 A100 hours. Estimated $14-28 in compute plus 40+ hours of ML engineering time.

  Act: finish[For most early-stage startups: use a third-party API (Deepgram Nova-2) to validate product-market fit before investing in self-hosting. Revisit self-hosting only when usage exceeds ~500 hours/month.]

  --- YOUR TASK ---
  Decision: [WHAT ARE YOU DECIDING?]
  Options: [LIST 2-4 OPTIONS]

Template 6: Legal or Compliance Research

You are conducting legal or compliance research using ReAct prompting.

  TOPIC: [LEGAL QUESTION]
  JURISDICTION: [COUNTRY/STATE/INDUSTRY]

  Research loop:
  Think: What specific legal question needs to be answered here?
  Act: search[specific legal query + jurisdiction + year]
  Observe: What the search reveals about the current law or regulation

  Important: Distinguish between:
    - Black-letter law (what the statute or regulation actually says)
    - Regulatory guidance (how agencies interpret the law)
    - Case law (how courts have applied it)
    - My legal opinion (your synthesis of the above)

  When you have sufficient sources:
  Act: finish[Your answer categorized by black-letter law, regulatory guidance, and your opinion]

  DISCLAIMER: [THIS IS LEGAL RESEARCH, NOT LEGAL ADVICE]

  --- YOUR TASK ---
  Topic: [LEGAL QUESTION]
  Jurisdiction: [JURISDICTION]

Template 7: Content Research Brief

You are researching background information for a content piece using ReAct prompting.

  CONTENT BRIEF:
  Topic: [MAIN TOPIC]
  Angle: [YOUR UNIQUE ANGLE OR PERSPECTIVE]
  Target audience: [AUDIENCE]

  Research loop:
  Think: What statistics, expert quotes, or current examples would make this content credible and compelling?
  Act: search[specific query with context]
  Observe: [KEY FINDING โ€” note the source URL]

  Goal: Gather at least 5 specific statistics or facts with sources, and 2-3 expert perspectives.

  When research is complete:
  Act: finish[Research brief with: (1) Key statistics with sources, (2) Expert perspectives, (3) 2-3 angles the content should address that competitors miss]

Template 8: Self-Consistency ReAct (High-Stakes Tasks)

You are answering a high-stakes question using ReAct prompting with self-consistency.
  This means generating 3 different reasoning trajectories and comparing them.

  QUESTION: [YOUR QUESTION]

  --- TRAJECTORY 1 ---
  Think: [FIRST APPROACH]
  Act: search[relevant query]
  Observe: [RESULT]
  Think: [NEXT REASONING STEP]
  Act: [NEXT ACTION]
  Observe: [RESULT]
  Act: finish[TRAJECTORY 1 ANSWER]

  --- TRAJECTORY 2 ---
  Think: [SECOND APPROACH โ€” start from a different angle]
  Act: search[different relevant query]
  Observe: [RESULT]
  Think: [NEXT REASONING STEP]
  Act: [NEXT ACTION]
  Observe: [RESULT]
  Act: finish[TRAJECTORY 2 ANSWER]

  --- TRAJECTORY 3 ---
  Think: [THIRD APPROACH โ€” try a completely different framing]
  Act: search[third angle query]
  Observe: [RESULT]
  Think: [NEXT REASONING STEP]
  Act: [NEXT ACTION]
  Observe: [RESULT]
  Act: finish[TRAJECTORY 3 ANSWER]

  --- CONSENSUS CHECK ---
  Compare all three trajectories. If 2+ agree, that is your answer.
  If all three differ, explain why and give the most conservative interpretation.
  Act: finish[FINAL CONSENSUS ANSWER]

  --- YOUR TASK ---
  Question: [INSERT HIGH-STAKES QUESTION]

5 Common ReAct Prompting Mistakes to Avoid

1. Skipping the Observation Step

The observation is not a formality โ€” it is the data point that either confirms or contradicts your current reasoning. Models that skip or compress observations tend to double down on incorrect intermediate conclusions.

2. Vague Tool Specifications

"Search for information" is ambiguous. "search[GDP growth rate comparison Japan USA 2026]" is precise. The more specific the tool call, the higher the quality of the returned data.

3. Forgetting to Check Tool Output

ReAct models sometimes assume a search succeeded when it returned nothing useful. Always include a verification step: if the observation is empty or irrelevant, issue a refined search rather than proceeding with bad data.

4. Over-Engineering Simple Tasks

ReAct adds overhead. For a single-step factual question, standard prompting is faster and equally accurate. Reserve ReAct for tasks requiring 3+ reasoning steps or information synthesis across multiple sources.

5. No Termination Condition

Without a clear finish[] or equivalent signal, the model may loop indefinitely, especially on open-ended research tasks. Always specify when the model should stop and what a complete answer looks like.

Key Takeaways

Stop Writing Prompts That Get Generic Responses

The Prompt Helper Gemini Chrome extension enhances your prompts using frameworks like ReAct, chain-of-thought, and few-shot directly in your browser. Works with ChatGPT, Claude, Gemini, and Grok.

Try Prompt Helper Gemini โ€” Free