lab
DeepMind Lab 是一个基于经典游戏引擎构建的可定制 3D 平台,专为智能体(Agent)的人工智能研究而设计。它源自 id Software 的 Quake III Arena,通过开源项目 ioquake3 打造出一系列高难度的 3D 导航与解谜任务环境。
在人工智能研究中,尤其是深度强化学习领域,研究人员急需能够模拟复杂空间认知、记忆规划及多步决策能力的测试场。DeepMind Lab 正是为了解决这一痛点而生,它填补了简单二维网格世界与昂贵真实机器人实验之间的空白,让算法能在逼真的三维空间中高效验证其学习与泛化能力。
这款工具主要面向 AI 研究人员、深度学习工程师以及高校学者。如果你正在探索如何让机器像人类一样在陌生环境中寻路、躲避障碍或完成复杂指令,DeepMind Lab 提供了理想的沙盒。其独特的技术亮点在于支持使用 Lua 脚本灵活定义关卡逻辑与任务规则,并提供了完善的 Python API 及与 DeepMind 通用强化学习接口(dm_env)的绑定,方便开发者快速接入主流训练框架。无论是复现经典论文实验,还是设计全新的认知挑战任务,DeepMind Lab 都能提供稳定且高性能的支持。
使用场景
某高校强化学习实验室的研究团队正致力于训练智能体在复杂三维空间中完成导航与解谜任务,以验证新型深度强化学习算法的泛化能力。
没有 lab 时
- 研究人员需自行从零搭建 3D 仿真环境,耗费数周时间处理图形渲染、物理引擎碰撞检测等底层代码,严重挤占算法研究时间。
- 缺乏统一的标准测试关卡,不同论文使用的自定义场景差异巨大,导致实验结果难以复现,同行评审时经常因环境不一致而被质疑。
- 现有开源模拟器要么过于简单(如二维网格),要么接口封闭不支持自定义任务逻辑,无法模拟“寻找出口”或“激光标签”等需要空间推理的复杂行为。
- 环境观测数据(如速度向量、旋转角度)提取困难,往往需要修改引擎源码才能获取训练所需的精细状态信息。
使用 lab 后
- 团队直接调用 lab 内置的基于 Quake III 的高保真 3D 引擎,通过 Lua 脚本在几小时内即可定制出“迷宫导航”或“楼梯寻物”等专用测试关卡。
- 依托 lab 提供的标准化基准任务套件,实验数据可与全球顶尖研究直接对标,大幅提升了论文的可信度与复现性。
- 利用其灵活的 Python API 和 dm_env 接口,智能体能迅速与环境交互,轻松实现从随机探索到复杂策略学习的平滑过渡。
- 无需修改底层代码,仅需添加命令行参数即可实时输出速度、旋转等关键观测值,让模型训练过程中的状态监控变得透明且高效。
lab 将研究人员从繁琐的环境构建中解放出来,使其能专注于核心算法创新,成为连接理论模型与真实三维世界的关键桥梁。
运行环境要求
- Linux
- 非必需
- 人类游玩模式需要支持硬件加速的 OpenGL 驱动
- 无头模式(Headless,用于机器学习代理)可通过 EGL、GLX 进行硬件加速渲染,或通过 OSMesa 进行软件渲染
- 未指定具体显卡型号或显存大小
未说明

快速开始
DeepMind Lab 是一个基于 id Software 的 Quake III Arena 游戏引擎, 通过 ioquake3 和 其他开源软件 构建的 3D 学习环境。
DeepMind Lab 为学习型智能体提供了一系列具有挑战性的 3D 导航与解谜任务。 其主要目的是作为人工智能研究,尤其是深度强化学习研究的测试平台。
关于
免责声明:本项目并非 Google 官方产品。
如果您在研究中使用了 DeepMind Lab 并希望引用该环境,我们建议您参考 DeepMind Lab 论文。
如有任何问题,请发送邮件至 lab@deepmind.com。
在 Linux 上开始使用
从 bazel.io 获取 Bazel。
克隆 DeepMind Lab 仓库,例如运行以下命令:
$ git clone https://github.com/deepmind/lab
$ cd lab
要运行一个随机智能体的示例,可以执行:
lab$ bazel run :python_random_agent --define graphics=sdl -- \
--length=10000 --width=640 --height=480
更多详细的构建文档请参阅 [/docs/users/build.md], 其中包括如何安装缺失的依赖项。
为了启用编译器优化,可以在每个 bazel build、bazel test 和 bazel run
命令中添加 --compilation_mode=opt 或简写 -c opt 标志。出于简洁考虑,
本文中的示例未包含此标志,但在实际训练和评估中,当性能至关重要时,
应始终使用该标志。
以人类玩家身份游玩
若要使用键盘和鼠标等输入设备测试游戏,可以运行以下命令:
lab$ bazel run :game -- --level_script=tests/empty_room_test --level_setting=logToStdErr=true
# 或者:
lab$ bazel run :game -- -l tests/empty_room_test -s logToStdErr=true
将 logToStdErr 设置为 false 可以关闭大部分日志输出。
可以通过为每个感兴趣的观测值添加 --observation OBSERVATION_NAME 标志,
在每一步打印出环境暴露的观测值。
lab$ bazel run :game -- --level_script=lt_chasm --observation VEL.TRANS --observation VEL.ROT
训练智能体
DeepMind Lab 自带一个示例随机智能体,位于
python/random_agent.py 中,
可作为实现学习型智能体的起点。要让该智能体与 DeepMind Lab 进行交互并进行训练,
可以运行以下命令:
lab$ bazel run :python_random_agent
智能体与环境之间的交互使用 Python API 完成。 我们还提供了与 DeepMind 的通用强化学习 API “dm_env” 的绑定, 以及构建独立 PIP 包的方法;详细信息请参阅 单独的文档。
DeepMind Lab 随附多种不同的关卡, 分别实现了不同的任务。这些任务可以通过 Lua 脚本进行配置, 具体说明请参阅 Lua API。
上游源代码
DeepMind Lab 基于 ioquake3 游戏引擎构建,并使用工具 q3map2 和 bspc 来创建地图。源自这些项目的错误修复和清理工作, 最好先在上游解决,然后再合并到 DeepMind Lab 中。
bspc 源自 github.com/TTimo/bspc,修订版为 d9a372db3fb6163bc49ead41c76c801a3d14cf80。几乎没有本地修改,但我们已将其代码集成到 ioq3 主代码库中,未在
deps目录中保留副本。我们预计这段代码会保持稳定。q3map2 源自 github.com/TTimo/GtkRadiant,修订版为 d3d00345c542c8d7cc74e2e8a577bdf76f79c701。我们做了一些小的本地修改以增加同步功能。我们也认为这段代码是稳定的。
ioquake3 源自 github.com/ioquake/ioq3,修订版为 29db64070aa0bae49953bddbedbed5e317af48ba。该代码包含了大量修改和新增内容。我们计划定期合并上游的更改。
我们非常感谢这些仓库的维护者们为保持高质量代码库所付出的努力。
外部依赖、先决条件及移植注意事项
DeepMind Lab 目前仅以源代码形式发布。它依赖于若干外部软件库,我们通过多种方式提供这些库:
zlib、glib、libxml2、jpeg和png等库被引用为 Bazel 的外部源,并提供了相应的 Bazel BUILD 文件。相关代码本身应具有较好的可移植性,但随附的 BUILD 规则专用于 x86 架构下的 Linux 系统。若要在其他平台上构建,很可能需要修改这些 BUILD 文件。消息摘要算法包含在本包中(位于
//third_party/md),取自各自 RFC 的参考实现。此外,还包含一个“通用强化学习 API”(位于//third_party/rl_api),该 API 亦由 DeepMind Lab 的作者开发。这部分代码具有可移植性。EGL 头文件也包含在本包中(位于
//third_party/GL/{EGL,KHR}),取自 Khronos 组织的 OpenGL/OpenGL ES XML API 注册表,网址为 www.khronos.org/registry/EGL。这些头文件经过轻微修改,去除了 EGL 对 X11 的依赖。还有一些额外的库是必需的,但并未随本包一同提供,您需要确保它们已安装在系统中:
- SDL 2
- gettext(
glib所需) - OpenGL:进行硬件加速的人机交互需要硬件驱动程序和库。而机器学习智能体将使用的无头渲染库,则可根据
--define headless=...的构建选项,选择通过 EGL 或 GLX 实现硬件加速渲染,或通过 OSMesa 进行软件渲染。 - Python 2.7(其他版本也可能适用)并配备 NumPy、PIL(部分测试要求 NumPy 版本至少为 1.8);或者 Python 3(至少 3.5)并配备 NumPy 和 Pillow。
构建规则使用了若干特定于 GCC 编译器的编译选项。如果您的编译器无法识别某些标志(通常是特定的警告抑制选项),则可能需要对这些标志进行调整。尽管会产生大量警告信息,但这些警告并无实际危害。
版本历史
release-2020-12-072020/12/07release-2019-10-072019/10/07release-2019-02-042019/02/04release-2018-06-202018/06/20release-2018-05-152018/05/15release-2018-02-072018/02/07release-2018-01-262018/01/26release-2016-12-062016/12/08常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
