PettingZoo
MARL领域标准化环境接口,支持竞争/合作/混合多智能体博弈的强化学习实验平台
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
MARL领域标准化环境接口,支持竞争/合作/混合多智能体博弈的强化学习实验平台
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
PettingZoo 是由 Farama 基金会 维护的 Python 库,旨在为多智能体强化学习(Multi-Agent Reinforcement Learning,MARL)研究提供统一的环境接口标准。你可以将它理解为单智能体强化学习标杆库 Gymnasium 的「多智能体升级版」——如果说 Gym 是 AI 训练单个智能体的跑道,PettingZoo 就是多个智能体在同一赛道上同场竞技或协作配合的训练场。
强化学习(RL)领域,单智能体环境已经高度标准化——Gymnasium(原 Gym)几乎一统江湖。但多智能体场景要复杂得多:多个 Agent 之间可能是竞争关系(如棋类对战)、合作关系(如机器人编队)、甚至混合博弈(如经济学市场)。不同研究团队各自定义环境接口,导致算法代码和环境代码严重耦合,换一个环境意味着重写大半个项目。
PettingZoo 正是为了解决这个「接口碎片化」问题而诞生。它提出了 AEC(Agent Environment Cycle) 和 Parallel 两种标准化的环境交互范式,让研究者在编写 MARL 算法时无需关心底层环境细节,实现了算法与环境的解耦。2023 年 Farama 基金会将其与 Gymnasium 合并为统一生态,进一步巩固了其作为 MARL 领域基础设施的地位。
PettingZoo 提供了两套核心 API,适用于不同类型的多智能体场景:
AEC(Agent Environment Cycle)API 是 PettingZoo 的核心范式,遵循「每个智能体依次与环境交互」的模型,天然兼容所有类型的多智能体博弈——包括完全竞争、合作、混合场景,甚至可以描述极其「怪异」的博弈结构。AEC 模式下,系统维护每个智能体的观测、奖励和动作序列,确保所有信息完整保留,避免了传统并发模型的歧义问题。
Parallel API 则允许所有智能体在同一时刻并行执行动作,适合那些天然支持同步决策的环境(如编队机器人、无人机群协同控制)。它对底层环境的约束更强,但性能更优,代码也更为简洁。
两种 API 可以通过 PettingZoo 内置的转换工具相互切换,这意味着同一环境可以在不同模式下复用。
PettingZoo 打包了多个经典多智能体环境族,研究者无需从零构建即可开展实验:
Classic 经典博弈:象棋、围棋、Hanabi(华牌)、Connect Four(四子棋)、Gin Rummy、剪刀石头布等棋牌类环境,底层由 RLCard 和 OpenSpiel 驱动,覆盖了完美信息博弈(象棋/围棋)和不完美信息博弈(Hanabi/扑克)两大类别。
Atari 街机环境:数十款经典雅达利游戏的多智能体版本(如 Basketball Pong、Boxing、Combat),每个游戏支持 1v1 对战,是大规模 MARL 算法评估的标准基准之一。
SISL 协作环境:来自斯坦福 SISL 实验室的合作基准环境,包括 MultiWalker(多智能体行走)和 Pursuit(围捕)等,专注于合作型多智能体任务。
Butterfly 创意环境:基于 Pymunk 物理引擎的自创合作/竞争游戏,如「围鸡取蛋」(Capture the Flag)式的对战场景。
MAgent 大规模多智能体:支持数百个智能体同时交互的战场环境,用于研究大规模群体的涌现行为。
从代码结构来看,PettingZoo 采用了模块化的插件架构:顶层是统一的 API 抽象层,底下通过子模块(pettingzoo.atari、pettingzoo.classic、pettingzoo.sisl 等)接入具体环境实现。这种架构使得添加新环境族非常简单,只需实现统一的接口即可无缝融入生态。
核心依赖极简:仅依赖 NumPy 和 Gymnasium,额外环境通过可选依赖分组安装(pip install pettingzoo[classic] 即可获得棋牌环境)。项目使用 pyproject.toml + setuptools 构建,支持 Python 3.9 到 3.14。代码遵循 Black 格式化,集成 pre-commit 钩子保证风格统一。
项目还提供了与主流 MARL 框架的深度集成教程:Ray/RLlib、Tianshou、Stable-Baselines3、CleanRL、AgileRL、LangChain Agent,覆盖从基础实验到生产级训练的完整链路。
PettingZoo 是纯 Python 研究库,无需 GPU,安装只需一条 pip 命令,没有 Docker 支持,不提供 Web UI。这是一种刻意选择:保持库的轻量,让研究者在任意机器上快速开始实验。
# 基础安装
pip install pettingzoo
# 安装经典博弈环境(象棋、Hanabi等)
pip install pettingzoo[classic]
# 安装完整环境
pip install pettingzoo[all]
从冷启动到运行第一个多智能体环境示例,3 分钟以内即可完成。
PettingZoo 也有其局限性:部分 Atari 环境依赖 AutoROM 自动下架的复古游戏 ROM,版权问题使分发存在法律灰色地带;环境版本管理机制虽然存在,但历史版本之间的行为一致性有时难以保证;另外,作为一个「接口标准」而非算法库,它不包含现成的 MARL 训练算法,研究者需要结合 RLLib、Tianshou 等框架使用。
PettingZoo 已在学术圈被广泛采用(GitHub 3,428 颗星,127 位贡献者),是 MARL 研究论文的标准实验平台之一。它的成功反映了一个趋势:强化学习正在从单智能体走向多智能体——无论是自动驾驶的车队协调、机器人的群体协作,还是 AI 游戏对战的商业化落地,多智能体系统正成为 AI 落地的下一个主战场。Farama 基金会通过统一 Gymnasium + PettingZoo 生态,正在构建 RL 领域的「基础设施标准」,影响力不可小觑。