ReAct:让AI边思考边行动的突破性技术

ReAct:让AI边思考边行动的突破性技术

ReAct:推理与行动的交响乐------从学术论文到工程落地的深度解析

引言:为什么我们需要ReAct?

在大型语言模型(LLM)能力飞速发展的今天,我们面临一个核心困境:模型拥有海量参数知识,却困于训练数据的截止日期;模型可以生成流畅的文本,却在面对需要实时信息或多步骤决策的复杂任务时频频出错。

纯推理(如Chain-of-Thought)让模型"想得多",但遇到训练截止日后的信息只能幻觉;纯行动让模型"做得快",但一旦在多跳推理中偏离轨道,便无法自我纠偏。ReAct(Reasoning + Acting) 正是为解决这一困境而生------它让模型像人类一样,边思考边行动,在动态环境中实现鲁棒纠错。


一、核心思想:Thought → Action → Observation 三步闭环

ReAct由普林斯顿大学与Google Research于2022年提出(arXiv 2210.03629),其精髓在于将推理(Reasoning)与行动(Acting)交错执行,形成持续运转的三步闭环:

复制代码
┌─────────────────────────────────────────────────────────────┐
│  Thought(思考) → Action(行动) → Observation(观测)        │
│      ↑                                              ↓       │
│      └──────────────────────────────────────────────┘       │
│                      (循环驱动)                            │
└─────────────────────────────────────────────────────────────┘

每个Thought都会留存于上下文 ,形成可回放的决策轨迹。这不是简单的"先想后做",而是动态交织------推理为行动提供方向,行动结果随时修正推理方向。


二、解决的三大痛点:为什么ReAct优于单一模式?

模式 核心特点 关键局限 典型失败场景
纯推理(Chain-of-Thought) 仅依赖参数知识进行逻辑推演 遇训练截止日后信息,只能产生幻觉 询问"2024年诺贝尔奖得主",模型编造答案
纯行动(Action-only) 直接执行操作,无内部规划 多跳问题一旦偏移则无法纠偏 搜索后未分析结果直接进行下一步,导致方向错误
ReAct 交错推理与行动------推理为行动提供方向,行动结果随时修正推理 在HotpotQA、WebShop等基准上验证有效 搜索后先分析结果,再决定下一步行动,实现自我纠错

ReAct的核心优势在于"动态纠错"能力 。在多跳问答(如HotpotQA)或复杂决策(如WebShop购物)场景中,模型不会盲目执行预设步骤,而是根据每次行动返回的观测结果,重新评估并调整策略


三、三步闭环的深层机制

1. Thought(思考):决策的中枢神经系统

  • 功能:分析当前状态,拆解目标,规划下一步行动
  • 关键特性每个Thought都留存于上下文,形成完整的决策轨迹链
  • 价值:开发者可以像播放录像一样,逐步回放模型的决策路径

在Claude Code的queryLoop实现中(src/query.ts),Thought阶段通过callModel流式输出推理内容。当检测到tool_use block时,标记needsFollowUp = true,触发Action阶段;若无工具调用,则循环退出,返回completed状态。

2. Action(行动):与外部世界的接口

  • 触发机制 :由tool_use block触发,needsFollowUp置为true
  • 执行策略 (Claude Code实现):
    • partitionToolCalls智能分区:只读工具并发执行 ,提升效率;写操作串行执行,保证安全
    • 执行完毕后,assistantMessagestool_result追加至messages

3. Observation(观测):反馈驱动的学习

  • 数据来源:工具返回的结果(如搜索内容、文件内容、命令输出)
  • 循环驱动messages更新后,循环进入下一轮,模型读取这些结果开始新的Thought
  • 关键洞察每一个工具的输出,都是ReAct循环下一轮的Observation,驱动模型持续调整策略

四、Google Research的深层贡献:可信赖AI的基础设施

ReAct论文的价值远不止于提出一个算法,它重新定义了LLM系统的可观测性与可控性

白盒化:从黑盒到透明决策

传统LLM是"黑盒"------输入问题,输出答案,中间过程不可见。ReAct通过留存每个Thought步骤于上下文 ,实现了决策路径的完全白盒化

  • 开发者可以精确追踪:模型为什么决定搜索?基于什么结果改变了策略?
  • 每个决策节点都有明确的"思维链"记录

可干预性:人类在环的精准控制

推理过程的可见性带来了可干预性

  • 人类可以在任意Thought节点插入修正指令
  • 无需重跑整个任务,只需从干预点开始继续执行
  • 这为构建高可靠性AI系统提供了基础设施级支撑

这两点------白盒化与可干预性------是ReAct对AI工程落地最深远的影响,它们构成了可信赖AI系统的技术基石


五、工程落地:Claude Code的queryLoop实现解析

在Claude Code(及Claude Agent SDK)中,ReAct模式通过queryLoop()函数实现,位于src/query.ts。这是生产级ReAct架构的典范:

核心循环结构

typescript 复制代码
// 核心为 while(true) 循环(queryLoop)
while (true) {
  // 1. Thought阶段:调用模型进行推理
  const response = await callModel(messages);
  
  // 2. 检测是否需要工具调用
  if (containsToolUse(response)) {
    needsFollowUp = true;  // 进入Action阶段
    
    // 3. Action阶段:执行工具(runTools / toolOrchestration.ts)
    const results = await partitionToolCalls(toolCalls); // 读并发,写串行
    
    // 4. Observation阶段:结果追加至上下文
    messages.push(assistantMessages, toolResults);
    
    // 循环继续,进入下一轮Thought
  } else {
    // 无工具调用,任务完成(非end_turn,见query.ts L1357)
    return { status: 'completed', response };
  }
}

关键工程决策

  1. 流式输出:Thought阶段采用流式输出,提升用户体验
  2. 工具分区partitionToolCalls实现安全与效率的平衡
  3. 状态持久messages数组作为完整的状态载体,支持任意轮数的循环

六、工具体系:ReAct循环的弹药库

Claude Code内置超过40个工具,按职责分为五层,每一层的输出都是下一轮的Observation

层级 代表工具 核心职责 在ReAct中的角色
执行层 BashTool、REPLTool 直接操作运行环境 执行代码、运行测试,获取实时反馈
文件层 FileReadTool、FileEditTool、GrepTool 读写代码库 理解项目结构,修改源代码
信息层 WebSearchTool、WebFetchTool 获取外部知识 突破训练数据截止日期,获取实时信息
编排层 AgentTool 启动子Agent 实现分层决策,复杂任务分解
扩展层 MCP协议接入 连接任意外部系统 无限扩展能力边界

关键设计原则:工具的输出格式标准化,确保模型能可靠解析作为Observation,驱动下一轮Thought。


七、三层视角总结:从理论到实践

层级 核心定义 关键载体
论文层 LLM在动态环境中鲁棒纠错的推理---行动交错机制 arXiv 2210.03629
研究层 将黑盒LLM决策白盒化,赋予可解释性与可干预性 Google Research的扩展分析
工程层 queryLoop()中的while(true)循环------Claude Code Agent SDK的调度引擎 src/query.tsqueryLoop()

八、结语:经典架构的持久生命力

自2022年论文发表至今,ReAct的核心结构从未改变:Thought → Action → Observation,三步闭环,循环驱动

在这个架构中:

  • 推理不再是孤立的思考,而是与行动紧密耦合的动态过程
  • 行动不再是盲目的执行,而是基于持续更新的上下文做出明智选择
  • 观测不再是简单的输入,而是驱动下一轮推理的关键反馈

ReAct之所以成为AI Agent领域的基础架构范式 ,正因为它既足够简单 (三步循环易于理解和实现),又足够强大(支持复杂任务分解、动态纠错、人类干预)。无论是学术研究还是工程落地,掌握ReAct都是构建可靠AI Agent的必经之路。


参考与延伸阅读

  • 原始论文:ReAct: Synergizing Reasoning and Acting in Language Models (arXiv 2210.03629)
  • Claude Code源码:src/query.ts 中的 queryLoop() 实现
  • Claude Agent SDK官方文档:Agent Loop 架构说明
相关推荐
卖酸奶的不错2 小时前
M-RCGV Memory System Design记忆系统设计文档
人工智能·长短时记忆网络
GGBond今天继续上班2 小时前
只需要一条命令,让所有 AI 应用工具共享 skills
前端·人工智能·开源
测试员周周2 小时前
【CrewAI系列2】CrewAI 环境搭不好?纯小白从零部署指南,10 分钟搞定(命令可复制)
人工智能·python
Joshkhh2 小时前
2026年多模型AI使用指南:Gemini/Claude/GPT如何轻松上手?
人工智能·gpt
旷世奇才李先生2 小时前
Python\+ERNIE实战:字节跳动式AI内容审核完整实现(附源码)
开发语言·人工智能·python
li星野2 小时前
Transformer架构梳理
人工智能·深度学习·transformer
独隅2 小时前
PyTorch转TFLite动态形状处理技巧
人工智能·pytorch·python
猫头虎2 小时前
一个插件,国内直接用Claude Opus 4.7
人工智能·langchain·开源·prompt·aigc·ai编程·agi
台XX2 小时前
Ollama+其他模型仓库
人工智能