Press "Enter" to skip to content

打开代理:一个野外的语言代理开放平台

最近的发展表明,特别是那些建立在大规模语言模型(LLM)上的语言代理,有潜力使用自然语言在各种环境中执行各种复杂的任务。然而,目前大多数语言代理框架的主要焦点仍然是方便构建概念验证语言代理。这种关注往往对应用级设计几乎没有注意,并且经常忽略了这些代理对非专业用户的易用性。

为了弥合语言代理当前的局限性,开发人员提出了OpenAgents框架,一个用于托管和部署语言代理的开放平台,可以应用于各种日常任务。OpenAgents框架围绕三个代理进行构建。

  • 数据代理:使用数据工具和查询语言(如SQL)或编程语言(如Python)进行数据分析。
  • 插件代理:提供访问超过200种API工具,有助于日常任务。
  • 网络代理:在保持匿名的同时浏览互联网。

OpenAgents框架使用经过优化以应对常见故障和快速响应的Web用户界面,旨在让普通用户与代理功能进行交互,同时为研究人员和开发人员在本地设置上提供无缝部署体验。可以说,OpenAgents框架旨在为促进真实世界评估和制作创新、有效和先进的语言代理提供坚实基础。

在今天的文章中,我们将深入研究OpenAgents框架,并详细讨论该框架。我们将讨论框架的工作原理和架构,同时还会讨论所面临的常见挑战和结果。让我们开始吧。

OpenAgents和语言代理:简介

语言代理本质上源于智能代理。这些智能代理被设想具有自主解决问题的能力,以及感知环境、做出决策和相应行动的能力。随着大型语言模型的进步,全球开发社区已经利用智能代理和LLM的概念创建了语言代理。这些代理利用自然语言编程(NLP)在各种环境中执行各种复杂任务,并且最近表现出了显著潜力。

当前的语言代理框架,例如Gravitas和Chase,主要提供面向开发人员的控制台界面,并提供概念验证实现。然而,它们经常限制了更广泛的受众的可访问性,特别是那些不熟练于编程的人。此外,当前代理基准是由开发人员构建的,具有特定的要求,用于确定性评估,特别是在需要浏览网页、编码、工具使用或二者组合的场景中。

为了开发面向更广泛用户群体的基于LLM的智能和语言代理,像OpenAI和微软这样的知名公司已经部署了一系列设计精良的产品,包括高级数据分析,也称为代码解释器,以及浏览器插件。尽管这些代理在其功能上是有效的,但对开发社区的帮助有限。这种限制是因为业务逻辑代码和模型实现没有开源,阻碍了开发人员和研究人员进一步探索它们的机会,并限制了用户的免费访问。

为了解决这个问题,开发人员提出了一个名为OpenAgents的开源平台,用于托管和使用代理,目前它建立在三个内部代理的基础上。

  • 数据代理:使用数据工具和查询语言(如SQL)或编程语言(如Python)进行数据分析。
  • 插件代理:提供访问超过200种API工具,有助于日常任务。
  • 网络代理:在保持匿名的同时浏览互联网。

下图展示了面向普通用户、开发人员和研究人员的OpenAgents平台。

打开代理:一个野外的语言代理开放平台 四海 第1张

  1. 普通用户可以通过在线Web界面与OpenAgents框架中的三个代理进行交互,而不是使用面向程序员的包或控制台。
  2. 开发人员可以利用OpenAgents框架提供的业务逻辑和研究代码,无缝部署后端和前端进行进一步开发。
  3. 研究人员可以灵活选择是从头开始构建新的语言代理,还是使用共享组件和示例实现与代理相关的方法,并使用Web界面评估其性能。

总之,OpenAgents框架最初旨在成为一个以人为中心的语言代理评估平台,允许用户与这些代理进行交互以完成各种任务,并将这些人-代理交互以及用户反馈存储和分析以进行进一步的开发和评估。

对于那些不了解的人来说,LLM提示是一个过程,可以让开发人员制定能够防止对抗性或错误输入,提高输出美观度,并符合后端逻辑的指令。在开发阶段,OpenAgents框架的开发人员使用LLM提示技术强调有效规定应用需求的重要性。然而,开发人员很快发现,这些指令或LLM提示的积累有时可能相当大,可能会影响LLM框架处理上下文的能力,还有令牌的限制。开发人员还观察到,为了在实际世界中有效部署这些代理,代理模型不仅应表现出色,而且还应能够实时处理各种交互场景。尽管当前的代理框架表现良好,但它们通常忽视实时的现实考虑,这常常以响应力或准确性为代价,使得LLM框架的真正潜力混淆不清。

在下图中,我们直接将OpenAgents框架与现有作品在代理概念和原型构建上进行了比较。

打开代理:一个野外的语言代理开放平台 四海 第2张

OpenAgents:平台设计与实现

OpenAgents平台的系统设计或架构可以分为两个主要组成部分:用户界面,包括后端和前端,以及语言代理,包括工具,语言模型和环境。OpenAgents框架为用户和代理之间的通信提供了一个接口。框架中的交互流程如下所示。

代理使用可用的工具在接收到用户输入后,在环境中计划并执行所需的操作。框架的体系结构或系统设计在下图中展示。

打开代理:一个野外的语言代理开放平台 四海 第3张

用户界面

OpenAgents框架的开发人员经过处理大量主机代理和可重复使用的业务逻辑后,不仅开发了高度功能强大的用户界面,还开发了用户友好的UI。因此,OpenAgents框架在提供对包括错误处理、后端服务器操作、数据流等在内的广泛技术任务的支持时,既用户友好又高效可用。

语言代理

在OpenAgents框架中,语言代理有三个基本组成部分:工具接口、语言模型和环境本身。在OpenAgents框架中实施的提示方法为代理创建了一个顺序过程,该过程从观察 -> 斟酌 -> 行动开始。框架还提示LLM以提高效益生成可解析文本,而工具接口由解析器组成,可以将LLM生成的可解析文本转换为可执行操作,例如调用API或生成代码。然后,框架在相应环境的范围内执行这些操作。

OpenAgents的代理

在OpenAgents的核心,有三个独特的代理:数据代理,使用数据工具和查询语言(如SQL)或编程语言(如Python)进行数据分析的帮助,插件代理,通过提供超过200个API工具来帮助处理日常任务,以及网络代理,用于浏览网络并保持匿名性。这些代理具有类似于ChatGPT插件的单独领域专长,但与ChatGPT不同,OpenAgents上的实施完全基于开放式语言应用程序编程接口或API。

数据代理

OpenAgents框架中的数据代理已经被设计和部署成为能够处理用户在日常使用中遇到的多种数据相关任务的方式。数据代理支持在SQL和Python两种编程语言中生成和执行代码,并且代理还拥有多种数据工具,包括用于提供基本数据信息的数据概况、用于搜索数据集的Kaggle数据搜索以及用于绘制交互式ECharts的ECharts工具。此外,OpenAgents框架会主动提示数据代理使用这些工具,以有效地响应用户的请求。此外,鉴于耗时的编码需求,OpenAgents框架选择了嵌入式语言模型作为数据代理,而不是代理生成代码,而是由Python、ECharts和SQL等工具生成代码。采用这种方法,该框架能够充分利用语言模型的编程能力,从而减轻数据代理的负担。

借助这些数据工具,数据代理能够有效地处理众多与数据相关的请求,熟练地执行数据可视化、数据处理和数据查询等任务,超越了代码和文本生成的界限。下图展示了数据代理的工作情况以及普通用户可用的工具。

打开代理:一个野外的语言代理开放平台 四海 第4张

插件代理

OpenAgents框架中的插件代理是由开发人员精心设计,以满足用户对日常任务的多方面需求,包括搜索互联网、在线购物、阅读新闻或创建网站和应用程序,通过提供超过200个插件的访问,特别关注功能调用接口、API响应和API响应长度。其中一些重要的插件包括:

  1. 谷歌搜索
  2. 沃尔夫拉姆 Alpha
  3. Zapier
  4. Klarna
  5. Coursera
  6. Show Me
  7. Speak
  8. AskYourPDF
  9. BizTok
  10. Klook

根据用户的需求和要求,用户可以选择插件代理使用的插件数量,下图展示了插件代理的工作方式。

打开代理:一个野外的语言代理开放平台 四海 第5张

此外,为了帮助用户在不确定哪个插件最适合他们的需求的情况下,OpenAgents框架为用户提供了自动选择最相关插件的功能。

Web代理

OpenAgents框架将Web代理作为一种专门的工具,旨在提高聊天代理的效率和能力。虽然聊天代理仍然是主要的交互界面,但在必要时,它会无缝地整合Web代理。最终的响应由Web代理交付给最终用户,该过程在下图中说明。

打开代理:一个野外的语言代理开放平台 四海 第6张

在这些Web代理中实施的设计策略被证明非常有益,因为聊天代理会在将重要参数处理或启动URL之前,系统地将其转移到Web代理,从而确保用户需求与生成的输出之间的更好对齐,从而实现清晰的沟通。此外,该策略还允许Web代理通过使用动态多轮Web导航和聊天对话来适应分层和可适应性用户查询。因此,通过明确划分聊天和多浏览代理的角色和责任,OpenAgents框架为每个模块的细化和演进铺平了道路。

OpenAgents:实际应用和实际部署

在本节中,我们将讨论OpenAgents框架从理论到现实世界部署的轨迹,以及开发人员所遇到的挑战、吸取的教训以及他们应对评估复杂性的能力。

使用提示将大型语言模型转化为实际应用

当使用LLM提示来构建面向最终用户的真实世界应用时,OpenAgents框架使用提示指令来指定某些要求。某些指令的目的是确保输出符合特定格式,从而允许后端逻辑进行处理,而其他指令的目的是提升输出的美观程度,还有一些则用于保护框架免受潜在的恶意攻击。

无法控制的真实世界因素

当开发人员将OpenAgents框架部署到真实世界中时,他们遇到了一系列由互联网基础设施、用户、业务逻辑等引发的无法控制的真实世界因素。这些无法控制的因素迫使开发人员重新评估和调整基于之前研究的一些假设,最终可能导致最终用户对框架生成的响应不满意。

评估复杂性

尽管直接面向应用的构建代理可能具有更广泛的应用,并促进更好的评估,但它增加了构建LLM驱动应用的复杂性,从而难以分析应用的性能。此外,这种方法还增加了不稳定性,并延长了LLMs的系统链,使得框架难以适应不同的组件。因此,对这些代理的系统设计和操作逻辑进行完善,简化流程并确保有效输出是有意义的。

最后的思考

在本文中,我们讨论了OpenAgents框架,这是一个用于托管和部署语言代理的开放平台,可以应用于各种日常任务。OpenAgents框架围绕三个代理构建:数据代理,使用数据工具和查询语言(如SQL)或编程语言(如Python)进行数据分析;插件代理,提供超过200个API工具,帮助完成日常任务;Web代理,在浏览网页时保持匿名性。OpenAgents框架使用经过优化的Web用户界面,旨在应对常见故障和快速响应,以便让一般用户与代理功能进行交互,同时为研究人员和开发人员在本地环境中提供无缝部署体验。通过提供透明、全面和可部署的平台,OpenAgents旨在使LLMs的潜力能够被更广泛的用户使用,不仅限于研究人员和开发人员,还包括具有有限技术专长的最终用户。

Leave a Reply

Your email address will not be published. Required fields are marked *