AI Agent:技术原理与未来趋势

在人工智能的快速发展中,AI Agent作为一项创新技术,正逐渐成为研究和应用的热点。AI Agent不仅仅是执行命令的程序,它们能够感知环境、做出决策并采取行动,展现出类似人类的群体协作能力。本文将探讨AI Agent的技术原理、开源框架、以及未来发展趋势。
在这里插入图片描述

AI Agent概述

AI Agent的迅速发展得益于大型语言模型(LLM)的驱动。自从2023年以来,LLM Agent因其在研究、框架和应用方面的迅猛发展而受到广泛关注。Agent的概念源自于能够通过传感器感知环境,并通过执行器对环境做出反应的实体。在工程实现上,AI Agent可以拆分为规划、记忆、工具和行动四大核心模块。

这里是引用

在这里插入图片描述

LLM Agent系统架构

LLM Agent系统架构可以概括为“1+4”模型,即一个大语言模型加上观察、思考、行动和记忆四个功能模块。这种架构使得AI Agent能够进行复杂的任务处理和决策制定。

Multi-Agents协作

Multi-Agents技术允许多个自主的Agent参与协作,模拟人类群体在解决问题时的动态。Agent与环境的接口可以是虚拟的,也可以是与物理世界的直接交互。Agent配置可以是预定义的、模型生成的或数据驱动的。Agent间的通信可以是合作、辩论或竞争,通信结构可以是分层、去中心化、集中化或共享消息池。
在这里插入图片描述

开源框架的技术剖析

开源框架为AI Agent的开发提供了多样化的工具和平台。以下是一些值得关注的开源框架:

斯坦福小镇

斯坦福小镇项目是一个多Agent的Demo Roleplay,展示了Agent如何感知环境并基于“记忆流”做出决策。Agent的记忆分为观察和反思两种类型,包括被动和主动行为,以及由LLM评估打分的重要性、时效性和相关性。
在这里插入图片描述
记忆流分成两个部分
第一种记忆类型Memory Objects:

  • Observation(包括被动和主动行为)
  • lmportance score:LLM评估打分(0-10)
  • Recency score: 时间衰减因子
  • Relevance score:向量检索
    在这里插入图片描述

第二种记忆类型 Reflection:
这是Agent生成的更高层次、更抽象的思想
在这里插入图片描述

AutoGen

AutoGen是微软开发的一个多Agent框架,它允许用户构建自己的复杂工作流。这个框架需要用户自己定制解决复杂问题,例如组成软件公司写代码或组成虚拟小组讨论Idea。
在这里插入图片描述
Autogen 优势与不足总结
优势
微软官方主推开源产品,文档,示例比较完善丰富,相关研究和应用也在不断持续
不足

  • 底层跟GTP模型深度绑定,如果需要使用Bedrock的模型或者本地模型,则需要使用LLMProxy方案(fastchat,litellm,ollama等)
  • 对Claude 系列模型的message api不太友好,需要对接口改动较多。如消息中name参数缺失需要严格按照’userassistant’顺序等
  • 无法对agent输出的message做精细化的控制(类似metagpt那种特定消息的订阅发布机制)导致每次运行消耗token数非常多,实际运行不太稳定,速度也非常慢

LangGraph

LangGraph是一套在langchain框架之上的开发组件,可以轻松开发带有状态的、可控循环流程的LLM应用。它借鉴了NetworkX框架的设计思路,将应用流程定义成一个图,其中节点代表Agent或工具,边代表执行顺序。
在这里插入图片描述

一个应用流程定义成一个图节点(node)可以代表一个agenttool,或者一次function call,亦或者一次大模型调用,甚至是链接一个子图。边(edge),则代表节点的执行顺序(数据流向),并且可以通过设置conditionaledge,来控制流程分支。
在这里插入图片描述

MetaGPT

MetaGPT是国内开源的一个Multi-Agent框架,它构成一个虚拟软件公司,内部包括不同角色的Agent,提供了软件公司全过程的精心调配。
在这里插入图片描述
MetaGPT记忆和通信机制
首先每个agent 维护一个自己的消息队列通过 watch(action),来订阅来自全局环境里某些特定 action 发布的消息,并触发observe,think,action,publish,把消息发给全局环境。全局环境中的消息又接着被其他订阅该action 的 agent 观察到,重复上述流程
在这里插入图片描述
在这里插入图片描述

ChatDev

Chat Dev是一个开源多代理(Agent)编程框架的项目,国内人工智能初创企业面壁智能打造的一个虚拟软件公司,由各种具有不同角色的代理人(Agent)运作,包括首席执行官(首席执行官)、首席采购官(首席产品官)、1首席技术官(首席技术官)、程序员等。查特开发内部的代理通过参与专门的功能研讨会(通过连锁店组合)进行协作,从需求分析,设计、编码、测试和到最终的文档编写,依次完成软件开发各个阶段的任务。
在这里插入图片描述
在这里插入图片描述

Bedrock Agent

Bedrock Agent代表了亚马逊云科技在AI Agent领域的解决方案。它通过用户调用agent、获取对话历史、生成观察或最终回复等步骤,实现了复杂的工作流程。
在这里插入图片描述

Agents工作流

Bedrock Agent的工作流包括用户调用agent、返回控制、Lambda获取对话历史、预处理和后处理等环节。这种工作流允许Agent在调用时需要函数的执行结果,并在循环中直到完成任务或询问用户后续问题。
在这里插入图片描述

Session和Prompt属性

Session和Prompt属性在用户和agent之间的会话期间持续存在,它们可以在Lambda事件中发送,用于个性化agent的行为。
在这里插入图片描述

Bedrock Agent – Orchestration

Bedrock Agent的编排采用了ReAct范式,即推理加动作加外部反馈,以提升回答的准确率。
在这里插入图片描述

总结与展望

AI Agent代表了工作流的革新,它们不再是简单的指令执行者,而是能够进行自我反思、规划和修正的参与者。设计有用的Agent AI应用需要考虑通信机制、记忆机制和工作流设计。

选择合适的Agent开发框架或服务时,需要考虑是否有足够的技术开发人员、是否需要快速上线、对数据和服务安全的看重程度、是否单Agent已经满足效果,以及是否有可参考的SOP或工作流

垂直特定场景落地,具备开放世界的通用性Multi-Agents最大的作用是通过模拟人在生产活动中的群体协助,或者分工,来提高AI解决问题的能力上限,随着各类垂直特定场景的逐步落地(例如 AIGC创作 Agents,数据加工 Agents),未来会出现具备更好开放世界通用性的 AI Agent。

AI Agent技术的发展为人工智能领域带来了新的可能性。从技术原理的深入理解到开源框架的应用实践,再到未来趋势的展望,AI Agent正逐步成为推动智能化进程的重要力量。随着技术的不断成熟和应用场景的不断拓展,我们期待AI Agent能够在更多领域展现出其独特的价值和潜力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用vite官网和vue3官网分别都可以创建vue3项目

问: npm init vitelatest 和 npm create vuelatest创建的vue3项目有什么区别? 回答: npm init vitelatest 和 npm create vuelatest 分别是使用 Vite 和 Vue CLI 工具创建 Vue 项目的两种方式,它们之间有几个主要区别: 1. **构建工具:** …

忍法:声音克隆之术

前言: 最近因为一直在给肚子里面的宝宝做故事胎教,每天(其实是看自己心情抽空讲下故事)都要给宝宝讲故事,心想反正宝宝也看不见我,只听我的声音,干脆偷个懒,克隆自己的声音&#xf…

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程

方法一:PHP_diseval_extension禁用 Linux CentOS 禁用php的eval函数详细图文教程_centos php 禁用 eval-CSDN博客 这个方法make报错,懒得费时间处理,直接用第二种 方法二:suhosin禁用 不支持PHP8,官方只支持PHP7以下…

【电源专题】为什么带电量计芯片的电池MOS保护要放在高侧

在实际的电量计电池开发中,发现一个很奇怪的现象。传统电池保护IC往往都是将充电保护和放电保护的两个MOS管放在低侧的。如下所示是文章:【电源专题】读一读单节锂电池保护IC规格书 可以看到M1和M2两个MOS管是放在PB-(也就是电池的负端),我们叫做低端。 而BQ28Z610电…

目标检测常用涨点方法:注意力机制小结(空间注意力、通道注意力、CBAM等)

1.通道注意力 通道注意力(Channel Attention)是在通道维度上对输入数据进行学习,再对不同的通道分配相应的权重表示重要性,从而达到“分配注意力”的效果。SENet(Squeeze and Excitation networks) 是一个典型的使用通…

Swift宏的实现

上篇介绍了Swift宏的定义与生声明,本篇主要看看是Swift宏的具体实现。结合Swift中Codable协议,封装一个工具让类或者结构体自动实现Codable协议,并且添加一些协议中没有的功能。 关于Codable协议 Codable很好,但是有一些缺陷&…

yaklang window安装 vscode运行得到“hello world”

资源来源:旅程伊始:Yak 语言环境安装与搭建环境 | Yak Program Language 安装yak语言非常简单,管理员权限打开命令行运行以下命令: powershell (new-object System.Net.WebClient).DownloadFile(https://yaklang.oss-cn-beijing…

1085 PAT单位排行(测试点5)

solution 测试点5:总分是在每个学生加权后再取整,所以用来存学生分数的变量要用浮点型学校排序: 若成绩不同,则按成绩降序若成绩相同,人数不同,则按成绩升序若成绩和人数都相同,则按单位名升序…

理解GPT2:无监督学习的多任务语言模型

目录 一、背景与动机 二、卖点与创新 三、几个问题 四、具体是如何做的 1、更多、优质的数据,更大的模型 2、大数据量,大模型使得zero-shot成为可能 3、使用prompt做下游任务 五、一些资料 一、背景与动机 基于 Transformer 解码器的 GPT-1 证明…

NAS教程丨铁威马如何登录 SSH终端?

适用型号: 所有TNAS 型号 如您有特殊操作需要通过 SSH 终端登录 TNAS,请参照以下指引: (注意: 关于以下操作步骤中的"cd /"的指令,其作用是使当前 SSH/Telnet 连接的位置切换到根目录,以免造成对卷的占用.请不要遗漏它.) Windows…

数据分析的线上云端数据库搭建及Excel和Tableau连接

数据分析的线上云端数据库搭建及Excel和Tableau连接 SQL基础知识 线上SQL训练: SQlZOO: https://www.sqlzoo.net/wiki/SQL_Tutorial 牛客网SQL真题:https://www.nowcoder.com/ta/sql select,from,where, order by, limit, group by, having, substr(),…

【SpringBoot】SpringBoot使用mail实现登录邮箱验证

📝个人主页:哈__ 期待您的关注 目录 一、前期准备 1 开启邮箱服务 2 SpringBoot导入依赖 3 创建application.yml配置文件 4 创建数据库文件 5 配置redis服务 二、验证邮件发送功能 三、注册功能实现邮箱验证 1 创建User实体类 2 创建UserPa…

DEBOPIE框架:打造最好的ChatGPT交易机器人

本文介绍了如何利用 DEBOPIE 框架并基于 ChatGPT 创建高效交易机器人,并强调了在使用 AI 辅助交易时需要注意的限制以及操作步骤。原文: Build the Best ChatGPT Trading Bots with my “DEBOPIE” Framework 如今有大量文章介绍如何通过 ChatGPT 帮助决定如何以及在…

仓库管理系统12--供应商设置

1、添加供应商窗体 2、布局控件UI <UserControl x:Class"West.StoreMgr.View.SupplierView"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc"http://…

为什么前端传了token,后端一直获取不到?一直报跨域错误?

这是我的前端代码 这是我的后端拦截器 那就需要了解一下 预检请求 对于非简单请求&#xff08;如PUT、DELETE或包含自定义HTTP头的请求&#xff09;&#xff0c;浏览器会先发送一个OPTIONS请求到目标服务器&#xff0c;询问是否允许该跨域请求。这个过程称为预检请求。 当opt…

【爬虫实战】今日头条-关键词搜索-快速整理出1w条数据

快速整理头条关键词数据工具&#xff0c;学习效率妥妥翻倍&#xff01;&#xff01;&#xff01;本案例源码仅供学习参考&#xff01; 项目功能简介&#xff1a; 1.可视化式配置&#xff1b; 2.任意关键词&#xff1b; 3.自动翻页&#xff1b; 4.支持指定最大翻页页码&…

IP地址网络号:解读其构成与重要性

在数字化时代&#xff0c;IP地址已成为我们网络生活不可或缺的一部分。每个设备在网络中都有一个独特的IP地址&#xff0c;这个地址由网络号和主机号组成&#xff0c;它们共同构成了我们的网络身份。其中&#xff0c;网络号的作用尤为重要&#xff0c;它决定了设备所连接的网络…

【算法专题--栈】用栈实现队列 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双栈 模拟 队列 &#x1f95d;栈 和 队列 的特性 &#x1f34d;具体思路 &#x1f34d;案例图解 四、总结与提炼 五、共勉 一、前言 用栈实现队列 这道题&#xff0c;可以说是--栈专题--&#xff0c;最经典的一道题&…

管理上的一些思考

1 前言 管理可分为自我管理、平级管理、向下管理和向上管理。 顾名思义&#xff0c;自我管理就是对自己工作、生活等各方面的规划和执行&#xff0c;不涉及与其他人互动、配合等。我们设定人生目标、年度计划、月计划等&#xff0c;都可以认为是自我管理。《增广贤文》有段很…

静态时序分析:ideal_clock、propagated_clock以及generated_clock的关系及其延迟计算规则(二)

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 生成时钟 上一节中&#xff0c;我们讨论了理想时钟和传播时钟的创建和使用&#xff0c;本节将讨论生成时钟及其与理想时钟和传播时钟的关系。 图1所示的是一个简…