OpenAgents:为语言代理提供的开放平台

Code: https://github.com/xlang-ai/OpenAgents

Demos: https://chat.xlang.ai Docs: XLang Agents

研究动机

问题语言代理显示出在不同环境中利用自然语言完成各种复杂任务的潜力,特别是在构建在大型语言模型(llm)上时。当前的语言代理框架旨在促进概念验证语言代理的构建,而忽略了非专家用户对代理的访问,并且很少关注应用级设计。

研究问题:

  1. 系统设计

OpenAgents 架构主要包含两部分:

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

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

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

  1. 语言智能体

这里有 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 交互和网页导航的沙盒环境。这些环境作为智能体的全面测试平台,方便代码生成、插件交互和网页操作等任务。

三个不同的代理:数据代理,插件代理,web代理

  1. 数据代理
  1. 目的:处理实际用户每天都会遇到的各种与数据相关的任务。
  2. 方法:我们支持两种编程语言的代码生成和执行:Python和SQL。我们还集成了几个数据工具供代理使用:(1)Kaggle数据搜索(通过调用API在Kaggle上搜索数据集);(2)数据剖析(提供基本数据信息的启发式数据剖析);(3)电子图表工具(交互式电子图表绘图)。我们提示代理主动使用这些数据工具来响应用户请求。

我们选择在工具中嵌入语言模型,并让工具而不是代理生成代码。具体来说,Python、SQL和ECharts等工具将生成代码,从而利用语言模型的全部编程能力,减轻代理本身的压力。

  1. 插件代理
  1. 目的:满足用户日常任务的多方面要求,这些任务需要额外的插件,例如购物,搜索,新闻阅读,天气预报和网站创建。
  2. 方法:We have integrated over 200 plugins from various sources, some of the prominent plugins include (1) Google Search; (2) Wolfram Alpha; (3) Zapier; (4) Klarna; (5)Coursera; (6) Show Me; (7) Speak; (8) AskY ourPDF; (9) BizToc; and (10) Klook. .特别注意ping API、函数调用接口和API响应长度,使基于llm的代理能够最佳地利用这些插件。

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

用户可以选择一个或多个插件,他们希望让他们的代理利用基于他们的需求的给定指令我们已经纳入了一个功能,根据他们的说明自动选择最相关的插件。

  1. 网络代理
  1. 目的:我们将web代理作为一种专门的工具来展示,旨在增强聊天代理的功能。主要的交互界面仍然是聊天代理,但在必要时,它会无缝地涉及到web代理。然后,web代理将最终响应交付给用户

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

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

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

方法设计要点

部署中的关键挑战

  1. 通过提示将llm转化为现实世界应用程序的挑战

在基于LLM提示为实际用户构建应用程序时,我们通过提示中的指令指定某些需求。其中一些指令的设计是为了确保llm的输出符合我们后端逻辑处理的特定格式另一些则旨在增强输出的美学吸引力(例如,尽可能单独列出项目)。此外,一些指令用于防御潜在的攻击(例如,拒绝用户在程序中恶意制作的无限循环)。

此外,需要更加强调代理模型的基础开发和研究,以及培训针对特定领域和需求量身定制的专用代理模型(可能不是llm)。这种方法可能比纯粹依赖于提示一个强大但固定的模型更有效和可控。

  1. 不可控的现实因素

我们必须假设服务器托管我们称之为崩溃的api的可能性,在这种崩溃期间监控和健壮地完成用户命令,而不是在工具使用研究中假设的

未解决:在响应生成过程中,用户可能会感到不满意,从而干预并导致语言模型中途停止生成。不可预测的事件,如captcha弹出或广告改变网页,即使在相对稳定的网页结构中也可能引入一定程度的随机性,这在以前的自主网页浏览工作中没有被考虑

  1. 来自真实世界场景的额外指标

研究主要强调性能指标,经常忽略来自真实场景的基本需求。我们在实现过程中学到的一个实例是流。它允许用户快速感知系统响应,而不是等待冗长的文本生成。特别设计的提示使代理响应的格式更美观。这些显著影响用户体验。

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

虽然直接针对应用程序构建代理可能会迎合更广泛的用户群,并为更好的评估带来更多挑战,但基于llm构建应用程序会带来额外的复杂性。这种复杂性使得辨别某些故障案例是源于基于llm的应用程序的限制还是源于我们逻辑代码中的不足变得具有挑战性。

实验结论与发现

未来方向

  1. 代理应用程序

OpenAgents建立了一个构建应用程序级语言代理的完整管道,从而为其他创新应用铺平了道路,例如可定制的对话系统、多模态交互和面向最终用户的自动化工作流集成。这些应用程序不仅提供了独特的优势,而且还共同为更丰富、更以用户为中心的代理应用程序环境做出了贡献。

  1. 工具和组件集成

OpenAgents探索并解决了构建实用级代理应用程序的基本要求,奠定了一个强大的基础,允许社区通过集成其他组件(如工具)毫不费力地横向扩展(例如,从更多样化的API源集成,如PublicAPIs2),扩展更多的基础模型,适应新的ui设计等。

  1. Human-LM交互

我们相信OpenAgents因此可以帮助构建应用程序演示,供人机交互(HCI)研究人员深入研究更直观和用户友好的界面设计

  1. 自适应UI生成

研究人员可以进一步探索基于OpenAgents的自适应UI使用llm的各种方式,以及它们以不同格式对用户体验的影响。

  1. In-the-wild Evaluation of LLMs
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐