只用专注于智能体本身研究

丰色 发自 凹非寺

量子位 | 公众号 QbitAI

可以轻松模拟社会实验的多智能体宇宙来了——

它由清华大学联合北邮、微信团队推出,目前已在GitHub揽获1.1k标星。

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

名字简单粗暴,就叫“AgentVerse”。

划重点:这个环境专门针对大语言模型开发,也就是智能体们可以运用LLM的能力完成任务。

只需几行简单配置,你想让智能体们在什么环境出生,就能在什么环境成长。

比如“囚徒困境”

狱警向两个嫌疑人agent提出一个两难挑战,让他们自己决定是合作互惠还是背叛。

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

比如“NLP课堂”

教授通过文字形式授课,学生agent通过有问题时举手、被点名之后方可发言提问的方式,一步步学会知识。

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

甚至,还能模拟简单的宝可梦游戏…而且还是用户可以直接参与进去的那种:

(通过输入文本进行对话)

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

要啥有啥,全凭你自己发挥。

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

作者也表示,这个项目的初衷就是简化大伙儿用LLM构建自定义多智能体环境的过程,让大家能够专注于研究本身。

目前,AgentVerse的论文已经发布,源码也在路上了。

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

赶紧来瞧瞧。

4个阶段、5大基础组件

正如AgentVerse专为大模型开发,如今人类训练智能体的效果正是在各种LLM的加持下,跟着进步了很多,比如更强的泛化能力。

不过,就和现实世界一样,即使有LLM助力,学会合作也是这些智能体们必须要经历的一件事。

在此,作者提出了多智能体环境构建框架AgentVerse。

它的工作流程模拟了人类合作解决问题的过程,一共分为4个阶段:

1、专家招募(Expert Recruitment)。

根据当前问题解决进度调整由那些agent来处理任务。

2、讨论合作策略(Collaborative Decision)。

由上一阶段招募的agent讨论解决问题所需的分工,需要达成共识。

3、执行(Action Execution)

agent们与环境进行交互,完成任务。

4、评估(Evaluation)

任务完成后,此模块将当前状态与期望目标进行比对,如果没有达到预期就发送反馈奖励重新回到第一步骤。

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

如开头提到,AgentVerse框架的亮点之一就是可以实现自定义环境配置

那么如何自定义?

方法是通过5个基础组件。

每一个组件代表的其实是一个规则,组合不同的规则就可以搭建出不同的环境,从而方便研究人员研究不同条件下智能体的行为。

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

具体来看,这5个组件分别是:

  • 描述器(Describer),它为每个agent提供每次环境的描述。通过自定义该组件,你就能根据你自己的特定要求来构建环境。
  • 顺序(Order),它定义agent在环境中采取操作的顺序,可以采用几个默认选项,比如random(随机)、sequential(按顺序)和concurrent(所有agent在每个回合中都采取行动),也可以自定义。
  • 选择器(Selector),有时agent会生成一些无效信息,它就用于过滤这些信息,选择有效内容。
  • 更新器(Updater),用于更新每个agent的内存。这是因为有时某个agent的响应不应被所有agent看到(比如不在一个房间),它的作用就是在每个响应发生后,仅更新每个agent应看到内容。
  • Visibility(可见性),用于维护agent列表,每当有agent移动到另一个房间或者产生其他变化时,它会向所有agent更新列表。

除了这5个基础组件,AgentVerse还有一个非常基础的元素:agent。

目前,系统提供两种类型:一个是ConversationAgent,一个是ToolAgent,含义如其名。

当然,通过继承BaseAgent类我们还能定制第三种,以及更多类型代理。

如何配置?

手动clone或者pip命令即可安装AgentVerse。

需要注意的是,得准备一个OpenAI API密钥,以及安装BMTools(可选,如果你需要它提供的各种扩展工具)。

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

如上准备就绪后:
1、我们可以直接运行他们搭好的例子。

除了开头展示的“囚徒困境”、NLP课堂、宝可梦游戏,还有软件设计场景(1个写代码的agent、1个测试agent、1个审查agent)、数据库管理场景和文本评估场景。

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

值得注意的是,在NLP课堂这个主题上,作者提供了非常多的环境可选:

除了开头展示的那个可进行提问操作的case,还有可以发起小组讨论、学生在听课时使用必应进行搜索、用WolframAlpha API玩算术游戏等等。

2、自己动手搭一个。

自己动手可以先来一个简单的,比如构建一个只有1名教授、1名学生和1个助教的课堂环境。

首先创建任务目录并配置环境,也就是上面介绍的5个基础组件配置:

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

然后是配置agent,下面是教授的示例:

可以看到agent类型、名字、所用LLM类型等信息。

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

最后编写输出解析器,服务gent的响应,比如可以让模型在提示模版中以下格式输出:

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

以上就是一个简单教室环境的大概流程了。

以看到步骤并不复杂,当然,具体操作还是参阅项目原文。

如果你觉得这种太简单,也可以定制一个更复杂的。但具体教程还没出(据说很快了)。

从作者提前透露的信息来看,大体也还是围绕五个基本组件、环境本身和agent来进行。

另外,AgentVerse未来还会新增一些强大功能,比如支持本地LLM、添加文档等等,可以期待。

One More Thing

在论文中,作者也对AgentVerse环境构建的多智能体协作任务中,agent出现的一些社会行为进行了研究。

这些行为包括:

(1)积极行为,比如在我的世界游戏中,提出和别的agent一起收集甘蔗加快造纸进度,或者帮还没完成毛皮收集的人一起收集;

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

(2)消极行为,比如从众、搞破坏。

清华智能体宇宙火了,AI模拟“囚徒困境”等实验只需几行简单配置

在此,作者也讨论了一些可能的策略,用于复用积极行为、摒弃消极行为,最终提高多智能体间的合作能力。

感兴趣的读者可以进一步查阅论文。

项目地址:
https://github.com/OpenBMB/AgentVerse
论文地址:
https://arxiv.org/abs/2308.10848