AI Agent 结构与分类

一、什么是AI agent

        在人工智能中,智能代理AI Agent是以智能方式行事的代理;它感知环境,自主采取行动以实现目标,并可以通过学习或获取知识来提高其性能。人其实就是一种复杂代理。

        为了理解智能代理的结构,我们应该熟悉架构和代理程序。架构是代理执行的机器,它是一种带有传感器和执行器的设备,例如机器人;代理程序是代理功能的实现。代理函数是从感知序列(代理迄今为止感知的所有历史记录)到动作的映射:

Agent = 架构 + Agent 程序

代理通过两种方式与环境交互:

  1. 感知
    感知是一种被动交互,智能体在不改变环境的情况下获取有关环境的信息。机器人的传感器帮助它获取周围环境的信息而不影响周围环境。因此,通过传感器获取知识称为感知。
  2. 行动
    行动是改变环境的主动互动。当机器人用手臂移动障碍物时,随着环境的改变,这被称为动作。机器人的手臂在其动作时被称为“效应器”。

1.1 AI Agent代理结构

生成式人工智能代理感知环境并将它们带到内存流,在那里它们可以存储数据。根据其知识,它获取选定的数据(检索的记忆),这有助于确定它将决定的行动计划。其主要部分包括:

  • 感知:这是指人工智能代理如何接受来自周围环境的数据。感知会影响智能体稍后存储和优先考虑记忆,使其成为第一个但关键的阶段。
  • 内存流:这是代理存储和访问其所有数据的数据库。所有记忆都经过组织,以便以后轻松访问和检索。生成式人工智能代理使用时间戳和简短描述等工具来优雅地识别每个记忆。不只是回忆;框架的这一部分还可能记录生成人工智能代理过去的决策和行为。人工智能代理之所以聪明,是因为它如何对这些记忆进行优先级排序,以相应地检索它们。例如,最近的相关记忆最重要。
  • 检索的内存:一旦内存流中的数据被正确存储,代理现在就会考虑回收操作所需的相关内存。如前所述,检索标准包括以下内容:
    – 数据的最新程度,
    – 数据的相关程度,以及
    – 记忆的重要性。
  • 反思:在分析检索到的记忆后,人工智能代理会产生复杂且超标准的暗示/想法。这些定期生成的结论和分数被存储回内存流中,以便将来访问它们。另一方面,在智能体采取相应行动之前,从检索到的记忆中进行反思也至关重要。
  • 规划:AI智能体根据检索到的记忆决定的行动意义。它们不仅影响当前的行动,而且还存储在内存流中,以在未来的决策中保持平衡。此步骤确保代理根据收集的数据热衷于关注细节。
  • Act/React:Action是agent处理后给出的响应。相反,反应是智能体对环境的看法的一部分。经过规划后,它决定要么感知更多数据,要么根据现有记录做出反应。

2.2人工智能代理的现实例子

人工智能代理的一些现实例子展示了人工智能的多样化应用,包括自然语言处理和机器人技术。通过探索这些示例,您可以更深入地了解人工智能如何改变行业并改善我们的日常生活:

应用

二、AI agent 分类

1. 简单反射代理-Simple reflex agents

简单的反射代理是一个遵循预定义规则做出决策的人工智能系统。它仅对当前情况做出反应,而不考虑过去或未来的影响。

简单的反射代理适用于具有稳定规则和直接操作的环境,因为它的行为纯粹是反应性的,并且对即时环境变化做出响应。

它是如何工作的?

简单的反射代理通过遵循条件动作规则来执行其功能,该规则指定在特定条件下采取什么动作。

例子

为支持自动化客户支持交互而开发的基于规则的系统。如果客户的消息包含指示密码重置的关键字,系统可以自动生成包含重置密码说明的预定义响应。

简单反射剂的优点
  • 易于设计和实现,需要最少的计算资源
  • 实时响应环境变化
  • 在提供输入的传感器准确并且规则设计良好的情况下高度可靠
  • 无需大量培训或复杂的硬件
简单反射代理的局限性

以下是简单反射代理的局限性:

  • 如果输入传感器有故障或规则设计不当,则容易出错
  • 没有记忆或状态,这限制了它们的适用范围
  • 无法处理未明确编程的部分可观察性或环境变化
  • 仅限于一组特定的行动,无法适应新的情况

2. 基于模型的反射代理

基于模型的反射根据当前感知和表示不可观察单词的内部状态来执行操作。它根据两个因素更新其内部状态:

  • 世界如何独立于智能体而演化
  • 特工的行为如何影响世界

谨慎的基于模型的反射代理是基于模型的反射代理的变体,它在执行操作之前也会考虑其操作可能产生的后果。

它是如何工作的?

基于模型的反射代理遵循条件操作规则,该规则指定在给定情况下要采取的适当操作。但与简单的反射代理不同,基于模型的代理还利用其内部状态来评估决策和行动过程中的状况。

基于模型的反射代理分四个阶段运行:

  1. 感知:它通过传感器感知世界的当前状态。
  2. 模型:它根据所看到的内容构建世界的内部模型。
  3. 原因:它使用其世界模型来决定如何根据一组预定义的规则或启发式采取行动。
  4. 行动:代理执行它所选择的行动。
例子

Amazon Bedrock是基于模型的反射代理的最佳示例之一。

Amazon Bedrock 是一项使用基础模型来模拟操作、获取见解并做出明智决策以进行有效规划和优化的服务。

通过依靠各种模型,Bedrock 获得洞察、预测结果并做出明智的决策。它利用真实世界的数据不断完善其模型,使其能够适应和优化其运营。

然后,Amazon Bedrock 针对不同的场景进行规划,并通过模拟和调整模型参数来选择最佳策略。

基于模型的反射代理的优点
  • 基于对世界的理解快速高效地做出决策
  • 通过构建世界的内部模型,更好地做出准确的决策
  • 通过更新内部模型来适应环境的变化
  • 通过使用其内部状态和规则来确定条件,做出更明智的战略选择
基于模型的反射代理的缺点
  • 构建和维护模型的计算成本可能很高
  • 这些模型可能无法很好地捕捉现实世界环境的复杂性
  • 模型无法预测可能出现的所有潜在情况
  • 模型需要经常更新以保持最新状态
  • 模型可能在解释和理解方面提出挑战

3. 基于目标的智能体

基于目标的代理是使用环境中的信息来实现特定目标的人工智能代理。他们使用搜索算法来寻找在给定环境中实现其目标的最有效路径。

这些代理也称为基于规则的代理,因为它们遵循预定义的规则来实现其目标并根据某些条件采取特定操作。

基于目标的代理易于设计并且可以处理复杂的任务。它们可用于机器人、计算机视觉和自然语言处理等各种应用。

与基本模型不同,基于目标的代理可以根据其期望的结果或目标确定决策和采取行动过程的最佳过程。

它是如何工作的?

给定一个计划,基于目标的智能体尝试选择实现目标的最佳策略,然后使用搜索算法和启发式方法找到实现目标的有效路径。

基于目标的Agent的工作模式可以分为五个步骤:

  1. 感知:代理使用传感器或其他输入设备感知其环境,以收集有关周围环境的信息。
  2. 推理:智能体分析收集到的信息并决定实现其目标的最佳行动方案。
  3. 行动:代理采取行动来实现其目标,例如移动或操纵环境中的对象。
  4. 评估:采取行动后,智能体评估其实现目标的进度,并在必要时调整其行动。
  5. 目标完成:一旦智能体实现了目标,它要么停止工作,要么开始致力于新的目标。
例子

我们可以说Google Bard是一个基于目标的代理。毫无疑问,它也是一个学习代理。

作为基于目标的代理,它的目标或目的是为用户查询提供高质量的响应。它选择可能帮助用户找到他们寻求的信息并实现获得准确和有用的响应的预期目标的操作。

基于目标的代理的优点
  • 易于实施和理解
  • 有效实现特定目标
  • 根据目标完成情况轻松评估绩效
  • 它可以与其他人工智能技术相结合来创建更高级的代理
  • 非常适合定义明确的结构化环境
  • 它可用于各种应用,例如机器人、游戏人工智能和自动驾驶汽车。
基于目标的代理的缺点
  • 仅限于特定目标
  • 无法适应不断变化的环境
  • 对于变量太多的复杂任务无效
  • 需要丰富的领域知识来定义目标

4. 基于效用的代理

基于效用的代理是基于效用函数或价值最大化做出决策的人工智能代理。他们选择预期效用最高的行动,该效用衡量结果的好坏。

这有助于他们更加灵活和适应性地处理复杂和不确定的情况。基于实用程序的代理通常用于必须在多个选项之间进行比较和选择的应用程序,例如资源分配、调度和玩游戏。

它是如何工作的?

基于效用的代理旨在选择导致高效用状态的操作。为了实现这一点,它需要对其环境进行建模,该环境可以是简单的也可以是复杂的。

然后,它根据概率分布和效用函数评估每个可能结果的预期效用。

最后,它选择具有最高预期效用的操作,并在每个时间步重复此过程。

例子

Anthropic Claude是一种人工智能工具,其目标是帮助持卡会员最大限度地提高使用卡的奖励和利益,是一种基于实用程序的代理。

因为为了实现其目标,它使用效用函数将代表成功或幸福的数值分配给不同的状态(持卡人面临的情况,例如购物、支付账单、兑换奖励等)。然后比较每个状态下不同行动的结果,并根据其效用值做出权衡决策。

此外,它还使用启发式和人工智能技术来简化和改进决策。

基于实用程序的代理的优点
  • 处理广泛的决策问题
  • 从经验中学习并调整决策策略
  • 为决策提供一致且客观的框架
基于实用程序的代理的缺点
  • 需要准确的环境模型,否则会导致决策错误
  • 计算成本昂贵并且需要大量计算
  • 不考虑道德或伦理因素
  • 人类难以理解和验证

5. 学习代理

AI学习代理是一种软件代理,可以从过去的经验中学习并提高其性能。它最初使用基础知识进行操作,并通过机器学习自动适应。

学习代理包含四个主要组件:

  • 学习元素:它负责根据从环境中获得的经验进行学习和改进。
  • Citric:它根据预定义标准的代理表现向学习元素提供反馈。
  • 表现元素:它根据来自学习元素和批评者的信息选择并执行外部动作。
  • 问题生成器:它建议采取行动,为学习元素创造新的、信息丰富的体验,以提高其性能。

它是如何工作的?

人工智能学习代理遵循观察、学习和基于反馈采取行动的循环。他们与环境互动,从反馈中学习,并修改自己的行为以适应未来的互动。

该循环的工作原理如下:

  • 观察:学习代理通过传感器或其他输入观察其环境。
  • 学习:代理使用算法和统计模型分析数据,从有关其行为和性能的反馈中学习。
  • 行动:根据所学到的知识,代理在其环境中采取行动来决定如何行事。
  • 反馈:代理通过奖励、惩罚或环境线索接收有关其行为和表现的反馈。
  • 适应:利用反馈,代理改变其行为和决策过程,更新其知识并适应其环境。

这个循环随着时间的推移不断重复,使代理能够不断提高其性能并适应不断变化的环境。

例子

学习代理程序的一个很好的例子是由 Significant Gravitas 创建的 AutoGPT。

想象一下您想购买一部智能手机。因此,您提示AutoGPT对排名前十的智能手机进行市场研究,提供有关其优缺点的见解。

一旦完成这项任务,AutoGPT 就会通过探索各种网站和来源来分析排名前十的智能手机的优缺点。它使用子代理程序评估网站的真实性。最后,它生成一份详细的报告,总结调查结果并列出十大智能手机公司的优缺点。

学习代理的优点
  • 代理可以根据人工智能决策将想法转化为行动
  • 学习智能代理可以遵循基本命令(例如语音指令)来执行任务
  • 与执行预定义操作的经典代理不同,学习代理可以随着时间的推移而发展
  • 人工智能代理考虑效用测量,使它们更加现实
学习代理的缺点
  • 容易做出有偏见或不正确的决策
  • 开发和维护成本高
  • 需要大量计算资源
  • 对大量数据的依赖
  • 缺乏类人的直觉和创造力

6. 分层代理

分层代理按层次结构构建,高级代理监督较低级别的代理。但是,级别可能会根据系统的复杂性而有所不同。

分层代理可用于各种应用,例如机器人、制造和运输。他们擅长协调多项任务和子任务并确定优先级。

它是如何工作的?

层级代理的工作方式就像公司组织一样。他们以由不同级别组成的结构化层次结构来组织任务,其中较高级别的代理监督目标并将其分解为更小的任务。

随后,较低级别的代理执行这些任务并提供进度报告。

在复杂系统的情况下,可能存在中间级别的代理来协调较低级别代理与较高级别代理的活动。

例子

UniPi是 Google 推出的一款创新的分层人工智能代理,它利用文本和视频作为通用界面,使其能够在各种环境中学习各种任务。

UniPi 包含生成指令和演示的高级策略和执行任务的低级策略。高层策略适应各种环境和任务,而低层策略通过模仿和强化学习进行学习。

这种分层设置使 UniPi 能够有效地将高级推理和低级执行结合起来。

分层代理的优点
  • 分层代理通过将任务分配给最合适的代理并避免重复工作来提高资源效率。
  • 层级结构通过建立明确的权力和方向来加强沟通。
  • 分层强化学习 (HRL) 通过降低动作复杂性和增强探索来改进代理决策。它采用高级操作来简化问题并促进代理学习。
  • 分层分解具有通过更简洁和可重用地表示整体问题来最小化计算复杂性的优点。
分层代理的缺点
  • 使用层次结构解决问题时会产生复杂性。
  • 固定的层次结构限制了对变化或不确定环境的适应性,阻碍了代理调整或寻找替代方案的能力。
  • 分层代理遵循自上而下的控制流,即使较低级别的任务已准备就绪,这也可能导致瓶颈和延迟。
  • 层次结构可能缺乏跨不同问题域的可重用性,需要为每个域创建新的层次结构,这非常耗时且依赖于专业知识。
  • 由于需要标记的训练数据和仔细的算法设计,训练分层代理具有挑战性。由于涉及的复杂性,应用标准机器学习技术来提高性能变得很困难。

三、AI agent和大模型LLM的关系。

人工智能代理是可以使用LLM和工具来执行各种任务和功能的系统。他们可以通过使用外部信息源、计算和验证来克服语言模型的一些限制。他们还可以计划和执行需要多个步骤或子任务的复杂操作。

参考:

1、Agents in Artificial Intelligence | Understanding How Agents Should Act

2、6 Types of AI Agents: Exploring the Future of Intelligent Machines

3、https://medium.com/springchain-ai/architecture-of-ai-framework-comparing-ai-agent-memory-to-human-brain-5b446ebc99dd

4、https://medium.com/@VAI_LABS/navigating-the-ai-agent-landscape-insights-into-advancements-and-opportunities-75c4e67ffc8e

5、一文读懂:AI Agent究竟是什么?-虎嗅网

6、Intelligent Agents that Astound: Generative AI agents - Markovate 

7、New Era of Collaboration with AI Agents

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++面试宝典第2题:逆序输出整数

题目 写一个方法,将一个整数逆序打印输出到控制台。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如:123的逆序输出为321,8600的逆序输出为68,-609的逆序输出为-906。 解析 这道题本身并没有什么…

17、pytest自动使用fixture

官方实例 # content of test_autouse_fixture.py import pytestpytest.fixture def first_entry():return "a"pytest.fixture def order():return []pytest.fixture(autouseTrue) def append_first(order, first_entry):return order.append(first_entry)def test_s…

04数据平台Flume

Flume 功能 Flume主要作用,就是实时读取服务器本地磁盘数据,将数据写入到 HDFS。 Flume是 Cloudera提供的高可用,高可靠性,分布式的海量日志采集、聚合和传输的系统工具。 Flume 架构 Flume组成架构如下图所示: A…

SSM项目实战-前端-在Index.vue中展示第一页数据

1、util/request.js import axios from "axios";let request axios.create({baseURL: "http://localhost:8080",timeout: 50000 });export default request 2、api/schedule.js import request from "../util/request.js";export let getSchedu…

力扣刷题day1(两数相加,回文数,罗马数转整数)

题目1:1.两数之和 思路1和解析: //1.暴力枚举解法(历遍两次数组,时间复杂度O(N^2),空间复杂度O(1) int* twoSum(int* nums, int numsSize, int target, int* returnSize) {for (int i 0; i &…

【恋上数据结构】二叉堆学习笔记

二叉堆 需求分析 Top K 问题 什么是 Top K 问题? 从海量数据中找出前 K 个数据。 比如:从 100 万个整数中找出最大的 100 个整数Top K 问题的解法之一:可以用数据结构 “堆” 来解决。 堆 堆是一种【完全二叉树】,可以分为【…

SpringBoot自定义异常处理机制

说明:在完整的项目结构中,我们通常会创建一套自定义的异常处理机制,在系统可能出现异常的地方手动抛出这些异常,可以快速定位到异常代码片段,提高系统的可维护性。 本文介绍在SpringBoot项目中,搭建一套自…

2023.12.1 --数据仓库之 拉链表

目录 什么是拉链表 为什么要做拉链表? 没使用拉链表: 使用了拉链表: 题中订单拉链表的形成过程 实现语句 什么是拉链表 拉链表是缓慢渐变维的一种解决方案. 拉链表,记录每条信息的生命周期,一旦一条记录的生命周期结束,就重新开始一条新的记录,并把当前日期放入生效开始…

EI论文复现:基于组合双向拍卖的共享储能机制研究程序代码!

本程序参考EI期刊论文《基于组合双向拍卖的共享储能机制研究》,文中的组合双向拍卖交易机制较为新颖,本质上属于博弈范畴,共享储能是目前的研究热点,牵涉到共享储能参与者的投标策略和收益函数,文中所提模型可为电力市…

【兔子王赠书第10期】零基础入门Python,看这篇就够啦!

文章目录 写在前面推荐图书前言为什么要学习编程如何学习编程本书内容获得帮助 推荐理由粉丝福利写在后面 写在前面 粉丝福利第10期来啦,本期博主给大家推荐一本非常适合零基础入门Python的图书:《Python超能学习手册》,祝大家读完本书后都可…

深入微服务架构 | 微服务与k8s架构解读

微服务项目架构解读 ① 什么是微服务? 微服务是指开发一个单个小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。 微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就是说&…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之linux存储管理(5)》(21)

《Linux操作系统原理分析之linux存储管理(5)》(21) 6 Linux存储管理6.6 Linux 物理空间管理6.6.1 Linux 物理内存空间6.6.2 物理页面的管理6.6.3 空闲页面管理——buddy 算法 6.7 内存的分配与释放6.7.1 物理内存分配的数据结构 6…

运维工具之MobaXterm工具安装和使用

一、MobaXterm工具简介 MobaXterm是远程计算的终极工具箱。在一个Windows应用程序中,它提供了大量的功能,这些功能是为程序员、网站管理员、it管理员以及几乎所有需要以更简单的方式处理远程工作的用户量身定制的。MobaXterm在一个开箱即用的可移植exe文…

ros2与stm32通讯比较优秀的串口库

这个是我确定的串口库:serial: serial::Serial Class Reference (wjwwood.io) 我也不知道其他的串口库了,我就知道几个,然后我觉得这个是3个里面学习周期比较短,然后质量比较可靠的库 我隐隐觉得这个串口库就是ros1选择的串口库…

如何在Linux环境搭建本地SVN服务器并结合cpolar实现公网访问

目录 前言 1. Ubuntu安装SVN服务 2. 修改配置文件 2.1 修改svnserve.conf文件 2.2 修改passwd文件 2.3 修改authz文件 3. 启动svn服务 4. 内网穿透 4.1 安装cpolar内网穿透 4.2 创建隧道映射本地端口 5. 测试公网访问 6. 配置固定公网TCP端口地址 6.1 保留一个固定…

SVN 版本管理

SVN 文件状态 这里有一张图片可以说明:

C#中内置的泛型委托Func与Action

简介 从C# 3.0起很少需要自己声明委托。System.Func 是一个泛型委托,它可以表示带有返回值的方法。它可以接受一个到多个输入参数,并返回一个指定类型的结果。System.Func 委托的最后一个类型参数表示方法的返回值类型。而System.Action系列代表返回voi…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑富氧燃烧技术的电–气–热综合能源系统低碳经济调度》

这个标题涉及到一个关于能源系统和经济调度的复杂主题。让我们逐步解读: 电–气–热综合能源系统: 指的是一个综合的能源系统,包括了电力、气体(可能是天然气等)、热能等多个能源形式。这种系统的设计和优化旨在使不同…

vue+electron问题汇总

1. Vue_Bug Failed to fetch extension, trying 4 more times 描述:项目启动时报错 解决:注释图片中内容 2. Module not found: Error: Can’t resolve ‘fs’ in 描述:项目启动报错 解决:vue.config.js中添加图中数据 3.导入…

8.7 矢量图层点要素点分布(Point displacement)使用

文章目录 前言点分布(Point displacement)QGis代码实现 总结 前言 前面介绍了矢量-点要素-单一符号、矢量-点要素-分类符号、矢量-点要素-分级符号以及矢量-点要素-基于规则的使用本章介绍如何使用点分布(Point displacement)说明…