什么是agent
Agent是以大语言模型为核心计算引擎,能够自主理解、规划决策、执行负责任务的智能体。
Agent 的四大核心能力:目标驱动(Planning)、工具使用(Tools)、记忆保持(Memory)、自主决策(Action)。
Agent = LLM + Memory + Tools + Planning + Action
LLM:大语言模型,是Agent的大脑,需要用大模型来理解用户的需求,分析该做什么,决定要调用什么工具等等。
Memory:记忆,因为AI助理一般需要多个步骤来执行的,所以记忆是必要的。记忆除了我们前面介绍过的短期记忆以外,在agent的实际落地中,还需要长期记忆,这个我们在agent这个部分会重点讲解。
Tools:工具,agent需要能使用工具,这里的工具可以是我们在介绍spring ai的时候提到的function,也可以是MCP,甚至是另一个agent。
Planning:规划能力,这个是agent中非常重要的能力,需要理解需求后做规划,这样才能更好的解决问题,这部分需要通过提示词工程来提升模型的理解和规划能力。
Action:任务执行,这一步也很重要,一般来说就是调用工具做执行。如果agent没有执行能力,那么就一点意义都没有了。
基于系统的控制方式,我们将Agent分为两类:Workflow Agent / 编排型智能体、Autonomous Agent / 自主型智能体
agent 常用的架构
React agent
针对用户的提问,LLM会先进行思考(Thought),指定行动计划,行动计划中包括使用哪些工具,接着进行工具执行(Action),在工具执行之后,观察(Observation)工具执行的结果,基于结果继续思考后续的行动计划。如果需要执行工具就继续执行,直到LLM认为所有行动都做完了为止
它能够做观察和反思,并且在后续行动中进行修正
ReAct Agent有下面三步,让 LLM 在每一步交替输出:
- Thought(思考):分析当前状态、制定下一步计划
- Action(行动):调用工具(如搜索、计算、API)
- Observation(观察):接收工具返回的结果
plan and execute
Plan-and-Execute(规划-执行)是一种先进的 AI Agent 架构模式,其核心思想是"先全局规划,后精准执行"。这种模式通过将"思考"与"行动"解耦,专门用于解决传统 ReAct 范式在处理复杂、长链路任务时容易跑偏、陷入死循环以及缺乏全局视野的问题。
核心架构组件
一个完整的 Plan-and-Execute 系统通常包含三个核心组件:
- 规划器(Planner):负责将用户的复杂目标拆解为有序、可执行的子步骤列表,明确各步骤之间的依赖关系与工具映射。通常由高性能的大语言模型(LLM)担任。
- 执行器(Executor):负责按照既定计划逐步骤调用工具或执行操作,记录执行结果与状态。执行器专注于落地,无需进行全局推理,可使用轻量化模型以降低成本。
- 重规划器(Replanner):负责动态调整计划。当执行失败、环境发生变化或发现新信息时,基于当前状态对计划进行局部或全局更新,避免任务卡死
Refliection agent
它是一种让模型自我批判、自我修正的策略。其核心思想是:让大语言模型(LLM)在完成任务后,对其自身的行为或输出进行批判性反思,并基于反思结果进行改进。
虽然我们有了ReAct或者Plan and Execute等agent架构,但是人们发现还是很多时候在Agent执行后存在一定的问题,因为模型幻觉天然存在,于是有人提出给agent引入反思机制。
human in the loop
Human-in-the-Loop(简称 HITL) 指的是在 AI 系统中的自动决策或执行过程中,引入人类用户作为"必要参与者",在关键节点对 AI 的行为和结果进行审查、确认或修正,而不是让模型完全自动完成端到端的执行。
在 Agent 场景下,HITL 的核心并不是用户参与推理,而是:
在用户允许的边界内,让 Agent 自动运行;一旦即将执行高风险或高不确定性的动作,必须经过人工确认。
HITL 本质上是一种 流程控制机制。
multi agent
多智能体(Multi-Agent)是指由多个Agent组成的系统,这些智能体能够感知环境、做出决策、与其他智能体交互,并协同或竞争以完成特定任务
多智能体通过动态任务分解、专业化分工和协作来解决一个复杂的问题。这样的多智能体方案可以做专业化分工、高效的解决复杂问题
常见的协作模式
sub agents
这个模式叫做子智能体模式,核心思想就是,一个主Agent将其他子Agent视为工具(Tool),在需要时调用。控制器管理编排,而作为工具的子Agent执行特定任务并返回结果
主Agent负责决定调用哪个子Agent,提供什么输入,以及如何组合结果。子Agent是无状态的------它们直接和用户交互,所有的对话和记忆都由主代理维护。这提供了上下文隔离:每个子代理的调用都在一个干净的上下文窗口中工作,防止主对话中的上下文膨胀
handoff
HandOff翻译成接管/交接,这种模式在很多框架中也有定义,比如Langchain、Spring AI Alibaba、Pydantic AI、OpenAI、Autogen等。几乎都叫做Hand off,最多有的加个前缀,有的在后面加个s啥的。
其核心思想是:一个"当前"智能体在处理用户请求时,如果发现自己无法或不适合继续处理,它会主动将任务"交接"(hand off)给另一个更专业的智能体,并将控制权转移过去
chat group
上面的hand off这种模式中,是由当前agent主动移交给下一个agent的,那还有一种可以引入一个组织者的方案。
这种模式比较典型的就是autogen中的chat group(群聊)模式。
群聊模式是指:一组具有不同专业角色的智能体(Agents)
- 所有参与者都订阅同一个"话题"(Topic),形成一个共享的消息通道。
- 智能体按顺序轮流发言,同一时间只有一个智能体在工作(sequential execution)。
- 整个流程由一个特殊的 "群聊管理器"(Group Chat Manager) 控制,负责决定下一个该谁发言。
这种模式特别适合将复杂任务动态分解为多个子任务,并交由最合适的专家智能体处理。