news 2026/5/11 1:42:33

一文讲透 ReAct:推理与行动交替的智能体范式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一文讲透 ReAct:推理与行动交替的智能体范式

一文讲透 ReAct:推理与行动交替的智能体范式


一、引言

钩子

你有没有过这样的经历:问GPT-4「2024年欧洲杯冠军是谁?」,它只会抱歉地说「我的知识截止到2023年10月,无法提供实时信息」;你让它算「华为Mate60 Pro发布时间比iPhone15早多少天?」,它要么给出错误的日期,要么告诉你「我无法准确计算,请手动查询」。但你用带插件的ChatGPT或者AutoGPT的时候,它却能自动打开搜索工具查两个产品的发布时间,再调用日期计算器算出差值,准确给出结果。你有没有好奇过,这种「会自己思考、自己用工具」的能力,底层到底是什么逻辑?

定义问题/阐述背景

大语言模型(LLM)的爆发式发展让我们看到了通用人工智能的可能性,但它天生存在三个无法回避的短板:第一是幻觉问题,经常编造不存在的事实和数据;第二是知识 cutoff,训练数据截止之后的信息完全不知道;第三是无法与环境交互,不能调用工具、操作系统、感知现实世界。过去几年研究者们提出了很多方案来补这些短板:思维链(CoT)提升了模型的推理能力,但还是依赖内部知识,错了也没法修正;Toolformer让模型学会调用工具,但缺少显式的推理过程,很容易做出无效的工具调用。

而2022年提出的ReAct(Reasoning + Action)范式,第一次把「推理思考」和「行动执行」两个能力有机结合起来,让LLM像人一样:先思考要做什么,再动手执行,拿到结果后再调整思考方向,循环往复直到完成任务。现在我们熟悉的ChatGPT插件、AutoGPT、Claude 3工具调用、多模态具身智能体,底层核心逻辑都是ReAct。可以说,ReAct是当前大模型从「生成式工具」走向「自主智能体」的核心范式,是所有想做AI Agent开发的开发者必须吃透的技术。

亮明观点/文章目标

读完这篇文章,你将:

  1. 彻底搞懂ReAct的核心原理、组成结构、与其他范式的差异;
  2. 从零动手实现一个支持搜索、计算、网页抓取的ReAct智能体,能独立解决需要多步骤工具调用的复杂问题;
  3. 掌握ReAct的常见坑、优化方案、最佳实践,能把ReAct落地到自己的业务场景中;
  4. 了解ReAct的行业发展趋势和未来演进方向。

本文会从原理到实战,从入门到进阶,把ReAct的所有核心知识点讲透,哪怕你只有基础的Python能力和LLM常识,也能轻松跟上。


二、基础知识/背景铺垫

核心概念定义

在正式讲解ReAct之前,我们先明确几个必须掌握的基础概念:

  1. 大模型涌现能力:当LLM参数规模超过一定阈值(一般认为是10B以上),会突然拥有很多小模型没有的能力,比如复杂推理、工具调用、指令遵循,ReAct正是基于这些涌现能力才能实现。
  2. 思维链(Chain of Thought, CoT):2020年提出的技术,通过在提示词中引导模型生成中间推理步骤,而不是直接输出答案,大幅提升了模型在数学题、逻辑题等复杂任务上的准确率。但CoT的所有推理都基于模型的内部知识,一旦知识错误或者缺失,推理结果就会出错。
  3. 工具调用:让LLM按照固定格式输出要调用的工具名称和参数,由外部系统执行工具后把结果返回给LLM,从而突破LLM的能力边界。比如调用搜索工具获取实时信息,调用计算器解决数学问题,调用API操作业务系统。
  4. AI智能体(Agent):指能自主感知环境、做出决策、执行行动的智能系统,基于LLM的智能体一般包含四个核心模块:规划(思考)、记忆、行动、工具,ReAct就是当前最主流的智能体规划范式。

相关范式对比

为了更清晰地看到ReAct的优势,我们把它和其他主流的LLM范式做一个对比:

范式核心逻辑优点缺点适用场景
标准LLM生成直接根据输入和内部知识输出答案速度快、成本低幻觉率高、无实时知识、无法交互环境简单常识问答、创作类任务
思维链(CoT)引导模型生成中间推理步骤,再输出答案复杂推理能力强、逻辑可解释仍依赖内部知识、无法修正错误推理数学题、逻辑推理题等知识覆盖内的复杂任务
Toolformer微调模型学会在需要时调用固定工具工具调用自动化微调成本高、工具扩展难、无显式推理固定工具集的简单调用场景
ReAct交替生成推理步骤和行动,根据观测修正推理幻觉率低、支持实时知识、可交互环境、逻辑可追溯多轮调用成本高、速度慢、依赖提示词设计多步骤复杂任务、需要外部工具/知识的任务、交互类任务

ReAct核心实体关系

ReAct系统的核心实体和交互关系可以用下面的ER图表示:

驱动

包含

包含

包含

读写

调用

交互

读取

校验

LLM

REACT_CORE

THOUGHT_MODULE

ACTION_MODULE

OBSERVATION_MODULE

MEMORY

TOOL_SET

ENVIRONMENT

STOP_CONDITION

从图中可以看到,ReAct的核心是由LLM驱动的循环结构:推理模块生成思考,决定要做什么行动;行动模块调用工具和环境交互;观测模块把工具返回的结果整理后送回给推理模块,开启下一轮循环,直到满足停止条件,输出最终结果。

行业发展时间线

ReAct的发展不是一蹴而就的,是过去几年LLM技术逐步演进的结果,我们整理了关键的时间节点:

时间事件核心贡
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 1:39:32

把 GPT-4 塞进你的开发机:RAGFlow + Ollama 本地知识库从单机到集群的工程落地全指南

把 GPT-4 塞进你的开发机:RAGFlow + Ollama 本地知识库从单机到集群的工程落地全指南 摘要:这不是一篇“把页面跑起来”的体验文,而是一篇面向架构师和工程团队的落地手册。我们将以 RAGFlow + Ollama 为核心,从本地私有知识库的原理、单机部署、服务化封装、并发治理、集群…

作者头像 李华
网站建设 2026/5/11 1:38:32

Python文本数据提取利器Scalpel:声明式解析非结构化数据

1. 项目概述:解剖数据洪流的“手术刀”在数据驱动的时代,我们每天都在与海量的、结构各异的文本数据打交道。无论是从网页上抓取的信息、日志文件,还是各种API返回的JSON或XML,它们常常像一团未经处理的“毛线球”,有用…

作者头像 李华
网站建设 2026/5/11 1:36:01

如何反编译游戏软件获得自己需要的代码

在之前开发杀戮尖塔2模组的时候,我发现新手想要了解如何反编译比较困难,淋过雨的人应该为后人撑伞,在这里我给大家简单了解一下(这里以杀戮尖塔2为例子)首先打开游戏根目录然后搜索后缀名为.dll的文件杀戮尖塔2中它的名…

作者头像 李华
网站建设 2026/5/11 1:34:07

刚刚,Claude Code 团队这篇文章爆了!

Datawhale干货 作者:Thariq,Claude Code团队前天,Claude Code 团队的 Thariq 写了一篇文章,标题叫《Using Claude Code: The Unreasonable Effectiveness of HTML》。现在,这篇文章在 X 上已经爆了,被 780 …

作者头像 李华
网站建设 2026/5/11 1:33:56

HarmonyOS APP开发玩转鸿蒙 HSP:打造高复用“乐高模块”的底层逻辑

做鸿蒙开发的朋友,大概率都听过那句程序员界的至理名言:“Copy & Paste 是万恶之源”。 当你的项目里充斥着三个以上的业务模块,或者你同时在维护两个极其相似的 APP 时,你会发现,把通用的工具类、精美的 UI 组件甚…

作者头像 李华
网站建设 2026/5/11 1:28:58

基于copaw-code构建代码语义搜索系统:从原理到实践

1. 项目概述与核心价值最近在折腾一个挺有意思的开源项目,叫QSEEKING/copaw-code。这名字乍一看有点摸不着头脑,但如果你对代码搜索、智能辅助编程或者大模型应用开发感兴趣,那这个仓库绝对值得你花时间研究。简单来说,它是一套围…

作者头像 李华