AgentVerse
扫码查看

一个用于部署多智能体应用的开发框架

AgentVerse

综合介绍

AgentVerse 是一个由 OpenBMB 开源社区设计的 Python 框架,主要目的是为了让开发者可以更轻松地部署和应用多个基于大语言模型(LLM)的智能体。 这个框架提供了两种核心功能:任务解决(Task-solving)和环境模拟(Simulation)。 在任务解决框架中,多个智能体可以协同工作,像一个团队一样共同完成一个复杂的任务,比如辅助软件开发或者提供咨询服务。 在环境模拟框架中,用户可以创建一个自定义的环境,然后在里面观察多个智能体的行为和互动,这对于研究大语言模型智能体的社会行为非常有帮助。 AgentVerse 的目标是简化多智能体应用的开发过程,并提供一个平台来探索和研究智能体之间的协作能力和可能出现的“涌现”行为。

功能列表

  • 双重核心框架:提供“任务解决”和“环境模拟”两个主要的框架,满足不同应用需求。
  • 任务解决框架 (Task-solving):可以将多个不同功能的智能体组合成一个系统,让它们合作处理同一个任务,例如让一些智能体负责编码,一些负责测试,共同完成软件开发。
  • 环境模拟框架 (Simulation):允许用户搭建自定义的虚拟环境,用于观察智能体之间的互动和行为。例如,可以模拟一个教室环境,观察扮演老师和学生的智能体如何互动。
  • 命令行工具:提供了简单易用的命令行接口,用户可以通过命令快速启动和运行预设的多智能体任务。
  • 本地大模型支持:支持接入本地部署的大语言模型(如 LLaMA、Vicuna),也支持通过 vLLM 和 FastChat 等框架进行模型推理。
  • 丰富的应用案例:项目提供了多个开箱即用的示例,包括“NLP课堂”、“囚徒困境”、软件设计和数据库管理员等,方便用户理解和使用。
  • 工具使用集成:在任务解决框架中,支持智能体使用外部工具(如网页浏览器、代码解释器)来完成更复杂的任务。

使用帮助

AgentVerse 作为一个功能强大的多智能体框架,为开发者和研究人员提供了便捷的工具来部署和实验。下面将详细介绍如何安装和使用 AgentVerse。

1. 安装

首先,需要确保你的系统已经安装了 Python 3.9 或更高版本。

手动安装(推荐方式)

这是官方推荐的安装方式,因为它能确保你获取到最新的代码。

第一步,使用 git 克隆 AgentVerse 的代码仓库到本地:

git clone https://github.com/OpenBMB/AgentVerse.git --depth 1

第二步,进入项目目录:

cd AgentVerse

第三步,使用 pip 安装项目及其依赖:

pip install -e .

这种方式安装后,你在本地对代码的任何修改都会立刻生效,方便进行二次开发。

如果你计划使用本地部署的大语言模型(例如 LLaMA),还需要安装额外的依赖包:

pip install -r requirements_local.txt

使用 pip 直接安装

这是一种更快捷的安装方式,适合那些只想直接使用 AgentVerse 功能的用户:

pip install -U agentverse

2. 配置环境变量

要让 AgentVerse 中的智能体调用大语言模型,你需要配置 API 密钥。

配置 OpenAI API 密钥

如果你使用 OpenAI 的模型(如 GPT-3.5, GPT-4),需要在终端中导出你的 API 密钥:

export OPENAI_API_KEY="你的OpenAI API密钥"

你需要将 你的OpenAI API密钥 替换成你自己的真实密钥。

配置 Azure OpenAI 服务

如果你使用 Azure 提供的 OpenAI 服务,则需要配置密钥和API地址:

export AZURE_OPENAI_API_KEY="你的Azure API密钥"
export AZURE_OPENAI_API_BASE="你的Azure API地址"

3. 核心功能使用

AgentVerse 的主要功能通过命令行工具来调用,分为“环境模拟”和“任务解决”两大场景。

A. 环境模拟 (Simulation)

这个功能让你创建一个虚拟环境,观察多个智能体在其中的互动。

通过命令行运行

AgentVerse 已经内置了一些模拟场景。以“NLP课堂”为例,这个场景包含一个扮演教授的智能体和八个扮演学生的智能体。你可以用下面这个简单的命令来启动它:

agentverse-simulation --task simulation/nlp_classroom_9players

执行后,程序会开始模拟课堂内的对话和行为,并将结果输出到终端。

通过图形界面运行

为了更直观地观察模拟过程,AgentVerse 还提供了一个基于 Gradio 的网页界面。使用以下命令启动本地服务器:

agentverse-simulation-gui --task simulation/nlp_classroom_9players

启动成功后,在浏览器中访问 http://127.0.0.1:7860/,你就可以看到一个可视化的课堂环境,并实时观察智能体之间的对话。

B. 任务解决 (Task-Solving)

这个功能将多个智能体组织起来,共同解决一个具体的问题。

运行一个预设任务

你可以运行一个具体的任务,让智能体进行协作。例如,运行一个头脑风暴任务:

agentverse-tasksolving --task tasksolving/brainstorming

这个命令会根据 agentverse/tasks/tasksolving/brainstorming/ 目录下的配置文件,启动一组智能体来共同探讨一个问题。

在基准数据集上运行

AgentVerse 还可以用于在标准的评测数据集(如代码生成领域的 Humaneval)上进行测试。

agentverse-benchmark --task tasksolving/humaneval/gpt-3.5 --dataset_path data/humaneval/test.jsonl

这个命令会使用 gpt-3.5-turbo 模型在 Humaneval 数据集上运行测试,并评估智能体团队解决编程问题的能力。

4. 使用本地大语言模型

如果你不想依赖商业 API,或者想在自己的模型上进行实验,可以配置 AgentVerse 使用本地模型。

通过 FastChat 接入

FastChat 是一个支持多种开源模型的服务框架。

  1. 安装依赖:
    pip install -r requirements_local.txt
    
  2. 启动本地服务器:AgentVerse 提供了一个脚本来帮助你快速启动 FastChat 服务器。你需要根据你的模型路径和名称修改该脚本。
    bash scripts/run_local_model_server.sh
    
  3. 修改配置文件:在你的任务配置文件(通常是 config.yaml 文件)中,将 llm 部分修改为如下格式,指定使用本地模型:
    llm:
    llm_type: local
    model: llama-2-7b-chat-hf
    

    这里的 model 名称需要与你在 FastChat 中加载的模型一致。

应用场景

  1. 软件开发AgentVerse 可以模拟一个软件开发团队。 例如,一个智能体充当“需求分析师”来明确任务,一个充当“程序员”来编写代码,另一个充当“测试工程师”来检查代码质量。它们可以协同工作,自动完成从代码编写、审查到测试的整个流程。
  2. 学术研究研究人员可以利用 AgentVerse 的环境模拟功能,构建虚拟的社会环境,用于研究基于大语言模型的智能体的群体行为、决策过程和沟通模式。例如,通过“囚徒困境”模拟,可以探索智能体在不同策略下的合作与背叛行为。
  3. 游戏设计游戏开发者可以使用 AgentVerse 为游戏创造更智能、行为更复杂的非玩家角色(NPC)。这些 NPC 不再依赖固定的脚本,而是可以根据环境和其他角色的行为进行实时互动,从而为玩家提供更加动态和沉浸式的游戏体验。
  4. 教育与培训AgentVerse 可以用于创建模拟的教学环境,例如“NLP课堂”。在这个场景中,一个智能体扮演老师,其他智能体扮演学生。这不仅可以用来演示教学过程,还可以用于测试不同教学方法对“学生”智能体学习效果的影响。

QA

  1. AgentVerse是什么?AgentVerse 是一个开源的 Python 框架,由 OpenBMB 社区开发,旨在帮助用户快速构建、部署和评估由多个大语言模型(LLM)驱动的智能体应用。它主要包含任务解决和环境模拟两个核心框架。
  2. AgentVerse 和其他单一的 AI Agent 工具有什么不同?大多数 AI Agent 工具关注于单个智能体的能力,而 AgentVerse 的核心是“多智能体”协作。它提供了一个完整的框架来管理多个智能体之间的通信、任务分配和协同工作,让它们像一个团队一样解决更复杂的问题。
  3. 使用 AgentVerse 需要编程基础吗?需要一些基础的 Python 编程知识和命令行操作经验。AgentVerse 通过配置文件和命令行工具简化了许多操作,但要进行深度定制或开发新功能,还是需要理解其代码结构和编程接口。
  4. AgentVerse 支持哪些大语言模型?AgentVerse 支持通过 API 调用 OpenAI 的模型(如 GPT-3.5、GPT-4),也支持通过 vLLM 或 FastChat 等框架接入和使用本地部署的开源模型,如 LLaMA 和 Vicuna,具有很好的灵活性。
微信微博Email复制链接