在过去,我们与大型语言模型(LLM)的交互,常常像是在与一个博闻强记但与世隔绝的“书呆子”对话。能引经据典,对答如流,但其知识仅限于训练数据截止的那一刻,无法与真实世界进行互动来验证信息或执行任务。
人工智能领域的一项突破性进展正在改变这一现状。这项进展就是 ReAct 框架。ReAct 是 “Reasoning and Acting”(推理与行动) 的缩写,不仅仅是一种技术,更是一种全新的理念,教会AI如何像人类一样,在解决复杂问题时将深度思考与实际行动紧密结合起来。
框架最初由谷歌大脑团队的Yao, Shunyu等人于2022年首次提出,于2023年在国际学习表征会议(ICLR)上正式发表,论文标题为《ReAct: Synergizing Reasoning and Acting in Language Models》。

ReAct的核心思想
ReAct的工作原理:思考-行动-观察的黄金循环
ReAct框架的核心机制,是模仿人类解决问题时的认知过程:我们先思考分析问题,然后采取行动,观察行动结果,再根据结果调整思路,如此循环往复,直至问题解决。ReAct将这个过程结构化为三个关键步骤,形成一个动态的循环 :
- 思考 (Thought / Reasoning):
- 这是什么? 在这一步,大语言模型会像一个策略师一样,对当前的任务进行内部思考和推理。它会分析问题、拆解复杂任务、制定下一步计划,或者判断自己需要哪些额外信息 。
- 举个例子: 如果你问AI:“苹果公司目前的股价和其最新发布的产品是什么?”,它的第一步“思考”可能是:“这个问题包含两个部分:1. 查询实时股价;2. 查询最新产品。我需要使用两个不同的工具来完成。”
- 行动 (Action / Acting):
- 这是什么? 根据“思考”阶段制定的计划,模型会决定并执行一个具体的“行动”。这个行动通常是调用一个外部工具,比如搜索引擎、计算器、数据库查询API或者其他任何能够与外部世界交互的功能 。
- 举个例子: 基于上述思考,AI的第一个“行动”可能是:
Action: search("Apple Inc. stock price")
。
- 观察 (Observation):
- 这是什么? 执行“行动”后,模型会从外部工具那里获得一个结果,这个结果就是“观察”。这个观察结果将作为新的信息,输入到下一轮的“思考”中 。
- 举个例子: 工具返回的结果是:
Observation: "Apple (AAPL) stock price is $220.50 as of Sep 15, 2025."
。AI接收到这个信息后,会进入下一轮循环。它会更新自己的状态,继续思考:“好的,股价已经查到。现在我需要查询最新产品。” 然后执行新的行动:Action: search("Apple Inc. new product announcements 2025")
。
这个 “思考 → 行动 → 观察” 的循环会不断重复,直到AI认为所有子任务都已完成,能给出最终答案为止。
ReAct与传统方法的根本区别
为了更好地理解ReAct的革命性,可以将其与两种常见的方法进行对比:
- 对比“仅推理”的CoT(思维链,Chain-of-Thought):思维链(CoT)技术通过引导模型在回答前先生成一步步的推理过程,显著提升了其逻辑能力。但CoT的推理完全发生在模型的“内心世界”里,无法接触外部实时信息,因此在处理需要最新知识或精确计算的问题时,容易出现事实性错误或 幻觉(Hallucination) 。比如,你问一个只使用CoT的模型“今天天气如何”,可能会根据训练数据编造一个看似合理但完全错误的答案。ReAct通过“行动”步骤,让推理能基于从外部工具获取的真实、实时的数据,极大地提升了答案的准确性和可靠性 。
- 对比“仅行动”的Act-only:“仅行动”的方法会直接让模型选择并使用工具,但缺少了中间的“思考”环节。这使模型在面对复杂任务时,可能会像无头苍蝇一样盲目尝试工具,缺乏规划性和策略性,导致效率低下或任务失败 。ReAct的“思考”步骤则赋予了模型规划、反思和调整策略的能力,使其行动更具目的性和逻辑性。

ReAct为何如此重要?
ReAct框架的引入,不仅仅是技术上的优化,更是从根本上提升了大语言模型的能力边界和应用价值。
大幅提升复杂任务解决能力
通过将复杂问题分解为一系列“思考-行动-观察”的子步骤,ReAct使AI能处理过去难以应对的多步、动态任务。就像给AI一个工具箱和一本操作指南,让它能有条不紊地完成一项复杂的工程 。
有效减少AI的“一本正经地胡说八道”
“幻觉”是长期困扰大语言模型的一大顽疾。
ReAct通过强制模型在回答前通过“行动”从权威的外部来源(如维基百科API、搜索引擎)获取和验证信息,极大地减少了事实性错误的产生 。使AI的回答不再仅仅是“听起来对”,而是“事实上对”。
革命性地增强AI的可解释性和可信度
传统大语言模型常被诟病为一个“黑箱”,我们只看到输入和输出,却不理解其内部决策过程。
ReAct框架产生的“思考”轨迹,如同一份详细的工作日志,清晰地展示了AI为了得出最终答案所经历的每一步推理和每一次决策。这种透明度让我们能理解、审查和调试AI的行为,极大地增强了对AI系统的信任。
量化成果:在权威基准测试中的卓越表现
ReAct的优越性并非空谈,在多个行业标准基准测试中取得了令人瞩目的成绩:
- 知识密集型任务 (HotpotQA & FEVER):在需要多步推理和事实核查的问答任务(如HotpotQA)和事实验证任务(如FEVER)中,ReAct通过与维基百科等外部知识库互动,有效克服了思维链(CoT)方法中的幻觉问题,表现优于仅行动(Act-only)的基线模型。
- 交互式决策任务 (ALFWorld & WebShop):在这些模拟真实世界交互的复杂任务中,ReAct的表现尤为亮眼。
- 在ALFWorld(一个模拟在虚拟家庭环境中完成任务的基准)中,ReAct的成功率相较于之前的模仿学习和强化学习方法,绝对成功率提升了34%,达到了惊人的71%,而仅行动(Act-only)方法的成功率仅为45%。
- 在WebShop(一个模拟在线购物流程的基准)中,ReAct同样表现出色,绝对成功率提升了10%,得分(40%)也显著高于仅行动(30.1%)和其他基线方法。
这些数据强有力地证明了ReAct框架在提升AI通用问题解决能力方面的巨大潜力。

ReAct的应用场景
ReAct框架的强大能力迅速从学术论文走向了实际应用,赋能各行各业。
- 下一代智能问答与搜索引擎:当你询问需要实时信息的问题,如“未来三天去上海出差需要带什么衣服?”,一个基于ReAct的系统会先思考(分解为查询上海天气、理解穿衣指数),然后行动(调用天气API),最后综合观察到的信息(天气预报)给出智能建议 。
- 功能强大的个人智能助理:你的AI助手将不再局限于闲聊和设定闹钟。可以帮你规划一次完整的旅行,包括思考(需要机票、酒店、当地活动),行动(调用携程API、查询大众点评),最终为你生成一份详尽的行程单 。

- 高效的企业自动化与客户服务:企业级AI可以处理复杂的客户请求,例如“查询我上周的订单状态,并把我账户里的优惠券用在还没发货的商品上”。AI会思考(需要查询订单、查询优惠券、应用优惠券),依次调用内部订单系统和用户账户系统的API来完成操作,极大提升服务效率和客户满意度 。
- 具身智能:机器人与自动驾驶:ReAct是实现高级机器人控制和自动驾驶的关键。当一个家用机器人接收到指令“帮我把客厅的零食拿到书房”时,会利用ReAct框架进行推理(识别客厅、定位零食、规划路径、抓取、导航到书房),通过一系列传感器和执行器的“行动”来完成这个物理世界的复杂任务 。
- 科研与医疗辅助:在科研领域,AI可以帮助研究人员自动检索、阅读和总结相关论文,执行数据分析代码 。在医疗领域,可以辅助医生分析病例,查询最新的医学文献和临床指南,为诊断提供决策支持。

如何亲手搭建一个ReAct智能体?
对于有一定编程基础的用户来说,借助强大的开源框架,搭建一个简单的ReAct智能体(Agent)并非遥不可及。目前最主流的工具是 LangChain 框架 。
核心三要素:大脑、工具箱和指挥官
一个ReAct智能体主要由三部分构成:
- 大语言模型 (LLM):是智能体的“大脑”,负责进行“思考”和推理。例如OpenAI的GPT系列模型 。
- 工具 (Tools):是智能体的“手脚”或“外部感官”,是它可以执行的“行动”。工具可以是一个搜索引擎、一个计算器,或者任何可以被程序调用的功能 。
- 代理执行器 (AgentExecutor):是智能体的“指挥官”,它负责运行整个“思考-行动-观察”的循环,将大脑和工具箱有机地结合起来,确保任务的顺利执行 。
一个简单的Python代码示例(概念解读)
以下是一个使用LangChain构建ReAct智能体的简化Python代码示例,帮助你理解其工作流程。
# 导入必要的库
from langchain_openai import ChatOpenAI
from langchain.agents import tool, create_react_agent, AgentExecutor
from langchain import hub
# 步骤1:定义你的工具箱 (Tools)
# 我们创建一个名为“search”的工具,它模拟在网上搜索信息。
@tool
def search(query: str) -> str:
“””当你需要查询实时信息或你不确定的事实时,使用这个工具。”””
# 在真实应用中,这里会调用真正的搜索引擎API
if “苹果股价” in query:
return “苹果公司(AAPL)的当前股价是 $220.50。”
else:
return “抱歉,我找不到相关信息。”
tools = [search] # 将所有工具放入一个列表
# 步骤2:准备“指挥官”的指令手册 (Prompt Template)
# 我们直接从LangChain Hub拉取一个为ReAct优化的标准提示词模板。
# 这个模板已经教会了模型如何进行“思考-行动-观察”的循环。
prompt = hub.pull(“hwchase17/react”) # [[261]][[262]]
# 步骤3:指定“大脑” (LLM)
llm = ChatOpenAI(model=”gpt-4o”, temperature=0)
# 步骤4:创建并组装你的智能体 (Agent)
# 使用`create_react_agent`函数,将大脑、工具箱和指令手册组装起来。
agent = create_react_agent(llm, tools, prompt) # [[221]][[261]]
# 使用`AgentExecutor`创建最终的“指挥官”。
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) # [[222]][[262]]
# 步骤5:下达任务并观察执行过程
response = agent_executor.invoke({
“input”: “我想知道苹果公司现在的股价是多少?”
})
print(response[“output”])
当你运行这段代码时,verbose=True
会让你在终端看到类似这样的输出,清晰地展示了ReAct的内部工作流程:
> Entering new AgentExecutor chain…
Thought: 用户想知道苹果公司的股价。这是一个实时信息,我应该使用搜索工具来查询。
Action: search
Action Input: “苹果股价”
Observation: 苹果公司(AAPL)的当前股价是 $220.50。
Thought: 我已经通过搜索工具得到了答案,现在可以直接回答用户了。
Final Answer: 苹果公司(AAPL)的当前股价是 $220.50。
Finished chain.
这个简单的例子生动地展示了ReAct框架如何将推理与行动结合,以一种透明且高效的方式解决问题。
ReAct框架不仅仅是一次技术迭代,代表着人工智能发展方向的一次重要转变。通过赋予模型“思考并行动”的能力,ReAct正在打破虚拟世界与物理世界、静态知识与动态信息之间的壁垒。
让AI变得更强大,能解决前所未有的复杂问题;
让AI变得更可靠,通过与现实世界互动来减少错误和幻觉;
它让AI变得更透明,让我们能信任并与之进行更深层次的协作。
可以预见,随着ReAct及其衍生技术的不断成熟,我们将迎来一个由更强大、更可信、更具行动能力的AI驱动的全新智能时代。