拆解ReAct:让AI智能体学会“三思而后行” 一、大模型的局限性近几年大语言模型Large Language ModelLLM取得了巨大的成功。无论是问答、翻译、代码生成还是内容创作大模型都展现出了惊人的能力。但即便如此大模型依然存在一个天然的局限它只能基于训练数据和输入内容进行推理而无法主动感知外部环境。例如今天上海天气怎么样当前股票价格是多少数据库里有多少订单某个接口是否正常运行对于这些问题大模型本身并不知道答案。因为大模型实际上是一个概率预测模型它只能根据已有知识生成最可能的文本而无法直接访问网络数据库文件系统企业内部系统第三方 API换句话说大模型拥有强大的“大脑”但没有“眼睛”和“手”。它能够思考却无法主动获取信息也无法执行实际操作。二、什么是 Agent既然大模型无法直接感知和操作外部世界那么一个自然的想法就是给大模型配上一系列工具Tools。例如搜索引擎数据库查询工具文件读取工具邮件发送工具天气查询工具代码执行工具当大模型需要某种能力时可以调用对应工具完成任务。这类能够自主规划并调用工具完成任务的智能程序被称为Agent智能体简单来说Agent 具备推理能力的大模型 可执行操作的工具集合Agent不仅能够回答问题还能够获取外部信息执行具体操作根据结果继续推理最终完成复杂任务例如用户说“帮我查询今天北京天气并生成一份出行建议。”Agent会调用天气工具获取天气数据分析天气情况生成出行建议返回结果整个过程不需要人工干预。三、Agent 的种类(按应用场景分)随着 Agent 技术的发展逐渐出现了多种不同类型。1. 编程 AgentCoding Agent帮助开发软件和编写代码。能力编写代码修复 Bug自动测试代码重构项目开发典型产品CodexClaude Code通义灵码豆包 MarsCode2. 图片 AgentImage Agent负责生成和编辑图片。能力AI 绘画海报设计图片编辑商品图生成Logo 设计典型产品即梦AI可灵AI通义万相文心一格3. 视频 AgentVideo Agent负责视频生成和视频编辑。能力文生视频图生视频数字人视频自动剪辑自动配音典型产品可灵AI即梦AIVidu腾讯智影4. 办公 AgentOffice Agent帮助完成日常办公工作。能力写文档写邮件会议纪要PPT 制作数据整理典型产品WPS AI钉钉AI助理飞书智能伙伴四、Agent 的运行模式大多数 Agent 都遵循一个循环用户任务 ↓ 思考 ↓ 选择工具 ↓ 执行工具 ↓ 获得结果 ↓ 继续思考 ↓ 任务完成不断循环直到得到最终答案。这也是现代 Agent 的核心思想。五、ReAct 的概念ReAct 是目前最经典的 Agent 设计模式之一。ReAct 全称Reasoning And Acting即边思考Reasoning边行动Acting。在 ReAct 出现之前CoTChain of Thought只负责推理Tool Calling 只负责调用工具两者是分离的。而 ReAct 将二者结合起来。Agent 在推理过程中可以随时调用工具。ReAct 的四个阶段1. Thought思考分析当前问题。用户提问北京今天的天气。 大模型思考我需要先调用工具查询天气信息。2. Action行动大模型决定调用哪个工具。3. Observation观察大模型获取工具返回结果。例如晴天、25℃、东南风4. Final Answer最终回答根据观察结果生成最终答案。例如北京今天晴天25℃ 适合户外活动建议做好防晒。六、ReAct实现原理实现 ReAct 本质上并不复杂。其核心思想让大模型输出固定格式的推理过程。例子需求将查询出来的天气写入到本地磁盘。这个需求需要用到两个工具查询天气将天气结果写入本地React 提示词# 职责描述 你是一个具备自主推理与工具调用能力的智能助手。 你的目标是分析用户需求并通过多轮思考Thought和工具调用Action逐步获取完成任务所需的信息最终给出准确的答案。 对于复杂任务你可以将其拆分为多个步骤。 在每一个步骤中 1. 首先分析当前已知信息和待解决问题 2. 使用 thought 输出你的思考过程 3. 使用 action 调用最合适的工具 4. 等待工具返回结果 5. 工具执行结果会通过 observation 返回 6. 根据 observation 继续思考下一步行动 7. 当已经拥有足够信息时输出 final_answer 并结束任务 --- # 工作规则 - task标签必须用户提供 - 你每次回答需要包含两个标签第一个是thought第二个是action或者final_answer - 输出action后立即停止生成等待observation,擅自生成observation将导致错误 --- # 可用工具列表 1. get_weather(city_name): 根据城市名称查询城市添加 2. write_file(path,content): 写入本地磁盘,将content写入path --- # 当前系统的环境 1. 系统windows11 2. 当前目录D:/test --- # 示例1订单查询 text task 查询订单10086当前状态 /task thought 用户希望查询订单状态需要调用订单查询工具。 /thought action get_order_status(10086) /action observation订单号为10086的订单已经发货/observation thought get_order_status返回结果为已发货 /thought final_answer 订单10086已经发货 /final_answer查询北京的今天天气并且把查询结果写入到本地使用ChatGPT测试可以看出ReAct的本质其实还是提示词工程七、总结大模型拥有强大的推理能力但无法直接感知和操作外部世界。Agent 通过为大模型提供工具能力使其能够获取信息、执行操作并完成复杂任务。而 ReAct 则是 Agent 领域最经典的设计模式它通过「Thought → Action → Observation → Final Answer」的循环让大模型实现边思考边行动。理解 ReAct 后你会发现大部分 Agent 框架虽然实现方式不同但核心思想几乎都源于这一模式。