初识 LangGraph ReAct Agent:一步步教你构建自己的智能 Agent

553 阅读7分钟

你有没有想过,如何让 AI 不只是回答问题,而是像人一样边思考、边行动,自动完成复杂任务

现在可以借助ReAct框架构建AI Agent, 它可以无缝的将推理、决策和任务执行有机丝滑的结合,从而让大模型不仅具备了理解语言和输出答案,进而可以自主思考选择工具,模仿人类去完成一些相对复杂的任务

在这篇文章中,我们将聚焦于构建一个实用的 ReAct Agent —— 从概念原理、应用场景,到使用 LangChain + LangGraph 构建可运行的智能体,一步步带你完成从 0 到 1 的开发过程。

现在,就让我们开始构建一个真正能“思考并行动”的 AI Agent 吧!


什么是 AI Agent和ReAct Agent

在进入代码演示之前,我们首先来搞清以下两个问题

  • 什么是 AI Agent(智能体)?
  • 什么是 ReAct Agent?它与 AI Agent 有什么关系?

我们经常听到“AI Agent”这个词,那它到底指什么?而 “ReAct Agent” 又属于什么范畴?接着我们先梳理清楚它们之间的联系与区别。

什么是智能体(AI Agent)

AI Agent 是一种具备自主性、感知能力和执行能力的系统,能够将大型语言模型(LLM)与外部系统或工具交互结合,完成特定任务。

它可以被视为一个“有决策能力的工具人”,不仅能响应用户指令还能感知环境、规划路径并执行任务。

AI Agent 的特点

  • 推理能力:能够基于输入信息进行多步思考
  • 判断能力:能够理解复杂任务的上下文
  • 决策能力:能够自主选择行动路径或调用工具
  • 执行能力:能够将决策转化为可实际落地的操作
  • 交互能力:能与外部系统(API、数据库、UI等)进行互动

什么是 ReAct Agent?

ReAct 是 AI Agent 的一种实现方式,是由 OpenAI 提出的 Reasoning + Acting(推理 + 行动)  模型交互模式,适合构建多步推理、工具调用型的Agent框架 🌀 ReAct 的执行流程如下:

  1. 输入Input:  接收任务输入, 并将其传给大语言模型(LLM)。
  2. 推理Reasoning: 模型先进行思考,分析任务,并规划完成任务所需的操作。
  3. 行动Acting: 模型在思考之后,基于推理的结果决定哪个外部工具(如搜索引擎、API 等),并执行相关操作以获取信息或与外部环境交互。例如,它可能会查询 Wikipedia 获取相关事实,或从公司数据库中提取数据。
  4. 观察Observation: Agent根据执行的结果,更新到自身的记忆或知识中。并继续执行一下轮的推理Reasoning...
  5. 回应Response:最终Agent基于推理的过程和所收集的信息生成一个完整的回复。 这种方式就像一个人解题时不断地思考 → 操作 → 观察 → 再思考,逐步推进任务完成。

图片

什么时候使用 ReAct Agent框架

并不是所有 AI 应用都需要使用 ReAct Agent。如果你只是做简单的问答、闲聊或单步 API 调用,用一个语言模型直接响应就足够了。

但当任务需要思考、判断并主动采取多个操作步骤时,ReAct Agent 就非常适合 —— 它可以让 AI 像人一样“思考 → 执行 → 观察 → 再思考”,完成复杂目标。

✅ 典型使用场景

客户服务:自动响应、处理用户问题

用户输入:我的包裹怎么还没到?

ReAct Agent的执行流程参考如下

  1. 调用快递查询工具
  2. 判断包裹状态为“延迟”
  3. 自动回应用户:“很抱歉快递延迟了,您可以选择申请退款或耐心等待”

金融决策:综合分析并辅助交易判断

用户输入 : 现在适合买特斯拉的股票吗?

ReAct Agent的执行流程参考如下

  1. 调用工具获取特斯拉近期股价趋势
  2. 调用工具分析相关新闻的市场情绪
  3. 比较整体大盘走势
  4. 综合输出建议:“建议暂时观望”

AI Agent 与 ReAct Agent 的关系与区别

现在让我们来回答AI Agent与ReAct Agent的关系

AI Agent是统称,更宽泛或更抽象,而ReAct Agent是AI Agent的一种实现方式,它通过明确的“推理 + 行动”循环机制,使智能体不仅能理解任务,还能自主分解、选择工具并执行操作。

简而言之:

  • AI Agent 是一个“大类”或统称,ReAct Agent 是其中一个具有代表性的子类。
  • 当你需要构建一个具备清晰推理链条、多步操作能力、动态工具选择能力的智能体时,ReAct Agent 是非常合适的选择。

🚀 快速上手:代码实战

下面我们将通过一段简单的示例代码,构建一个具备“搜索能力”的 ReAct Agent

安装依赖项

请确保你已经使用 Python 3.8+ 并创建好了虚拟环境(推荐使用 venv 或 conda)。

✅ 方式一:通过 pip 直接安装

pip install langchain langgraph langchain-openai langchain-community duckduckgo-search python-dotenv

✅ 方式二:使用requirements.txt安装

在 requirements.txt 中添加如下依赖项:

langchain==0.3.26
python-dotenv==1.0.1
langchain-community==0.3.26
langchain-core~=0.3.67
langgraph~=0.5.2
langchain-openai~=0.3.27
duckduckgo_search~=8.1.1

使用以下命令安装所有依赖:

pip install -r requirements.txt

🔐 配置 OpenAI API Key

在项目根目录下创建一个.env文件,并添加OpenAI API 密钥(如果使用其他大模型请更换对应的Key):

OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

完整代码演示

from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_community.tools import DuckDuckGoSearchRun
from langgraph.checkpoint.memory import MemorySaver
from langgraph.prebuilt import create_react_agent

# 加载环境变量(.env 文件中应设置 OPENAI_API_KEY)
load_dotenv()

# 初始化语言模型
chat_model = ChatOpenAI(
    model_name="gpt-3.5-turbo",
    temperature=0,
)

# DuckDuckGo 搜索作为工具
search = DuckDuckGoSearchRun()
tools = [search]

# ReAct Agent执行器
memory = MemorySaver()
agent_executor = create_react_agent(chat_model, tools, checkpointer=memory)

# 配置线程 ID(用于追踪状态)
config = {"configurable": {"thread_id""abc123"}}

# 示例输入消息:需要搜索 + 提取信息
input_message = {
    "role": "user",
    "content": "Please help me check the top 5 programming languages in the TIOBE index for 2025."
}

# 流式执行 Agent,每一步都会输出推理或工具调用的中间过程
for step in agent_executor.stream(
    {"messages": [input_message]}, config, stream_mode="values"
):
    step["messages"][-1].pretty_print()

这段代码完成了以下几个步骤:

  • ✅ 加载环境变量,用于获取 OpenAI密钥
  • ✅ 初始化ChatGPT大语言模型(gpt-3.5-turbo)对象
  • ✅ 使用 DuckDuckGo 作为搜索工具
  • ✅ 创建一个ReAct 模式的 Agent 执行器,并将大模型,工具列表作为参数
  • ✅ 输入查询“Please help me check the top 5 programming languages in the TIOBE index for 2025.”
  • ✅ 通过流式执行方式,逐步输出智能体的推理过程、工具调用和最终回答

运行结果示例

一个简单的ReAct Agent已经完成了,运行main.py来实际试试看吧。

以下是输出结果:

(.venv) ~/WorkSpace/Exercises/PythonProject
python main.py
================================ Human Message =================================

Please help me check the top 5 programming languages in the TIOBE index for 2025.
================================== Ai Message ==================================
Tool Calls:
  duckduckgo_search (call_gZRRAYufmrwmir7NpcenX42F)
 Call ID: call_gZRRAYufmrwmir7NpcenX42F
  Args:
    query: TIOBE index top 5 programming languages 2025
================================= Tool Message=================================
Name: duckduckgo_search

Mar 13, 2025 · Using the latest TIOBE Index, we analyzed the 10 most popular programming languages of 2025 based on real-world usage and developer demand. From Python’s dominance in AI to C++’s rising popularity, this list helps you stay competitive in a fast-changing industry. Mar 11, 2025 · Python is the top programming language in the TIOBE and PYPL Index. Python has taken a lead of over 12% from C++ in TIOBE. In PYPL, a gap is much wider as top-ranked Python is ahead by over 15% from 2nd-ranked Java. TIOBE: Python, C++, Java, and C are way ahead of others in the TIOBE Index. May 13, 2025 · In 2025, Python has achieved the top position as the most popular programming language, according to the Tiobe Index, with a 25.35% rating. Its simplicity, extensive libraries, and suitability for various applications, including data science and web development, contribute to its dominance. Jun 26, 2025 · This article introduces the top 10 programming languages for 2025, ranked based on popularity, job demand, versatility, community support, and future trends. 1. Python. 2. JavaScript. 3. Java. 4. C++. 5. C# 6. Go (Golang) 7. Rust. 8. TypeScript. 9. Swift. 10. Kotlin. To rank the top programming languages for 2025, we considered several key factors: Jun 19, 2025 · According to the TIOBE Programming Community index, the following are the top 10 programming languages in June 2025. 1. Python: A general-purpose programming language commonly used for...
==================================Ai Message==================================

The top 5 programming languages in the TIOBE index for 2025 are:

1. Python
2. JavaScript
3. Java
4. C++
5. C#

原文地址:https://mp.weixin.qq.com/s/QIpymDYJrXL0k-nNHCUx6g