开源智能体来啦!港大团队发布OpenAgents,可以搞数据分析、聊天、支持200+插件

news2024/11/15 18:02:58

图片

夕小瑶科技说 原创
作者 | 智商掉了一地、ZenMoore

港大的研究团队最近发布了一个新的开源 Agent 框架,名为 OpenAgents. 它可以用于实际用户场景,特别是在使用自然语言执行复杂任务的情况下。先前的语言智能体框架主要关注概念验证或者供开发人员使用,而 OpenAgents 则更注重非专家用户的使用体验和应用设计。它提供了一个开放的平台,让更多人可以在日常生活中使用和部署语言智能体。

这个平台包括数据智能体、插件智能体和 Web 智能体,用户可以通过一个优化的 Web 界面与智能体进行交互。

论文题目:
OpenAgents: An Open Platform For Languageagents In The Wild

论文链接:
https://arxiv.org/abs/2310.10634

项目地址:
https://github.com/xlang-ai/OpenAgents

Demo 地址:
https://chat.xlang.ai/


文章速览

目前,OpenAgents 平台主要包括 3 个智能体:

  1. 数据智能体,使用 Python、SQL 和其他数据工具进行数据分析;

  2. 插件智能体,配备了 200 多种日常 API 工具;

  3. Web智能体,可以自主浏览网页。

OpenAgents 通过一个针对快速响应和常见故障进行优化的 Web 用户界面,让普通用户可以与智能体的功能进行交互。

同时,它也为开发人员和研究人员提供了在本地环境中无缝部署的体验,为创新的语言智能体的构建和实际评估提供了基础。

为充分发挥 LLM 的潜力,需要从纯理论或以开发者为中心的工具转变为面向各种用户的动态互动系统,成为一个现实且全面的人机协同智能体评估平台。在该平台上,用户根据实际需求与智能体互动来完成任务。整个人机互动过程和用户反馈都会被记录下来,以便进一步评估。

如图1所示,OpenAgents 能够实现:

  • 面向普通用户:通过在线 Web 界面与智能体交互,无需任何编程知识。

  • 面向开发人员:利用代码,轻松部署前端和后端进行进一步开发。

  • 面向研究人员:根据示例和共享组件,构建新的语言智能体或相关方法,并通过 Web 界面查看其性能。

图片

▲图1:OpenAgents 平台,面向普通用户、开发人员和研究人员,旨在成为简单、多功能的平台,用于使用、开发和评估语言智能体

语言智能体的比较

关于语言智能体,目前已经建立了许多框架和代码库,表 1 展示了这些框架和代码库的总体比较。

  • 一部分构建了概念验证和引人注目的原型实现。这些原型主要是通过提示 LLM,然后在特定情况下展示出惊人的结果。基于这些原型,又有人提出了一些改进和更新的概念框架。

  • 另一部分则强调对语言智能体的评估。这些评估通常在完全模拟的环境中进行,比如自托管的网页。也有在半真实环境中进行的,比如利用真实工具 API 调用。当然,也有同时使用两种环境的。

  • 还有一些专注于研究多智能体及其行为

图片

▲表1:OpenAgents 与其他关于构建原型和基准的工作在智能体概念上的比较

OpenAgents 设计与实现

系统设计

如图 2 所示,OpenAgents 架构主要包含两部分:

  • 用户界面,这是用户与智能体交流和管理后端操作的平台;

  • 语言智能体,它由语言模型、工具和环境组成,推动智能体做出决策。

OpenAgents 提供了方便用户和智能体进行交流的接口。通常,交互流程从用户需求出发,通过用户界面进行,最后由语言智能体利用各种组件执行特定操作。当智能体接收到用户的指令后,会利用工具在环境中进行规划和行动

图片

▲图2:OpenAgents 架构的系统概述

用户界面

作者计划打造一个既用户友好又功能强大的用户界面。使其解决许多可高度复用的业务逻辑问题,以便使用和托管智能体,为后端服务器操作、错误处理、数据流传输等各种技术方面提供强大的支持。

语言智能体

这里有 3 个关键组件:语言模型、工具界面和环境,当前采用了 ReAct 中介绍的方法作为提示方法。

在每次交互中,智能体通常按照观察、思考、行动的顺序进行操作

  • 语言模型会生成易于解析的文本。

  • 工具界面包含解释器,它可以将这些文本转换为可执行操作,例如生成代码或发起 API 调用。

  • 这些操作之后会在相应的环境中执行。

实现中的挑战

对于用户界面的实现,有以下挑战和解决方案:

  1. 自适应数据映射: 引入数据模型的概念,借鉴数据库术语,以有效地将各种原始数据类型(如文本、代码、图像和表格)转换成适合人类阅读、适合 LLM 上下文,以及适合持久存储的格式。这提高了系统组件与外部实体之间的通信流畅性。

  2. 战略性数据存储: 采用了一种适应 OpenAgents 多用户特性的数据存储策略。

  3. 以用户为中心的界面: 设计了一个自适应用户界面,以减小用户与系统之间的交互差距。其能适应各种操作环境,展示丰富的媒体和交互内容,提高用户的参与度和任务效率。

  4. 实时回复流: 采用流式处理方法,以减少接收长文本补全时的延迟。通过流式 API 和推动自动机,实现了生成标记的实时解析和渲染,提高了用户反馈的即时性。

  5. 系统的稳健性: 强调提升智能体的稳健性,处理了有效的故障,及时的回复生成以及标记溢出管理等问题,以确保系统在各种真实场景下可靠运行。

  6. 通过 Chrome 扩展程序控制浏览器: 开发了一个 Chrome 扩展程序,使 Web 智能体能够直接控制浏览器。这种设置实现了实时监控和干预用户在 Web 交互过程中的操作,增强用户对系统的控制和信任。

对于语言智能体,作者提供了以下挑战的解决方案:

  1. 数据接地: 系统允许用户上传文件,这些文件需要智能体进行编程处理。为了有效存储这些用户上传的数据,建立了一个接地源池。通过使用 DataModel,每种文件类型被线性化并以其名称进行索引,使得智能体能够按照用户的指示检索和使用文件内容。

  2. 自动工具选择: 以往,用户需要手动选择插件来执行命令,如 OpenAI 插件。为了解决手动选择插件的困难,系统集成了一个名为“自动选择”的功能。该功能可根据用户的指示自动检测最相关的工具,从而简化了整个过程。

  3. 自动工具扩展: 虽然创建工具在 LLM 基础设施中使用智能体方面存在独特挑战,但他们从平台如 RapidAPI 和 OpenAI 插件商店获取了API提供者的信息。这一方法能产生 200 多个高质量的插件,尽管偶尔需要人工监督。系统还需要进一步探索,以实现高效的扩展。

  4. 可执行环境: 将语言模型的输出转化为特定上下文中的可执行任务。构建一个应用级的、多用户的可执行环境需要考虑到安全性、稳健性和功能性的挑战。成功实现了针对代码执行、API 交互和网页导航的沙盒环境。这些环境作为智能体的全面测试平台,方便代码生成、插件交互和网页操作等任务。

开放式智能体

如文章开头所述,OpenAgents 有三种特殊的智能体。它们在各自领域都是专家,类似于 OpenAI 的 ChatGPT 插件,它们的实现依赖于开放语言 API,也可以使用其他开源的 LLM(如 GPT-4 和 Claude)。

数据智能体

该智能体可以处理用户日常遇到的各种数据相关任务,支持在 Python 和 SQL 两种编程语言中生成和执行代码

作者还为智能体集成了几种数据工具,包括:

  1. Kaggle 数据搜索,通过 API 在 Kaggle 上搜索数据集;

  2. 数据概要,提供基本数据信息;

  3. ECharts 工具,用于交互式绘图。

Python、SQL 和 ECharts 等工具将生成代码,这样可以充分利用语言模型的编程能力,同时减轻智能体的负担。

它不仅限于生成文本和代码,还能熟练地进行数据查询、可视化和操作等任务。

图 3 给出了一个示例,用户可以上传自定义文件,比如表格和图片,然后对上传的数据进行连续查询。

图片

▲图3:数据智能体的流程图(左)和演示(中和右)

插件智能体

该智能体满足用户在购物、搜索、阅读新闻、预测天气和创建网站等日常任务中的多样化需求。为此,作者整合了来自各方的 200 多个插件。其中,一些知名的插件包括:Google搜索、Wolfram Alpha、Zapier、Klarna、Coursera、Show Me、Speak、AskYourPDF、BizToc 和 Klook。

作者特别关注了 API 的响应时间、函数调用接口以及 API 的响应长度,以便让基于 LLM 的智能体能最大限度地利用这些插件。

用户可根据自己的需求,选择一个或多个插件,以便让他们的智能体使用。具体示例参见图 4。这里添加了一个功能,可以根据用户的指示自动选择最相关的插件

图片

▲图4:插件智能体的流程图(左)和演示(中和右)

Web 智能体

Web 智能体是一种专门用来提升聊天智能体能力的工具。如图 5 所示,聊天智能体仍然是主要的交互界面,但会无缝地调用 Web 智能体。然后,Web 智能体会把最后的回复交给用户。

图片

▲图5:Web智能体的流程图(左)和演示(中间和右侧)

其优势在于,聊天智能体会在将用户查询或起始 URL 交给 Web 智能体之前,对重要参数进行系统处理,可确保与用户意图的高度一致性,从而促进更清晰的沟通。

处理模糊或有多个方面的复杂任务时,聊天智能体会采用分解的方法,用户的总体指令被分割成更易理解的子任务。聊天智能体接着使用这些子指令,按顺序与 Web 智能体交互,以确保更精细和高效的问题解决。

此外,配置支持多轮网络导航与聊天对话的动态交互,从而适应更多层次和可调整的用户查询。这里明确划分了 Web 智能体和聊天智能体的角色和职责,为每个模块的独立发展和持续改进铺平了道路。

实际部署中的关键挑战

将 LLM 转化为面向现实世界的应用的挑战——通过提示

在为真实用户构建基于 LLM 提示的应用程序时,使用提示中的指令来设定特定要求。这些指令有不同目的:

  • 为了确保 LLM 的输出符合我们后端逻辑处理的特定格式(以特定键的字典形式输出)

  • 旨在提升输出的美观度(尽可能单独列出项目)

  • 用于防止潜在的攻击(拒绝用户恶意构造的无限循环程序)

它们的累积通常会产生几百个 token,对 LLM 的指令跟踪能力和支持的上下文长度提出要求。

而当前的开源模型在这些方面已经取得了显著的改进。此外,需要更加重视智能体模型的基础开发和研究,以及针对特定领域和要求训练专用的智能体模型。这种方法可能比仅依赖于提示一个通用强大但固定模型更有效,也更可控。

无法控制的现实因素

这些因素包括用户行为、互联网基础设施和业务逻辑等,它们在过去的研究中并未得到充分建模。这就需要重新评估,甚至推翻许多过去研究中的假设和方法。

必须考虑到,调用的 API 所在的服务器可能会崩溃。这种情况需要监控并稳定地完成用户命令,而不是像过去的工具使用研究中所假设的那样。

在生成回复的过程中,用户可能会感到不满意,这可能导致语言模型在生成过程中被中断。此外,像 CAPTCHA 弹出或广告改变网页这样的不可预测事件,可能会在相对稳定的网页结构中引入一定程度的随机性。这在以前的自动浏览网页的工作中未曾考虑过。

来自真实场景的额外指标

研究通常过于强调性能指标,而忽视了现实场景中的基本需求。例如,让用户能够快速感知系统的反馈,而无需等待长篇大论的文本生成。特意设计的提示可以让智能体的回复格式更加美观,这对用户体验有着显著影响。

然而,现有的方法并未充分考虑这些影响。尽管在准确性上的性能指标优秀,但在实际应用中,它们可能导致响应时间过长,用户体验不佳。此外,还需要考虑性能和用户体验之间的权衡问题

评估由系统问题引起的复杂性

构建直接针对应用程序的智能体可以满足更多用户需求,同时也能揭示更多评估挑战。但基于 LLM 的应用程序构建会带来额外的复杂性,使得难以判断失败案例是来源于 LLM 应用的限制还是逻辑代码的不足。

因此,对智能体设计和操作逻辑的系统进行改进,简化流程,是有前景且必要的。

未来方向

智能体应用:OpenAgents 构建了一套完整的应用级语言智能体开发流程。这为其他创新应用与终端用户提供了可能。这些应用不仅各具优势,还共同营造了一个更丰富、更以用户为中心的智能体应用环境。

工具和组件集成:OpenAgents 致力于探索和解决构建实用级智能体应用的基本需求。这为社区提供了一个强大的基础,使得社区可以轻松地通过集成其他组件进行水平扩展。同时,还可以扩展更多的基础模型,比如最近的大型多模态模型,以及适应新的UI设计等。

人机交互:我们的平台能轻松构建基于 LLM 的新智能体应用程序。我们相信,OpenAgents因此能帮助构建应用程序演示,供人机交互(HCI)研究人员深入研究更直观、更用户友好的界面设计。这将提升用户的参与度和满意度。

LLM 的实际环境评估:为 LLM 建立公正且稳健的评估方法,对于公平评价其能力和性能至关重要。目前,通过使用预先收集的数据和受控环境,对智能体进行基准测试。虽然这些评估非常关键,但它们往往无法全面反映真实世界中的动态挑战。鼓励社区对这些评估指标和平台进行扩展或完善,这将显著推动该领域的发展,并为 LLM 的实际性能和能力提供更准确的洞察。

自适应用户界面生成:自动创建用户界面是一个有趣且具有挑战性的领域。这些界面能根据特定标准,如用户的设备、偏好或上下文,进行自我调整或定制。研究人员可以深入研究在基于 OpenAgents 的自适应UI中,如何应用 LLM,以及它们对用户体验的影响。

结论

近期,来自港大的研究团队在这项工作中推出了 OpenAgents——一个开源平台,旨在将 LLM 的最新进展与实际的用户导向应用相融合。OpenAgents 已为数据分析、工具使用和网页浏览这三种典型应用构建了智能体。

作者在开发 OpenAgents 的过程中,遇到了许多构建实际应用的独特挑战。这些挑战让我们看到了从理论设计到满足实际用户需求和交互的全功能智能体的转变究竟有多复杂。

他们提供了一个全面、透明且可部署的平台,不仅为了让更多的人(包括开发人员和普通用户)能利用 LLM 的强大能力,也希望通过接触真实场景来推动研究,使社区能够利用和完善最先进的语言智能体的能力。

让我们拭目以待,期待着 OpenAgents 能够激发更多的应用和平台,简化人类与智能语言智能体之间的交互,希望这项研究能够为未来语言智能体的研究和开发奠定基础,能够引领强大的现实世界语言智能体的普及化~

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

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

相关文章

6个无版权、免费、高清图片素材库

找免费无版权图片素材,就上这6个网站,超高质量,可商用,赶紧收藏! 1、菜鸟图库 https://www.sucai999.com/pic.html?vNTYwNDUx 网站主要为新手设计师提供免费素材,这些素材的质量都很高,类别也…

如何让你的Node.js应用程序处理数百万的API请求

目录 一、了解 Node.JS 和 API 请求 二、优化 NodeJS 以实现高性能 1.使用异步操作 2.实现缓存 3.优化数据库查询 4.负载平衡 5.水平扩展 三、测试和监控性能 1.负载测试 2.应用程序性能监控(APM) 四、结论 一、了解 Node.JS 和 API 请求 在我们深入研究这些技术之…

【C语言基础】结构体中内嵌联合体|联合体中内嵌结构体

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

【算法|动态规划No.22】leetcode115. 不同的子序列

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

jmeter接口自动化测试

前面我们复习了jmeter 的非图形化界面运行我们的测试接口。 大家可以翻看往期jmeter的文章。 具体来说就是:jmeter -n -t ****.jmx -l ****.jtl -e -o **** (*号代表路径) 生成了测试报告。 但是这个非图形化运行有个缺点,就是只能运…

Pygame中实现图片的移动

在《Pygame中将鼠标形状设置为图片2-1》和《Pygame中将鼠标形状设置为图片2-2》中提到将鼠标设置为指定图片。接下来在该文章涉及到的代码基础之上,实现图片的移动,效果如图1所示。 图1 图片移动效果 从图1中可以看出,导入一个大猩猩的图片&…

DailyPractice.2023.10.19

文章目录 1. 24. 两两交换链表中的节点2. 23. 合并 K 个升序链表3.148. 排序链表4.236. 二叉树的最近公共祖先5.78. 子集6.138. 随机链表的复制7.25. K 个一组翻转链表 1. 24. 两两交换链表中的节点 24. 两两交换链表中的节点 /*** Definition for singly-linked list.* stru…

扫描全能王文档矫正逆向记录

背景 扫描全能王有个功能是将弯曲的文本拉直成平直的文本。在扫描全能王的app上,这个功能的入口在拍书籍的tab。同时在图片编辑页面,也有个按钮可以触发这个功能。它的效果大概如下。 这篇文章主要介绍如何逆向这个算法 初步定位 对扫描王apk初步逆向…

【软考-中级】系统集成项目管理工程师 【15 信息 (文档) 和配置管理】

持续更新。。。。。。。。。。。。。。。 【第十五章】信息(文档)和配置管理 知识精讲考点 1:软件文档一般分为三类:开发文档、产品文档、管理文档。考点 2:文档的质量可以分为四级:考点 3:配置管考点 4:考点 5:考点6:考点 7:配置项版本号:考点 8:考点9…

[BUUCTF newstar week2] crypto/pwn/reverse

难度上来了,而且比赛加多了,newStar/0xGame/SHCTF,moe也结束了,周末还有TCP1P,来不及写东西了。抓时间先一个个来吧。 crypto 滴啤 就是dp的意思,也就是泄露dp求分解 from Crypto.Util.number import *…

汽车标定的ASAM MCD-1 POD

1.导语 ​做汽车标定slave基础软件以及做参数标定的同学,对ASAM MCD-2-MC(ASAP2,人话A2L文件)、ASAM MCD-1-XCP(人话xcp协议)一定非常熟悉。 常见的标定套件也是由很熟悉的供应商提供,例如ETAS的INCAES500系列产品、…

Hadoop3教程(二十三):Yarn的三大调度器

文章目录 (129)FIFO调度器(130)容量调度器特点资源分配算法 (131)公平调度器特点缺额的定义队列资源分配方式基于FIFO策略基于Fair策略资源分配算法 DRF策略 参考文献 (129)FIFO调度…

R6G azide, 5-isomer具有良好的水溶性,2135330-71-9

试剂 | 基础知识概述(部分): 英文名称:R6G azide, 5-isomer CAS:2135330-71-9 分子式:C30H32N6O4 分子量:540.61 规格标准:10mg,25mg,50mg,可提供mg级以…

C1N短网址 | 核心专利(1) - 基于随机字符实现的网址缩短

1.短链接介绍 举个例子,现在我的博客地址是这个:https://blog.csdn.net/liwei128/article/details/91358071 (55个字符),我通过短链接服务可以将上面的地址转成http://m.c1n.cn (15个字符) 那我为什么要将原有的URL转成较短的链接呢&#x…

C++QT---QT-day3

使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为&…

https证书配置(nginx)

HTTPS 是什么 HTTPS 是一种应用层协议,是一种透过计算机网络进行安全通信的传输协议,HTTPS 经由 HTTP 进行通信,但是在 HTTP 的基础上引入了一个加密层,使用 SSL/TLS 来加密数据包,HTTPS 开发的主要目的,是…

重磅!海云安联合深圳大学共同举行“人工智能联合实验室”揭牌仪式

2023年10月17日,大数据系统计算技术国家工程实验室-深圳海云安网络安全技术有限公司人工智能联合实验室(以下简称“联合实验室” )揭牌仪式在深圳大学致真楼图灵会议室举行。 大数据国家工程实验室执行主任李坚强、成果转化办公室主任王利、健康大数据研究中心副主任…

无代码玩转web UI自动化

可以直接进入官网下载开源版或点击右上角体验企业版体验 RunnerGo UI自动化平台 RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块,覆盖了整个产品测试周期。 RunnerGo UI自动化基于Selenium浏览器自动化方案构建,内嵌高度…

最新AI创作系统ChatGPT网站H5源码V2.6.4+搭建部署教程+支持GPT4.0+支持ai绘画(Midjourney)/支持Prompt预设应用

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

C语言实现面向对象编程 | 干货

前言 GOF的《设计模式》一书的副标题叫做“可复用面向对象软件的基础”,从标题就能看出面向对象是设计模式基本思想。 由于C语言并不是面向对象的语言,C语言没有直接提供封装、继承、组合、多态等面向对象的功能,但C语言有struct和函数指针。…