Agent 设计范式:ReAct 与 Plan-Execute-Replan
推理 + 行动它的核心思想是:Agent 一边思考,一边行动,根据工具返回的结果继续思考。你可以把 ReAct 理解成一个人解决问题的过程。比如用户问:今天北京天气怎么样?适合穿什么?思考:用户想知道北京天气和穿衣建议行动:调用天气查询工具观察:天气工具返回,北京 12℃,多云,有风思考:天气偏凉,需要穿外套回答:今天北京多云,温度较低,建议穿外套思考 → 调用工具 → 观察结果 → 再思考 →
浅谈 Agent 设计范式:ReAct 与 Plan-Execute-Replan
前言
在大模型应用开发中,我们经常听到一个词:Agent。
简单来说,Agent 可以理解为一个“会思考、会调用工具、会根据结果继续行动”的智能程序。
如果只是普通问答,大模型只需要根据用户问题直接生成回答即可。但在真实业务中,很多任务并不是一步就能完成的。
比如用户问:
帮我查一下某个公司最近的新闻,并总结它的业务风险。
这个任务可能需要经历:
理解问题
↓
搜索资料
↓
阅读结果
↓
筛选有用信息
↓
总结答案
这就不再是简单的“一问一答”,而是一个需要多步骤完成的任务。
为了让 Agent 更稳定地完成复杂任务,就出现了一些常见的设计范式,比如:
- ReAct
- Plan-Execute-Replan
这篇文章主要聊两个最常见的范式:
ReAct 和 Plan-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 强在结构化。
更多推荐


所有评论(0)