AgentVerse 是一个开源项目,旨在帮助用户快速部署基于大语言模型(LLM)的多智能体系统。它提供两种核心框架:任务解决和模拟环境。任务解决框架通过多个智能体协作,自动完成复杂任务,例如软件开发或咨询服务。模拟框架允许用户创建自定义环境,观察多个智能体的行为或与它们互动,适用于游戏或社会行为研究。AgentVerse 支持主流大语言模型(如 GPT-3.5 和 LLaMA),并提供命令行和图形界面两种操作方式。项目由 OpenBMB 团队开发,已在 ICLR 2024 会议上发表论文,并持续更新以支持更多功能,如本地模型集成和工具使用。
功能列表
- 多智能体任务解决:支持多个智能体协作完成任务,如软件开发、数据分析或咨询系统。
- 模拟环境搭建:允许用户创建自定义场景,观察智能体行为或与之互动,适用于游戏或社会研究。
- 支持主流大语言模型:兼容 OpenAI API、Azure OpenAI 以及本地模型(如 LLaMA、Vicuna)。
- 命令行与图形界面:提供 CLI 和 GUI 两种操作方式,便于用户快速上手。
- 工具集成:支持智能体使用外部工具(如网页浏览器、Jupyter Notebook)完成复杂任务。
- 开源与可扩展:代码完全开源,用户可根据需求修改或扩展功能。
- 丰富的示例与文档:提供多种演示案例,如 NLP 课堂、囚徒困境和软件设计,方便学习与使用。
使用帮助
安装流程
AgentVerse 支持 Python 3.9 及以上版本,推荐通过手动安装以获取最新功能。以下是详细的安装步骤:
- 克隆代码库:
使用 Git 克隆 AgentVerse 代码库到本地:git clone https://github.com/OpenBMB/AgentVerse.git --depth 1 cd AgentVerse
- 安装依赖:
在项目目录下运行以下命令安装核心依赖:pip install -e .
如果需要使用本地模型(如 LLaMA),额外安装以下依赖:
pip install -r requirements_local.txt
- 通过 pip 安装(可选):
如果不想克隆代码库,可直接通过 pip 安装:pip install -U agentverse
- 配置环境变量:
使用 OpenAI API 的用户需设置 API 密钥:export OPENAI_API_KEY="your_api_key_here"
如果使用 Azure OpenAI 服务,需额外设置:
export AZURE_OPENAI_API_KEY="your_api_key_here" export AZURE_OPENAI_API_BASE="your_api_base_here"
- 工具支持(可选):
如果需要运行带工具的模拟案例(如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
- vLLM 支持(可选):
若需使用 vLLM 处理大规模推理任务,需先安装并启动 vLLM 服务器,然后设置环境变量:export VLLM_API_KEY="your_api_key_here" export VLLM_API_BASE="http://your_vllm_url_here"
在任务配置文件中修改模型设置,例如:
model_type: vllm model: llama-2-7b-chat-hf
- FSChat 支持(本地模型):
若使用本地模型(如 LLaMA),需安装 FSChat 依赖并启动本地服务器:pip install -r requirements_local.txt bash scripts/run_local_model_server.sh
修改配置文件中的
llm_type
和model
,例如:llm: llm_type: local model: llama-2-7b-chat-hf
使用方式
AgentVerse 提供两种主要框架:任务解决和模拟环境。以下是具体操作方法:
1. 任务解决框架
任务解决框架适合需要多个智能体协作完成复杂任务的场景。用户可通过命令行运行预设任务或自定义任务。
- 运行基准测试:
使用 Humaneval 数据集测试 AgentVerse 性能:agentverse-benchmark --task tasksolving/humaneval/gpt-3.5 --dataset_path data/humaneval/test.jsonl --overwrite
- 运行单个任务:
运行预设的头脑风暴任务:agentverse-tasksolving --task tasksolving/brainstorming
- 工具使用任务:
运行带工具的任务(如解决 24 点游戏):agentverse-tasksolving --task tasksolving/tool_using/24point
确保已启动 XAgent 的 ToolServer。更多工具使用任务可在
agentverse/tasks/tasksolving/tool_using/
目录中找到。
2. 模拟环境框架
模拟框架适合研究智能体行为或创建交互场景。用户可通过 CLI 或 GUI 运行模拟。
- 命令行运行:
以 NLP 课堂(9 个智能体,包括 1 名教授和 8 名学生)为例:agentverse-simulation --task simulation/nlp_classroom_9players
- 图形界面运行:
启动本地 Web 服务器以可视化模拟:agentverse-simulation-gui --task simulation/nlp_classroom_9players
启动后,访问
http://127.0.0.1:7860/
查看模拟环境。
3. 自定义任务与环境
用户可通过修改 agentverse/tasks/
目录下的配置文件创建自定义任务或模拟环境。配置文件通常为 YAML 格式,包含模型类型、任务描述和智能体角色等信息。例如,agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml
是一个完整的任务配置文件示例。
特色功能操作
- 多智能体协作:任务解决框架中,智能体根据角色分工(如规划者、执行者)协作完成任务。例如,在软件开发任务中,一个智能体负责需求分析,另一个生成代码,最后一个进行测试。
- 工具使用:智能体可调用外部工具(如 Bing 搜索、Jupyter Notebook)处理复杂任务。例如,在 24 点游戏任务中,智能体通过工具计算数学表达式。
- 模拟交互:在模拟框架中,用户可设置智能体的行为规则,观察其在特定场景(如囚徒困境)中的决策过程,或通过 GUI 与智能体互动。
应用场景
- 软件开发
AgentVerse 的任务解决框架可用于自动化软件开发。多个智能体分工协作,一个负责需求分析,一个生成代码,另一个进行调试和测试,显著提高开发效率。 - 教育研究
模拟框架中的 NLP 课堂场景可用于研究大语言模型在教育环境中的表现。用户可观察教授与学生智能体的互动,分析教学效果。 - 社会行为研究
模拟框架支持创建如囚徒困境的场景,研究智能体在竞争或合作环境中的行为模式,适用于社会学或博弈论研究。 - 游戏开发
用户可通过模拟框架创建交互式游戏环境(如 Pokemon 游戏演示),让智能体扮演角色与玩家互动,适合游戏原型设计。
QA
- AgentVerse 支持哪些大语言模型?
AgentVerse 支持 OpenAI API(如 GPT-3.5)、Azure OpenAI 以及本地模型(如 LLaMA、Vicuna)。用户需配置相应的 API 密钥或本地服务器。 - 如何运行带工具的任务?
需先安装 BMTools 或 XAgent 的 ToolServer,然后运行agentverse-tasksolving --task tasksolving/tool_using/24point
等命令。确保工具服务器正常运行。 - 模拟环境的 GUI 如何访问?
运行agentverse-simulation-gui --task simulation/nlp_classroom_9players
后,访问http://127.0.0.1:7860/
即可查看图形界面。 - 如何贡献代码或反馈问题?
用户可通过 GitHub 提交 issue 或 pull request。遵循PULL_REQUEST_TEMPLATE
提交代码,或联系 AgentVerse 团队(agentverse2@gmail.com)。