一个配置文件+几行代码,轻松定制你的简易西部世界!

作者:OpenBMB
2023-05-29 11:30:01
《西部世界》让我们想象了一个AI模拟人类的未来。最近,斯坦福大学的研究 Generative Agents(生成式智能体)在一个虚拟沙盒世界中创造了多个可以像人类一样生活、工作、互动的agent。然而截至目前,尚没有一套成熟的流程以方便研究人员搭建自己的multi-agent虚拟环境并进行相关研究。

为了解决这个问题OpenBMB 联合 THUNLP 的研究者们发布了 AgentVerse(多智能体世界)开源项目,旨在为广大研究人员提供一个易于使用、灵活且高度可扩展的平台,以便研究者能够 轻松定制自己的 multi-agent 环境,创建多个具有不同能力与不同身份的 agent,对他们的行为进行观察,或是令他们通过协作和竞争完成复杂任务。

 🔗 仓库地址   
https://github.com/OpenBMB/AgentVerse
 🔗 示例视频   
使用 AgentVerse 框架搭建的 NLP课堂 Demo,其中老师与学生都由 LLM 扮演

 


 

Generative Agents 昭示大模型梦幻潜力

人工智能能否模拟人类行为,是科幻和研究的永恒话题。最近斯坦福大学的一篇论文提出了一种名为 Generative Agents 的创新架构,基于该架构的 agent 能够利用 LLM 模拟真实人类行为,并记忆、检索、反思、与其他 agent 互动。例如,当看到早餐在燃烧时,agent 会关闭炉子;当遇到想要交谈的其他 agent 时,它会停下来与其进行对话。在这一个具有着多个 agent 的虚拟小镇中,不同的 agent 就像人类在社会中各司其职,在彼此互相交流的过程中扮演自己的社会角色,度过每一天。

这一研究展示了 LLM在模拟人类行为方面的巨大潜力展示了人工智能研究从个体智能到群体智能跨越的可能性,同时也为理解和模拟人类行为提供了一种全新的视角。同时,这一研究也为我们提供了充足的想象空间:通过利用 LLM,或许我们还可以更深入地探索多 agent 之间的交互、协作与竞争等复杂社会动态。这可能有助于发现与分析社会科学现象,验证理论假设以及推动人工智能领域乃至社会科学等领域的创新发展。

 


 

AgentVerse: 多智能体开源平台

为了方便研究人员构建类似 Generative Agents 研究中所呈现的虚拟小镇,AgentVerse 提供了一个灵活的框架,简化了搭建基于 LLM 的 multi-agent 场景的流程,使研究者们能够投入更多的精力在 multi-agent 场景的相关研究上,而非在繁琐的实现细节上。同时,框架也并不拘泥于 Generative Agents 研究中所展示的场景,而是可以根据研究者的需求进行自行定制。AgentVerse 在框架的设计上有着几个突出的特点:

  • 易用性:AgentVerse 提供了一组基本的模块,让研究者们可以轻松高效地创建 multi-agent 环境。对于简单场景,只需编写一个配置文件和几行代码,就可以轻松运行。

  • 可扩展性:AgentVerse 将 multi-agent 环境抽象为五个功能模块:
    • Describer:用于为每个 agent 提供其当前所处环境的描述

    • Order:用于决定 agent 在环境中的行动顺序

    • Selector:用于筛选掉不符合环境要求的 agent 回复

    • Updater:用于将 agent 回复更新至可以看到该回复的其他 agent 记忆中

    • Visibility:用于维护每个 agent 可以看到的其他 agent 名单(例如当两个 agent 处于不同房间时,他们不应互相看见)

不同功能模块提供了不同的接口,因此对于无法直接使用 AgentVerse 提供的基本模块构建的复杂环境,研究者可以自定义修改五个功能模块中的一个或多个,以根据自己的需求快速构建自己的 multi-agent 环境。

  • 支持工具:AgentVerse 支持使用工具(插件)的 multi-agent 环境,即在 agent 与环境进行交互的过程中,允许 agent 根据当前状态决定是否使用工具。目前,AgentVerse 支持 BMTools 提供的各种工具。

  • 支持不同的LLM:AgentVerse 基于 LangChain 构建,因此能够支持各种已经囊括在 LangChain 中的主流大型语言模型。研究者还可以通过参考 LangChain 文档,轻松自定义自己的 LLM。

AgentVerse 的开发,给广大研究人员和开发者带来了一个全新的 multi-agent 交互实验场,为探索虚拟世界中 agent 之间的协作、竞争和学习提供了极大便利。未来,基于 AgentVerse 的各类创新应用和突破性研究将有望在人工智能领域掀起一股新潮。

 


 

用例:在 AgentVerse 中构建简易课堂环境

作为一个例子,在AgentVerse中构建一个只包含教授、助教以及学生共三个人的简易课堂环境,并模拟上课的过程只需要三步:

1. 创建一个yaml配置文件,并写明环境的配置:

在AgentVerse中,multi-agent环境被抽象为5个模块,order, visibility, selector, updater和 describer,他们可以分别进行配置。读者可以参考仓库中的README了解这些模块的更详细的介绍。
2. 继续添加agent的配置,下面是作为教授的agent的配置:
3. 最后,按照在 format_prompt 中指定的输出格式,写一个简单的 parser 来从这一格式中提取出模型的输出内容即可。例如,如果我们要求模型必须按如下格式输出:

Action: Speak

Action Input: (some content)

那么我们则需要写一个 parser 接受上述格式,并提取出 (some content) 中的内容。以下为一份示例代码:

4. 至此大功告成,通过一份配置文件以及一个简单的 parser,我们完成了一个简易教室环境的搭建,现在我们可以开始查看 agent 模拟上课的情况了!更多详细内容,请参考仓库中的介绍。

 


 

一同助力 AgentVerse 成为更好的桥梁

OpenBMB 团队一直走在“让大模型飞入千家万户”的路上,始终专注于提供用户友好的大模型开源工具集,AgentVerse 是我们的最新探索成果,这个多智能体开源平台虽然具有易于使用、灵活且高度可扩展的优点,但仍有很多改进的空间。未来,我们将从以下几个方面不断优化和更新 AgentVerse:
  • 首先,我们将撰写更为详细的使用文档,以降低该框架的使用门槛

  • 其次,致力于支持更多的实际场景,提供更加方便扩展的接口

  • 另外,我们将持续关注并支持更多开源大模型,以满足各种应用场景的需求

  • 最后,我们将关注对话交互和用户体验的优化,以助力用户更便捷地利用 AgentVerse 构建和运行各类 multi-agent 应用
我们诚挚邀请 OpenBMB 开源社区的伙伴们共同参与,为 AgentVerse 的完善和发展贡献力量。在未来的发展中,我们希望 AgentVerse 成为一个连接研究者、开发者和行业应用的桥梁,催生更多人工智能的创新成果。