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

Agent举例与应用

什么是Agent

OpenAI 应用研究主管 Lilian Weng 在一篇长文中提出了 Agent = LLM(大型语言模型)+记忆+规划技能+工具使用这一概念,并详细解释了Agent的每个模块的功能。她对Agent未来的应用前景充满信心,但也表明到挑战无处不在。

现有的 Agents 项目如 AutoGPT,BabyAGI 和 MetaGPT 的成功验证了LLM的潜力。LLM 不仅仅是一个文本生成工具,它可以成为一个强大的通用问题解决器。无论是写作、故事、论文还是程序等,LLM 都能应对自如。它展现了巨大的潜力,在解决现实世界难题方面具备强大的能力。

BabyAGI 的创造者 Yohei Nakajima 曾说:“The future of autonomous agents looks like everybody becoming a manager.” 这句话很好地概括了我们对 Agents 的展望。

Agent的HelloWorld工作流实例

假设有一个协助研究的 Agent,我们希望获取关于 Twitter 的最新新闻摘要:

我们告诉 Agent “你的目标是找出关于Twitter的最新消息,然后给我发一份摘要”。

Agent查看目标并使用像OpenAI的GPT-4这样的AI进行阅读理解,它提出了第一个任务:“在谷歌上搜索与Twitter相关的新闻。”

然后,Agent 在谷歌上搜索 Twitter 新闻,找到热门文章,并返回链接列表。第一个任务已完成。

现在,Agent 回顾主要目标(获取关于Twitter的最新新闻,并发送摘要)以及它刚刚完成的内容(获得一系列关于Twitter的新闻链接),并决定其下一个任务需要是什么。

它提出了两个新任务。1)写新闻摘要。2)阅读通过谷歌找到的新闻链接的内容。

在继续之前,智能助理会稍作停顿,以确保正确安排这些任务。它反思是否应该先写摘要。然而,它决定首要任务是阅读通过谷歌找到的新闻链接的内容。

Agent 阅读文章内容,然后再次查看待办事项列表。它考虑添加一个新任务来总结所阅读的内容,但是发现这个任务已经在待办事项列表中,因此不会重复添加它。

Agent 检查待办事项列表,只剩下一项任务:撰写所阅读内容的摘要。于是,它执行了这个任务,按照您的要求向您发送了摘要。
 

 AutoGPT

AutoGPT 是一个由Toran Richards创建的流行开源项目,github有接近15万星🌟。它利用GPT4作为大脑,结合langchain的链接思想,连接各种工具和互联网资源,来完成人类给予的任务。

您只需要设定一个目标,AutoGPT就会自主规划并逐步执行任务。如果遇到问题,它会自主拆分任务并逐步解决。

AutoGPT 所做的事情就是把电脑的控制权、向量空间的云存储、各种工具的API交给了AI。借此,它可以分析市场并提出交易策略、客户服务、营销、财务或其他需要持续更新的任务。

这就是为什么 Karpathy 最近说“AutoGPT 是提示工程的下一个前沿”

AutoGPT 相当于给基于 GPT 的模型赋予了内存和主体。您现在可以将任务交给 AI 代理,让它自主制定计划、执行计划、浏览网页并使用新数据修改策略,直到任务完成。

AutoGPT由以下三个组成部分构成:

架构:它通过 API 调用 GPT-4 和 GPT-3.5。

自主迭代:AutoGPT通过自我评估改进其输出,利用以前的行动和提示历史以获得更准确的结果。

内存管理:与 @pinecone 的集成让 AutoGPT 能够长期内存存储,支持上下文保存和改进决策。

此外,AutoGPT还具备多功能性,例如文件操作、网页浏览和数据检索等功能,使其应用范围更广。

快速体验AutoGPT:以Cognosys为例

让我们以Cognosys为例,看看如何使用他们的平台来应用AgentGPT来总结最新新闻。

Cognosys 一款类AutoGPT 的在线工具;不需要绑定OpenAI 的API Key

首先,访问Cognosys网站。

输入Agent的名称和您想要达到的目标,让AgentGPT知道您的需求。

选择模式为Browsing,让AgentGPT拥有联网能力

点击提交,AgentGPT会利用其强大的自然语言处理能力来搜索最新的新闻,并呈现出相关的摘要。

您可以阅读并评估生成的新闻摘要,如果需要,还可以对其进行修改或完善,让摘要更贴合您的需求。

除此之外

AI平台Hugging Face提供了托管版本的AutoGPT。您只需要提供OpenAI API密钥,为AI指定角色和一些目标即可

对于Replit用户,您还可以fork此repl并为其提供您的OpenAI API密钥来体验

godmode也允许您输入OpenAI API密钥后直接体验AutoGPT

恭喜你掌握了第一个 Agent!

AgentGPT

 AgentGPT 的自我介绍:

AgentGPT: Create and run an autonomous agent (AutoGPT) from a website, no login required.

AgentGPT 是一个基于 Langchain 和 OpenAI 基础构建的 AI Agent。它是一个 AI 代理平台,使您能够在浏览器或个人计算机中创建、配置和部署自主 AI 代理。

AgentGPT 允许您配置和部署自治 AI 代理。命名你自己的自定义 AI,让它开始实现任何可以想象的目标。它将尝试通过思考要做的任务、执行它们并从结果中学习来达到目标。

AgentGPT 和 AutoGPT 之间的区别

AutoGPT 是一款功能强大的 AI 工具。但在开始使用之前,您需要设置 Git、安装 Python、下载 Docker 桌面程序并获取 OpenAI API 密钥。

AgentGPT 实际上是基于 AutoGPT 架构进行了改进,为您增加了一个网页界面,摆脱了繁琐的搭建和安装过程。从本质上来说,它就是一个 AutoGPT,您无需自行搭建,也不必担心繁杂的构建步骤,只需要登录网站就可以使用。

简单使用 

前置准备:在使用AgentGPT之前,您需要获取OpenAI API密钥。访问 OpenAI 网站 https://www.openai.com/。

AgentGPT 注册步骤如下:

访问 AgentGPT 平台:https://agentgpt.reworkd.ai/

在 reworkd.ai 上创建一个帐户,并通过提供您的名称和目标来部署您的代理

在我们的例子中,我们要求 AgentGPT 开发一个能够人脸识别的 Web 应用程序。这里我部分截取了中间的运行效果,AgentGPT成功帮我生成了一个人脸识别的 Web 应用,期间无需写任何代码

自己部署

感兴趣的小伙伴也可以尝试自己在本地部署 Agents!

Vercel一键部署AgentGPT

Vercel目前已经支持自主一键部署AgentGPT

HuggingGPT

HuggingGPT是一个多模型调用的 Agent 框架,利用 ChatGPT 作为任务规划器,根据每个模型的描述来选择 HuggingFace 平台上可用的模型,最后根据模型的执行结果生成总结性的响应。

这个项目目前已在 Github 上开源,并且有一个非常酷的名字叫做 JARVIS(钢铁侠的助手)。这项研究主要涉及到两个主体,一个是众所周知的 ChatGPT,另一个是 AI 社区中的 Hugging Face。

在HuggingGPT中,ChatGPT充当了”操作大脑”的角色,能够自动解析用户提出的需求,并在Hugging Face的AI模型库中进行自动模型选择、执行和报告,为我们开发更复杂的人工智能程序提供了极大的便利。

MetaGPT

MetaGPT引入了一个将人工工作流程与多智能体协作无缝集成的框架。通过将标准化操作(SOP) 程序编码为提示,MetaGPT确保解决问题时采用结构化方法,从而减少出错的可能性。

当前 Agent 的解决方案存在一个问题:尽管这些语言模型驱动的 Agent 在简单的对话任务上取得了显著进展,但在面对复杂任务时,LLM 会陷入困境,仿佛看到了并不存在的事物(幻觉)。当将这些 Agent 串联起来时,就会引发混乱的连锁反应。

现在 MetaGPT 引入了标准化操作程序。这些操作程序就像作弊码一样,用于顺利协调工作。它们告诉代理们发生了什么事,以有条不紊的方式指导他们。

借助这些操作程序,代理几乎可以像领域专家一样熟悉他们的工作,并验证输出以避免错误。就像高科技流水线一样,每个代理都扮演着独特的角色,共同理解复杂的团队合作。

为什么 MetaGPT 很重要

MetaGPT 提供了一个全新的视角。这就是它掀起波澜的原因:

稳定的解决方案:借助SOP,与其他 Agents 相比,MetaGPT 已被证明可以生成更一致和正确的解决方案。

多样化的角色分配:为LLM分配不同角色的能力确保了解决问题的全面性。

MetaGPT 软件开发过程

需求分析:收到需求后,该过程开始。这一阶段致力于明确软件所需的功能和要求。

扮演产品经理:产品经理以需求和可行性分析为基础,开启整个流程。他们负责理解需求,并为项目制定明确的方向。

扮演架构师:一旦需求明确,架构师将为项目创建技术设计方案。他们负责构建系统接口设计,确保技术实现符合需求。在MetaGPT中,架构 Agent 可以自动生成系统界面设计,如内容推荐引擎的开发。

扮演项目经理:项目经理使用序列流程图来满足每个需求。他们确保项目按计划前行,每个阶段都得到适时执行。

扮演工程师:工程师负责实际的代码开发。他们使用设计和流程图,将其转化为功能完备的代码。

扮演质量保证(QA)工程师:在开发阶段结束后,QA工程师进行全面的测试。他们确保软件符合所需标准,不存在任何错误或问题。

实例

举个例子,当你输入

python startup.py “Design a RecSys like Toutiao”,

MetaGPT会为你提供多个输出,其中之一是有关数据和API设计的指导。

生成一个包含分析和设计示例的成本大约为0.2美元(使用GPT-4 API),而完整项目的成本约为2.0美元。通过这种方式,MetaGPT提供了低廉的解决方案,让你能够快速获取所需的信息和指导。

快速体验

目前MetaGPT暂无在线体验版本。这里我会列出docker的安装方法,最大程度减少大家安装面对的环境难度:

# Step 1: Download metagpt official image and prepare config.yaml docker pull metagpt/metagpt:v0.3.1 mkdir -p /opt/metagpt/{config,workspace} docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml vim /opt/metagpt/config/key.yaml # Change the config

# Step 2: Run metagpt demo with container docker run --rm \ --privileged \ -v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \ -v /opt/metagpt/workspace:/app/metagpt/workspace \ metagpt/metagpt:v0.3.1 \ python startup.py "Write a cli snake game" # You can also start a container and execute commands in it docker run --name metagpt -d \ --privileged \ -v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \ -v /opt/metagpt/workspace:/app/metagpt/workspace \ metagpt/metagpt:v0.3.1 docker exec -it metagpt /bin/bash $ python startup.py "Write a cli snake game"

将"Write a cli snake game"更换成你喜欢的命令试试吧!

Autogen

由微软开发的 Autogen 是一个新的 Agents 项目,刚一上线就登上GitHub热榜,狂揽11k星

项目地址:https://github.com/microsoft/autogen

Autogen 允许你根据需要创建任意数量的Agents,并让它们协同工作以执行任务。它的独特之处在于允许 Agent相互通信并解决任务。例如你可以设置三个角色,产品经理、程序员和设计师,让他们之间讨论如何实现一个产品,并给出 Demo 代码。

不需要写复杂的prompt设定Agents,Agent 自己聊着天就把事给办了🤯

诞生了哪些好玩的AutoGen应用?

几秒钟生成游戏

模拟世界:允许用户阅读时自己参与与主角交互

可视化数据分析

除此之外,官方还放出了6个应用案例,包括解决数学问题、多智能体编码、在线决策制定、基于检索增强聊天、动态群聊以及对话式国际象棋。

充分展示了AutoGen的定制性
 
 AI AIgents时代- Autogen-CSDN博客

OpenAgents

OpenAgents,一个声称在Interface和Environment上全方面超越AutoGPT,OpenInterPreter等框架

接下来我们逐步拆解OpenAgents的独特之处!OpenAgents开发的LLM-powered代理XLang集成了三个功能强大的代理:DataAgent、PluginAgent、webAgent

技术细节 OpenAgents基于LangChain构建了XLang Agents,使用ReAct范式进行思考、行动和观察来完成任务。OpenAgents填补了LangChain的一些空缺,包括提供全面的工具集、实现Web用户界面和后端服务器、创建DataModel类以便信息呈现,以及改进提示。Web用户界面允许用户通过自然语言反馈与Agent交互,而记忆组件则将多轮用户反馈作为历史上下文的一部分传递给Agent。

RL Agent:

ReAct Agent:

XLang Agents:
 

AI AIgents时代-(六.)OpenAgents-CSDN博客

相关文章:

Agent举例与应用

什么是Agent OpenAI 应用研究主管 Lilian Weng 在一篇长文中提出了 Agent LLM(大型语言模型)记忆规划技能工具使用这一概念,并详细解释了Agent的每个模块的功能。她对Agent未来的应用前景充满信心,但也表明到挑战无处不在。 现…...

CentOS 7 配置tomcat

简介 Tomcat是一个使用Java编写的开源Web应用服务器,是由Apache Software Foundation管理的一个项目。它是一个轻量级的应用服务器,可以下载、安装和使用,而且还提供了许多高级功能,例如支持Java Servlet、JavaServer Pages (JSP)和JavaServer Faces (JSF) 等JavaEE技术,…...

如何优雅的关闭一个IIS站点

众所周知,当我们使用IIS的时候,在使用负载均衡的情况下,想停掉一个站点,通常会点击Sites(网站)中的Stop(停止)来停止一个站点。但是这样做,会带来一个问题,当…...

弱网模拟工具

一、背景 一个人晚上在家通过 Wi-Fi 上网,在线电影播放基本流畅,可一旦在晚间用网高峰期打视频电话就画面糊,这时不仅可能带宽受限了,还可能有较高的丢包率。与有线网络通信相比,无线网络通信受环境影响会更大&#x…...

Leetcode 第 110 场双周赛 Problem D 2809. 使数组和小于等于 x 的最少时间(DP+贪心+正难则反)

Leetcode 第 110 场双周赛 Problem D 2809. 使数组和小于等于 x 的最少时间&#xff08;DP 好题&#xff09;题目 给你两个长度相等下标从 0 开始的整数数组 nums1 和 nums2 。每一秒&#xff0c;对于所有下标 0 < i < nums1.length &#xff0c;nums1[i] 的值都增加 num…...

已知数组A[1..n]中元素类型为非负整数,设计算法将其调整为左右两部分,左边所有为奇数,右边所有为偶数,并要求算法的时间复杂度为O(n)

//左边奇数右边偶数 void Swap(int* a, int* b) {int tmp *b;*b *a;*a tmp; } void LeftRight(int arr[],int n) {int i 0;int j n - 1;while(i<j){if (arr[i] % 2 0 && arr[j] % 2 1) {Swap(&arr[i], &arr[j]);i;j--;}else if (arr[i] % 2 1 &…...

ssm+vue的罪犯信息管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的罪犯信息管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…...

Java/Android 各类型数据构造和各类型数据解析

Java/Android 各类型数据构造和各类型数据解析 1.如何构造/解析{"key":"value","key":"value","key":"value"}jsonString1)json解析2)fastjson解析3)Gson解析4)遍历key值解析2.如何构造/解析[{"key&q…...

Linux系统---环境变量+内核进程调度队列(选学)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、环境变量 1.基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数&#xff0c…...

Kubernetes 使用插件扩展 kubectl

例子演示 编写 kubectl-foo &#xff0c;拷贝至 /usr/local/bin/ #!/bin/bash# 可选的参数处理 if [[ "$1" "version" ]] thenecho "1.0.0"exit 0 fi# 可选的参数处理 if [[ "$1" "config" ]] thenecho $KUBECONFIGexit…...

前端面试题09

74、定义类的方法有哪些 在JavaScript中&#xff0c;定义类的方法有以下几种方式&#xff1a; 1.使用函数声明&#xff1a; function MyClass() {// constructor } MyClass.prototype.methodName function() {// method body };2.使用类的方法缩写&#xff08;ES6引入&…...

网站更换IP的四大注意事项

1.对网站当中的数据进行备份 网站更换IP时可以将页面的数据库文件和站点文件通过下载工具在本地完成备份。 2.更换解析域名 从站点域名管理后台当中更换域名地址&#xff0c;改为新的IP地址。 3.确保IP安全 在用户更换IP前一定要确定IP是否安全&#xff0c;一旦IP存在不良…...

策略模式与简单工厂模式:终结if-else混乱,让代码更清爽

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概4500多字&#xff0c;预计阅读时间长需要5分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&#x…...

TCP三次握手过程

什么是TCP tcp是一个面向连接的、可靠的、基于字节流的传输层通信协议 面向连接&#xff1a;TCP连接是一对一的&#xff0c;不能实现一对多或多对一&#xff0c;TCP在通信前要首先建立连接&#xff0c;连接成功后才能开始进行通信可靠的&#xff1a;TCP连接要保证通信过程的可靠…...

04-配置远程仓库的SSH免密登陆

配置SSH免密登录 配置步骤 创建好的远程仓库也可以使用SSH的方式进行访问,但如果没有配置公钥会有警告 第一步: 删除用户家目录下的.ssh目录,如果没有该目录或者该目录下已经有密钥了就不用执行该操作 #进入当前用户的家目录,删除.ssh 目录 LayneLAPTOP-Layne MINGW64 ~ $ r…...

【中文编码】利用bert-base-chinese中的Tokenizer实现中文编码嵌入

最近接触文本处理&#xff0c;查询了一些资料&#xff0c;记录一下中文文本编码的处理方法吧。   先下载模型和词表&#xff1a;bert-base-chinese镜像下载   如下图示&#xff0c;下载好的以下文件均存放在 bert-base-chinese 文件夹下    1. 词编码嵌入简介 按我通俗的…...

一文解决msxml3.dll文件缺失问题,快速修复msxml3.dll

在了解问题之前&#xff0c;我们必须首先清楚msxml3.dll到底是什么。DLL&#xff08;Dynamic Link Libraries&#xff09;文件是Windows操作系统使用的一个重要组成部分&#xff0c;用于存储执行特定操作或任务的代码和数据。msxml3.dll为Windows系统提供处理XML文档的功能。如…...

《React 知识点》第一篇 大括号使用{}

简介 大括号 " {} "可以用于包裹JavaScript的表达式或语句。以便在jsx中动态生成内容。 插入变量与表达式 function expressionTest() {const name "变量测试";return (<p><div>{name}</div><div>表达式 210 {2 100}</div…...

kafka入门(二): 位移提交

位移提交&#xff1a; Kafka的每条消息都有唯一的 offset&#xff0c; 用来表示消息在分区中对应的位置。有的也称之为 “偏移量”。 消费者每次在 poll() 拉取消息&#xff0c;它要返回的是还没有消费过的消息集&#xff0c; 因此&#xff0c;需要记录上一次消费时的消费位…...

PG时间计算

PG数据库&#xff0c;时间计算使用场景总结 日期之差 --**获取秒差** SELECT round(date_part(epoch, TIMESTAMP 2019-05-05 12:11:20 - TIMESTAMP 2019-05-05 10:10:10)); --**获取分钟差** SELECT round(date_part(epoch, TIMESTAMP 2019-05-05 12:11:20 - TIMESTAMP 20…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...