neural-mmo

GitHub
1.7k 265 中等 2 次阅读 今天MITAgent其他
AI 解读 由 AI 自动生成,仅供参考

Neural MMO 是一个用于训练和评估智能体的大规模多智能体游戏环境,它模拟了一个类似 MMORPG(大型多人在线角色扮演游戏)的虚拟世界。这个环境可以支持数千个智能体在同一个持久世界中同时活动,包含多样化的技能系统、全局经济和即时冲突,旨在为智能体提供接近真实世界复杂度的训练场景。

它主要解决了传统智能体训练环境规模有限、交互单一的问题,使得研究人员能够在大规模、开放式的多智能体场景中研究智能体的适应性、协作与竞争行为。通过模拟一个持续运行且具备经济、战斗、资源采集等元素的虚拟世界,Neural MMO 为推进多智能体强化学习与通用人工智能研究提供了重要实验平台。

该工具适合人工智能领域的研究人员、强化学习开发者以及对多智能体系统感兴趣的技术爱好者使用。它提供了模块化的工程架构(包括环境引擎、渲染、神经网络接口等),方便用户定制环境规则或设计新型智能体算法。

Neural MMO 的技术亮点在于其高度可扩展的环境设计,能够支持成千上万的智能体同时交互,并提供了独立的客户端用于可视化渲染。项目采用工程与研究分离的架构,使得环境扩展与智能体算法开发可以并行推进。需要注意的是,当前仓库为初始版本的存档,后续活跃开发已在其他分支进行。

使用场景

场景背景:某AI实验室的研究员小张,正在为多智能体强化学习项目设计一个能够模拟复杂社会交互的训练环境,以开发更通用、更鲁棒的AI智能体。

没有 neural-mmo 时

  • 环境复杂度不足:小张只能使用简单的网格世界或雅达利游戏环境,智能体面临的状态空间有限,难以模拟真实世界中大量智能体并存、资源竞争与合作的复杂动态。
  • 智能体交互单一:现有环境通常只支持少量智能体(几个到几十个),且交互模式固定(如纯竞争或纯合作),无法研究大规模(数百上千)异质智能体之间涌现出的复杂社会行为。
  • 评估体系不完善:由于环境本身简单,评估指标往往局限于任务得分,难以衡量智能体在长期生存、探索、社交、经济等维度的综合能力,导致研究结论的普适性存疑。
  • 开发与实验效率低:从零构建一个大规模多智能体环境需要耗费数月进行底层引擎开发、网络同步和性能优化,严重挤占了核心算法研究的时间。

使用 neural-mmo 后

  • 获得高复杂度模拟世界:neural-mmo 提供了一个持久化运行的庞大奇幻世界,包含地形、资源、技能系统和经济体系,为智能体创造了近乎“真实世界”的复杂、动态训练场。
  • 支持大规模多智能体研究:环境原生支持成千上万个智能体同时在线互动,智能体可以自由探索、采集、战斗、交易,研究者得以观察和研究大规模群体中涌现出的社会结构和复杂策略。
  • 建立多维评估基准:该环境本身就是一个评估平台,智能体的表现可以从生存时长、探索范围、战斗效率、财富积累等多个维度进行综合衡量,为通用AI能力提供了更全面的测试床。
  • 专注算法创新,加速科研:小张可以直接利用 neural-mmo 提供的成熟环境、API接口和可视化工具,将全部精力投入到多智能体协作、竞争、进化等核心算法的设计与实验上,极大提升了科研效率。

neural-mmo 通过提供一个大规模、持久化、开放结局的多智能体游戏环境,将强化学习研究从“玩具问题”推向“准真实世界复杂度”,为核心算法研究提供了不可或缺的复杂基础。

运行环境要求

操作系统
  • Linux
  • macOS
GPU

未说明

内存

未说明

依赖
notes1. 项目已归档,代码按原样提供,无后续更新。 2. 需要分别克隆主环境和独立客户端仓库并运行安装脚本。 3. 渲染需要独立客户端,运行后通过浏览器访问 localhost:8080/forge/embyr 查看。 4. 环境框架独立,但实验代码依赖 PyTorch,需单独安装。 5. 建议使用 Anaconda 管理 Python 环境。 6. 某些设置可能需要手动修复客户端符号链接。
python3.6+
PyTorch
neural-mmo hero image

快速开始

状态: 归档(代码按原样提供,预计不再更新)

![][ags] Neural MMO:用于训练和评估智能体的大规模多智能体游戏环境

(9/19) 这是 Neural MMO 项目 初始版本的归档。活跃开发已在 jsuarez5341/neural-mmo 继续。归档时,项目版本为 1.2,自 v1.0 以来已取得重大进展——以下是截图:

![][demo]

![][ags] Neural MMO v1.0 发布

此环境是首个神经 MMO;它试图创建能够扩展到现实世界复杂性的智能体。在计算上模拟地球上的进化是不可行的,但我们可以构建一个合理且高效的模拟。我们认为 MMORPG(大型多人在线角色扮演游戏)是人类游戏中模拟现实世界的最佳代理:它们是完整的宏观世界,每个持久世界拥有数千个智能体,包含多样化的技能系统、全球经济以及临时的高风险个人和团队冲突。

![][env]

![][ags] 快速开始

# 推荐设置:
mkdir projekt
cd projekt

git clone https://github.com/jsuarez5341/neural-mmo-client
cd neural-mmo-client
bash setup.sh
cd ..

git clone https://github.com/openai/neural-mmo
cd neural-mmo
bash scripts/setup/setup.sh
python setup.py

这将下载 OpenAI 环境和独立的客户端(用于渲染)。某些设置可能需要你修复指向客户端的符号链接(例如,从 forge/embyr 目录执行 ln -s ../../neural-mmo-client/ embyr)。安装文件只会安装外部依赖项——我们假设你已经设置了 Anaconda with Python 3.6+。环境本身是框架无关的,但我们的实验代码确实依赖 PyTorch——请单独设置。

运行以下命令,然后在 Firefox 或 Chrome 中导航到 http://localhost:8080/forge/embyr/ 以启动渲染器。点击开始,并等待几秒钟加载资源并稳定帧率。故障排除请参阅 客户端仓库

python Forge.py --render # 运行环境并开启渲染

![][ags] 概述

项目分为四个模块:

工程模块 研究模块
![][earth] Blade:环境 ![][water] Trinity:API
![][fire] Embyr:渲染 ![][air] Ethyr:神经网络

目标是创建能够扩展到现实世界复杂性和鲁棒性的智能体。这是“人工生命”的一种变体表述。该项目的一个关键视角是将这一目标分解为具体、可行且可直接组合以解决整体问题的子问题。我们将目标分解为“能够扩展到其环境的智能体”和“能够扩展到现实世界复杂性的环境”。这些分别是巨大的研究和工程问题,但与原始目标不同,它们足够具体,可以单独尝试。关于项目方法和目标的更全面概述,请参阅此 两页文档

![][water]![][air] 研究:能够扩展到环境复杂性的智能体

![][earth]![][fire] 工程:能够扩展到现实世界复杂性的环境

![][water] Trinity

Trinity 是面向研究人员的原生 API(命名仅为趣味性——见下文“命名由来”)。它包含三个基类:Pantheon、God 和 Sword,你可以分别重写它们以在集群、服务器和智能体级别执行代码。

from forge.trinity import smith, Trinity, Pantheon, God, Sword
trinity = Trinity(Pantheon, God, Sword)
envs = smith.Native(config, args, trinity)
envs.run()

就是这样——所有通信都在内部处理。提供的 Pantheon 类包含示例梯度聚合、优化和模型保存代码。提供的 God 类主要是一个存根,以便未来工作可以集成群体级别的训练算法。提供的 Sword 类包含我们简单的全连接模型。完整的 API 定义在 forge/trinity/trinity.py 中。

VecEnv/Gym 计算模型不太适合此场景,其进程间通信量是所需量的 10-1000 倍。原生 API 更简单、更高效,并且需要更少的代码。然而,我们也提供了一个经过最小修改以支持可变数量智能体的规范 Gym API。Forge.py 包含了一个单一群体的完整前向传播示例。基本用法如下:

from forge.trinity import smith
envs = smith.VecEnv(config, args, self.step)

# 环境是持久化的:仅在初始化时调用 reset
obs = envs.reset()

# 观测包含每个环境中每个智能体的实体和刺激信息。
actions = your_algorithm_here(obs)

# 环境是持久化的:"dones" 始终为 None
# 如果某个观测缺失,则该智能体已死亡
obs, rewards, dones, infos = envs.step(actions)

你可以通过以下命令尝试这两种方式:

# 运行选项:
python Forge.py --nRealm 2 --api native # 使用原生 API 运行 2 个环境
python Forge.py --nRealm 2 --api vecenv # 使用 vecenv API 运行 2 个环境

![][air] Ethyr

Ethyr 是本项目的“贡献”模块。它包含用于与项目交互的有用研究工具。我已经为其添加了我们实验的辅助类,包括模型保存/加载管理器、rollout 对象和一个基础优化器。如果你想贡献代码(任何框架,不仅仅是 PyTorch),请提交拉取请求。

![][earth] Blade

Blade 是核心环境模块,包括游戏状态和控制流。研究人员通常不需要接触此部分,除了可能导入核心配置和枚举。

![][fire] Embyr

Embyr 是独立的 THREE.js 网页客户端。它通过上述设置从单独的仓库下载,并符号链接到 OpenAI 仓库。如果遇到 forge/embyr 导入错误,你可能需要修复符号链接。同样,研究人员无需编辑此部分。为了运行它,请使用 --render 参数运行 Forge.py,然后在 Firefox 中导航到 localhost:8080/forge/embyr。初始化并加载资源需要几秒钟。每当重启服务器(Forge.py)时,你需要刷新页面。Chrome 和 Safari 可能可以工作,但我们目前不提供官方支持。

![][ags] 故障模式

在我们的设定中,评估可能有些困难,但这并非主要障碍。对于较小的实验,我们发现种群规模和资源利用率是衡量成功的合理指标。对于具有充分领域随机化的大型实验,锦标赛(如配套论文所述)允许对方法进行交叉验证。

我们目前意识到该项目存在三种故障情况:

  • 计算不可行性
  • "智能体适应其环境扩展"过于困难
  • "环境扩展到现实世界"过于困难

第一种故障情况是严重风险,但在该领域的所有方向中都普遍存在。本项目并非独特的计算密集型项目——事实上,它是少数几个可以在单个 CPU 上直接训练合理策略的环境之一。如果规模是这里的主要问题,那么很可能大多数(如果不是全部)其他方法也会面临同样的问题。

第二个问题对研究人员来说可能最熟悉,即探索问题。给定冷启动,智能体如何引导出更好的策略和更好的探索策略?这是一个难题,但不太可能扼杀该项目,因为:

  • 这本身就是一个重要问题,许多研究人员已经在研究
  • 本项目环境是协作设计的,旨在早期协助智能体学习,而不是作为硬基准对抗性地设计
  • 近期 项目 已在大规模上证明了成功

第三个问题可能对许多研究人员来说似乎最有可能,但对任何在 MMO(大型多人在线游戏)中花费大量时间的人来说最不可能。以下是纽约地铁的地图:

QuestMap 来源

实际上,这是《Runescape》(我们的环境大致基于的一款特定 MMO)的任务地图。每个任务本身就是一个谜题,完成时间从几分钟到几小时不等,是其他任务先决条件相互关联网络的一部分,并提供不同的完成激励,从装备到可解锁内容,再到紧密关联技能体系中的经验值:

Skills Equipment 来源

在一个巨大的开放世界中:

GameMap 来源

迄今为止被认为最复杂的游戏类别是 MOBA(多人在线战术竞技游戏,例如 Dota、Quake CTF),它们是回合制的,大约持续一小时,并且对操作要求很高。在《Runescape》中,将所有技能练到 99 级并获得最佳装备至少需要数千小时。在允许随处攻击其他玩家的锦标赛环境中,即时游戏玩法的重要性不如平衡任何潜在策略的风险和回报——尤其是在有数百名其他玩家试图做同样事情的情况下。从 MMO 到现实世界几乎肯定仍然存在复杂性差距,但我们认为这比当前可用环境中的差距要小得多。

虽然我们的环境还远未达到真实 MMO 的复杂程度,但它确实包含了持久性、种群规模和开放性的关键属性。随着智能体开始触及当前环境的上限,我们计划继续开发以提高上限。

![][ags] 文件结构

![][water] /forge/trinity ~350 行

  • /forge/trinity/ann.py - 定义架构
  • /forge/trinity/god.py - 定义服务器级别代码(例如实体标记)
  • /forge/trinity/pantheon.py - 定义集群级别代码(例如梯度平均)
  • /forge/trinity/sword.py - 定义核心级别代码(例如运行网络、收集轨迹、计算梯度)
  • /forge/trinity/trinity.py - 包装 pantheon、god 和 sword
  • /forge/trinity/smith.py - 定义 Native 和 VecEnv / Gym API

![][air] /forge/ethyr ~250 行

  • /forge/ethyr/rollouts.py - 收集和合并轨迹
  • /forge/ethyr/stim.py - 从本地游戏状态生成刺激
  • /forge/ethyr/torch - pytorch 特定的神经网络工具
    • /forge/ethyr/torch/loss.py - 定义策略/价值损失和优势
    • /forge/ethyr/torch/optim.py - 定义优化和梯度计算
    • /forge/ethyr/torch/param.py - 对序列化有用的网络手术
    • /forge/ethyr/torch/stim.py - 用 pytorch 张量包装通用刺激库
    • /forge/ethyr/torch/utils.py - 通用 pytorch 工具

![][earth] /forge/blade ~2k 行,其中 >1k 行用于未来扩展。仅斜体文件是相关的。

  • /forge/blade/action - 定义实体可以做什么,它们做时会发生什么,并提供推理行动的结构。
    • /forge/blade/action/action.py - 每个动作的类存根
    • /forge/blade/action/tree.py - 组装动作的树结构(例如 动作 -> 子动作 -> 参数)
    • /forge/blade/action/v2.py - 实体可以选择、实例化并 .call() 以直接修改世界状态的动作
  • /forge/blade/core — 包含约 500 行状态和游戏循环代码。
    • /forge/blade/core/config.py - 定义每个测试环境的规格,包括实体统计信息、地图和生成位置。
    • /forge/blade/core/tile.py - 定义单个游戏图块
    • /forge/blade/core/map.py - 定义游戏图块的地图
    • /forge/blade/core/env.py - 包装完整的游戏状态
    • /forge/blade/core/realm.py - 定义更新环境和代理的游戏循环。
  • /forge/blade/entity - 定义智能体,包括神经网络的和脚本的
    • /forge/blade/entity/player.py — 定义"玩家"状态
    • /forge/blade/entity/npc/
      • /forge/blade/entity/npc/npc.py — 定义客户端状态(例如包装做出决策的神经网络)
      • /forge/blade/entity/npc/mobs.py - 定义脚本 NPC
  • /forge/blade/hook - 定义预组装引用的启动脚本
  • /forge/blade/item - 定义游戏中的所有物品,包括装备
  • /forge/blade/lib - 定义通用工具,这些工具要么没有干净的 Python 实现,要么需要针对项目进行特定更改
  • /forge/blade/systems - 定义游戏内容

![][fire] /forge/embyr 参见 客户端仓库

![][ags] 项目命名

在正式出版物中,我们将本项目简称为“Neural MMO”。在内部和非正式场合,我们称其为“Projekt: Godsword”。该名称来源于两个出处:CD Projekt Red(我个人最喜爱的游戏开发工作室)和《OldSchool Runescape》(其中包含一套标志性武器,名为“神剑”)。后者是人工智能环境的绝佳模型;前者则更多是软性风格灵感来源。

![][ags] 作者信息

核心代码库的作者是我,Joseph Suarez。Yilun Du 协助运行实验,特别是在组织锦标赛方面。Phillip Isola 和 Igor Mordatch 在整个项目过程中提供了宝贵的合作与指导。客户端由我与 Clare Zhu 独立合作开发完成。

![][ags] 许可证与资源

本 OpenAI 代码库依据 MIT 许可证开源。此外,还有一个较小的原创代码库和游戏内核,其所有权及相关创意归我(Joseph Suarez)所有。这些内容在我受雇之前就已创建——此处的初始提交代表了我受雇前的最新时间节点。

本项目使用的部分资源归属于《Runescape》的创造者 Jagex,例如:

Alt text Alt text Alt text Alt text Alt text

我们目前使用这些资源是为了向启发本项目的游戏致敬,增添项目特色。我们认为,作为一个旨在推动人工智能研究的非营利项目,这属于合理使用范畴。但若收到相关请求,我们非常乐意移除这些资源。智能体(agents)的 2D 和 3D 文件归我们所有。

Alt text Alt text Alt text Alt text Alt text Alt text Alt text Alt text Alt text Alt text Alt text Alt text

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

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 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

74.9k|★★★☆☆|今天
语言模型图像开发框架