AgentGym: 基于大型语言模型的智能体在多样环境中的演化
📃 论文 • 🌐 项目页面 • 🤗 AgentTraj-L • 🤗 AgentEval • 🤗 模型(AgentEvol-7B)
🔔 新闻
- 🥳 [2024/06/07] 我们的论文在arXiv上发布: AgentGym: 基于大型语言模型的智能体在多样环境中的演化!
- 🤖 [2024/06/06] 我们的模型在Hugging Face上提供:AgentEvol-7B。
- 💥 [2024/06/06] 我们的轨迹集和基准在Hugging Face上提供:AgentTraj-L、AgentEval。
- ✨ [2024/06/06] AgentGym套件发布,包括平台代码、数据集、基准和训练实现!我们欢迎社区贡献更多的智能体环境和其他内容!
🌟 介绍
构建能够处理多样任务并在不同环境中自我进化的通用智能体是AI社区的长期目标。大型语言模型(LLMs)因其广泛的基础能力被认为是构建此类智能体的有希望的基础。
AgentGym 是一个新的框架,具有多种环境和任务,用于广泛、实时、统一和并发的智能体探索。它旨在帮助社区轻松评估和开发具备广泛能力的LLM智能体。它还包括一个高质量的轨迹集 AgentTraj 和一个基准套件 AgentEval。我们还提出了一种新的方法 AgentEvol,以研究智能体在超越先前数据的任务和环境中自我进化的潜力。实验结果表明,进化的智能体可以达到与最先进模型相当的结果。
🎁 AgentGym 套件
AgentGym是一个旨在帮助社区轻松评估和开发具备广泛能力的LLM智能体的框架。它具有多种互动环境和任务,采用统一格式,即ReAct格式。它支持实时反馈和并发使用,并具有良好的可扩展性。它包括14个环境,涵盖网页导航、文字游戏、家庭任务、电子游戏、实体任务、工具使用和编程。
环境 | Traj | Eval | 原始仓库 | 环境服务器 |
---|---|---|---|---|
WebShop | 3930 | 200 | WebShop-仓库 | agentenv-webshop |
WebArena | 0 | 20 | WebArena | agentenv-webarena |
MAZE | 215 | 25 | MAZE-仓库 | agentenv-lmrlgym |
Wordle | 955 | 25 | Wordle-仓库 | agentenv-lmrlgym |
ALFWorld | 2420 | 200 | ALFWorld-仓库 | agentenv-alfworld |
SciWorld | 2120 | 200 | SciWorld-仓库 | agentenv-sciworld |
BabyAI | 810 | 90 | BabyAI-仓库 | agentenv-babyai |
TextCraft | 374 | 100 | TextCraft-仓库 | agentenv-textcraft |
Weather | 311 | 20 | Weather-仓库 | agentenv-tool |
Movie | 215 | 20 | Movie-仓库 | agentenv-tool |
Academia | 0 | 20 | Academia-仓库 | agentenv-tool |
Sheet | 0 | 20 | Sheet-仓库 | agentenv-tool |
TODOList | 135 | 20 | TODOList-仓库 | agentenv-tool |
BIRD | 3000 | 200 | BIRD-仓库 | agentenv-sqlgym |
平台
AgentGym 的平台架构如下图所示。在 AgentGym 中,不同的环境部署在不同的服务器或端口上,并向外提供封装的 HTTP 服务。这将环境与其他部分解耦。
这些服务包括 /createEnv
创建环境, /observation
获取当前环境的观测, /available_actions
获取当前可用的动作, /step
执行动作, 和 /reset
重置环境的 API。
我们已经实现了 14 种环境,开发人员可以通过封装上述接口来轻松开发新环境并将其添加到 AgentGym 中。EnvClients 的责任是接收服务器提供的服务并将其封装成供用户调用的函数。AgentController 是我们的核心组件,它连接代理和环境。它负责评估代理,收集数据,并训练代理。
基准:AgentEval
AgentEval 基准在 Hugging Face 上:AgentGym/AgentEval。
下面是一个示例:
{
"conversations": null,
"item_id": "webshop_5238"
}
轨迹集:AgentTraj
轨迹集 AgentTraj-L 可以在 Hugging Face 上找到:AgentGym/AgentTraj-L。
下面是一个示例: <SOURCE_TEXT>
{
"conversations": [
{
"from": "human",
"loss": null,
"value": "你正在网上购物。\n我会给你一些指示,告诉你该做什么。\n你必须按照指示进行操作。\n每一轮我都会给你一个观察结果和一系列可用的操作,你必须根据状态和指示响应一个操作。\n如果搜索可用,你可以使用搜索操作。\n你可以点击可点击的按钮之一。\n一个操作应具有以下结构:\nsearch[关键词]\nclick[值]\n如果操作无效,则不执行任何操作。\n搜索中的关键词由你决定,但点击中的值必须是可用操作列表中的值。\n记住,你在搜索中的关键词应该精心设计。\n你的回应应使用以下格式:\n\n想法:\n我认为... \n\n操作:\nclick[某物]"
},
{
"from": "gpt",
"loss": false,
"value": "好的。"
},
{
"from": "human",
"loss": null,
"value": "WebShop [SEP] 指令:[SEP] 找到男士短裤,弹性腰带,经典款,短袖,适合健身房锻炼,颜色:海军蓝,尺码:特大码,价格低于50.00美元 [SEP] 搜索"
},
{
"from": "gpt",
"loss": true,
"value": "想法:\n我认为我应该使用搜索栏来寻找符合条件的短裤。\n\n操作:\nsearch[男士短裤 弹性腰带 经典款 短袖 挑选 颜色:海军蓝 尺码:XL 价格 < 50.00]"
},
...(更多的互动)
{
"from": "gpt",
"loss": true,
"value": "想法:\n我认为我找到了满足所有要求的正确产品。是时候购买了。\n\n操作:\nclick[立即购买]"
}
],
"item_id": "webshop_6"
},
🛠 使用与快速开始
本项目包含 agentenv
Python 包及其集成环境。
设置 agentenv 包
从 PyPI 安装
pip install agentenv
从源码安装
git clone --recursive https://github.com/WooooDyy/AgentGym
cd ./AgentGym
cd agentenv
pip install -e .
根据您想使用的环境,cd
到相应的 agentenv-*
文件夹并按照其中的 README.md
进行操作。
教程
- 评估:01-evaluation
- 行为克隆:02-behavioral-cloning
- AgentEvol: 03-AgentEvol
示例
主要实验结果
📧 联系
🔖 引用
@misc{xi2024agentgym,
title={AgentGym: Evolving Large Language Model-based Agents across Diverse Environments},
author={Zhiheng Xi and Yiwen Ding and Wenxiang Chen and Boyang Hong and Honglin Guo and Junzhe Wang and Dingwen Yang and Chenyang Liao and Xin Guo and Wei He and Songyang Gao and Lu Chen and Rui Zheng and Yicheng Zou and Tao Gui and Qi Zhang and Xipeng Qiu and Xuanjing Huang and Zuxuan Wu and Yu-Gang Jiang},
year={2024},
eprint={2406.04151},
archivePrefix={arXiv},
primaryClass={cs.AI}
}
</SOURCE_TEXT>