如何利用 Agent 构建AI服务

news2025/1/12 7:51:17


近年来,人工智能(AI)技术的飞速发展引起了广泛的关注和讨论。而如今,我们正站在一个全新的时代门槛前,面对着AI Agent带来的的崭新未来。以LLM(大型语言模型)作为其核心控制器构建代理是一个很酷的概念。它模拟人类的工作流程,能够自主进行信息搜索、分析、利用,以完成目标。

OpenAI 联合创始人Andrej Karpathy 在Twitter上用比喻描述了AI Agent的过程:每一次GPT的调用就像一次思考。通过将他们串联起来,就可以创建出可以感知、思考和行动的Agent 系统。

目前已经存在不少AI Agent系统的案例,例如AutoGPT、BabyAGI、Camel、Jarvis、AgentGPT等。

AI Agent 系统是如何工作的?


AI Agent 系统如此强大,那么他到底是如何工作的呢?

在AI Agent系统中,LLM引擎充当其大脑,为其提供了强大的处理能力和智能思维。除此之外,还辅以几个关键组件:

  • 任务规划:为 AI Agent 系统提供任务分解 (task decomposition) 和自我反思 (self reflection) 的能力。
  • 记忆:为 AI Agent 系统提供长时间保存和回忆额外信息的能力。
  • 工具使用:让 AI Agent 可以对外部做出动作,真实地影响现实世界。

任务规划

AI 机器人(AI-BOT)在任务分解阶段,通常是使用思维链(CoT, Chain of Thoughts) 和思维树(ToT, Tree of Thoughts) 等技术。

CoT通过 “think step by step” (分步思考),将复杂任务逐步分解为更小、更简单的步骤。它将大任务拆分为多个可以实现的小任务,并阐明了LLM思考推理的过程。

ToT则尝试同时考虑多个潜在的可行计划。它在每一步尝试探索更多可能性,首先将问题分解为多个思考步骤,并在每个步骤中生成多个思考,从而创建一个思维树。

而在自我反思阶段,AI Agent 回顾过去的行动和决策,并纠正以前的错误来迭代改进自身。自我反思目前常用的技术有ReAct、Reflextion、Chain of Hindsight 等。

ReAct通过追踪LLM的推理过程来让模型优化、跟踪和更新行动计划,并能处理异常情况。

Reflextion则比ReAct更进一步,在ReAct的流程中加入推理评估来尝试改进推理结果。

Chain of Hindsight则是通过大量的反馈结果中学习并优化推理结果。

记忆

人脑的记忆分为三种:感官记忆、短期记忆和长期记忆。

感官记忆是人的视觉、听觉、触觉等反馈而来的记忆,通常只有数秒;短期记忆是人当前正在执行的认知任务的相关记忆,通常会持续数十秒;长期记忆则是人过往的经历和回忆,通常会长达数十年,我们的大脑会在需要时自动从长期记忆中提取出对应的记忆来使用。

AI Agent也模拟了人脑记忆的使用过程,对于较短的感官记忆和短期记忆,AI Agent 可以直接将其放入上下文中;而对于长期记忆,AI Agent 将其存储在外部,需要时再根据需要提取出相关的记忆来使用。

我们现在通常使用向量数据库来存储、搜索外部记忆,它使用最大内积搜索(MIPS)的技术来对记忆进行相关性搜索,目前常用的MIPS 的算法有LSH、ANNOY、HNSW、FAISS、ScaNN等。

工具使用

工具的使用也是很重要的环节,任务规划、反思和记忆只是让AI Agent有了思考的能力,但是他还需要能使用工具才能做出具体的行动。给AI Agent装配上工具,相当于给予了他手足,让他能够通过利用各种工具和资源来完成任务。

目前的ChatGPT Plugins 和OpenAI API function calling 都是LLM使用工具的非常好的实践案例。除此之外,还有MRKL、TALM、Toolformer、HuggingGPT和API Bank等使用工具的方法。

AI Agent 的经典案例: Auto GPT


AutoGPT 是一个实验性的开源AI Agent程序,它利用GPT-4来自主管理任务,例如创建网站、撰写文章、生成Logo或推广产品等。它可以访问互联网,并收集、分析各种信息,从网络中学习并完成任务。

AutoGPT的惊人之处在于它的自治性。他是完全独立运作的,不需要使用者的额外干预。他还拥有长期和短期记忆系统,这让他能记住过往做过的事情,从经验中学习,并根据过去的行动自行优化决策,这让它可以随着时间不断自我改进。

AI Agent 尚未解决的问题


AI Agent 的发展和应用在许多领域中都呈现出了巨大的潜力和前景。然而,就像任何其他技术一样,AI Agent 也有一些限制:

  • 有限的上下文长度:受限的上下文容量限制了AI Agent系统的效果,尤其是任务规划和自我反思这样的机制。虽然向量存储和检索可以提供对外部信息的访问,但它们的表示能力不如完全关注那么强大。

  • 长期规划和任务分解的挑战:虽然AI Agent在解决特定任务方面可能非常出色,但与人类相比,在长期规划和任务分解方面仍存在显著的差距。

  • 自然语言接口的可靠性:当前的AI Agent系统依赖自然语言作为LLM与外部组件的接口。然而,大语言模型的输出并不是完全可靠的,因为他偶尔可能会出现格式错误,或表现出叛逆行为。

当然,随着AI技术的飞速演进,我们相信,这些限制都会在不久的将来得到解决。

如何实现AI Agent


尽管当前技术发展阶段下AI Agent尚未足够成熟,不足以将任务完全托管,但我们依然能够通过一些有效的方式,在GPTBots(https://gptbots.ai/developer/)平台上,以更加务实和合理的中间方案,实现Agent能力。

Flow BOT —— 可视化地规划任务流程

任务规划是AI Agent的关键组件之一。GPTBots(https://gptbots.ai/developer/)平台则提供以可视化组件搭建任务流程创建AI-BOT的能力——Flow BOT。平台已将常见的、通用的AI-BOT开发模块抽象为了多个组件。开发者可以在界面上,通过简单的托拉拽方式,根据自身业务需求,将不同组件进行”规划“,拼接为一个“任务”,并定义为一个AI-BOT,以解决特定的问题。

Flow BOT不仅拥有灵活的任务流配置能力,在不同的开发模块内也提供了众多的可配置项,例如输入、输出、插件、知识库、条件判断等,可以帮助开发者灵活地应对各种业务场景。

插件 —— 让AI-BOT执行任意任务

AI Agent需要有工具才能执行各类任务,而GPTBots(https://gptbots.ai/developer/)平台提供的插件(Plugin)就是这么一款工具。

GPTBots平台官方提供了涵盖学术、商业、生活和工作等诸多领域的公共插件,供开发者加入AI-BOT内进行调用,让AI-BOT拥有了与外界沟通的能力,并执行对应任务。

同时,GPTBots平台也为开发者提供了“插件开发”能力,让开发者能够根据自身的要求开发插件,并接入AI-BOT调用,以满足自己的业务场景需求。

长短记忆 —— 用更充沛的信息来做决策

记忆设置是GPTBots(https://gptbots.ai/developer/)平台提供的另一项有利于实现Agent能力的功能。开发者可以通过对AI-BOT进行长记忆和短记忆的设置,来对AI-BOT的问题处理能力进行拓展。

在解决规模较大,信息量较多的问题时,长记忆的能力显得尤为关键。而在处理一般问题时,短记忆便已足够。在解决单轮问答问题时,甚至可以用不着长短记忆能力。

这也使得该功能拥有了另外一层价值:开发者能够应根据自身的需求,理性地定义AI-BOT的记忆设置,因为因为更长的记忆,就意味着更多的成本消耗。长短记忆功能,为开发者控制AI-BOT成本,提供了一种方向。

AI Agent 的未来


AI Agent强大的能力,将让他成为我们未来无处不在的助手,为我们的生活和工作提供协助和支持。无论是在家庭生活中,帮助我们管理日常事务和家务,还是在工作场所中,协助我们处理数据和决策,AI Agent 都将发挥重要作用。

在家庭生活中,AI Agent可以成为一个智能家居管家,通过学习我们的喜好和习惯,自动调节室温、照明和音乐,提供个性化的生活体验。它们还可以帮助我们管理购物清单、日程安排和提醒事项,让我们的生活更加便捷高效。

在工作场所中,AI Agent成为我们的智能助手和数据分析师。它们可以快速处理大量的数据,提供准确的分析和预测,帮助我们做出更明智的决策。AI Agent 还可以自动化繁琐的任务,提高工作效率,并减轻人们的工作压力。

当然,作为一种新兴技术,AI Agent 也面临着一些挑战和风险。我们需要确保AI Agent助手的安全性和可靠性,避免出现意外事故和不良后果。同时,我们也需要制定相关的法规和行业规范,明确责任和监管机制,以保障AI  Agent的合理使用和发展。

目前的AI Agent还在初始阶段,或许尚不完善,但如果这个方向保持和生成式AI相同的发展速度,那么我们可能很快就能看到商业化的AI Agent助手出现在我们身边。这一天也许很快就会到来。

极光GPTBots已上线,访问https://www.gptbots.ai立即注册体验!

注册即赠送积分赠送。参与企业认证或邀请好友注册,也能获取更多积分~




关于极光

极光(Aurora Mobile,纳斯达克股票代码:JG)成立于2011年,是中国领先的客户互动和营销科技服务商。成立之初,极光专注于为企业提供稳定高效的消息推送服务,凭借先发优势,已经成长为市场份额遥遥领先的移动消息推送服务商。随着企业对客户触达和营销增长需求的不断加强,极光前瞻性地推出了消息云和营销云等解决方案,帮助企业实现多渠道的客户触达和互动需求,以及人工智能和大数据驱动的营销科技应用,助力企业数字化转型。

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

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

相关文章

ubuntu系统安装qemu虚拟机

安装命令 sudo apt install qemu qemu-kvm virt-manager bridge-utils -y 安装过程 安装完成之后需要重新启动操作系统 软件使用 拷贝系统镜像进行安装即可,跟vmware 和virbox也都类似

Springboot启动之后自动跳转浏览器

2023-08-29 20:47:32.680 INFO 23700 --- [ main] com.liu.ReggieApplication : 项目启动成功。。。当项目启动成功后,不会自动弹出浏览器到默认页面 学要写个配置类 首先创建一个资源配置 url.properties openProject.isOpentrue openP…

办公网络上网行为管理规划

办公网络上网行为管理规划是确保办公网络资源的合理利用和保障网络安全的重要措施。下面是办公网络上网行为管理规划的一般性步骤和原则: 确立政策和准则: 制定明确的上网行为管理政策和准则,明确员工在办公网络上的合规要求和行为规范。 包…

ADS 错误 1808可能原因 ADSError 1808

​ 调试问题记录: 背景: Ads调试时遇到错误,返回码是 1808,查询倍福官网 得出1808错误原因是 symbol not found 原因: ADSError: symbol not found (1808). Possible incorrect runtime port selected 可能是ads的地…

【STM32】学习笔记-江科大

【STM32】学习笔记-江科大 1、STM32F103C8T6的GPIO口输出 2、GPIO口输出 GPIO(General Purpose Input Output)通用输入输出口可配置为8种输入输出模式引脚电平:0V~3.3V,部分引脚可容忍5V输出模式下可控制端口输出高低电平&#…

BI系统框架模型与指标库参考

主数据 :组织|岗位|人员|大区|三大主数据(客户、物料、供应商)财务主数据(科目|成本中心|利润中心|资产)|工作中心|工艺路线 业务数据 :线索|业务机会|合同|订单|采购|生产|发货|物流|财务&#xff0…

如何从任何打印机扫描到你的计算机

即使在这个几乎所有东西都是在线和虚拟的时代,你仍然会得到一些实物文档。保存这些文档的最佳方法是扫描它们并将其保存在硬盘、云存储或NAS上。 为此,你需要一台多功能或一体式打印机。然而,这些设备的设置和使用可能会令人困惑。它们通常需…

ARM处理器核心概述

一、基于ARM处理器的嵌入式系统 ARM核深度嵌入SOC中,通过JTAG口进行外部调试。计通常既有外部内存又有内部内存,从而支持不通的内存宽度、速度和大小。一般会包含一个中断控制器。可能包含一些Primece外设,需要从ARM公司取得授权。总线使用A…

工厂人员作业现场异常违规行为识别

工厂人员作业现场异常违规行为识别运用yolov7网络模型框架的图像识别技术,工厂人员作业现场异常违规行为识别工厂人员的行为是否合规SOP流程操作规范,帮助作业人员及时发现并纠正违规行为,确保作业过程的安全和合规性。Yolo意思是You Only Lo…

【已解决】Java 后端使用数组流 Array.stream() 将数组格式的 Cookie 转换成字符串格式

🎉工作中遇到这样一个场景:远程调用某个接口,该接口需要用户的 Cookie 信息进行权限认证,认证通过之后才可以打通并返回数据。 在后端拿到 httpServletRequest 后,调用 getCookies() 方法,返回的是一个 Coo…

10.物联网LWIP之TCP状态转变

一。TCP状态机 1.青粗线:理想TCP状态转变(服务器视角下) 2.虚线:被动TCP状态转变(服务器视角下) 3.细实线:不经常出现的TCP状态转变(类似于边界处理) 1.青粗线解释--》服…

基于 OV2640 的图像采集显示系统(camera_init 摄像头初始化模块)

此部分可参考IIC系列文章: (1)I2C 接口控制器理论讲解 (2)I2C接口控制设计与实现 (3)I2C连续读写实现 文章目录 前言一、OV2640 摄像头初始化模块设计思路二、OV2640 摄像头初始化模块用法介绍三、复位时序设计四、数据写入操作五、数据查找表六、完整代码展示六、仿真代码展示…

VIT 和Swin Transformer

VIT:https://blog.csdn.net/qq_37541097/article/details/118242600 Swin Transform:https://blog.csdn.net/qq_37541097/article/details/121119988 一、VIT 模型由三个模块组成: Linear Projection of Flattened Patches(Embedding层) Tran…

中文情感分类

本文通过ChnSentiCorp数据集介绍了文本分类任务过程,主要使用预训练语言模型bert-base-chinese直接在测试集上进行测试,也简要介绍了模型训练流程,不过最后没有保存训练好的模型。 一.任务和数据集介绍 1.任务 中文情感分类本质还是一个文本…

会员管理系统实战开发教程05-会员开卡

上一篇我们讲解了如何点击按钮弹出层,已经罗列了会员管理的一些常见功能。本篇我们介绍一下会员开卡的业务。 1 创建变量 我们会员开卡的业务的话,也是要在本页面弹出,弹出其实只是让组件是否显示和隐藏,我们先定义一个布尔值类…

柠檬水找零【贪心算法-】

柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零&…

读书笔记-《ON JAVA 中文版》-摘要23[第二十章 泛型-2]

文章目录 第二十章 泛型5. 泛型擦除5.1 泛型擦除5.2 迁移兼容性5.3 擦除的问题5.4 边界处的动作 6. 补偿擦除7. 边界8. 通配符8.1 通配符8.2 逆变 9. 问题10. 动态类型安全11. 泛型异常 第二十章 泛型 普通的类和方法只能使用特定的类型:基本数据类型或类类型。如果…

驱动代码验证

要求 代码 #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h>int main(int argc,const char * a…

移动端h5项目的兼容和适配问题

解决兼容性问题的关键在于对移动端产品的生存环境进行梳理&#xff0c;在此基础之上制定应对策略。 所谓生存环境主要分为三个维度&#xff1a; 硬件环境&#xff0c;细分为品牌和机型&#xff0c;决定了屏幕大小、性能等硬件限制 操作系统&#xff0c;比如iOS6和iOS7&#xf…

Redis数据类型(list\set\zset)

"maybe its why" List类型 列表类型是⽤来存储多个有序的字符串&#xff0c;列表中的每个字符串称为元素&#xff08;element&#xff09;&#xff0c;⼀个列表最多可以存储个2^32 - 1个元素。在Redis中&#xff0c;可以对列表两端插⼊&#xff08;push&#xff09…