{"id":2861,"date":"2026-03-27T10:01:23","date_gmt":"2026-03-27T10:01:23","guid":{"rendered":"https:\/\/www.mhtechin.com\/support\/?p=2861"},"modified":"2026-03-27T10:01:23","modified_gmt":"2026-03-27T10:01:23","slug":"react-pattern-reasoning-and-acting-in-ai-agents-the-complete-guide","status":"publish","type":"post","link":"https:\/\/www.mhtechin.com\/support\/react-pattern-reasoning-and-acting-in-ai-agents-the-complete-guide\/","title":{"rendered":"ReAct Pattern: Reasoning and Acting in AI Agents \u2013 The Complete Guide"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introduction<\/h3>\n\n\n\n<p>Imagine an AI that doesn\u2019t just guess the answer but thinks through problems step by step, searches for information when it doesn\u2019t know something, and adjusts its approach based on what it finds. This is the essence of the&nbsp;<strong>ReAct pattern<\/strong>&nbsp;\u2013 a revolutionary prompting paradigm that has become the foundation of modern AI agents&nbsp;<a href=\"https:\/\/systems-analysis.ru\/eng\/index.php?title=ReAct_Prompting&amp;veaction=edit&amp;section=4\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<p>Developed in 2022 by researchers from&nbsp;<strong>Google Research and Princeton University<\/strong>, ReAct (Reasoning + Acting) enables large language models to interleave verbal reasoning traces with task-specific actions, creating a powerful synergy that mirrors human problem-solving&nbsp;<a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>. Instead of relying solely on internal knowledge, ReAct agents can interact with external tools, verify facts, and adapt their strategies based on real-world feedback.<\/p>\n\n\n\n<p>Since its introduction, ReAct has become a fundamental design pattern in agentic AI, powering everything from web research agents to complex decision-making systems&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/7-must-know-agentic-ai-design-patterns\/?WT.mc_id=AI-MVP-5003172\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>. Major frameworks like&nbsp;<strong>LangChain, LangGraph, and AutoGen<\/strong>&nbsp;have built their agent architectures around this pattern&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/building-react-agents-with-langgraph-a-beginners-guide\/?rand=14489\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/github.com\/abhisheksett\/ReAct-Langchain\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<p>In this comprehensive guide, you\u2019ll learn:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What the ReAct pattern is and why it matters<\/li>\n\n\n\n<li>How the Thought\u2013Action\u2013Observation cycle works<\/li>\n\n\n\n<li>Step-by-step implementation with code examples<\/li>\n\n\n\n<li>Real-world applications and performance benchmarks<\/li>\n\n\n\n<li>Best practices and common pitfalls<\/li>\n<\/ul>\n\n\n\n<p>Let\u2019s dive in.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Part 1: What Is the ReAct Pattern?<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Definition and Origin<\/h4>\n\n\n\n<p><strong>ReAct (Reasoning + Acting)<\/strong>&nbsp;is a prompting framework that enables AI agents to solve complex tasks by generating interleaved reasoning traces and actions in an iterative cycle&nbsp;<a href=\"https:\/\/avahi.ai\/glossary\/react-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>. The name captures the core idea: the agent doesn\u2019t just think or just act\u2014it does both in a tightly integrated loop.<\/p>\n\n\n\n<p>The pattern was introduced in the landmark paper&nbsp;<em>\u201cReAct: Synergizing Reasoning and Acting in Language Models\u201d<\/em>&nbsp;by Shunyu Yao, Jeffrey Zhao, and colleagues at Google Research and Princeton University, presented at ICLR 2023&nbsp;<a href=\"https:\/\/systems-analysis.ru\/eng\/index.php?title=ReAct_Prompting&amp;veaction=edit&amp;section=4\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why ReAct Matters<\/h3>\n\n\n\n<p>Before ReAct, language model workflows followed two separate approaches:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Approach<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><th class=\"has-text-align-left\" data-align=\"left\">Limitation<\/th><\/tr><\/thead><tbody><tr><td><strong>Chain-of-Thought (CoT)<\/strong><\/td><td>Model generates step-by-step reasoning internally<\/td><td>No access to external information; prone to hallucinations&nbsp;<a href=\"https:\/\/systems-analysis.ru\/eng\/index.php?title=ReAct_Prompting&amp;veaction=edit&amp;section=4\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/td><\/tr><tr><td><strong>Act-Only<\/strong><\/td><td>Model generates actions without explicit planning<\/td><td>No high-level reasoning; struggles with error recovery&nbsp;<a href=\"https:\/\/systems-analysis.ru\/eng\/index.php?title=ReAct_Prompting&amp;veaction=edit&amp;section=4\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>ReAct combines the best of both worlds:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Reasoning<\/strong>\u00a0enables planning, tracking progress, and handling exceptions<\/li>\n\n\n\n<li><strong>Acting<\/strong>\u00a0allows interaction with external tools and environments<\/li>\n\n\n\n<li><strong>Feedback loops<\/strong>\u00a0ground decisions in real observations\u00a0<a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n<\/ul>\n\n\n\n<p>As Google Research noted, \u201cThe synergy between reasoning and acting allows the model to perform dynamic reasoning to create, maintain, and adjust high-level plans for acting, while also interacting with external environments to incorporate additional information into reasoning\u201d&nbsp;<a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Core Cycle: Thought \u2192 Action \u2192 Observation<\/h3>\n\n\n\n<p>At the heart of ReAct is a simple, repeating cycle:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"682\" height=\"1024\" src=\"https:\/\/www.mhtechin.com\/support\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_ecrf30ecrf30ecrf-682x1024.png\" alt=\"\" class=\"wp-image-2879\" style=\"aspect-ratio:0.6660316250714422;width:356px;height:auto\" srcset=\"https:\/\/www.mhtechin.com\/support\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_ecrf30ecrf30ecrf-682x1024.png 682w, https:\/\/www.mhtechin.com\/support\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_ecrf30ecrf30ecrf-200x300.png 200w, https:\/\/www.mhtechin.com\/support\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_ecrf30ecrf30ecrf-768x1153.png 768w, https:\/\/www.mhtechin.com\/support\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_ecrf30ecrf30ecrf.png 842w\" sizes=\"auto, (max-width: 682px) 100vw, 682px\" \/><\/figure>\n\n\n\n<p><em>Figure 1: The ReAct cycle \u2013 Thought, Action, Observation repeat until the task is complete<\/em><\/p>\n\n\n\n<p>Each iteration consists of three components&nbsp;<a href=\"https:\/\/systems-analysis.ru\/eng\/index.php?title=ReAct_Prompting&amp;veaction=edit&amp;section=4\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/avahi.ai\/glossary\/react-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>:<\/p>\n\n\n\n<p><strong>1. Thought \u2013 The Reasoning Phase<\/strong><br>The agent analyzes the current state, identifies what it knows and what it\u2019s missing, and decides what to do next. This is the \u201cthinking out loud\u201d step that makes the agent\u2019s decision-making transparent.<\/p>\n\n\n\n<p><strong>2. Action \u2013 The Execution Phase<\/strong><br>Based on its reasoning, the agent selects and executes a tool or action. Actions might include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Search[query]<\/code>\u00a0\u2013 query a knowledge base or search engine<\/li>\n\n\n\n<li><code>Calculate[expression]<\/code>\u00a0\u2013 perform mathematical operations<\/li>\n\n\n\n<li><code>Scrape[url]<\/code>\u00a0\u2013 retrieve content from a webpage<\/li>\n\n\n\n<li><code>Finish[answer]<\/code>\u00a0\u2013 complete the task with a final answer\u00a0<a href=\"https:\/\/github.com\/ashioyajotham\/web_research_agent\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/github.com\/abhisheksett\/ReAct-Langchain\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>3. Observation \u2013 The Feedback Phase<\/strong><br>The system executes the action and returns a result. The agent observes this feedback and uses it to inform the next thought.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Part 2: How ReAct Works \u2013 A Detailed Walkthrough<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">The Prompt Structure<\/h4>\n\n\n\n<p>ReAct agents are typically guided by a prompt that establishes the format:<\/p>\n\n\n\n<p>text<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Question: {user question}\n\nThought: [reason about what to do]\nAction: [tool name]\nAction Input: [parameters for the tool]\nObservation: [result from the tool]\n\n... (repeat Thought\/Action\/Observation as needed)\n\nThought: I now know the final answer\nFinal Answer: [complete answer to the original question]<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Real-World Example: Multi-Hop Question Answering<\/h3>\n\n\n\n<p>Consider this question from the ReAct paper:&nbsp;<em>\u201cWhat is the elevation range for the area that the eastern sector of the Colorado orogeny extends into?\u201d<\/em>&nbsp;<a href=\"https:\/\/en.wikipedia.org\/w\/index.php?diff=1234787647\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<p><strong>Thought 1:<\/strong>&nbsp;I need to search for information about the Colorado orogeny and its eastern sector.<\/p>\n\n\n\n<p><strong>Action 1:<\/strong>&nbsp;Search[Colorado orogeny]<\/p>\n\n\n\n<p><strong>Observation 1:<\/strong>&nbsp;The Colorado orogeny was an episode of mountain building in Colorado and surrounding areas.<\/p>\n\n\n\n<p><strong>Thought 2:<\/strong>&nbsp;I need more specific information about the eastern sector.<\/p>\n\n\n\n<p><strong>Action 2:<\/strong>&nbsp;Lookup[eastern sector]<\/p>\n\n\n\n<p><strong>Observation 2:<\/strong>&nbsp;The eastern sector extends into the High Plains and is called the Central Plains orogeny.<\/p>\n\n\n\n<p><strong>Thought 3:<\/strong>&nbsp;Now I need to find the elevation range of the High Plains.<\/p>\n\n\n\n<p><strong>Action 3:<\/strong>&nbsp;Search[High Plains elevation range]<\/p>\n\n\n\n<p><strong>Observation 3:<\/strong>&nbsp;The High Plains rise in elevation from around 1,800 to 7,000 ft (550 to 2,130 m).<\/p>\n\n\n\n<p><strong>Thought 4:<\/strong>&nbsp;I have found the answer.<\/p>\n\n\n\n<p><strong>Action 4:<\/strong>&nbsp;Finish[1,800 to 7,000 ft]<\/p>\n\n\n\n<p>This trajectory demonstrates how ReAct combines reasoning and action:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The agent decomposes the complex question into manageable sub-tasks<\/li>\n\n\n\n<li>It uses external tools (search, lookup) to fill knowledge gaps<\/li>\n\n\n\n<li>It adapts its plan based on observations\u00a0<a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Visualizing the ReAct Loop<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"861\" src=\"https:\/\/www.mhtechin.com\/support\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_ar8ft6ar8ft6ar8f-1024x861.png\" alt=\"\" class=\"wp-image-2887\" srcset=\"https:\/\/www.mhtechin.com\/support\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_ar8ft6ar8ft6ar8f-1024x861.png 1024w, https:\/\/www.mhtechin.com\/support\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_ar8ft6ar8ft6ar8f-300x252.png 300w, https:\/\/www.mhtechin.com\/support\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_ar8ft6ar8ft6ar8f-768x646.png 768w, https:\/\/www.mhtechin.com\/support\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_ar8ft6ar8ft6ar8f.png 1123w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><em>Figure 2: Sequence diagram of the ReAct agent loop<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Part 3: Implementing ReAct Agents \u2013 Step-by-Step<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Option 1: Building from Scratch with LangGraph<\/h4>\n\n\n\n<p>LangGraph provides an excellent framework for building ReAct agents with a graph-based workflow&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/building-react-agents-with-langgraph-a-beginners-guide\/?rand=14489\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 1: Define the State<\/h4>\n\n\n\n<p>python<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">from langgraph.graph import StateGraph, END\nfrom typing import TypedDict, Annotated\nimport operator\n\nclass AgentState(TypedDict):\n    messages: Annotated[list, operator.add]\n    next_action: str\n    iterations: int<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step 2: Create Tools<\/h4>\n\n\n\n<p>python<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">def search_tool(query: str) -&gt; str:\n    \"\"\"Simulate a search tool. In production, use Serper, Tavily, or Brave Search.\"\"\"\n    responses = {\n        \"weather tokyo\": \"Tokyo weather: 18\u00b0C, partly cloudy\",\n        \"population japan\": \"Japan population: approximately 125 million\",\n    }\n    return responses.get(query.lower(), f\"No results found for: {query}\")<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step 3: Implement the Reasoning Node<\/h4>\n\n\n\n<p>python<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">def reasoning_node(state: AgentState):\n    \"\"\"The 'Thought' phase \u2013 decides what to do next.\"\"\"\n    messages = state[\"messages\"]\n    iterations = state.get(\"iterations\", 0)\n    \n    # Simple logic for demonstration\n    if iterations == 0:\n        return {\n            \"messages\": [\"Thought: I need to check Tokyo weather\"],\n            \"next_action\": \"action\",\n            \"iterations\": iterations + 1\n        }\n    elif iterations == 1:\n        return {\n            \"messages\": [\"Thought: Now I need Japan's population\"],\n            \"next_action\": \"action\",\n            \"iterations\": iterations + 1\n        }\n    else:\n        return {\n            \"messages\": [\"Thought: I have enough info to answer\"],\n            \"next_action\": \"end\",\n            \"iterations\": iterations + 1\n        }<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step 4: Implement the Action Node<\/h4>\n\n\n\n<p>python<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">def action_node(state: AgentState):\n    \"\"\"The 'Action' phase \u2013 executes the chosen tool.\"\"\"\n    iterations = state[\"iterations\"]\n    \n    # Choose query based on iteration\n    query = \"weather tokyo\" if iterations == 1 else \"population japan\"\n    result = search_tool(query)\n    \n    return {\n        \"messages\": [\n            f\"Action: Searched for '{query}'\",\n            f\"Observation: {result}\"\n        ],\n        \"next_action\": \"reasoning\"\n    }<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step 5: Build and Run the Graph<\/h4>\n\n\n\n<p>python<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># Build the graph\nworkflow = StateGraph(AgentState)\nworkflow.add_node(\"reasoning\", reasoning_node)\nworkflow.add_node(\"action\", action_node)\n\n# Define edges\nworkflow.set_entry_point(\"reasoning\")\nworkflow.add_conditional_edges(\"reasoning\", route, {\n    \"action\": \"action\",\n    \"end\": END\n})\nworkflow.add_edge(\"action\", \"reasoning\")\n\n# Compile and run\napp = workflow.compile()\nresult = app.invoke({\n    \"messages\": [\"User: Tell me about Tokyo and Japan\"],\n    \"iterations\": 0,\n    \"next_action\": \"\"\n})\n\n# Output the conversation\nfor msg in result[\"messages\"]:\n    print(msg)<\/pre>\n\n\n\n<p><strong>Output:<\/strong><\/p>\n\n\n\n<p>text<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">User: Tell me about Tokyo and Japan\nThought: I need to check Tokyo weather\nAction: search('weather tokyo')\nObservation: Tokyo weather: 18\u00b0C, partly cloudy\nThought: Now I need Japan's population\nAction: search('population japan')\nObservation: Japan population: approximately 125 million\nThought: I have enough info to answer<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Option 2: LLM-Powered ReAct Agent<\/h4>\n\n\n\n<p>For a truly dynamic agent, replace hardcoded logic with an LLM that decides actions&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/building-react-agents-with-langgraph-a-beginners-guide\/?rand=14489\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<p>python<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">from openai import OpenAI\nimport os\n\nclient = OpenAI(api_key=os.environ.get(\"OPENAI_API_KEY\"))\n\nclass ReActAgent:\n    def __init__(self, tools):\n        self.tools = tools\n        self.messages = []\n        \n    def think(self, user_input):\n        self.messages.append({\"role\": \"user\", \"content\": user_input})\n        \n        # Prompt format from ReAct paper\n        prompt = self._build_react_prompt(user_input)\n        \n        max_iterations = 10\n        for _ in range(max_iterations):\n            response = client.chat.completions.create(\n                model=\"gpt-4o\",\n                messages=[{\"role\": \"user\", \"content\": prompt}]\n            )\n            \n            content = response.choices[0].message.content\n            \n            # Check if we have a final answer\n            if \"Final Answer:\" in content:\n                return content.split(\"Final Answer:\")[-1].strip()\n            \n            # Parse and execute action\n            if \"Action:\" in content and \"Action Input:\" in content:\n                action = self._parse_action(content)\n                result = self._execute_tool(action)\n                \n                # Add observation to prompt and continue\n                prompt += f\"\\nObservation: {result}\\n\"\n        \n        return \"Unable to complete within iteration limit\"<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Option 3: Using Pre-Built Frameworks<\/h4>\n\n\n\n<p>For production applications, consider using established frameworks:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Framework<\/th><th class=\"has-text-align-left\" data-align=\"left\">Description<\/th><th class=\"has-text-align-left\" data-align=\"left\">Best For<\/th><\/tr><\/thead><tbody><tr><td><strong>LangChain<\/strong><\/td><td>Comprehensive agent toolkit<\/td><td>Rapid prototyping, extensive tool library&nbsp;<a href=\"https:\/\/github.com\/abhisheksett\/ReAct-Langchain\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/td><\/tr><tr><td><strong>LangGraph<\/strong><\/td><td>Graph-based agent workflows<\/td><td>Complex, stateful agents&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/building-react-agents-with-langgraph-a-beginners-guide\/?rand=14489\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/td><\/tr><tr><td><strong>AutoGen<\/strong><\/td><td>Multi-agent collaboration<\/td><td>Systems with multiple specialized agents&nbsp;<a href=\"https:\/\/systems-analysis.ru\/eng\/index.php?title=ReAct_Prompting&amp;veaction=edit&amp;section=4\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/td><\/tr><tr><td><strong>AG2<\/strong><\/td><td>Advanced agent orchestration<\/td><td>Production deployments<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Part 4: Performance Benchmarks and Research Findings<\/h3>\n\n\n\n<p>The original ReAct paper demonstrated significant improvements across multiple benchmarks&nbsp;<a href=\"https:\/\/systems-analysis.ru\/eng\/index.php?title=ReAct_Prompting&amp;veaction=edit&amp;section=4\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Question Answering and Fact Verification<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Benchmark<\/th><th class=\"has-text-align-left\" data-align=\"left\">Standard<\/th><th class=\"has-text-align-left\" data-align=\"left\">CoT (Reason Only)<\/th><th class=\"has-text-align-left\" data-align=\"left\">Act-Only<\/th><th class=\"has-text-align-left\" data-align=\"left\">ReAct<\/th><th class=\"has-text-align-left\" data-align=\"left\">Best ReAct+CoT<\/th><\/tr><\/thead><tbody><tr><td><strong>HotpotQA<\/strong>&nbsp;(exact match)<\/td><td>28.7%<\/td><td>29.4%<\/td><td>25.7%<\/td><td>27.4%<\/td><td><strong>35.1%<\/strong><\/td><\/tr><tr><td><strong>FEVER<\/strong>&nbsp;(accuracy)<\/td><td>57.1%<\/td><td>56.3%<\/td><td>58.9%<\/td><td><strong>60.9%<\/strong><\/td><td>64.6%<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>*Source: Google Research, PaLM-540B prompting results*&nbsp;<a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Interactive Decision Making<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Benchmark<\/th><th class=\"has-text-align-left\" data-align=\"left\">Act-Only<\/th><th class=\"has-text-align-left\" data-align=\"left\">ReAct<\/th><th class=\"has-text-align-left\" data-align=\"left\">Imitation Learning Baseline<\/th><\/tr><\/thead><tbody><tr><td><strong>ALFWorld<\/strong>&nbsp;(success rate)<\/td><td>45%<\/td><td><strong>71%<\/strong><\/td><td>37% (with ~100k samples)<\/td><\/tr><tr><td><strong>WebShop<\/strong>&nbsp;(success rate)<\/td><td>30.1%<\/td><td><strong>40%<\/strong><\/td><td>29.1% (with ~90k samples)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><em>Source: Google Research<\/em>&nbsp;<a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Key Findings<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>ReAct reduces hallucinations<\/strong>\u00a0by grounding decisions in external observations\u00a0<a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n\n\n\n<li><strong>Combining ReAct with CoT<\/strong>\u00a0yields the best performance on reasoning-heavy tasks\u00a0<a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n\n\n\n<li><strong>ReAct excels in interactive environments<\/strong>\u00a0where adaptation is critical\u00a0<a href=\"https:\/\/systems-analysis.ru\/eng\/index.php?title=ReAct_Prompting&amp;veaction=edit&amp;section=4\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Part 5: Advanced ReAct Patterns and Extensions<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. ReAct + Reflection<\/h4>\n\n\n\n<p>The&nbsp;<strong>Reflection pattern<\/strong>&nbsp;adds a self-evaluation layer where the agent critiques its own outputs and revises them&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/7-must-know-agentic-ai-design-patterns\/?WT.mc_id=AI-MVP-5003172\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>. This is particularly useful for code generation and content creation.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2. ReAct + Planning<\/h4>\n\n\n\n<p>In complex tasks, a&nbsp;<strong>planning phase<\/strong>&nbsp;can precede the ReAct loop. The agent first creates a structured roadmap, then executes using ReAct for each step&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/7-must-know-agentic-ai-design-patterns\/?WT.mc_id=AI-MVP-5003172\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3. Multi-Agent ReAct<\/h4>\n\n\n\n<p>Multiple ReAct agents can collaborate, each specializing in different domains. A coordinator agent manages task distribution and result synthesis&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/7-must-know-agentic-ai-design-patterns\/?WT.mc_id=AI-MVP-5003172\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">4. Sequential Thinking<\/h4>\n\n\n\n<p>An extension that adds state tracking and dynamic task decomposition, enabling more efficient tool use and better logical coherence&nbsp;<a href=\"https:\/\/cloud.baidu.com\/article\/3934079\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Part 6: Best Practices and Design Considerations<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">When to Use ReAct<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Use Case<\/th><th class=\"has-text-align-left\" data-align=\"left\">Why ReAct Works<\/th><\/tr><\/thead><tbody><tr><td><strong>Research agents<\/strong><\/td><td>Follows evidence threads across multiple sources&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/7-must-know-agentic-ai-design-patterns\/?WT.mc_id=AI-MVP-5003172\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/td><\/tr><tr><td><strong>Debugging assistants<\/strong><\/td><td>Iterative hypothesis testing&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/7-must-know-agentic-ai-design-patterns\/?WT.mc_id=AI-MVP-5003172\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/td><\/tr><tr><td><strong>Customer support<\/strong><\/td><td>Handles non-standard requests requiring investigation&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/7-must-know-agentic-ai-design-patterns\/?WT.mc_id=AI-MVP-5003172\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/td><\/tr><tr><td><strong>Data analysis<\/strong><\/td><td>Intermediate calculations inform next steps&nbsp;<a href=\"https:\/\/avahi.ai\/glossary\/react-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">When NOT to Use ReAct<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Simple, single-step tasks<\/strong>\u00a0\u2013 overhead outweighs benefits<\/li>\n\n\n\n<li><strong>Real-time applications<\/strong>\u00a0\u2013 latency may be unacceptable<\/li>\n\n\n\n<li><strong>Tasks with no tool access<\/strong>\u00a0\u2013 ReAct\u2019s value is in external interaction<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Design Guidelines<\/h4>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Keep actions small and scoped<\/strong>\u00a0\u2013 makes error recovery easier\u00a0<a href=\"https:\/\/avahi.ai\/glossary\/react-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n\n\n\n<li><strong>Define clear stopping criteria<\/strong>\u00a0\u2013 prevent infinite loops\u00a0<a href=\"https:\/\/avahi.ai\/glossary\/react-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n\n\n\n<li><strong>Use consistent observation formats<\/strong>\u00a0\u2013 helps the agent interpret results\u00a0<a href=\"https:\/\/avahi.ai\/glossary\/react-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n\n\n\n<li><strong>Implement guardrails for tool use<\/strong>\u00a0\u2013 permission checks, rate limits\u00a0<a href=\"https:\/\/avahi.ai\/glossary\/react-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n\n\n\n<li><strong>Monitor iteration counts<\/strong>\u00a0\u2013 set maximum limits to control costs\u00a0<a href=\"https:\/\/github.com\/ashioyajotham\/web_research_agent\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Common Pitfalls to Avoid<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Pitfall<\/th><th class=\"has-text-align-left\" data-align=\"left\">Solution<\/th><\/tr><\/thead><tbody><tr><td><strong>Overthinking<\/strong>&nbsp;\u2013 agent loops unnecessarily<\/td><td>Set explicit completion conditions<\/td><\/tr><tr><td><strong>Tool overuse<\/strong>&nbsp;\u2013 calling tools when not needed<\/td><td>Add confidence thresholds<\/td><\/tr><tr><td><strong>Error propagation<\/strong>&nbsp;\u2013 one mistake derails the agent<\/td><td>Add validation steps between iterations<\/td><\/tr><tr><td><strong>Context overflow<\/strong>&nbsp;\u2013 too many messages<\/td><td>Implement memory trimming&nbsp;<a href=\"https:\/\/github.com\/ashioyajotham\/web_research_agent\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Part 7: Real-World Applications<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. Web Research Agent<\/h4>\n\n\n\n<p>A practical implementation using ReAct can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Search the web via Google API<\/li>\n\n\n\n<li>Scrape content from URLs<\/li>\n\n\n\n<li>Execute code for data analysis<\/li>\n\n\n\n<li>Synthesize findings into comprehensive reports\u00a0<a href=\"https:\/\/github.com\/ashioyajotham\/web_research_agent\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">2. Text Length Calculator Agent<\/h4>\n\n\n\n<p>A simple ReAct agent can reason about text analysis tasks, using tools to calculate statistics and return formatted results&nbsp;<a href=\"https:\/\/github.com\/abhisheksett\/ReAct-Langchain\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3. Financial Analysis Agent<\/h4>\n\n\n\n<p>ReAct agents can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Retrieve market data via APIs<\/li>\n\n\n\n<li>Calculate financial metrics<\/li>\n\n\n\n<li>Generate investment recommendations<\/li>\n\n\n\n<li>Flag anomalies for human review<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">4. Healthcare Decision Support<\/h4>\n\n\n\n<p>ReAct agents can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Query electronic health records<\/li>\n\n\n\n<li>Cross-reference medical literature<\/li>\n\n\n\n<li>Identify potential diagnoses<\/li>\n\n\n\n<li>Escalate complex cases to specialists<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Part 8: MHTECHIN\u2019s Expertise in ReAct Agents<\/h3>\n\n\n\n<p>At&nbsp;<strong>MHTECHIN<\/strong>, we specialize in building production-grade AI agents using advanced patterns like ReAct. Our expertise spans:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Custom Agent Development<\/strong>: Tailored ReAct agents for specific business domains<\/li>\n\n\n\n<li><strong>Tool Integration<\/strong>: Seamless connections to APIs, databases, and enterprise systems<\/li>\n\n\n\n<li><strong>Multi-Agent Orchestration<\/strong>: Coordinated ReAct agents working together on complex workflows<\/li>\n\n\n\n<li><strong>Production Deployment<\/strong>: Scalable, secure agent systems with monitoring and guardrails<\/li>\n<\/ul>\n\n\n\n<p>MHTECHIN\u2019s solutions leverage state-of-the-art frameworks including LangGraph, AutoGen, and custom ReAct implementations to deliver autonomous systems that drive real business value.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>The ReAct pattern represents a fundamental shift in how AI agents approach complex tasks. By interleaving explicit reasoning with concrete actions, ReAct enables agents to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ground decisions in real information<\/strong>\u00a0\u2013 reducing hallucinations<\/li>\n\n\n\n<li><strong>Adapt dynamically<\/strong>\u00a0\u2013 adjusting plans based on feedback<\/li>\n\n\n\n<li><strong>Provide transparency<\/strong>\u00a0\u2013 every step is visible and auditable<\/li>\n\n\n\n<li><strong>Scale to complex tasks<\/strong>\u00a0\u2013 handling multi-step workflows with ease<\/li>\n<\/ul>\n\n\n\n<p>Since its introduction by Google Research in 2022, ReAct has become the foundation of modern agentic AI, powering frameworks like LangChain, LangGraph, and AutoGen. With performance improvements of up to&nbsp;<strong>71% on interactive tasks<\/strong>&nbsp;and&nbsp;<strong>35% on multi-hop reasoning<\/strong>, ReAct consistently outperforms earlier approaches&nbsp;<a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<p>As you build your own ReAct agents, remember:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Start with simple tools and clear prompts<\/li>\n\n\n\n<li>Implement guardrails for safety<\/li>\n\n\n\n<li>Monitor iteration counts and costs<\/li>\n\n\n\n<li>Evolve to advanced patterns as complexity grows<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Frequently Asked Questions (FAQ)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Q1: What is the ReAct pattern in AI?<\/h4>\n\n\n\n<p>The ReAct (Reasoning + Acting) pattern is a prompting framework that enables AI agents to solve complex tasks by interleaving explicit reasoning traces with actions that interact with external tools and environments&nbsp;<a href=\"https:\/\/systems-analysis.ru\/eng\/index.php?title=ReAct_Prompting&amp;veaction=edit&amp;section=4\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/avahi.ai\/glossary\/react-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Q2: How does ReAct differ from Chain-of-Thought (CoT)?<\/h4>\n\n\n\n<p>CoT generates reasoning steps internally but cannot access external information. ReAct combines reasoning with actions that interact with tools, allowing the agent to verify facts and adapt based on real-world feedback&nbsp;<a href=\"https:\/\/systems-analysis.ru\/eng\/index.php?title=ReAct_Prompting&amp;veaction=edit&amp;section=4\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Q3: What is the Thought\u2013Action\u2013Observation cycle?<\/h4>\n\n\n\n<p>It\u2019s the core loop of ReAct where the agent: (1) thinks about what to do next, (2) executes an action using a tool, (3) observes the result, and (4) repeats until the task is complete&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/building-react-agents-with-langgraph-a-beginners-guide\/?rand=14489\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/avahi.ai\/glossary\/react-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Q4: What types of tools can ReAct agents use?<\/h4>\n\n\n\n<p>ReAct agents can use any tool with a clear interface, including web search, calculators, databases, APIs, code executors, file operations, and custom business logic&nbsp;<a href=\"https:\/\/github.com\/ashioyajotham\/web_research_agent\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/github.com\/abhisheksett\/ReAct-Langchain\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Q5: What are the limitations of ReAct?<\/h4>\n\n\n\n<p>Key limitations include: increased latency (multiple LLM calls per task), higher costs, potential for infinite loops without proper stopping criteria, and dependence on tool reliability&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/7-must-know-agentic-ai-design-patterns\/?WT.mc_id=AI-MVP-5003172\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/avahi.ai\/glossary\/react-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Q6: How do I implement a ReAct agent?<\/h4>\n\n\n\n<p>You can implement ReAct agents using frameworks like LangGraph, LangChain, or AutoGen, or build from scratch using LLM APIs with a structured prompt format&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/building-react-agents-with-langgraph-a-beginners-guide\/?rand=14489\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/github.com\/abhisheksett\/ReAct-Langchain\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Q7: What performance improvements does ReAct provide?<\/h4>\n\n\n\n<p>On interactive decision-making tasks like ALFWorld, ReAct achieves 71% success rate vs 45% for Act-only. On HotpotQA, ReAct+CoT achieves 35.1% vs 29.4% for CoT alone&nbsp;<a href=\"https:\/\/research.google\/blog\/react-synergizing-reasoning-and-acting-in-language-models\/?m=1\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Q8: Is ReAct suitable for production use?<\/h4>\n\n\n\n<p>Yes, ReAct is widely used in production for research agents, customer support automation, data analysis workflows, and software operations agents&nbsp;<a href=\"https:\/\/machinelearningmastery.com\/7-must-know-agentic-ai-design-patterns\/?WT.mc_id=AI-MVP-5003172\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/avahi.ai\/glossary\/react-framework\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Imagine an AI that doesn\u2019t just guess the answer but thinks through problems step by step, searches for information when it doesn\u2019t know something, and adjusts its approach based on what it finds. This is the essence of the&nbsp;ReAct pattern&nbsp;\u2013 a revolutionary prompting paradigm that has become the foundation of modern AI agents&nbsp;. Developed [&hellip;]<\/p>\n","protected":false},"author":64,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2861","post","type-post","status-publish","format-standard","hentry","category-support"],"_links":{"self":[{"href":"https:\/\/www.mhtechin.com\/support\/wp-json\/wp\/v2\/posts\/2861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mhtechin.com\/support\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mhtechin.com\/support\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mhtechin.com\/support\/wp-json\/wp\/v2\/users\/64"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mhtechin.com\/support\/wp-json\/wp\/v2\/comments?post=2861"}],"version-history":[{"count":8,"href":"https:\/\/www.mhtechin.com\/support\/wp-json\/wp\/v2\/posts\/2861\/revisions"}],"predecessor-version":[{"id":2888,"href":"https:\/\/www.mhtechin.com\/support\/wp-json\/wp\/v2\/posts\/2861\/revisions\/2888"}],"wp:attachment":[{"href":"https:\/\/www.mhtechin.com\/support\/wp-json\/wp\/v2\/media?parent=2861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mhtechin.com\/support\/wp-json\/wp\/v2\/categories?post=2861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mhtechin.com\/support\/wp-json\/wp\/v2\/tags?post=2861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}