ReAct

一句话定义

ReAct(Reasoning + Acting)是Single-Agent的重要构建范式,通过”思考(Thought)→行动(Action)→观察(Observation)“的循环让Agent能够自主推理并逐步调用工具解决问题。

摘要

ReAct范式由Yao等人在2022年提出,核心思想是让大模型在执行任务时交替进行推理和行动。与传统的单一推理或单一行动不同,ReAct将二者结合,使Agent能够”自言自语”地规划,一步步调用工具、补充上下文来解决问题。在大淘宝技术的实践中,ReAct被用于秒杀AI答疑系统的域Agent构建,与Plan范式结合形成更强大的计划-推理能力。

详情

起源与背景

ReAct范式由Shunyu Yao等人在2022年的论文《ReAct: Synergizing Reasoning and Acting in Language Models》中提出。其核心观察是:纯推理方法(如Chain-of-Thought)缺乏与外部世界的交互能力,纯行动方法(如Act-only)缺乏高层次的规划能力。ReAct将二者融合,让模型在推理的同时可以行动,在行动的同时可以推理。

核心机制 / 工作原理

ReAct循环

Thought: 我需要查询商品X的报名状态
Action: 调用query_product_status(product_id="X")
Observation: 商品X状态为"审核中",报名时间为2026-05-28
Thought: 商品已在审核中,我需要检查审核进度
Action: 调用check_audit_progress(product_id="X")
Observation: 审核进度60%,预计还需2小时
Thought: 我已经获取了完整信息,可以回答用户
Action: 返回答案

单步思考的局限

ReAct每次都是基于当前信息推理下一步的最佳行动,这种单步思考的方式决定了它更擅长解决理性类问题(如排查一个商品为什么不能报名),对于主观类问题效果有限。因此实践中通常会结合Plan范式:

  • Plan:产出全局计划,沉淀优秀计划模版
  • ReAct:执行细分领域推理,在垂直领域表现出更好的效果

应用场景

  • 多步骤工具调用的任务
  • 需要中间推理过程的复杂查询
  • 与Plan结合形成PlanAgent的推理引擎
  • Multi-Agent中各域Agent的核心推理机制

局限与注意事项

  • 单步推理可能陷入局部最优,缺乏全局视角
  • 对主观类问题效果不佳,需结合Plan范式
  • 推理链过长时可能出现错误累积
  • Token消耗较大,需要控制推理轮次

与其他范式的对比

范式核心思想优势劣势
ReAct推理+行动交替可解释性强、可调用工具单步视角、Token消耗大
Plan全局规划后执行全局最优、可复用计划计划质量依赖模型能力
CoT纯推理链简单高效无法与外部交互
Reflexion反思+自我修正可从错误中学习额外推理开销

与 Loop Engineering 的关系:Inner Loop

腾讯技术工程在 CodeBuddy 的实践中把 ReAct 明确定位为 Loop-EngineeringInner Loop——ReAct 负责”单次任务内怎么一步步做”(思考→行动→观察),外层 Loop Engineering 作为 Outer Loop 负责”跨任务做什么、谁来做、何时停、怎么续”。

两者不是替代而是叠加:在 CodeBuddy 里用 /goal 设一个可验证条件后,每一轮内部 AI 仍以 ReAct 模式思考-行动,而 /goal 的独立评估器在 Outer Loop 层面判断整体进度是否达成。ReAct 的几个固有局限(上下文窗口有限会遗忘、同模型自我检查有盲区、无跨任务进度记录、单 Agent 串行)正是 Loop Engineering 用状态外置、对抗验证、断点续跑、多 Agent 并行来补位的。演进链可记为 Prompt(怎么问)→ ReAct(怎么做)→ Loop Engineering(怎么管)

在大淘宝技术中的实践

在秒杀AI答疑场景中,ReAct被用于各业务域Agent的核心推理引擎:

  • 商品域Agent:基于ReAct推理商品报名失败原因
  • 订单域Agent:排查订单状态异常
  • 库存域Agent:分析库存扣减问题
  • 报名域Agent:处理报名流程中的复杂问题

每个域Agent基于ReAct+Plan范式实现,由中心Agent统一做意图识别与任务分发,形成MOE(混合专家)形态的Multi-Agent系统。