当前位置: 首页 > news >正文

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博客

相关文章:

  • php+mysql网站开发全程实例.pdf汽车seo是什么意思
  • 建设通网站vip北京网站托管
  • 湖北智能网站建设找哪家网络营销工具分析
  • 怎样在一个虚拟服务器里做两个网站seo建站网络公司
  • 可以做很多个网站然后哭推广2022年网络流行语
  • 一个简单的个人网站十大门户网站
  • leetcode-2138.将字符串划分为若干个长度为k的组
  • 数据库系统总结
  • 鸿蒙工具类---设置全屏效果(上下安全区背景可设置)
  • 常用的串口通信工具MobaXterm、Bus Hound、SScom等
  • GNSS位移监测站的应用场景
  • 轻巧灵动,智启未来 ——Kinova Gen3 Lite 机器人轻松解锁各行业自动化新姿势
  • 云原生灰度方案对比:服务网格灰度(Istio ) 与 K8s Ingress 灰度(Nginx Ingress )
  • TCP/UDP协议深度解析(二):TCP连接管理全解,三次握手四次挥手的完整流程
  • SoC仿真环境中自定义printf函数的实现
  • 微算法科技融合Grover算法与统一哈希函数的混合经典-量子算法技术,可在多领域高效提升文本处理效率
  • nt!CcFlushCache函数分析之nt!CcFindBcb
  • 【自己动手写AI Agent】 对于企业构建AI应用的几点思考3
  • C++(智能指针)
  • Redis—持久化
  • 设计模式 | 抽象工厂模式
  • 鸿蒙分布式能力深度解析:构建跨设备无缝体验的技术基石
  • Fisco Bcos学习 - 控制台搭建和基本使用
  • NVads V710 v5 系列虚拟机已发布
  • 【iOS】iOS崩溃总结
  • 我手动从go官网下载了go1.16.15linux安装包,我该如何做,才能使得vscode仍能通过右下角来管理这个go版本