Minigrid
Farama Foundation 出品的 RL 基准环境,用乐高积木式方格世界训练 AI 学会目标
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Farama Foundation 出品的 RL 基准环境,用乐高积木式方格世界训练 AI 学会目标
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你给一个机器人安排了一项任务:
"请帮我穿过这扇红色的门,把钥匙捡起来,然后打开对面的蓝色门。"
这不是科幻小说的场景,而是 Farama Foundation 开源的 MiniGrid 正在做的事——用最简单的方格世界,让AI学会目标分解、路径规划、物品操作这些对人类来说再平常不过的能力。MiniGrid 被引用在数百篇学术论文中,是强化学习研究领域最受欢迎的基准环境之一。

图1:Door-Key 递进任务——AI需要依次完成开门、拿钥匙、用钥匙开门三个子目标
MiniGrid 最早由 Maxime Chevalier-Boisvert 于 2018 年在 Universite de Montreal 开发,最初名为 gym-minigrid,后因 Gymnasium(OpenAI Gym 的社区分支)崛起而更名并转移至 Farama Foundation 维护。目前该项目由全职团队持续更新,支持 Python 3.10~3.14,横跨 Linux/macOS/Windows 三大平台。
Farama Foundation 是一个非营利组织,同时维护着 Gymnasium、MiniWorld、MetaWorld 等多个 RL 基础设施项目,生态协同效应极强。MiniGrid 继承了 Gymnasium 的标准 API,任何熟悉 Gym 的研究者都能零成本迁移。
如果把 RL 环境比作积木,MiniGrid 就是那套最基础但最通用的万能积木。它提供:
这意味着研究者不需要关心渲染引擎,只需要关注 RL 算法本身。
MiniGrid 内置超过 50 个预制环境,覆盖强化学习中的主流研究方向:
FourRooms:经典的四房间问题——AI需要穿过3道门找到目标。极简版但深刻揭示了子目标发现的重要性。
Fetch:推箱子任务——AI走到箱子旁边,把它推到指定位置。这是 IKEA 机器人的极简版本,也是物理操作研究的入门环境。
Unlock:简单版——走到门前,直接开门。
UnlockPickup:开门+捡钥匙。
BlockedUnlockPickup:开门+捡钥匙+绕过障碍物推箱子。
KeyCorridor:穿过走廊时找到并使用正确钥匙开门,考验空间记忆与规划。

图2:FourRooms——强化学习经典基准,揭示子目标发现的重要性
SimpleCrossing:地板上随机出现岩浆带,AI必须绕行。
LavaGap:岩浆湖中只有狭窄通道,要求精准路径规划。
BabyAI 是一套经过人工指令对齐的任务套件,与 MiniGrid 环境完全兼容,专门用于研究语言条件强化学习(Language-Conditioned RL)。
通过 networkx + imageio 的可选依赖,MiniGrid 支持基于波函数坍缩(WFC)算法无限生成多样化房间布局,解决环境复用性低的问题。

图3:Fetch 推箱子任务——物理操作研究的入门环境
MiniGrid 的代码结构极为清晰,所有环境均继承自统一基类:
minigrid/
core/ # 核心抽象层
world_object.py - 各类对象的基类(Wall, Floor, Door, Key...)
grid.py - 网格世界本体,状态存储与更新
roomgrid.py - 多房间网格的组合逻辑
mission.py - 任务字符串生成
actions.py - 动作空间定义
envs/ # 50+ 预制环境实现
fourrooms.py / doorkey.py / fetch.py / babyai/ / wfc/
wrappers.py # Gymnasium 标准Wrapper(Dict, RGBImg, FullyObs...)
minigrid_env.py # 主环境基类
utils/
baby_ai_bot.py - 基于规则的BabyAI基线Agent
rendering.py - Pygame渲染引擎
核心设计哲学:所有环境共享同一套对象系统,扩展新环境只需定义网格布局 + mission 字符串,复用率极高。这也是 MiniGrid 能快速扩张到50+环境的根本原因。
观测层面支持三种模式:
| 维度 | 评分 | 说明 |
|---|---|---|
| 架构设计 | 5星 | 模块化继承体系,扩展性极强 |
| 测试覆盖 | 4星 | pytest + pytest-mock,CI 自动化 |
| 文档质量 | 5星 | 完整 API 文档、官方文档站(minigrid.farama.org) |
| 代码规范 | 5星 | black + isort + pyright,pre-commit 全流程 |
| 依赖管理 | 5星 | pyproject.toml + setuptools,pip 直接安装 |
安全方面:无网络通信、无文件I/O、无敏感数据,纯本地计算环境,安全风险极低。
安装(2分钟):
pip install minigrid
基础用法:
import gymnasium as gym
from minigrid.wrappers import FullyObsWrapper
env = gym.make('MiniGrid-FourRooms-v0')
env = FullyObsWrapper(env) # 去除战争迷雾
obs, info = env.reset()
for step in range(100):
action = env.action_space.sample() # 随机策略
obs, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
obs, info = env.reset()
env.render() # Pygame可视化
Docker 部署(无官方镜像,需自建):
FROM python:3.12-slim
RUN pip install minigrid
CMD ["python", "-c", "import minigrid; print(minigrid.__version__)"]
MiniGrid 是强化学习学术界的基准测试标杆,被引用在数百篇顶会论文中(NeurIPS、ICML、ICLR、AAAI 等)。它的存在让新算法的对比实验成本大幅降低——研究者不需要自己造环境,只需调用 gym.make('MiniGrid-xxx-v0')。
从趋势上看,随着 LLM + RL 的融合加速(LLM-as-a-Judge、Language-Conditioned RL),BabyAI 子集的价值正在被重新发现——它提供了语言指令-动作序列的标准化研究框架,与当前多模态Agent热潮高度契合。
Farama Foundation 的生态布局(MiniGrid + MiniWorld + Gymnasium)正在构建一个从2D到3D到标准API的完整RL基础设施栈,MiniGrid 是其中最成熟、最关键的入口。