从“一步一想”到“先全局规划”:ReAct vs Plan-and-Execute,AI Agent的两种“思考方式”
让Java开发者像写Spring Boot一样开发AI应用——第四课写在前面前三天我们学会了创建单Agent、理解ReAct循环、构建多Agent协作系统。但有一个问题始终在困扰着许多开发者ReAct Agent运行时为什么经常“原地打转”明明已经查过天气了它又查一遍明明已经得到答案了它还在继续思考。这不是你的代码写错了而是ReAct模式本身存在结构性缺陷。今天的课我们不仅要解剖ReAct的三大缺陷还要引入另一种截然不同的思考方式——Plan-and-Execute并告诉你什么时候该用哪种模式。一、ReAct的困境为什么Agent会“原地打转”先快速回顾ReAct的核心循环Thought思考→ Action行动→ Observation观察→ Thought → …ReAct将推理Reasoning和行动Acting相结合通过持续观察环境反馈动态调整决策路径。它的本质是CoT思维链 工具调用 环境反馈闭环。就像一个经验丰富的老医生——问一句、查一下、想一想再决定下一步怎么做。但问题也恰恰出在这里。缺陷一无限循环Infinite LoopReAct最致命的缺陷Agent可能陷入Thought→Action→Observation的死循环反复执行相同的操作而无法推进任务。Thought: 我需要查天气 Action: 调用 get_weather(上海) Observation: 上海晴25°C Thought: 我需要查天气 ← 又回到原点 Action: 调用 get_weather(上海) ← 重复调用 Observation: 上海晴25°C ← 无限循环...为什么会发生模型“忘记”了自己已经做过什么模型对当前进度缺乏清晰的认知没有内置的“停止”机制解决方案设置最大迭代次数recursion limit通常25-30次是合理阈值。缺陷二上下文爆炸Context ExplosionReAct的每一步Thought→Action→Observation都会追加到上下文中。随着循环次数增加上下文越来越长最终导致Token消耗激增触发上下文窗口限制“关键信息遗忘”Lost in the Middle问题 就像一个人不停地往背包里塞东西——背包越来越重最后连钥匙都找不到了。缺陷三缺乏全局规划视角ReAct的“规划”仍是单路径、线性的——它不能并行探索多条方案也不能在推理链死胡同时回溯。每一步只考虑当前信息缺乏对整体任务的全盘把握。课堂话术ReAct就像一个没有地图的探险家——边走边看遇到岔路就随机选一条。运气好能走出来运气不好就在原地打转。ReAct缺陷总结缺陷表现后果无限循环反复执行相同操作任务永远无法完成API额度刷光上下文爆炸每一步都追加到上下文Token消耗激增关键信息丢失缺乏全局视角每一步只考虑当前信息容易“走弯路”路径低效ReAct仍然适用的场景尽管有上述缺陷ReAct在以下场景中仍然是最佳选择动态环境需要实时响应环境变化的任务如实时故障修复、股票交易探索性任务解决方案路径不明确需要边试边找对话式交互用户与Agent多轮对话的场景工具数量有限工具集在3-5个以内二、Plan-and-Execute换个思路解决问题Plan-and-Execute模式的哲学很简单先把整个任务想明白拆解成有序的步骤然后逐步执行。用户输入 → Planner规划器生成完整计划 → Executor执行器按步骤执行 → 输出结果两个核心角色角色职责特点Planner规划器根据用户输入生成详细的任务规划和执行方案“想”不调用工具Executor执行器依据规划内容执行具体任务“做”按计划调用工具完整流程第一步规划阶段PlanningPlanner Agent接收用户目标生成一个结构化的任务计划{goal:规划一次杭州三日游,steps:[{id:1,action:查询杭州未来3天天气,tool:get_weather},{id:2,action:根据天气推荐景点,tool:recommend_attractions},{id:3,action:规划每日行程安排,tool:plan_itinerary},{id:4,action:推荐酒店和餐饮,tool:recommend_hotels}]}第二步执行阶段ExecutionExecutor按计划逐步执行每一步可调用工具。如果步骤之间相互独立还可以并行执行。第三步可选重规划阶段Replanning如果某一步执行失败或环境发生变化可以触发Replanner重新规划后续步骤。Plan-and-Execute的优缺点优点优点说明结构清晰计划一目了然便于人类理解和调试避免死循环执行路径由计划决定不会无限循环执行效率高大模型只在规划和重规划时被调用支持并行独立步骤可并行执行显著缩短总耗时资源可控可预先评估计算成本缺点缺点说明计划可能失真前期信息不足时计划可能与真实环境脱节动态调整弱执行过程中的动态调整和容错能力较弱灵活性不足偏向静态工作流难以应对突发变化单轮对话限制部分实现不支持基于历史上下文的多轮对话Plan-and-Execute的适用场景步骤繁多、逻辑依赖明确的长期复杂任务任务可以预先分解为清晰的子任务对实时性要求较低但对内容丰富度要求较高的任务如深度分析报告、长篇网页生成批量数据处理等静态环境任务三、ReAct vs Plan-and-Execute全面对比核心差异对比表对比维度ReAct模式Plan-and-Execute模式规划方式动态生成每轮迭代更新一次性生成执行前固定执行方式边想边做循环迭代先想后做按计划执行工具调用按需调用可能重复调用按计划调用顺序明确状态管理实时更新环境状态仅在计划失败时更新状态失败处理通过循环自动修正需显式设计重试/回滚机制环境适应性优秀动态环境一般静态环境更高效死循环风险高低上下文增长线性累积易爆炸可控性能数据参考在某自动化测试场景中Plan-and-Execute模式相比ReAct任务完成率提升27%工具调用次数减少42%平均执行时间缩短35%选型决策树开始我有一个任务要交给Agent │ ├─ 任务解决方案路径是否明确 │ ├─ 不明确需要边探索边决策 → 【ReAct】 │ └─ 明确可以预先拆解为子任务 → 继续 │ ├─ 任务是否需要实时响应环境变化 │ ├─ 是如实时监控、故障修复→ 【ReAct】 │ └─ 否 → 继续 │ ├─ 任务步骤是否繁多5步且依赖关系明确 │ ├─ 是 → 【Plan-and-Execute】 │ └─ 否 → 继续 │ └─ 最安全的混合策略Plan-and-Execute做全局规划 ReAct做每步内的灵活执行核心观点ReAct和Plan-and-Execute不是二选一的关系而是两个不同粒度的策略。实战中最好的做法是混合使用——Plan-and-Execute做全局规划ReAct做每步内的灵活执行。四、Spring AI Alibaba Graph底层工作流引擎在深入代码之前需要了解一个关键事实Spring AI Alibaba的Agent Framework底层运行在Graph Runtime之上。Graph是什么Graph是一个低级别的工作流和多智能体编排框架能够帮助开发者实现复杂的应用程序编排。在底层Spring AI Alibaba框架会将Agent编排为Graph组成一个由节点串联而成的DAG有向无环图。Graph的三大核心概念概念说明状态State在Node与Edge之间传递的数据结构是一个MapString, Object节点Node执行逻辑单元接受State作为输入执行操作后返回更新的State边Edge定义Node间的控制流可为固定连接或条件分支一句话总结Node完成工作Edge告诉下一步该做什么。Graph的核心能力流式输出Streaming将每个节点的运行情况实时发送到客户端人机协同Human In The Loop允许对Agent运行过程中的工具调用进行评估、修改、批准记忆管理Memory Context处理短期记忆会话内和长期记忆跨会话Agentic API vs Graph APIAgentic APIGraph API抽象层次高层声明式API底层原子化API使用方式使用预置的Agent模式独立定义每个Node和Edge的逻辑控制粒度粗粒度细粒度完全控制适用场景大多数Agent应用开发需要超高可靠性、大量自定义逻辑的场景上手难度低中高推荐策略优先使用Agent Framework内置的Agent抽象ReactAgent、SequentialAgent、ParallelAgent等。只有当需要更灵活的编排、更直接的状态控制时才考虑直接使用Graph API。五、代码实战对比两种方案实战一用ReAct模式实现“旅行规划Agent”ServiceSlf4jpublicclassTravelReActAgentService{privatefinalChatModelchatModel;Tool(description查询指定城市的天气)publicStringgetWeather(Stringcity){returncity未来3天晴到多云气温22-28°C;}Tool(description根据城市和天气推荐景点)publicStringrecommendAttractions(Stringcity,Stringweather){return推荐景点西湖、灵隐寺、宋城、西溪湿地;}publicvoidrunReActTravelAgent(){ReactAgentagentReactAgent.builder().name(react_travel_agent).model(chatModel).instruction( 你是一个旅行规划助手。用户会告诉你目的地和天数 请按以下步骤完成任务 1. 先查询天气 2. 根据天气推荐景点 3. 推荐酒店 4. 生成完整的行程计划 ).methodTools(this).build();Stringquestion帮我规划杭州3日游;log.info( ReAct模式执行 );longstartSystem.currentTimeMillis();AssistantMessageresponseagent.call(question);longendSystem.currentTimeMillis();log.info(耗时{}ms,end-start);log.info(回复\n{},response.getText());}}课堂观察点观察Agent的Thought→Action→Observation循环日志记录工具调用次数和总耗时注意Agent是否出现“重复查询”或“循环”现象实战二用SequentialAgent模拟Plan-and-ExecuteConfigurationpublicclassPlanExecuteTravelConfig{// 1. Planner Agent - 只负责规划不调用工具BeanpublicReactAgentplannerAgent(ChatModelchatModel){returnReactAgent.builder().name(planner).model(chatModel).instruction( 你是一个旅行规划专家。请根据用户需求生成一个详细的旅行计划。 计划必须包含以下部分 1. 行程总览天数、目的地 2. 每日详细安排上午、下午、晚上 3. 住宿推荐 4. 餐饮推荐 注意只生成计划文本不要执行任何实际操作。 用户需求{input} ).outputKey(travel_plan).build();}// 2. Executor Agent - 负责执行计划中的具体操作BeanpublicReactAgentexecutorAgent(ChatModelchatModel){returnReactAgent.builder().name(executor).model(chatModel).instruction( 你是一个旅行执行助手。根据以下计划执行具体的查询操作 {travel_plan} 请调用工具查询天气、景点等具体信息。 ).methodTools(newTravelTools()).outputKey(execution_result).build();}// 3. 组合为顺序AgentBeanpublicSequentialAgentplanExecuteTravelAgent(ReactAgentplannerAgent,ReactAgentexecutorAgent){returnSequentialAgent.builder().name(plan_execute_travel_agent).subAgents(List.of(plannerAgent,executorAgent)).build();}}对比结果对比维度ReAct模式Plan-and-Execute模式执行路径动态循环路径不确定固定顺序路径清晰工具调用次数可能重复调用按计划调用无重复总耗时较长多次模型调用较短2次模型调用工具执行回复质量灵活但可能遗漏信息结构完整覆盖全面可调试性较难路径不确定容易计划即文档六、Spring AI Alibaba中的混合实践如前所述实战中最好的做法是混合使用用户需求 → Planner全局规划→ 步骤1ReAct执行→ 步骤2ReAct执行→ ... → 最终结果混合模式的优势Planner提供全局视角避免ReAct“走弯路”每个步骤内的ReAct提供灵活性应对局部变化既有结构又有弹性Spring AI Alibaba中的实现方式使用SequentialAgent串联多个Agent每个子Agent可以是ReActAgent带工具第一个Agent作为Planner不带工具只生成计划后续Agent作为Executor带工具执行计划中的各步骤这种模式在Spring AI Alibaba的OpenManus实现中已有体现——Planning Agent负责任务分解多个Manus Agent组成链式可顺序执行的子工作流。七、读后挑战任务分析你的业务场景判断更适合哪种Agent架构模式分析框架分析维度你的答案任务目标是什么任务步骤是否可以预先明确是否需要实时响应环境变化任务步骤是否繁多5步子任务之间是否可以并行推荐使用哪种模式为什么验收标准完成了6个维度的场景分析给出了明确的模式选择建议及理由针对所选模式的缺陷提出了应对方案如果能画出架构图可选加分八、本日核心收获ReAct有三大缺陷无限循环、上下文爆炸、缺乏全局视角Plan-and-Execute是另一种思路先全局规划再逐步执行两者不是二选一而是可以混合使用的策略Spring AI Alibaba Graph是底层工作流引擎提供State、Node、Edge三大核心概念选型决策动态环境→ReAct静态复杂任务→Plan-and-Execute最稳妥→混合模式本文要点回顾ReAct是“一步一想”Plan-and-Execute是“先全局规划再逐步执行”。前者适合探索性任务后者适合确定性任务。而实战中最好的做法是混合使用——Plan-and-Execute做全局规划ReAct做每步内的灵活执行。理解这两种模式的区别和各自的适用场景是Agent架构设计的关键一步。有任何问题欢迎在评论区留言交流作者Java老兵搞AI专注Java生态下的AI应用开发如果觉得有用「点赞」「关注」支持一下吧 公众号搜索“#Java老兵搞AI”查看详细教程

相关新闻

Mac Mouse Fix终极指南:让10美元鼠标在macOS上超越苹果触控板

Mac Mouse Fix终极指南:让10美元鼠标在macOS上超越苹果触控板

Mac Mouse Fix终极指南:让10美元鼠标在macOS上超越苹果触控板 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 你是否曾经在macOS上使…

2026/8/11 19:14:58 阅读更多 →
【单片机毕业设计推荐】基于 STM32 的智能定时药盒监测提醒系统设计与实现,基于 STM32 的多品类药品智能服药提醒装置设计(012906)

【单片机毕业设计推荐】基于 STM32 的智能定时药盒监测提醒系统设计与实现,基于 STM32 的多品类药品智能服药提醒装置设计(012906)

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能基础功能核心功能辅助功能技术路线项目演示关于我们项目案例源码获取温馨提示:本人主页置顶文章(点我)有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶…

2026/8/11 19:14:58 阅读更多 →
第8课:绩效面谈——高难度对话中的情绪掌控

第8课:绩效面谈——高难度对话中的情绪掌控

绩效面谈,大概是管理者最不想面对、却又不得不面对的场景。 尤其是给差评。 你准备了很久,反复措辞,但当你坐到对方面前,看到他紧张的眼神,你心里还是打鼓——“他会不会不接受?”“会不会影响关系&#xf…

2026/8/11 19:14:58 阅读更多 →

最新新闻

Comskip静态编译避坑指南:解决跨平台部署中的依赖难题

Comskip静态编译避坑指南:解决跨平台部署中的依赖难题

Comskip静态编译避坑指南:解决跨平台部署中的依赖难题 【免费下载链接】Comskip A free commercial detector 项目地址: https://gitcode.com/gh_mirrors/co/Comskip Comskip作为一款免费的商业广告检测器,在跨平台部署时常常面临动态链接库依赖的…

2026/8/11 19:54:13 阅读更多 →
Windows 9x现代硬件兼容性终极修复方案:patcher9x工具深度解析

Windows 9x现代硬件兼容性终极修复方案:patcher9x工具深度解析

Windows 9x现代硬件兼容性终极修复方案:patcher9x工具深度解析 【免费下载链接】patcher9x Patch for Windows 9x to fix CPU issues 项目地址: https://gitcode.com/gh_mirrors/pa/patcher9x 在数字怀旧与技术传承的浪潮中,运行Windows 95、98和…

2026/8/11 19:54:13 阅读更多 →
Adobe-GenP 3.0破解工具:三步免费激活Adobe全家桶的完整指南

Adobe-GenP 3.0破解工具:三步免费激活Adobe全家桶的完整指南

Adobe-GenP 3.0破解工具:三步免费激活Adobe全家桶的完整指南 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 你是否在为Adobe Creative Cloud高昂的订阅…

2026/8/11 19:54:13 阅读更多 →
AI代理安全案例研究:使用Agent Governance Toolkit开展案例研究

AI代理安全案例研究:使用Agent Governance Toolkit开展案例研究

AI代理安全案例研究:使用Agent Governance Toolkit开展案例研究 【免费下载链接】agent-governance-toolkit AI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agen…

2026/8/11 19:54:13 阅读更多 →
3分钟让Figma说中文:设计师必备的界面汉化完整指南

3分钟让Figma说中文:设计师必备的界面汉化完整指南

3分钟让Figma说中文:设计师必备的界面汉化完整指南 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而苦恼吗?每天面对"Component&quo…

2026/8/11 19:54:13 阅读更多 →
3分钟掌握Loop:Mac窗口管理的终极免费解决方案

3分钟掌握Loop:Mac窗口管理的终极免费解决方案

3分钟掌握Loop:Mac窗口管理的终极免费解决方案 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 还在为Mac上杂乱无章的窗口而烦恼吗?每天都要花大量时间拖拽、调整、切换窗口&…

2026/8/11 19:53:12 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →