ReAct 是什么?AI Agent 的「思考-行动-观察」循环
ReAct 是一种让大模型「边想边做」的智能体范式:它把推理(Reasoning)和行动(Acting)交替起来,每一步先想(Thought)、再调一个工具(Action)、然后读取工具返回的结果(Observation),根据观察再决定下一步——如此循环,直到任务完成。 名字 ReAct 就是 Reasoning + Acting 的拼合。这篇文章讲清它的原理、为什么有效、和普通问答的区别,以及它如何成为今天大多数 AI Agent 的底层骨架。
如果你还不清楚「智能体」这个大概念,建议先读 AI 智能体是什么,再回来看 ReAct 这个具体的实现套路会更顺。
为什么需要 ReAct
普通的大模型问答有个硬伤:它只会「一次性把答案吐出来」。你问它今天北京天气,它要么凭记忆瞎编一个(训练数据里根本没有今天),要么直说不知道。它没有「去查一下」这个动作。
问题的根源是两点:
- 知识有截止日期:模型不知道实时信息(天气、股价、你公司数据库里的订单)。
- 不会用工具:就算给它接上搜索、计算器、API,它也不知道什么时候该调、调完怎么接着想。
ReAct 要解决的就是这件事:让模型不只是「回答」,而是学会「先思考要做什么,再动手做,再看结果」——和人解决问题的方式一样。这也是大模型从「聊天机器人」进化成「能干活的智能体」的关键一跃。想深入工具调用这一环,可以看 大模型工具调用。
ReAct 是怎么工作的
ReAct 的核心是一个循环,每一轮包含三个固定动作,业内常叫 Thought-Action-Observation 循环:
- Thought(思考):模型用自然语言写下「我现在该做什么、为什么」。这一步是「想」,把推理过程显式说出来。
- Action(行动):模型决定调用哪个工具、传什么参数(比如
搜索("北京今天天气"))。这一步是「做」。 - Observation(观察):系统执行这个工具,把返回结果(比如「北京 25℃ 晴」)喂回给模型。这一步是「看」。
然后模型根据这次观察,再进入下一轮 Thought:信息够了就给最终答案,不够就继续想、继续调工具。每一步都基于上一步的真实观察来决策,而不是一口气把整条路径猜完——这是 ReAct 比「让模型一次性规划全部步骤」更稳的原因。
举个查天气的完整例子:
| 轮次 | 环节 | 内容 |
|---|---|---|
| 1 | Thought | 用户问北京今天天气,我没有实时数据,需要查 |
| 1 | Action | 查天气(城市="北京") |
| 1 | Observation | 北京 25℃,晴,东南风 2 级 |
| 2 | Thought | 已拿到结果,可以直接回答了 |
| 2 | Answer | 北京今天晴,25℃,适合出门 |
如果用户问的是「北京和上海哪个更暖和」,循环就会跑两轮 Action(各查一个城市),第三轮 Thought 才做比较——步数由任务复杂度自然决定,不是写死的。
打个比方:ReAct 像一个边查资料边解题的学生。他不是闭卷硬答,而是想一下「这题缺哪个数据」(Thought),翻开书查(Action),看到答案(Observation),再接着往下推。这个「想-查-看」的节奏,就是 ReAct 的全部秘密。
ReAct 和相邻概念怎么选
ReAct 不是唯一的智能体范式,几个容易混的概念这样区分:
- ReAct vs 普通 RAG:RAG(检索增强)通常是「先检索一次、再回答一次」的单步流程;ReAct 是多轮循环,能根据中间结果决定要不要再查、查什么。任务一步能搞定用 RAG 就够,需要多步推理和多次工具调用才上 ReAct。
- ReAct vs Chain-of-Thought(思维链):思维链只「想」不「做」,纯在脑子里推理,不接外部工具,所以拿不到实时信息;ReAct 在思维链基础上加了「行动+观察」,能和真实世界交互。
- ReAct vs Plan-and-Execute(先规划后执行):后者先一次性列出完整计划再逐条执行;ReAct 是走一步看一步。计划稳定、环境可控选先规划;环境多变、结果难预测选 ReAct,因为它能随时根据观察纠偏。
判断口诀:要不要实时交互 → 看 ReAct;要不要多步纠错 → 选 ReAct;一锤子买卖 → RAG 或思维链就够。
能用来做什么
理解了原理,ReAct 的应用场景就很好对号入座,凡是「需要查 + 需要算 + 需要多步」的活儿基本都靠它:
- 联网问答助手:实时查搜索引擎、读网页,回答模型记忆里没有的新信息。
- 数据分析智能体:自己写查询、调数据库、跑计算,再根据结果决定下一步分析。
- 客服/工单数字员工:查订单、查物流、查知识库,多个工具串起来给用户一站式答复。
- 自动化运维/办公:调 API 改配置、发邮件、填表单,每步都看返回结果再继续。
可以说,今天你见到的绝大多数「会用工具的 AI Agent」,底层跑的都是 ReAct 或它的变体。
怎么上手
好消息是:你基本不用自己从零实现 ReAct。主流的智能体框架已经把这个循环封装好了,你只需要定义好「有哪些工具」和「任务目标」,框架会自动驱动 Thought-Action-Observation 跑起来。
- 想理解机制:可以先用一个最小提示词手动模拟一遍——让模型在每步输出 Thought 和 Action,你手动把 Observation 贴回去,循环几轮,会对原理有体感。
- 想直接搭:用现成的 Agent 框架(如 LangChain、各家智能体平台)配置工具即可,具体接口和参数以官方文档为准。
- 想做企业级数字员工:把工具换成你的内部 API、知识库、业务系统,ReAct 循环就成了能干活的业务智能体。
不同框架的工具定义格式、循环上限、报错处理各不相同,搭之前务必看清楚对应平台文档,别照搬别家的参数。
常见问题
ReAct 和普通 ChatGPT 问答有什么区别? 普通问答是「一问一答」,模型凭记忆一次性回复;ReAct 是「想-做-看」的多轮循环,中途能调工具拿实时信息、能根据结果纠错。简单说,前者是闭卷考,后者是开卷查着做。
ReAct 一定要联网或调外部工具吗? 不一定,但这是它的强项。ReAct 的「Action」可以是搜索、计算、读数据库、调 API 等任意工具。如果一个任务模型凭自身知识就能答,本就不需要 ReAct;它的价值正是在「需要和外部交互」时体现。
ReAct 会不会陷入死循环? 有可能——模型可能反复调同一个工具或来回摇摆。所以实际框架都会设最大步数上限和重复检测,到达上限就强制收尾。设计 Agent 时给清晰的工具说明和任务边界,能大幅降低跑飞的概率。
ReAct 和 Function Calling 是一回事吗? 不是一回事,但常配合使用。Function Calling 是模型「调工具」这个动作的具体实现机制;ReAct 是「思考-行动-观察」的整体推理框架。可以理解为 ReAct 是套路,Function Calling 是套路里「行动」那一步的常见技术手段。
👉 看看 AI 数字员工落地指南,或了解 数字员工搭建实战课。需要为企业落地方案,欢迎找我们聊 企业服务。