夕小瑶科技说 原创
作者 | 智商掉了一地、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 个智能体:
OpenAgents 通过一个针对快速响应和常见故障进行优化的 Web 用户界面,让普通用户可以与智能体的功能进行交互。
同时,它也为开发人员和研究人员提供了在本地环境中无缝部署的体验,为创新的语言智能体的构建和实际评估提供了基础。
为充分发挥 LLM 的潜力,需要从纯理论或以开发者为中心的工具转变为面向各种用户的动态互动系统,成为一个现实且全面的人机协同智能体评估平台。在该平台上,用户根据实际需求与智能体互动来完成任务。整个人机互动过程和用户反馈都会被记录下来,以便进一步评估。
如图1所示,OpenAgents 能够实现:
关于语言智能体,目前已经建立了许多框架和代码库,表 1 展示了这些框架和代码库的总体比较。
如图 2 所示,OpenAgents 架构主要包含两部分:
OpenAgents 提供了方便用户和智能体进行交流的接口。通常,交互流程从用户需求出发,通过用户界面进行,最后由语言智能体利用各种组件执行特定操作。当智能体接收到用户的指令后,会利用工具在环境中进行规划和行动。
▲图2:OpenAgents 架构的系统概述作者计划打造一个既用户友好又功能强大的用户界面。使其解决许多可高度复用的业务逻辑问题,以便使用和托管智能体,为后端服务器操作、错误处理、数据流传输等各种技术方面提供强大的支持。
这里有 3 个关键组件:语言模型、工具界面和环境,当前采用了 ReAct 中介绍的方法作为提示方法。
在每次交互中,智能体通常按照观察、思考、行动的顺序进行操作。
对于用户界面的实现,有以下挑战和解决方案:
对于语言智能体,作者提供了以下挑战的解决方案:
如文章开头所述,OpenAgents 有三种特殊的智能体。它们在各自领域都是专家,类似于 OpenAI 的 ChatGPT 插件,它们的实现依赖于开放语言 API,也可以使用其他开源的 LLM(如 GPT-4 和 Claude)。
该智能体可以处理用户日常遇到的各种数据相关任务,支持在 Python 和 SQL 两种编程语言中生成和执行代码。
作者还为智能体集成了几种数据工具,包括:
Python、SQL 和 ECharts 等工具将生成代码,这样可以充分利用语言模型的编程能力,同时减轻智能体的负担。
它不仅限于生成文本和代码,还能熟练地进行数据查询、可视化和操作等任务。
图 3 给出了一个示例,用户可以上传自定义文件,比如表格和图片,然后对上传的数据进行连续查询。
▲图3:数据智能体的流程图(左)和演示(中和右)该智能体满足用户在购物、搜索、阅读新闻、预测天气和创建网站等日常任务中的多样化需求。为此,作者整合了来自各方的 200 多个插件。其中,一些知名的插件包括:Google搜索、Wolfram Alpha、Zapier、Klarna、Coursera、Show Me、Speak、AskYourPDF、BizToc 和 Klook。
作者特别关注了 API 的响应时间、函数调用接口以及 API 的响应长度,以便让基于 LLM 的智能体能最大限度地利用这些插件。
用户可根据自己的需求,选择一个或多个插件,以便让他们的智能体使用。具体示例参见图 4。这里添加了一个功能,可以根据用户的指示自动选择最相关的插件。
▲图4:插件智能体的流程图(左)和演示(中和右)Web 智能体是一种专门用来提升聊天智能体能力的工具。如图 5 所示,聊天智能体仍然是主要的交互界面,但会无缝地调用 Web 智能体。然后,Web 智能体会把最后的回复交给用户。
▲图5:Web智能体的流程图(左)和演示(中间和右侧)其优势在于,聊天智能体会在将用户查询或起始 URL 交给 Web 智能体之前,对重要参数进行系统处理,可确保与用户意图的高度一致性,从而促进更清晰的沟通。
当处理模糊或有多个方面的复杂任务时,聊天智能体会采用分解的方法,用户的总体指令被分割成更易理解的子任务。聊天智能体接着使用这些子指令,按顺序与 Web 智能体交互,以确保更精细和高效的问题解决。
此外,配置支持多轮网络导航与聊天对话的动态交互,从而适应更多层次和可调整的用户查询。这里明确划分了 Web 智能体和聊天智能体的角色和职责,为每个模块的独立发展和持续改进铺平了道路。
在为真实用户构建基于 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 能够激发更多的应用和平台,简化人类与智能语言智能体之间的交互,希望这项研究能够为未来语言智能体的研究和开发奠定基础,能够引领强大的现实世界语言智能体的普及化~