这篇AI论文介绍了Agents:一个用于自主语言代理的开源Python框架

这篇AI论文介绍了Agents:一个开源的Python框架,用于自主语言代理

在客户服务、咨询、编程、写作、教学等任务中,语言代理可以减少人力投入,是实现人工通用智能(AGI)的潜在第一步。最近对语言代理潜力的展示,包括AutoGPT和BabyAGI,引起了研究人员、开发者和广大观众的广泛关注。

即使对经验丰富的开发人员或研究人员来说,大多数这些演示或存储库并不利于定制、配置和部署新的代理。这种限制来源于这些演示经常是证明概念,强调语言代理潜力的证明,而不是更实质性的框架,可以用来逐步开发和定制语言代理。

此外,研究表明,大多数这些开源源码只涵盖了基本语言代理能力的一小部分,例如作业分解、长期记忆、网络导航、工具使用和多代理通信。此外,目前使用的大多数(如果不是全部)语言代理框架都仅依赖于简短的任务描述,并完全依赖于LLMs的规划和行动能力。由于不同运行之间的高度随机性和一致性,语言代理很难修改和调整,用户体验较差。

来自AIWaves Inc.、浙江大学和苏黎世联邦理工学院的研究人员提出了AGENTS,这是一个开源的语言代理库和框架,用于支持由LLM驱动的语言代理。AGENTS的目标是使语言代理的定制、调优和部署尽可能简单,即使对非专业人士也是如此,同时又易于程序员和研究人员进行扩展。该库还提供了下面列出的核心功能,结合在一起使其成为一个灵活的语言代理平台:

长短期记忆:AGENTS集成了内存组件,使语言代理能够定期使用草稿本更新短期工作内存,并使用VectorDB和语义搜索存储和检索长期记忆。用户只需在配置文件中填写一个字段,即可决定是否给代理提供长期记忆、短期记忆或两者。

网络导航和工具使用:自主代理使用外部工具和浏览互联网的能力是另一个关键特征。AGENTS支持一些广泛使用的外部API,并提供一个抽象类,使程序员能够轻松地整合其他工具。通过将Web搜索和导航分类为专用API,我们还使代理能够浏览互联网并收集信息成为可能。

多代理交互:AGENTS允许定制化的多代理系统和单代理能力,这对于特定应用程序(如游戏、社会实验、软件开发等)可能是有用的。AGENTS中的“动态调度”功能是多代理通信的一个新添加。动态调度允许建立一个作为“调节者”的控制器代理,并根据其角色和最近的历史选择下一个行动的代理,而不是根据硬编码规则调度代理的顺序。使用动态调度时,多个代理之间的交流变得更加灵活和自然。开发人员可以通过在配置文件中使用普通语言定义控制器的规则,快速修改控制器的行为。

AGENTS支持单代理和多代理场景下的人机交互,实现人与语言代理之间的互动和通信。

可控性:使用符号计划,通常称为标准操作程序(SOPs),AGENTS为开发可控代理提供了一种革命性的范式。SOP是一个具有多个状态的图表,描述了代理在执行任务时可能遇到的各种情况以及状态之间的转换规则。AGENTS中的SOP是一份精心记录的详细指令集合,指定了代理或一组代理应如何执行特定的活动或过程。这类似于现实世界中的SOP。LLM可以生成用户可以在个性化和微调代理时修改的SOP。部署后,代理将按照为每个状态设定的指令和标准执行,并根据与外界、人员或其他代理的互动动态地改变其当前状态。通过符号计划的出现,现在可以对代理的行为进行细粒度的控制,提高其稳定性和可预测性,同时促进调整和代理优化。

团队希望 AGENTS 能够使研究人员更容易研究语言代理,开发人员能够创建利用语言代理的应用程序,非技术人员能够创建和修改独特的语言代理。