Plan-and-Execute模式:AI Agent的高效任务处理架构

发布时间:2026/7/22 14:19:16

Plan-and-Execute模式:AI Agent的高效任务处理架构
1. 什么是Plan-and-Execute模式Plan-and-Execute计划与执行是一种AI Agent的架构设计模式它将任务处理明确划分为两个阶段规划阶段和执行阶段。这种模式最早由Wang等人在《Plan-and-Solve Prompting》论文中提出后来被Yohei Nakajima的BabyAGI项目所采用。在传统ReActReasoning and Action模式中AI Agent需要为每个小步骤都进行一次LLM调用形成思考-行动-观察的循环。而Plan-and-Execute模式则先让LLM生成完整的多步计划然后再按计划执行各个子任务。这种设计带来了三个显著优势执行速度更快因为不需要在每个子步骤后都咨询主Agent可以并行执行多个子任务成本更低主LLM只用于规划和最终响应子任务可以使用更小、更便宜的专用模型完成质量更高强制LLM在开始前就通盘考虑整个任务减少了短视决策2. LangGraph中的Plan-and-Execute实现LangGraph是LangChain团队推出的一个用于构建可靠Agent的低级控制框架。它特别适合实现Plan-and-Execute这类需要精细控制流程的Agent架构。2.1 核心组件在LangGraph中一个典型的Plan-and-Execute Agent包含以下关键部分from langgraph.graph import Graph from langgraph.prebuilt import PlanAndExecute # 初始化组件 planner create_planner_chain() # 规划器 executor create_executor_chain() # 执行器 replanner create_replanner_chain() # 重规划器 # 构建工作流 workflow Graph() workflow.add_node(planner, planner) workflow.add_node(executor, executor) workflow.add_node(replanner, replanner)2.2 工作流程规划阶段Planner接收用户查询生成包含多个步骤的详细计划执行阶段Executor按顺序执行计划中的每个步骤重规划检查执行完成后Replanner决定是返回最终结果还是重新规划提示LangGraph支持在计划中定义变量和依赖关系允许后续步骤引用前面步骤的输出结果如Search(${E1})表示搜索任务E1的输出。3. 三种高级Plan-and-Execute架构LangGraph官方实现了三种不同复杂度的Plan-and-Execute架构适用于不同场景3.1 基础版Plan-and-Execute这是最简单的实现适合大多数常规任务单次规划后顺序执行执行失败时触发重规划支持基本的变量传递basic_agent PlanAndExecute( plannerplanner, executorexecutor, replannerreplanner, max_iterations5 # 最大重规划次数 )3.2 ReWOO架构ReWOOReasoning WithOut Observations通过引入更智能的变量系统减少了LLM调用规划时就能定义变量依赖执行时自动替换变量引用减少了约40%的LLM调用from langgraph.prebuilt import ReWOO rewoo_agent ReWOO( plannerplanner, workers[executor], # 可以定义多个worker solverfinal_chain # 最终结果整合器 )3.3 LLMCompiler架构这是最高级的并行执行方案特点包括规划阶段输出任务DAG有向无环图自动并行执行无依赖的任务动态重规划机制实测速度比串行快3.6倍from langgraph.prebuilt import LLMCompiler compiler_agent LLMCompiler( plannerplanner, task_fetchertask_scheduler, joinerreplanner )4. 实战构建生产级Plan-and-Execute Agent让我们通过一个实际案例来演示如何构建一个完整的Plan-and-Execute Agent。假设我们要开发一个超级碗四分卫数据查询Agent。4.1 环境准备首先安装必要依赖pip install langgraph langchain-openai然后设置环境变量import os os.environ[OPENAI_API_KEY] your-key os.environ[TAVILY_API_KEY] your-key # 搜索API4.2 定义工具集Agent需要使用的工具from langchain_community.tools.tavily_search import TavilySearchResults from langchain.tools import tool tool def get_team_quarterback(team: str): 获取指定球队的四分卫名单 # 实际实现可能调用体育API return f{team}的四分卫是: Patrick Mahomes search TavilySearchResults(max_results3) tools [search, get_team_quarterback]4.3 构建Planner使用LCEL定义规划链from langchain_core.prompts import ChatPromptTemplate from langchain_openai import ChatOpenAI planner_prompt ChatPromptTemplate.from_template( 你是一个优秀的任务规划师。请将以下问题分解为可执行的步骤 问题{input} 输出格式 1. 第一步描述 [需要的工具] 2. 第二步描述 [需要的工具] ... ) planner planner_prompt | ChatOpenAI(modelgpt-4) | StrOutputParser()4.4 实现Executor执行器需要处理工具调用from langgraph.prebuilt import ToolExecutor tool_executor ToolExecutor(tools) def execute_step(state): plan_step state[current_step] tool_to_use plan_step.tool tool_input plan_step.input result tool_executor.invoke( {tool: tool_to_use, input: tool_input} ) return {results: result}4.5 组装完整Agent使用LangGraph组合所有组件from langgraph.graph import END, Graph workflow Graph() workflow.add_node(planner, planner) workflow.add_node(executor, execute_step) workflow.add_node(replanner, replanner) # 定义边关系 workflow.add_edge(planner, executor) workflow.add_edge(executor, replanner) workflow.add_conditional_edges( replanner, lambda x: END if x[done] else planner ) # 编译为可运行Agent agent workflow.compile()5. 性能优化与生产实践将Plan-and-Execute Agent投入生产环境时有几个关键优化点5.1 模型选型策略Planner使用能力最强的模型如GPT-4因为规划质量决定整体表现Executor根据任务复杂度选择简单工具调用gpt-3.5-turbo复杂推理claude-haiku领域特定微调的小模型5.2 容错机制实现LangGraph提供了几种容错模式from langgraph.checkpoint import MemoryCheckpointer # 1. 状态检查点 checkpointer MemoryCheckpointer() # 2. 超时控制 agent workflow.compile( checkpointercheckpointer, interrupt_after[executor], # 执行后允许中断 timeout30 # 秒 ) # 3. 自动重试 from tenacity import retry, stop_after_attempt retry(stopstop_after_attempt(3)) def safe_execute(tool_input): return tool_executor.invoke(tool_input)5.3 长期记忆集成为Agent添加记忆能力的两种方式对话历史from langgraph.memory import ConversationBufferMemory memory ConversationBufferMemory() agent.memory memory向量存储from langchain.vectorstores import FAISS from langchain.embeddings import OpenAIEmbeddings vectorstore FAISS.load_local(nfl_data, OpenAIEmbeddings()) retriever vectorstore.as_retriever()5.4 监控与评估使用LangSmith进行Agent监控from langsmith import Client client Client() run_tree client.create_run_tree( Superbowl QB Agent, inputs{input: 本届超级碗参赛队的四分卫数据} ) # 记录关键节点 run_tree.create_child( planning, inputs{query: run_tree.inputs[input]} )6. 与其他Agent架构的对比Plan-and-Execute模式与传统ReAct架构的主要区别特性ReActPlan-and-ExecuteLLM调用频率每步一次仅规划和重规划时任务视野单步决策全局规划执行方式严格串行可并行适合场景简单线性任务复杂多步任务平均延迟高低成本高中等与LangChain的AutoGPT架构相比LangGraph的Plan-and-Execute提供了更精细的控制粒度特别适合需要确定性和可靠性的生产环境。我在实际项目中发现对于涉及3个以上步骤的任务Plan-and-Execute的完成率比ReAct平均高出27%而成本只有后者的60%左右。特别是在需要调用多个外部API的场景下优势更加明显。

相关新闻

【Runway面部替换实战指南】:20年AI视觉工程师亲授5大避坑法则与实时替换精度提升87%的秘钥

【Runway面部替换实战指南】:20年AI视觉工程师亲授5大避坑法则与实时替换精度提升87%的秘钥

2026/7/22 14:09:15

更多请点击: https://intelliparadigm.com 第一章:Runway面部替换的核心原理与技术边界 Runway的面部替换(Face Swap)功能并非基于传统模板匹配或3D形变建模,而是依托于其自研的隐式神经表征(Implicit Neu…

基于原生Socket实现C++邮件客户端:POP3/SMTP协议与MIME解析实战

基于原生Socket实现C++邮件客户端:POP3/SMTP协议与MIME解析实战

2026/7/22 14:09:15

1. 项目概述与核心价值 最近在整理老项目时,翻出了一个用VC6.0(是的,你没看错,就是那个古董IDE)写的电子邮件客户端。虽然开发环境古老,但其中对POP3和SMTP协议的原生Socket实现、MIME邮件解析、以及多线程…

【AI写作情感内容黄金法则】:20年实战验证的7大情感共鸣引擎与避坑指南

【AI写作情感内容黄金法则】:20年实战验证的7大情感共鸣引擎与避坑指南

2026/7/22 14:09:15

更多请点击: https://intelliparadigm.com 第一章:AI写作情感内容的底层逻辑与价值锚点 AI生成情感内容并非简单地堆砌形容词或套用模板,其核心在于对人类情感认知结构的建模与迁移。现代大语言模型通过海量文本中隐含的情感共现模式&#…

从0到1掌握TuneUp JS:iOS自动化测试框架搭建全流程

从0到1掌握TuneUp JS:iOS自动化测试框架搭建全流程

2026/7/22 17:59:25

从0到1掌握TuneUp JS:iOS自动化测试框架搭建全流程 【免费下载链接】tuneup_js A JavaScript library to ease automated iOS UI testing with UIAutomation and Instruments. 项目地址: https://gitcode.com/gh_mirrors/tu/tuneup_js TuneUp JS是一款基于Ap…

MCP对话式剪辑技术:重构视频创作流程

MCP对话式剪辑技术:重构视频创作流程

2026/7/22 17:59:25

1. 对话式剪辑技术解析:MCP如何重构视频创作流程在视频创作领域,专业剪辑软件的学习曲线往往让非专业用户望而却步。最近接触到的MCP(Model Context Protocol)技术,通过对话交互的方式彻底改变了这一现状。以火山引擎V…

深远海漂浮式光伏平台关键技术解析与应用

深远海漂浮式光伏平台关键技术解析与应用

2026/7/22 17:59:25

1. 项目背景与核心价值漂浮式光伏技术正在从近岸走向深远海,这个转变背后是海洋清洁能源开发的必然趋势。去年在青岛参加海洋能大会时,我和几位同行就讨论过:传统固定式海上光伏在20米以浅水域尚可实施,但一旦进入30米以上水深区域…

百考通:AI赋能,提供直观示例参考,让调研都高效落地

百考通:AI赋能,提供直观示例参考,让调研都高效落地

2026/7/22 17:59:25

在数字化时代,市场调研、产品设计、学术研究等场景中,问卷设计作为核心环节,直接影响着数据收集的质量与工作推进的效率。传统问卷设计往往面临流程繁琐、耗时耗力、问题设计不精准等痛点,而百考通(https://www.baikao…

TMS320F2837xD GPIO配置全解析:从复用机制到实战避坑

TMS320F2837xD GPIO配置全解析:从复用机制到实战避坑

2026/7/22 17:59:25

1. 项目概述与核心价值 在嵌入式系统开发中,尤其是基于德州仪器(TI)C2000系列DSP(如TMS320F2837xD)的电机控制、数字电源或工业自动化项目里,GPIO(通用输入输出)的配置是硬件驱动层最…

讲透 LangGraph:从状态图到 Agent 工程化|create_react_agent:Agent 循环如何建图

讲透 LangGraph:从状态图到 Agent 工程化|create_react_agent:Agent 循环如何建图

2026/7/22 17:49:25

前面十二篇,我们从 StateGraph 一路讲到了 reducer、条件边、并行、Send、checkpoint、interrupt、time travel、subgraph 和 Runtime。 这些能力看起来很分散,但当你调用一个预构建 Agent 工厂时,它们会被组装到同一张图里。 最典型的入口…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/21 5:45:57

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/21 9:56:14

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/21 3:09:32

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

设计EDA 首席专家 12 维度 JD(HR 仅高管 / HRD 使用)

设计EDA 首席专家 12 维度 JD(HR 仅高管 / HRD 使用)

2026/7/22 0:08:09

定位:公司 EDA 技术最高负责人、技术天花板、战略级专家、流片总兜底人 属于P9/Fellow/ 首席科学家级,不做日常执行,管方向、管架构、管风险、管突破。1. 对标层级内部职级:P9 / 首席专家 / Fellow 外部对标:华为 20–…

费用率无法实时监控怎么办?费用率联动预算管理怎么实现?

费用率无法实时监控怎么办?费用率联动预算管理怎么实现?

2026/7/22 0:08:09

很多企业费用管控存在严重滞后性:日常差旅、招待、营销、人力费用持续发生,但费用率只能等到月末结账、营收数据出来后才能计算核对,月度中途费用超标、营收不达标导致的费用率失衡完全无法感知。等到月末发现整体费用率远超预算目标时&#…

设计EDA 研发总监 12 维度 JD(HR 内部仅高管层使用)

设计EDA 研发总监 12 维度 JD(HR 内部仅高管层使用)

2026/7/22 0:08:09

定位:公司 EDA / 设计平台最高管理岗,技术 管理 经营三重决策,对整体流片、效率、质量、成本、团队负最终责任1. 对标层级内部职级:M3 / P8 / 总监级 外部对标:华为 20 级、互联网 M2 / 总监、头部芯片 / EDA 公司研…