专栏持续更新 Agent&RAG 系列,从基础概念到工程落地,适合入门和面试复习。
什么是 ReAct
ReAct = Reason + Act(思考 + 行动)。 一句话理解:想一步,做一步,做完再想下一步。
就像你找东西: 思考:我需要找水杯,先看看桌子上有没有。 行动:扫视桌面。 观察:桌子没有。 思考:那去柜子里找找。 行动:打开柜子。
每一轮循环:思考 Reason → 调用工具行动 Act → 拿到结果观察 Observation。 模型不会一次性把全部计划写死,会根据每一步返回的结果动态调整思路。 优点:遇到意外、信息变化时可以灵活改方向; 缺点:任务很长的时候,容易中途跑偏,步骤越往后越容易遗忘目标。
什么是 Plan-and-Execute
Plan-and-Execute,也就是先规划,后执行。 一句话理解:先把完整任务清单一次性写好,再挨个按计划执行。
类比旅游:出发前先做好完整行程表,第一天去哪、第二天去哪,全部规划完毕,之后只需要按清单依次打卡。
分为两个阶段:
优点:长任务逻辑稳定,不容易跑偏,步骤可控,方便调试; 缺点:如果执行过程出现意外,原始计划失效,不会自动修正,灵活性差。
ReAct 和 Plan-and-Execute 的核心区别
执行逻辑 ReAct:迭代式,思考和行动交替进行,动态根据结果调整思路。 Plan-and-Execute:一次性前置规划,计划固定,后续按计划执行。
应对突发情况 ReAct:强。执行中间发现信息不对,可以立刻调整下一步策略。 Plan-and-Execute:弱。计划一旦制定,遇到意外容易卡住,需要额外增加重新规划机制。
长任务稳定性 ReAct:长链路容易出现漂移,忘记最初目标。 Plan-and-Execute:整体目标不容易跑偏,适合固定流程类任务。
适用场景 ✅ ReAct:开放式、不确定的任务,比如联网检索问答、未知问题排查。 ✅ Plan-and-Execute:目标明确、流程固定的复杂任务,比如批量数据处理、结构化多步骤工作流。
落地小总结
没有绝对好坏。
- 任务不确定性高、随时可能拿到新信息 → 优先 ReAct
- 任务步骤多、流程固定,希望整体可控可追溯 → 优先 Plan-and-Execute 现在很多工程方案也会做混合:先用 Plan 拆解大任务,子任务内部用 ReAct 动态执行,取长补短。
💬互动提问:你在写 Agent 的时候,更偏向用 ReAct 还是 Plan-and-Execute?有没有遇到计划崩掉的场景?欢迎评论区一起讨论。






