一文深度了解基于大模型的Agent(一)

1、什么是 Agent

Agent是一种能够在一定程度上模拟人类智能行为的软件实体,它具有感知环境、做出决策和执行动作的能力。Agent可以在预定的规则和目标下自主操作,与用户或其他Agent进行交互,完成特定的任务。

Agent 的火爆起源于一个开源的 AI Agent 实践——AutoGPT的出圈,顾名思义,AutoGPT 就是一个能够基于用户输入的目标需求,自主拆解成多个子目标并自动化运行解决这些问题实现目标需求的“代理机器人”。

2、Agent 的技术原理

2.1 Agent 的架构组成

Agent 架构由如下几个模块组成:

- 分析模块 Profiling Module

- 记忆模块 Memory Module

- 规划模块 Planning Module

- 执行模块 Action Module

这些模块共同构成了基于 LLM 的Agent的基本架构,使Agent能够在各种环境中执行复杂的任务,并以更接近人类的方式进行决策和行动。

图片

四者之间紧密相关,分析模块的目的是识别代理的角色,记忆和规划模块将代理置于动态环境中,使其能够召回过去的的行为并规划未来的动作。动作模块负责将代理的决策转化为具体的输出。在这些模块中,分析模块影响记忆和规划模块,而这三个模块共同影响动作模块。

  • 分析模块(Profiling Module)

Agent通常通过承担特定角色来执行任务,例如编码员、教师和领域专家。分析模块旨在指示Agent角色的特征,这些特征通常被写入提示中以影响大模型的行为。Agent特征通常包括年龄、性别和职业等基本信息,以及反映Agent个性的心理信息和详细说明代理之间关系的社会信息。分析Agent的信息选择在很大程度上取决于具体的应用场景。例如,如果这一 Agent 应用旨在研究人类认知过程,那么心理信息就至关重要。

那么如何为Agent创建指定特征呢,通常,有如下两种策略。

1. 手动输出

手动输出的原理和给LLM提示以指定一个角色同理,可以理解为自己撰写这段角色的Prompt,由此指定 LLM 的角色身份,让它能够基于这一角色领域的内容来回答你的问题,让其参考资料更为精确具体和垂直。如,指定一个身份,eg.政治家、记者、专业一流的程序员、产品经理、战略咨询专家,同时可以更细化的指明他擅长的技能,eg.深喑企业战略咨询知识,能够从第一性原理出发解析用户提出的需求本质指向,由此提出全方位的解决方案建议等等。

2. 借助LLM生成

这一方法适用于多Agent场景,借助 LLM 帮助生成能极大程度的提高效率。当有多个 Agent 需要指定角色信息时,我们可以先从指示个人资料生成规则开始,阐明目标人群中代理个人资料的构成和属性,随后指定一些种子信息,如年龄、性别、个人特质和电影偏好,随后借助 LLM 帮助我们生成多个种子信息差异化的角色,由此进一步拓展生成更多的信息。但这一方法取决于我们指示 LLM 生成的 Prompt 质量和 LLM 本身的能力,鉴于当前 LLM 的幻觉等缺陷,可能无法对生成的内容进行精确控制。

  • 记忆模块(Memory Module)

通常,LLM 是记录用户自然语言沟通状态的,就类似于一个不具备记忆能力的机器人,它无法记住一轮会话中的任何一节内容,只专注于解答你当前输入的问题。要实现记忆能力,需要在模型之外建立一个记录信息的记忆系统,当前各大模型都在使用的向量数据库等技术就是一类记忆系统。

记忆模块**让 Agent 能够存储从环境中感知到的信息,并利用记录的记忆来促进未来的行动。**以此可以帮助 Agent 积累经验,自我进化,并以更加一致、合理和有效的方式行事。

记忆模块的结构通常受到人类记忆过程的启发,包括短期记忆和长期记忆。短期记忆类似于受限于Transformer架构上下文窗口的输入信息,而长期记忆类似于外部向量存储,Agent可以快速查询和检索。常用的实现LLM 记忆的方法和技术包含嵌入向量、数据库、结构化列表和外部存储。

记忆通常分有如下几种类型:

- 短期记忆:

类似于受限于Transformer架构上下文窗口的输入信息

- 长期记忆:

类似于外部向量存储,借助外部的存储技术来赋予 LLM 、Agent 记忆能力,通常记忆模式包含如下几种:

1. 情景记忆:

即发生什么事(What)、在什么地方(Where)、在什么时间(When)类型的信息。

2. 事件记忆:

即对用户与 Agent 或 Agent 与 Agent 之间的过去多轮对话、决策的记忆,记忆沟通过的会话内容,以及不同事件下产生的决策。

3. 语义记忆:

即对事实、事件、思想和概念的了解,涵盖范围也很广,包括历史和科学事实的信息、词语的含义,甚至是复杂的句子,如数学公式等。对于这一部分的实现,通常借助外部向量数据库技术来实现,将自然语言、其他多模态信息向量化、存储,再通过检索的形式实现长期记忆能力。原理和我们自己构建及翻阅知识库或知识图谱是一样的。

4. 程序记忆:

程序记忆对标到人类大脑的记忆原理,可以理解为是我们发展长期技能的基础,如说话、走路、骑自行车或演奏乐器等。而在 Agent 场景下,程序记忆即我们指定的工作流,他们会长期在我们定义的可控的工作流下去执行动作。

  • 规划模块(Planning Module)

当面临一项复杂的任务时,人类倾向于将其分解为更简单的子任务并逐个解决。 规划模块旨在赋予Agent这种人类能力,这有望使Agent表现得更加合理、强大和可靠。

规划模块可以根据Agent是否能接收反馈来分类,通常分为没有反馈的规划和具有反馈的规划。没有反馈的规划通常涉及单路径推理或多路径推理,这些策略不依赖于执行动作后的反馈。具有反馈的规划则更为复杂,需要考虑如何根据环境、人类或模型的反馈来调整Agent的行为。这可能涉及到使用外部规划器或设计能够根据反馈进行自我调整的内部机制。

1. 没有反馈的规划:

- 单路径推理(Single-path Reasoning):

在这种策略中,Agent将任务分解为一系列连续的步骤,并按照这些步骤顺序执行,每一步都直接导向下一步,形成一个线性的路径。这种方法类似于人类的“连锁思维”,代理通过预先设定的步骤来解决问题,而不依赖于外部反馈。例如,一个Agent可能被编程为按照特定的步骤来解决一个数学问题,而不需要在执行过程中进行调整。

- 多路径推理(Multi-path Reasoning):

与单路径推理不同,多路径推理允许Agent探索多个可能的行动路径。在这种策略中,每个决策点都可能产生多个分支,Agent需要评估每个分支的潜在结果,并选择最佳的行动方案。这种方法更接近于人类的决策过程,因为它允许代理考虑多种可能性并做出更灵活的选择。

2. 具有反馈的规划:

- 在有反馈规划中,Agent在执行动作后会接收来自环境、人类用户或其他模型的反馈。这种反馈可以是正面的(如完成任务的信号)或负面的(如执行错误或失败的提示)。

- 根据收到的反馈,Agent需要能够调整其后续的行动计划。这可能涉及到重新评估当前的策略、生成新的行动方案或修改已有的计划以适应新的情况。

- 有反馈规划通常需要更复杂的机制,如外部规划器(External Planner)或内部反馈循环(Internal Feedback Loops)。外部规划器可以是一个独立的系统,Agent可以通过它来获取关于如何更好地完成任务的建议。内部反馈循环则允许代理根据自我评估或历史经验来优化其行为。

- 例如,一个Agent可能在执行任务时遇到障碍,通过接收反馈(如环境变化或用户指导),它可以学习如何克服这些障碍,并在未来的任务中避免类似的问题。

图片

  • 执行模块(Action Module)

执行模块负责将Agent的决策转化为具体的输出/行动,以实现最初的需求/目标。 这个模块直接与环境互动,并受到分析、记忆和规划模块的影响。执行模块可以从行动目标、行动产生、行动空间和行动影响等角度来深入了解。

- 行动目标:

是指代理执行行动的预期结果或目的。这些目标可以是完成任务、与他人沟通、探索环境等。

Agent 可以执行具有各种目标的动作。通常有如下几种目标:

(1) 完成任务

在这种情况下,Agent 的动作旨在完成特定任务,例如在 Minecraft 中建造一座房子或完成软件开发中的一个功能 。这些动作通常有明确的目标,并且每个动作都有助于完成最终任务。

(2) 交流

在这种情况下,采取动作是为了与其他 Agent 或人类交流,以共享信息或进行协作。例如,ChatDev中的 Agent 可能相互交流以共同完成软件开发任务。在 Inner Monologue 中,Agent 积极与人类进行交流,并根据人类的反馈调整其动作策略。

(3) 环境探索

在这个目标场景下,Agent 旨在探索不熟悉的环境,以扩展其感知并在探索和利用之间取得平衡。例如,Voyager 中的agent可能会在任务完成过程中探索未知技能,并根据通过试错获得的环境反馈不断完善技能执行代码。

- 行动生成:

是指代理如何根据当前的状态和计划来产生具体的行动。通常可以通过对记忆的回溯或遵循预设的计划来行动以实现目标。

- 行动空间:

指 Agent的所有可能可以执行的动作。

行动可以是使用外部工具(如调用 API、访问数据库、使用外部模型等),也可以是利用代理内部的知识(如规划能力、对话能力、常识理解能力等)。

行动空间的大小和复杂性取决于代理的设计和应用场景。

- 行动影响:

是指代理行动对环境或自身状态所产生的结果。

可能会改变环境(如移动物体位置、构建结构等)

可能改变内部状态(如更新记忆、形成新计划、获取新知识等)

可能触发新的动作,以形成连锁反应

2.2 强化Agent能力的工程方法

在此之前,我们可以先了解一下在不同时代背景下,实现模型能力策略的演变过程。

图片

这张“策略演变分析图”展示了机器学习、大语言模型和 Agent这三个时代的模型能力实现策略的演变,以及它们之间的关系和区别。这个演变过程反映了人工智能领域的发展,从最初的机器学习方法,到大型预训练语言模型的使用,再到构建具有复杂交互能力的自主代理(agent)。

1. The era of machine learning(机器学习时期):

在机器学习时期,模型的能力主要是通过参数学习(Parameter Learning)来获得的。这意味着通过训练数据集来调整模型的参数,使模型能够对输入数据做出准确的预测或决策。

2. The era of large language model(大语言模型时期):

在大语言模型时期,随着大型语言模型(LLMs)的出现,模型能力的获取不仅仅局限于参数学习,还包括了提示工程(Prompt Engineering)。提示工程是指通过精心设计的提示(prompts)来引导模型产生特定的输出或行为。这种方法利用了LLMs强大的语言理解和生成能力。

3. The era of agent(Agent 时期):

在LLM based-Agent时期,除了继续使用参数学习和提示工程之外,还引入了机制工程(Mechanism Engineering)。机制工程是指通过开发专门的模块、引入新的工作规则和其他策略来增强Agent的能力。这可能包括设计使Agent能够自我进化、通过试错学习、或者与其他Agent协作的机制。

那么,机制工程是如何增强 Agent 的能力的呢?

机制工程(Mechanism Engineering)是指在构建自主代理时,通过开发和集成特定的机制和模块来增强代理的能力。这些机制可以使代理更好地适应环境、学习新技能、解决问题,并与人类或其他代理进行有效交互。

机制工程本质上类似于人类“向内求”和“向外求”的机理,通常有以下几种机制:

1. 试错学习(Trial-and-Error Learning):

Agent通过尝试不同的行动并观察结果来学习。如果行动失败,Agent会接收到批评(critic)的反馈,并根据这些反馈调整其策略。这种方法允许Agent从经验中学习并逐渐改进其行为。

2. 众包(Crowdsourcing):

通过收集和整合多个Agent或人类用户的输入和意见来增强Agent的能力。这种方法可以提高Agent的决策质量和创造力,因为它利用了群体的智慧。

3. 经验积累(Experience Accumulation):

Agent在与环境的交互过程中积累经验,并将这些经验存储在记忆中。当遇到类似的情境时,Agent可以利用这些经验来指导未来的行动,从而提高效率和效果。

4. 自我驱动的演化(Self-driven Evolution):

Agent能够自主设定目标,并通过探索环境和接收反馈来自我改进。这种机制使Agent能够根据个人喜好和目标来发展能力,并适应不断变化的环境。

5. 多代理系统(Multi-agent Systems):

在多Agent系统中,Agent可以通过合作、竞争或沟通来共同完成任务。这种机制可以提高问题解决的效率,并允许Agent通过社交互动来学习和适应。

6. 模块化设计(Modular Design):

Agent的能力通过设计成可插拔的模块来增强。这些模块可以是预先定义好的功能组件,Agent可以根据需要添加、移除或更新模块,以适应不同的任务和环境。

7. 交互式学习(Interactive Learning):

Agent通过与人类用户的交互来学习和改进。用户可以提供指导、反馈或示范,Agent通过观察和模仿来获得新技能。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

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

相关文章

Web应用安全测试-业务功能滥用(一)

Web应用安全测试-业务功能滥用(一) 1、短信定向转发 漏洞描述:短信接收人可任意指定 测试方法:拦截发送短信的请求,将手机号改为测试人员的手机号,测试是否可接收短信验证码。 风险分析:攻击…

rsa加签验签C#和js以及java互通

js实现rsa加签验签 https://github.com/kjur/jsrsasign 11.1.0版本 解压选择需要的版本&#xff0c;这里选择all版本了 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>JS RSA加签验签</title&g…

软件安全测评有哪些测试流程?第三方检测机构进行安全测评的好处

在今天的高科技时代&#xff0c;软件产品已经成为人们生活和工作的重要组成部分。然而&#xff0c;与其普及和深入应用的&#xff0c;软件安全问题也日益凸显。 为了保障软件产品在使用过程中的安全性&#xff0c;进行安全测评是必不可少的。安全测评可以全面评估软件系统的安…

框架学习之spring学习笔记(一)

一、框架前言 1-什么是spring框架&#xff0c;有哪些主要模块&#xff1f; Spring 框架是一个专门针对于 Java 应用程序开发&#xff0c;并提供了综合、广泛的基础性支持的轻量级框架。Spring框架使用目的是为了提高开发人员的开发效率以及系统的可维护性。 Spring 是以IoC和A…

linux的UDP广播测试:C语言代码

测试代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h>#…

解决:安装MySQL 5.7 的时候报错:unknown variable ‘mysqlx_port=0.0‘

目录 1. 背景2. 解决步骤 1. 背景 吐槽1&#xff0c;没被收购之前可以随便下载&#xff0c;现在下载要注册登录吐槽2&#xff0c;5.7安装到初始化数据库的时候就会报错&#xff0c;而8.x的可以一镜到底&#xff0c;一开始以为是国区的特色问题&#xff0c;google了一圈&#x…

重学java 70.IO流 Commons-io工具包

所有人都不看好你&#xff0c;可你偏偏最争气 —— 24.6.14 一、介绍 IO技术开发中&#xff0c;代码量很大&#xff0c;而且代码的重复率较高。如果我们要遍历目录&#xff0c;拷贝自录就需要使用方法的递归调用&#xff0c;也增大了程序的复杂度。 二、添加第三方jar包 1.ja…

Windows MySQL_8.4.0 Navicat报错代码1251不支持认证协议解决方案

Windows MySQL_8.4.0 Navicat报错代码1251不支持认证协议解决方案 前言&#xff1a; Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 的理想解决方案。它是一套单一的应用程序&#xff0c;能同时连接 MySQL 和 MariaDB 数据库&#xff0c;并与 OceanBase 数据库及 Amazon RD…

旅游网站(携程旅行网页学习 vue3+element)

旅游网站 1. 创建项目 在你要创建项目的路径下打开vscode&#xff0c;新建终端&#xff0c;然后输入vue ui,进入Vue项目管理器。选择“创建”&#xff0c;确定项目路径&#xff0c;并点击“在此创建新项目”。在项目文件夹中输入项目名称&#xff0c;点击下一步&#xff1b;选…

经纬恒润助力微宏动力荣获ISO/SAE 21434网络安全流程认证证书

近日&#xff0c;经纬恒润与微宏动力合作的网络安全开发及认证项目顺利完成了阶段性里程碑。作为一家全球化的新能源及储电技术产品及解决方案供应商&#xff0c;微宏动力成功获得了由国际独立第三方检测、检验和认证机构UL Solutions授予的ISO/SAE 21434网络安全流程认证证书。…

社区团购系统搭建部署 :便捷高效,连接消费者与商家新篇章

一、前言 随着科技的快速发展和互联网的普及&#xff0c;社区团购系统作为一种新型的购物模式&#xff0c;正以其便捷高效的特性&#xff0c;逐渐改变着消费者和商家的互动方式。社区团购系统为商家提供丰富的营销活动和便捷高效的门店管理体系&#xff0c;为消费者提供真正实惠…

分享:2024年怎么做选品师项目才能赚钱?

在2024年&#xff0c;成为一名成功的选品师并赚钱&#xff0c;需要明确的策略和行动步骤。选品师作为电商行业中的关键角色&#xff0c;负责选择和管理产品库存&#xff0c;直接影响到销售和利润。以下是一些关键步骤&#xff0c;帮助您在这个领域取得成功。 1. 熟悉市场趋势和…

18、24年--信息系统工程——系统集成

1、集成基础 系统集成的工作再信息系统项目建设中非常重要,它通过硬件平台、网络通信平台、数据库平台、工具平台、应用软件平台将各类资源有机、高效地集成到一起,形成一个完整的工作台面。系统集成工作的好坏对系统开发、维护有极大的影响。因此,在技术上需要遵循的基本原…

labelme安装(通过anaconda)

1.下载安装anaconda 2.安装完成后打开&#xff0c;在环境页里面创建环境 选择3.6.13版本&#xff0c;然后运行 3.安装labelme pip install labelme -i https://pypi.tuna.tsinghua.edu.cn/simple 使用上面命令加速一下 4.labelme打开并标注 总结&#xff1a;现在版本越来越多…

WordPress如何删除内存中的缓存?

今天boke112百科将某篇文章修改分类和内容更新后&#xff0c;发现文章底部的相关文章显示的内容跟文章分类、标签毫无关系&#xff0c;还是显示原来的旧内容。后来查看YIA主题相关文章的代码&#xff0c;才发现相关文章的数据保存到内存中的&#xff0c;而且是永不过期&#xf…

SAP BW:传输转换源系统-源系统映射关系

最近有朋友再问问我源系统映射关系怎么配置&#xff0c;想着写一个怕以后忘了。 简单说下这个是干嘛的&#xff0c;其实就是配置一个源系统到目标系统的一个映射&#xff0c;这样传输的时候才知道传过来的数据源要变成目标系统的数据源。 比如下图&#xff0c;在开发环境&…

视频去水印用哪个软件

在数字化时代的浪潮中&#xff0c;视频内容已成为我们生活中不可或缺的一部分。然而&#xff0c;随着视频的广泛传播&#xff0c;水印问题也逐渐浮出水面。水印影响了视频的美观度&#xff0c;本文将为您详细介绍视频去水印的常用方法&#xff0c;帮助您轻松解决水印问题。 搜索…

pytest中失败用例重跑

pip install pytest-rerunfailures 下载rerunfailures插件包 配置文件中加入命令 --reruns 次数 也可在命令行中pytest --rerun-failures2 可以在allure报告中看到重试效果

利用穿戴甲虚拟试戴技术提高销量和参与度

在不断变化的美容行业&#xff0c;保持领先意味着拥抱创新技术。其中一项改变游戏规则的技术是人工智能驱动的虚拟指甲试戴。在穿戴甲领域&#xff0c;不断兴起的虚拟试戴技术对促进销售和参与度产生了重大影响。 视觉吸引力的力量 要了解虚拟试戴的重要性&#xff0c;必须了解…

【2024重启篇】ESP32的乱搞系列

按视频教程看自己能不能做成功&#xff08;问题多多博客&#xff09; 现在时间2024.6.13日 手头上有2022年到手的&#xff1a; ESP32-S&#xff08;双核&#xff09;的ESP32-CAM摄像头SD卡板1块&#xff08;还有一块收藏了&#xff09;。 ESP8266&#xff08;是单核&#xff0…