AI Agent 核心:ReAct 机制原理、缺陷与 Plan-and-Execute 解决方案面试详解

文章目录

前言

很多面试者对 ReAct Agent 存在理解误区,分不清模型和代码各自承担的职责。本文拆解 ReAct 完整运行流程,剖析它的两大工程缺陷,对比 Plan-and-Execute 优化方案,贴合面试答题逻辑,帮你精准吃透 Agent 推理架构。

先澄清一个最常见的误区

很多人面试说到 ReAct 时,张口就是"模型自己在循环调用工具"。面试官听到这句话,脑子里直接打上一个标签:你不懂。

实际是怎么回事?模型不负责循环。模型每次只做一件事:看一眼当前的 history,输出下一步是什么(Thought + Action),或者直接给最终答案(Final Answer)。输出完它就停了,等着代码框架把结果喂回来。循环是谁做的?是你的代码。模型是大脑,代码框架是身体。

ReAct 的六步循环

从代码框架视角,ReAct 一次完整迭代是六个步骤:

  1. 拼接 prompt:把系统提示、用户输入、历史 Thought / Action / Observation 全拼成一段 prompt
  2. 调 LLM:把 prompt 发给模型,等它返回
  3. 检测 Final Answer:判断输出里有没有 Final Answer,有就结束
  4. 解析 Action:没有 Final Answer 就从输出里拆出 Action(工具名 + 参数)
  5. 执行工具:调用外部工具,拿到 Observation
  6. 追加到 history:把 Observation 追加进 history,回到步骤 1

模型只参与了第 2 步的输出。其余五个步骤全是代码框架的事。面试里把这个关系说清楚,基本分到手。

ReAct 解决了什么,又带了什么新坑

ReAct 出现之前,CoT 让模型能写出推理过程,但它只能纯文字推,调用不了外部工具。ReAct 把 Reasoning 和 Acting 合在一起,每一步都能调用外部工具获取真实信息,这是它相对于 CoT 的核心进步。

但它也带进来两个工程上很实在的问题。

第一个坑:循环漂移。 想象一个没有导航的旅行者,每到一个路口都根据眼前的路牌临时决定往哪走。路牌清晰的时候能顺利到目的地,但路上的"风景"也在不断吸引他注意力,走着走着就拐进岔路,忘了最初要去哪。ReAct 每一步都是根据当前 history 重新决策,缺少全局计划约束方向。步骤越长,history 越长,漂移概率越大。

第二个坑:错误传播。 ReAct 的每一步决策都建立在前面所有步骤的结果之上。如果中间某一步拿到了错误信息,后面的推理全部被带跑。更麻烦的是,ReAct 没有内置"回头检查"机制,它不会停下来问"前面那步的结果靠谱吗",默认前面的 Observation 都对,一路往前冲。错误出现在早期步骤,整条链后面全白费。

两个问题的根源是同一个:ReAct 是纯粹的"前向推理",走一步看一步,没有全局规划约束方向,也没有反思机制纠正错误。

Plan-and-Execute 怎么补位

针对漂移问题,工程上引入了 Plan-and-Execute,分两个阶段:

规划阶段(Planner): 让 LLM 先不急动手,站在全局角度想清楚:这个任务分几步?每一步做什么?步骤间的依赖是什么?输出一份结构化的执行计划。这一步 LLM 只做规划,不执行任何工具调用。

执行阶段(Executor): 拿着计划按顺序执行。每一步的执行本身可以用 ReAct 来跑,执行器处理单个子任务时仍然"思考→行动→观察"地循环。区别在于,执行器始终知道自己在整体计划的哪一步、下一步做什么,不会像 ReAct 那样漫无目的地漂移。

一个比较直观的类比:Plan-and-Execute 负责"做什么"的全局规划,ReAct 负责"怎么做"的单步执行。两者是配合关系,不是替代关系。

选型决策

ReAct 的优势是灵活,每一步都能根据最新情况调整,适合任务边界不明确、需要探索性获取信息的场景(开放式问答、信息搜索)。代价是容易漂移,而且每一步都把完整 history 带上调 LLM,步骤多了 token 消耗线性增长。

Plan-and-Execute 的优势是有全局视野,不容易跑偏,适合目标明确、需要多步骤协作的复杂任务(深度研究、长文写作、多工具协同的数据分析)。代价是初始规划本身就要一次 LLM 调用,任务如果一两步就搞定,规划这一步就是多余开销。

实际工程里通常混合用:Plan-and-Execute 做全局规划,ReAct 做每步执行。规划阶段用更强的模型保证方向正确,执行阶段用更快更便宜的模型控制成本。

面试怎么答

回到面试场景,核心就两个点:

  1. ReAct 的本质是"思考→行动→观察"的循环,推理过程显式化,又能动态调用外部工具,解决了 CoT 只能纯文字推理的局限
  2. 这个循环是代码框架驱动的,模型每次只输出 Thought + Action,你的代码负责解析、执行工具、把 Observation 填回 history,再传给模型进入下一轮

说清这两点之后,主动提一下两个实战局限(漂移和错误传播),再说 Plan-and-Execute 是怎么通过"先规划再执行"解决漂移的,以及实际项目里两者经常混合使用。整个回答的深度就出来了。

结语

ReAct 是 Agent 基础推理框架,但缺少全局规划能力,结合 Plan-and-Execute 搭配使用,才能兼顾灵活探索与任务可控性,这套组合思路也是工业级智能体项目的主流落地方案。

相关推荐
只是甲11 小时前
Text2SQL 系列博客 02:技术原理深度剖析 - 从自然语言到 SQL 的完整链路
人工智能·text2sql·nl2sql·ai agent·自助数据分析·data agent·agentic 数据洞察
deepseek2311 小时前
欧盟 AI Act 明天开罚:10^25 FLOP 红线与开源豁免,你的模型在不在射程内?
ai agent·开源模型·ai act
lincats1 天前
Caveman vs Ponytail:AI 编程圈"懒人哲学"两大门派正面交锋
ai·ai agent·vibe coding·claude code
deepseek231 天前
750 亿参数只激活 37 亿:LG 开源 K-EXAONE 2.0,与 DeepSeek 的路线之争迎来新玩家
人工智能·ai agent·mcp
新知图书1 天前
2.3 开发工作流
人工智能·agent·ai agent·智能体
MatrixOrigin2 天前
MatrixOne Git4Data 技术详解(十)·深度学习篇:训练数据怎么管——lakeFS 管文件,MatrixOne 管元数据
人工智能·深度学习·ai-native·ai agent·矩阵起源·matrix origin
码哥字节3 天前
改了20字描述,MCP工具调用准确率飙到85%
ai agent·mcp"·mcp server开发
三无推导3 天前
读了一遍 GitHub 上 12K Star 的 AI Agent 开源书
人工智能·开源·github·ai agent·工具调用·mcp·多agent协作
lincats3 天前
/handoff,只有几行,却是Matt Pocock调用频率最高的 skill
ai·ai agent·vibe coding·claude code·skills