ReAct的介绍和使用

在大语言模型的世界里,仅仅依靠"单轮输出"已经不足以应对复杂的任务。为了解决这一问题,研究者们提出了一种新范式 ------ ReAct(Reasoning + Acting) ,它让模型可以"边想边干",结合推理能力和工具调用,从而完成更复杂、更真实的任务。

🧠 ReAct 是什么?

传统的语言模型只擅长单步推理,但当任务需要中间步骤,例如调用外部 API、搜索信息或查询数据库时,模型就显得力不从心。

ReAct 的提出者认为,模型需要像人类一样,一边"思考"接下来该做什么(Reasoning),一边"动手"去获取信息或操作工具(Acting),然后根据观察结果继续下一步,直到完成任务。

这就形成了一个循环:

复制代码
思考 → 行动 → 观察 → 再次思考 → ...... → 输出答案

🛠 ReAct 的实际用途

ReAct 非常适合 Agent 架构,比如:

  • 智能问答(结合搜索、数据库查询)
  • 自动数据分析(分析 + 可视化)
  • 任务规划(如旅行路线、学习计划)
  • 多工具交互(例如调用计算器 + 天气 API)

🔍 一个简单的 ReAct 示例(基于类 LangChain 架构)

下面是一个简化的 ReAct 示例代码。这个例子中,模型的任务是计算一个数学表达式,但它不会直接计算,而是"思考"该使用计算器工具,然后调用该工具执行操作。

python 复制代码
from langchain.agents import Tool, initialize_agent
from langchain.agents.agent_types import AgentType
from langchain.llms import OpenAI

# 一个简单的计算器工具
def simple_calculator(input: str) -> str:
    try:
        result = eval(input)
        return str(result)
    except:
        return "Invalid expression"

# 注册工具
tools = [
    Tool(
        name="Calculator",
        func=simple_calculator,
        description="用于数学计算,如 '2 + 2 * (3 + 4)'"
    )
]

# 使用 OpenAI + ReAct agent 初始化智能体
llm = OpenAI(temperature=0)
agent = initialize_agent(
    tools, 
    llm, 
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, 
    verbose=True
)

# 测试一下
response = agent.run("请帮我计算 3 * (4 + 5)")
print(response)

🧾 输出示例:

yaml 复制代码
> Entering new AgentExecutor chain...
Thought: 我需要使用计算器来求值 3 * (4 + 5)
Action: Calculator
Action Input: 3 * (4 + 5)
Observation: 27
Thought: 我已经得到了结果
Final Answer: 27

🧩 关键能力:Tool 使用 + 思考链(Chain-of-Thought)

ReAct 不只是工具调用,它背后的强大之处在于:

  • CoT(思考链) :模型会像写作文一样输出中间思考过程。
  • Action-Observation Loop:每一次调用工具后的观察结果都会影响下一步推理。
  • Memory(可选) :一些实现会带上短期记忆能力,让 Agent 更加智能。

📜 相关论文

  • 论文名:ReAct: Synergizing Reasoning and Acting in Language Models
  • 链接arxiv.org/abs/2210.03...
  • 作者:Shinn et al.(Google Research & Princeton)

🧠 总结

ReAct 是连接语言模型与真实世界的桥梁,赋予大模型"像人一样动脑筋+动手"的能力。如果你正在构建 Agent、Chatbot 或工具协同系统,不妨试试 ReAct,它可能是你通往智能自动化

相关推荐
得帆云低代码10 小时前
什么是AI网关?AI网关如何为企业私有化部署筑防
openai
Georgewu11 小时前
【AI大模型入门指南】机器学习入门详解
aigc·openai
俞乾13 小时前
Context Engineering(上下文工程)是 AI Agent 成功的关键吗?
openai·ai编程
哪吒编程17 小时前
写作、编程最强模型Claude Opus 4,碾压o3、Gemini 2.5 Pro,国内直接使用
openai·claude
新智元18 小时前
半数清华,8 位华人 AI 天团集体投奔 Meta!奥特曼:砸钱抢人不如培养死忠
人工智能·openai
新智元18 小时前
全球顶尖 CS 论文惊爆 AI「好评密令」!哥大等 14 所高校卷入,学术圈炸锅
人工智能·openai
杰尼橙子18 小时前
深度解读Karpathy说的Software 3.0时代,感觉是个人的机会很大的时代呀
人工智能·openai
FogLetter18 小时前
智能前端之拍照识别单词(下):AI集成与交互优化
前端·aigc·openai
堆栈future1 天前
在Mac上10分钟玩转LoRA微调模型
llm·openai·agent
潘锦2 天前
海量「免费」的 OPENAI KEY,你敢用吗?
安全·openai