AI Agent模型:Plan-and-Execute、ReAct、Function Calling
大模型Agents的技术,其实本质上就是写prompt,让模型仿照你的方式来进行执行的一种应用范式,prompt里面包含一些tools的描述,然后我们可以根据模型的输出使用一些外部tools(例如计算器,搜索API,数据库,程序接口,各种模型的API),能使用外部的API,知识库,只要写好prompt,智能体会调用LLM完成任务,形成用户需要的内容
Plan-and-Execute
这个方法的本质是先计划再执行,即先把用户的问题分解成一个个的子任务,然后再执行各个子任务,并根据执行情况调整计划。Plan-and-Execute相比ReWOO,最大的不同就是加入了Replan机制,其架构上包含规划器、执行器和重规划器:
- 规划器Planner:负责让 LLM 生成一个多步计划来完成一个大任务,每一步都是一个独立的任务,生成的计划是以列表的形式进行展现
- 执行器Execution:接收规划中的步骤并且按照计划中的步骤,逐一调用或多个工具来完成该任务;
- 重规划器Replanner:根据实际的执行情况和信息反馈来调整计划
原理
- Planner接收来自用户的输入,输出具体的任务清单;
- 将任务清单给到Single-Task Agent,即执行器,执行器会在循环中逐个处理任务;
- 执行器每处理一个任务,就将处理结果和状态同步给Replanner,Replanner一方面会输出反馈给用户,另一方面会更新任务清单;
- 任务清单再次给到执行器进行执行
其核心是由两个基本的组件组成
-
Planner规划器,用于提示LLM生成完成大型任务的多步计划。
-
Executor执行器,接受用户查询和计划中的一步,并调用1个或多个工具来完成该任务。
Plan-and-Execute特点
-
执行速度上面提升了不少,它能够快速地执行多步工作流程,因为在执行过程中无需在每一个行动后都去咨询大型的 Agent,从而大大减少了不必要的等待时间,使得任务能够高效地推进。
-
在成本控制上表现出色。相较于 ReAct 架构的 Agent,如果在子任务中使用较大的模型做规划,Plan-and-Execute 架构通常可以采用更小的、特定领域的模型,降低执行成本
-
在整体性能上更胜一筹。通过强制规划器明确地“思考”完成整个任务所需的所有步骤,它在任务完成率和质量方面都有了显著的提升。这种全面的规划能力使得它能够更好地应对复杂任务,提高任务成功的概率和结果的质量。
-
适合复杂任务,可使用较小的模型执行步骤。
-
规划阶段依赖 LLM 性能,初始计划可能不完善。
ReAct
全称Reasoning and Acting(也有一说是Reason Act)缩写,意思是LLM可以根据逻辑推理(Reason),构建完整系列行动(Act),从而达成期望目标
一个完整的ReAct的行为,包涵以下几个流程:
1.输入目标:任务的起点。可以是用户的手动输入,也可以是依靠触发器(比如系统故障报警)。
2.LOOP:LLM模型开始分析问题需要的步骤(Thought),按步骤执行Act,根据观察到的信息(Obs),循环执行这个过程。直到判断任务目标达成。
3.Finish:任务最终执行成功,返回最终结果。
特点:
- 边思考边行动,逐一决定下一步,适合简单任务
- LLM只为一个子问题进行规划。这可能导致次优轨迹,因为它不被迫对整个任务进行“推理”
- 缺乏长期规划,可能陷入局部最优或循环。
Function Calling
在大语言模型( LLM)中,函数调用指的是模型在生成文本时,能够根据用户需求自动生成所需调用的特定函数及其相关参数相关的结构化文本内容,从而获取特定数据或执行特定逻辑
整个过程中, 大模型只负责工具的召回,并不会执行工具的调用
具体的工作流如下
AIGC系列之二-"Plan-and-Execute" 一种省钱高效解决复杂任务的Agent架构设计_ITPUB博客