AI Agent 架构解析:构建 Plan-and-Execute 智能体
引言
随着大语言模型(LLM)能力的不断提升,AI Agent(智能体)在解决复杂任务方面展现出巨大潜力。然而,传统的交互模式在面对多步骤、长链条任务时往往显得力不从心。本文深入探讨一种新兴的架构模式——Plan-and-Execute(规划与执行),并通过 Python 和 LangGraph 框架提供完整的实践指南。
传统 ReAct 架构的困境
ReAct(Reasoning + Acting)架构曾是 AI Agent 的主流范式,它要求模型在每一步行动前都进行推理。尽管灵活,但在实际生产环境中暴露出显著缺陷:
- 执行效率低下:ReAct 采用单步循环模式,每完成一个动作必须等待 LLM 推理下一步。这种串行处理导致延迟累积,如同在每个路口重新启动车辆,严重拖慢整体流程。
- 上下文记忆缺失:由于缺乏长期规划能力,Agent 容易在执行中途迷失方向。一旦任务跨度较大,早期信息容易被后续对话淹没,导致关键上下文丢失。
- 资源消耗高:每一步都需要调用一次 LLM,对于包含数十个步骤的任务,Token 消耗呈线性增长,成本难以控制。
Plan-and-Execute 架构优势
Plan-and-Execute 架构通过分离'思考'与'执行',从根本上优化了上述问题:
核心优势
- 高效执行:规划器一次性生成完整计划,执行器按序运行,减少了中间推理的等待时间。
- 成本控制:规划阶段可使用较小模型或特定提示词,执行阶段可复用工具,降低对昂贵 LLM 的依赖。
- 质量提升:全局视角的规划能预判潜在冲突,提高任务完成率。
核心组件
该架构主要包含两个关键模块:
- 规划器(Planner):负责将用户目标拆解为有序的子任务列表。它需要确保每个步骤所需的信息完备,避免遗漏。
- 执行器(Executor):接收具体子任务,调用相应工具(如搜索、代码解释器)获取结果,并反馈给系统。
基于 LangGraph 的实现方案
LangGraph 提供了构建有状态、多节点工作流的强大能力,非常适合实现 Plan-and-Execute 模式。
1. 状态定义
首先定义工作流的状态结构,用于存储输入、计划、历史步骤及最终响应。
from typing import TypedDict, List, Annotated
import operator
class PlanExecute(TypedDict):
input: str
plan: List[str]
past_steps: List[tuple]
response: str
2. 规划节点
规划节点利用 LLM 的结构化输出功能生成计划。需确保 Prompt 明确约束步骤数量和信息完整性。
langchain_core.prompts ChatPromptTemplate
pydantic BaseModel, Field
():
steps: [] = Field(description=)
planner_prompt = ChatPromptTemplate.from_messages([
(, )
])
():
plan = planner_prompt | model.with_structured_output(Plan).ainvoke({: [(, state[])]})
{: plan.steps}


