【论文】
【English | 简体中文】
AgentVerse 旨在简化基于大语言模型(LLM)的多智能体在各种应用中的部署。AgentVerse 主要提供两大框架:任务求解和环境模拟。
release-0.1 分支。应用场景:游戏、基于LLM的智能体社会行为研究等。
[2024/3/17] AgentVerse 被引入 NVIDIA 博客 - 构建您的首个 LLM 智能体应用。
[2024/1/17] 我们非常兴奋地宣布,我们的论文被 ICLR 2024 接收。更多更新即将到来!
[2023/10/17] 我们非常高兴地分享我们的开源 AI 社区 Hugging Face 空间:AgentVerse。您可以使用您的 OpenAI API 密钥和组织代码来尝试两个模拟应用:NLP 课堂和囚徒困境。玩得开心!
[2023/10/5] 重构我们的代码库,以同时支持模拟和任务求解框架的部署!我们已将论文中的 Minecraft 示例代码放在了 minecraft 分支。我们的工具使用示例将很快更新到 main 分支。敬请期待!
[2023/8/22] 我们很高兴分享我们的论文 AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents,该论文详细阐述了 AgentVerse 的任务求解框架。
[2023/6/5] 我们很高兴展示一系列演示,包括 NLP 课堂、囚徒困境、软件设计、数据库管理员 以及一个简单的 H5 口袋妖怪游戏,该游戏允许与口袋妖怪中的角色互动!试试这些演示,玩得开心!
手动安装(推荐!)
请确保 Python 版本 >= 3.9
git clone https://github.com/OpenBMB/AgentVerse.git --depth 1
cd AgentVerse
pip install -e .
如果您想使用本地模型(如 LLaMA)运行 AgentVerse,需要额外安装一些依赖:
pip install -r requirements_local.txt
通过 pip 安装
或者,您也可以通过 pip 安装:
pip install -U agentverse
您需要按如下方式导出您的 OpenAI API 密钥:
# 导出您的 OpenAI API 密钥
export OPENAI_API_KEY="your_api_key_here"
如果您想使用 Azure OpenAI 服务,请按如下方式导出您的 Azure OpenAI 密钥和 OpenAI API 基础地址:
export AZURE_OPENAI_API_KEY="your_api_key_here"
export AZURE_OPENAI_API_BASE="your_api_base_here"
- agentverse
- agents
- simulation_agent
- environments
- simulation_env
您可以创建我们提供的多智能体环境。以课堂场景为例。在此场景中,有九个智能体,一个扮演教授,另外八个扮演学生。
agentverse-simulation --task simulation/nlp_classroom_9players
我们还为此环境提供了一个本地网站演示。您可以通过以下命令启动:
agentverse-simulation-gui --task simulation/nlp_classroom_9players
成功启动本地服务器后,您可以访问 http://127.0.0.1:7860/ 查看课堂环境。
如果您想运行带有工具的模拟案例(例如,simulation/nlp_classroom_3players_withtool),您需要按如下方式安装 BMTools:
git clone git+https://github.com/OpenBMB/BMTools.git
cd BMTools
pip install -r requirements.txt
python setup.py develop
这是可选的。如果您不安装 BMTools,不带工具的模拟案例仍可正常运行。
- agentverse
- agents
- simulation_env
- environments
- tasksolving_env
要运行我们论文中提出的任务求解环境的实验,您可以使用以下命令:
要在基准数据集上运行 AgentVerse,可以尝试:
# 使用 gpt-3.5-turbo 运行 Humaneval 基准测试(配置文件 `agentverse/tasks/tasksolving/humaneval/gpt-3.5/config.yaml`)
agentverse-benchmark --task tasksolving/humaneval/gpt-3.5 --dataset_path data/humaneval/test.jsonl --overwrite
要在特定问题上运行 AgentVerse,可以尝试:
# 运行单个查询(配置文件 `agentverse/tasks/tasksolving/brainstorming/gpt-3.5/config.yaml`)。任务在配置文件中指定。
agentverse-tasksolving --task tasksolving/brainstorming
要运行我们论文中展示的工具使用案例,即多智能体使用诸如网络浏览器、Jupyter notebook、必应搜索等工具,您可以首先构建由 XAgent 提供的 ToolsServer。您可以按照他们的说明来构建和运行 ToolServer。
构建并启动 ToolServer 后,您可以使用以下命令运行带有工具的任务求解案例:
agentverse-tasksolving --task tasksolving/tool_using/24point
我们在 agentverse/tasks/tasksolving/tool_using/ 中提供了更多任务,展示了多智能体如何使用工具解决问题。
此外,您可以查看 agentverse/tasks/tasksolving 以了解我们在论文中进行的更多实验。
如果您想使用 vLLM,请按照此指南安装并设置 vLLM 服务器,该服务器用于处理更大的推理工作负载。创建以下环境变量以连接到 vLLM 服务器:
export VLLM_API_KEY="your_api_key_here"
export VLLM_API_BASE="http://your_vllm_url_here"
然后修改任务配置文件中的 model,使其与 vLLM 服务器中的模型名称匹配。例如:
model_type: vllm
model: llama-2-7b-chat-hf
本节提供了将 FSChat 集成到 AgentVerse 的分步指南。FSChat 是一个支持在本地机器上运行 LLaMA、Vicunna 等本地模型的框架。
如果您想使用本地模型(如 LLaMA),需要额外安装一些依赖:
pip install -r requirements_local.txt
然后根据您的需要修改 MODEL_PATH 和 MODEL_NAME,使用以下命令启动本地服务器:
bash scripts/run_local_model_server.sh
该脚本将为 Llama 7B 聊天模型启动一个服务。
AgentVerse 中的 MODEL_NAME 目前支持多种模型,包括 llama-2-7b-chat-hf、llama-2-13b-chat-hf、llama-2-70b-chat-hf、vicuna-7b-v1.5 和 vicuna-13b-v1.5。如果您希望集成与 FastChat 兼容的其他模型,您需要:
1. 在 agentverse/llms/__init__.py 的 LOCAL_LLMS 中添加新的 MODEL_NAME。
2. 在 agentverse/llms/__init__.py 文件的 LOCAL_LLMS_MAPPING 中,添加从新 MODEL_NAME 到其对应的 Huggingface 标识符的映射。
在您的配置文件中,将 llm_type 设置为 local,并将 model 设置为 MODEL_NAME。例如:
llm:
llm_type: local
model: llama-2-7b-chat-hf
...
您可以参考 agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml 获取更详细的示例。
请参阅 模拟展示
请参阅 任务求解展示
AgentVerse 的使命是革新大语言模型的多智能体环境,我们热切期待充满热情的协作者加入我们,共同踏上这段激动人心的旅程。
提交 Issue 和 Pull-Request:如果您在使用 AgentVerse 时遇到任何问题,可以用英文提出 Issue。此外,您也可以主动要求我们将 Issue 分配给您,并在解决后提交 PR(请遵循 PULL_REQUEST_TEMPLATE)。
代码开发:如果您是工程师,请帮助我们完善、优化和扩展当前框架。我们一直在寻找有才华的开发人员来增强现有功能并开发新模块。
文档和教程:如果您擅长写作,请帮助我们改进文档、创建教程或撰写博客文章,使 AgentVerse 更易于广大社区使用。
应用探索:如果您对多智能