浅谈 Agent 设计范式:ReAct 与 Plan-Execute-Replan

前言

在大模型应用开发中,我们经常听到一个词:Agent
简单来说,Agent 可以理解为一个“会思考、会调用工具、会根据结果继续行动”的智能程序。
如果只是普通问答,大模型只需要根据用户问题直接生成回答即可。但在真实业务中,很多任务并不是一步就能完成的。

比如用户问:

帮我查一下某个公司最近的新闻,并总结它的业务风险。

这个任务可能需要经历:

理解问题
↓
搜索资料
↓
阅读结果
↓
筛选有用信息
↓
总结答案

这就不再是简单的“一问一答”,而是一个需要多步骤完成的任务。

为了让 Agent 更稳定地完成复杂任务,就出现了一些常见的设计范式,比如:

  • ReAct
  • Plan-Execute-Replan

这篇文章主要聊两个最常见的范式:

ReActPlan-Execute-Replan


一、什么是 ReAct?

ReAct 这个词来自:

Reasoning + Acting

也就是:

推理 + 行动

它的核心思想是:

Agent 一边思考,一边行动,根据工具返回的结果继续思考。

你可以把 ReAct 理解成一个人解决问题的过程。

比如用户问:

今天北京天气怎么样?适合穿什么?

Agent 可能会这样工作:

思考:用户想知道北京天气和穿衣建议
行动:调用天气查询工具
观察:天气工具返回,北京 12℃,多云,有风
思考:天气偏凉,需要穿外套
回答:今天北京多云,温度较低,建议穿外套

它的典型流程是:

Thought → Action → Observation → Thought → Action → Observation → Final Answer

用中文解释就是:

思考 → 调用工具 → 观察结果 → 再思考 → 再调用工具 → 最终回答

二、为什么需要 ReAct?

如果没有 ReAct,大模型可能会直接回答。

但直接回答有一个问题:

模型可能会“猜”。

比如你问:

今天上海天气怎么样?

如果模型没有联网能力,它可能会根据旧知识胡乱回答。

而 ReAct 的好处是:

让模型在不确定时先调用工具,再基于工具结果回答。

所以 ReAct 很适合这类场景:

  • 需要查资料
  • 需要调用 API
  • 需要查询数据库
  • 需要多轮工具调用
  • 任务步骤不固定

三、ReAct 的特点

ReAct 最大的特点是:

边想边做。

它不需要一开始就把完整计划列出来,而是在执行过程中动态判断下一步。

这就像你在做一道没见过的题:

先看题
试着算一步
发现缺少条件
再回去找条件
继续推理
最后得到答案

这种方式很灵活。

但是它也有缺点:

  • 思路可能发散
  • 可能重复调用工具
  • 缺少整体规划
  • 执行路径不够稳定

所以ReAct更适合有灵活性且探索性的任务,而对于复杂任务,我们通常会引入另一种范式:

Plan-Execute-Replan


四、Plan-Execute-Replan 到底是什么?

一句话定义:

Plan-Execute-Replan 是一种先规划、再执行、执行中根据结果动态调整计划的 Agent 任务执行模式。

它的核心流程是:

Plan → Execute → Replan → Execute → Replan → Done

中文就是:

制定计划 → 执行计划 → 根据结果重新规划 → 继续执行 → 完成任务

和 ReAct 最大的不同是:

ReAct 更像“边走边想”,Plan-Execute-Replan 更像“先画路线图,再按路线走,走不通就改路线”。


五、用生活例子理解 Plan-Execute-Replan

假设你要装修房子。

如果用 ReAct 的方式,可能是:

先去买地板
发现墙还没刷
再去找工人刷墙
刷完发现电路没改
再找电工

这种方式很灵活,但容易乱。

如果用 Plan-Execute-Replan 的方式,会先规划:

1. 确定装修预算
2. 设计装修方案
3. 改水电
4. 刷墙
5. 铺地板
6. 安装家具
7. 验收

然后按计划一步一步执行。

如果中途发现预算不够,就重新规划:

原计划:全屋实木地板
调整后:卧室木地板,客厅瓷砖

这就是 Replan。


六、Plan-Execute-Replan 的角色划分

在 Multi-Agent 场景下,它通常可以拆成几个角色:

Planner:负责制定计划
Executor:负责执行具体任务
Replanner:负责根据执行结果调整计划

可以简单理解为:

角色 作用 类比
Planner 制定计划 项目经理
Executor 执行任务 执行人员
Replanner 调整计划 现场负责人

如果执行中发现“缺少 Java 示例代码”,Replanner 就会调整计划:

新增步骤:补充 Spring Boot + Redis 的布隆过滤器示例

七、ReAct 和 Plan-Execute-Replan 的区别

对比点 ReAct Plan-Execute-Replan
核心思想 边思考边行动 先规划再执行
执行方式 动态试探 按计划推进
适合任务 简单或中等复杂任务 多步骤复杂任务
优点 灵活、实现简单 结构清晰、可控性强
缺点 容易发散、可能重复调用工具 实现成本更高
类比 边走边问路 先导航,再根据路况改路线

一句话总结:

ReAct 强在灵活,Plan-Execute-Replan 强在结构化。


Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐