OpenAgents 用基于「大语言模型」(LLMs)的技术和全栈工程代码尝试近似复刻了 ChatGPT Plus 的功能。智能体能执行 Python/SQL 代码,熟练调用工具,也能上网找地图发帖子,一路从研究代码实现到后端前端,让其变成了人人都能用的落地级别应用。OpenAgents 完整披露了他们采用的技术和遇到的困难,完全开源了代码,包含从科研到逻辑代码到前端代码的一切。代码完善、易于拓展,本地直接可以一键部署,配套提供了含有丰富的使用案例的文档,帮助研究者和开发者在模型上搭建自己的智能体和应用。
OpenAgents 总览图,面向用户的网页界面,面向开发者的本地部署,面向研究者的语言智能体。
代码链接:
https://github.com/xlang-ai/OpenAgents
论文链接:
https://arxiv.org/abs/2310.10634
Demo 链接:https://chat.xlang.ai/
文档链接:https://docs.xlang.ai/
与 ChatGPT Plus 的 “一样” 和 “不一样”
左边是 OpenAgents 的实现,右边是 ChatGPT Plus:
先来看看「数据分析」功能。同一个分析股票价格的任务,OpenAgents 和 ChatGPT 都能不错地完成用户对股价和交易的分析要求。不过 OpenAgents 可以自动搜索 Kaggle 数据集并下载,ChatGPT 需要用户从本地上传。
再试试 OpenAI 最早推出的「插件」功能。用户想要画一些八面体,两者都成功调用了 Wolfram 插件画出多种八面体的图片。
最后看看「网页浏览」。用户想要查询 10 月 20 日从中国香港到纽约的机票,OpenAgents 识别用户意图后直接跳转到 Skycanner,像 “真人” 一样一边思考一边在网站中填入信息,最后回到聊天页面总结信息;而 ChatGPT 处于安全考虑保证可控性,和调用插件类似,在云端做网页浏览,将最后搜寻到的信息返回。
由于 OpenAgents 提供了开源的代码,开发者和研究者可以定制,若干行代码适配自己想要的模型,改进、创造自己想要的功能,甚至创造新的 Agent。这对于该方向的进一步开展开发和研究至关重要。
看似简单,「生产力能用」的智能体为什么踩坑这么多?
智能体的开源框架不少,基于大模型的中间件更是层出不穷,为什么搭建一个真正方便可用的智能体并不容易,OpenAgents 在他们论文中与其他智能体框架进行了对比:
对比 OpenAgents 和其他的框架。
从表格中可以看出,「界面」(Interface) 和「配套环境」(Environment) 是 OpenAgents 与众不同的两个因素。现有的开源框架比如 LangChain,AutoGPT 和 BabyAGI 等旨在为开发者提供早期概念验证实现和控制台界面,但在真实世界中却不够鲁棒,这限制了更广泛受众的接入,特别是那些不熟悉编程或控制台的普通用户。而在闭源体系中,OpenAI 在 ChatGPT Plus 中部署了精心设计的产品,尤其是高级数据分析(之前称为代码解释器)、插件和 Bing 浏览等功能,利用进一步训练的模型、业务逻辑代码和培育的软件社区(例如,插件商店)。但是闭源导致它们难以作为开发和研究平台使用,社区无法站在巨人肩膀上探索、评估和改进。在侧重考量这些维度之后,OpenAgents 作为面向真实场景的开源 Agent 框架,为社区提供了一个可与 ChatGPT Plus 一较高下的平台。
在「界面」上,OpenAgents 提供线上的网页 demo (以及配套的开源代码),非程序员背景的普通用户也可轻松与智能体进行交互,而之前的工作通常不提供或者以「控制台指令界面」(CLI) 形式提供交互,极大地提高了智能体的使用门槛。在「配套环境」上,OpenAgents 支持真实世界环境和可控环境,支持超过 200 + 的日常工具调用,支持网页自动浏览。
这些功能侧重和配备使得 OpenAgents 成为对于普通用户最没有门槛的选择;也为研究、开发人员等提供可能是最好的直接面向用户的机会。
作为生产力的 Agent 未来的第一步:「用户」,「开发人员」,「研究人员」都能用的 Agent 平台
为了解决上述问题,OpenAgents 的动机是作为一个开源平台,为使用和部署智能体提供,目前包括三个关键智能体:
用于 Python 和 SQL 的数据智能体;
200 多个工具使用的插件智能体;
自动网络浏览的 Web 智能体。
OpenAgents 相信,为了让大语言模型发挥其全部潜力,它们必须从纯粹的理论或面向开发者的工具转变为为广泛用户群提供的动态、交互式系统。「普通用户」可以通过在线 Web UI 轻松探索智能体功能,无需编码专业知识。此外,OpenAgents 为「开发者」提供完整的业务逻辑和研究代码,以便在本地轻松部署,「研究人员」可以进一步构建语言智能体。最后,OpenAgents 旨在成为一个真实而全面的人类可交互的智能体评估平台:根据真实需求,真实用户与智能体互动以完成其任务,并记录整个用户 – 智能体互动过程和用户反馈以供进一步评估。与现有的基准测试和平台相比,OpenAgents 提供了一个真实环境,智能体可以满足各种真实的用户需求。
面临和克服的挑战
挑战 1: 基于提示来构建真实世界语言模型的弊端
在为真实用户构建基于提示的应用程序时,使用提示中的指令来设定特定要求。这些指令有不同目的,有一些是为了确保大语言模型的输出符合后端逻辑处理的特定格式(以特定键的字典形式输出);有一些是提升输出的美观度(尽可能一条条单独列出项目);有一些是用于防止潜在的攻击(拒绝用户恶意构造的无限循环程序并且执行)。
这些带着约束目的提示来约束语言模型需要开发者研究者反复调试出来一些可以使用的指令,这些指令加在一起通常会是几百个「词元」(token)甚至上千个词元,这些指令作为前缀会被反复输入到模型造成显卡资源的大量消耗;另外一方面,词元越多越依赖 LLM 有很好的性能,所以说这一条技术路线对大语言模型的指令跟踪能力和支持的上下文长度提出了一定的要求。
当前的开源模型在这些方面已经取得了显著的改进,但是在实验中仍然是不足以用来实际使用的,这方向的研究还可以继续。此外,需要更加重视智能体模型的基础开发和研究,以及针对特定领域和要求训练专用的智能体模型。这种方法可能比仅依赖于提示一个通用强大但固定模型更高效,也更可控。
挑战 2: 无法控制的现实因素
实现真实世界的语言智需要面对很多无法控制的现实因素,这些因素包括用户行为、互联网的基础设施和业务逻辑等,它们在过去的研究中并未得到充分建模。这就需要重新评估,甚至推翻许多过去研究中的假设和方法。必须考虑到的事是,调用的 API 所在的服务器可能会崩溃。这种情况需要监控并稳定地完成用户命令,而不是像过去的工具使用研究中所假设的那样。在生成回复的过程中,用户可能会感到不满意,这可能导致语言模型在生成过程中被中断。
此外,像 CAPTCHA 弹出或广告改变网页这样的不可预测事件,可能会在相对稳定的网页结构中引入一定程度的随机性,这在以前的自动浏览网页的工作中未曾考虑过。诸如此类的问题还有很多,比如说在智能体反应和思考的时间内(现在往往需要数秒)就改变的环境,等等。
挑战 3: 来自真实场景的额外指标
具体的研究通常过于强调性能指标,而忽视了现实场景中的基本需求。例如,使用流式(即每生成一个词元都尽快显示给用户)可以让用户能够快速感知系统的反馈,而无需等待长篇大论的文本生成完毕再一起看到。特意设计的提示可以让智能体的回复格式更加美观,这对用户体验有着显著影响。然而,现有的方法并未充分考虑这些影响。导致了尽管在准确性上的性能指标优秀,但在实际应用中,它们可能导致响应时间过长、文本可读性差等等导致用户体验不佳的问题,接下来的研究需要进一步考虑性能和用户体验之间的权衡问题。
挑战 4: 由系统问题引发的评估复杂性
构建直接针对应用程序的智能体可以满足更多用户需求,同时也能揭示更多评估挑战。但基于 LLM 的应用程序构建会带来额外的复杂性,使得难以判断失败案例是来源于 LLM 应用的限制还是逻辑代码的不足。举例说明,如果说一个用户因为没法从界面中直接拖拽上传文件而造成没有完成用户想要的操作而判断智能体能力不行是不合理的。因此,对智能体设计和操作逻辑的系统进行改进,简化智能体流程以及用户使用逻辑,或者构建一个更加完善的设计和实现逻辑,是有前景且必要的。
未来展望
OpenAgents 可以怎么样帮助社区做下一步的研究和开发?在他们的构想中至少有如下几点:
未来工作 1: 搭建更多智能体应用
OpenAgents 打通了一套完整的应用级语言智能体开发流程以及所需要的技术,并且开放了代码。这为其他创新应用与终端用户提供了可能。开发者们可以基于此开发任何自己想要的新应用,比如说多模态对话、语音对话、库级别代码助手等。
未来工作 2: 工具和组件集成
OpenAgents 致力于探索和解决构建实用级智能体应用的基本需求,为社区提供了一个强大的基础,使得社区可以轻松地通过集成其他组件进行水平扩展。同时,还可以扩展更多的基础模型,比如最近的大型多模态模型,以及适应新的 UI 设计等。
未来工作 3: 人机交互领域研究
开发者和研究者基于 OpenAgents 平台能轻松构建基于大语言模型的新智能体应用程序。OpenAgents 因此能帮助构建应用程序演示,供人机交互(HCI)研究人员深入研究更直观、更用户友好的界面设计。这将提升用户的参与度和满意度。
未来工作 4: 自适应用户界面生成
自动创建用户界面是一个有趣且具有挑战性的领域。这些界面能根据特定标准,如用户的设备、偏好或上下文,进行自我调整或定制。研究人员可以深入研究在基于 OpenAgents 的自适应 UI 中,如何应用大语言模型,以及它们对用户体验的影响。
未来工作 5: 大语言模型在实际应用场景下的评估
为大语言模型建立公正且稳健的评估方法,对于公平评价其能力和性能至关重要。目前,通过使用预先收集的数据和受控环境,对智能体进行基准测试。虽然这些评估非常关键,但它们往往无法全面反映真实世界中的动态挑战。鼓励社区对这些评估指标和平台进行扩展或完善,这将显著推动该领域的发展,并为大语言模型的实际性能和能力提供更准确的评估和洞察。
暂无评论内容