【免费下载链接】MAgent2
An engine for high performance multi-agent environments with very large numbers of agents, along with a set of reference environments
🐯 MAgent2 是一款面向大规模多智能体强化学习的高性能网格世界(GridWorld)环境引擎,其内置的Tiger_Deer 环境用 101 只鹿(deer)与 20 只虎(tiger)共121 个智能体,上演一场"围猎 vs 逃生"的持续博弈。本文带你从零看懂这套环境的规则设计、奖励机制与空间结构,理解它为什么是训练协同攻击与逃跑策略的经典基准。
一、Tiger_Deer 环境是什么?
Tiger_Deer 是 MAgent2 提供的六套参考环境之一(源码位于 magent2/environments/tiger_deer/tiger_deer.py),它的核心设定只有一句话:
老虎必须两人同时攻击同一只鹿才能获得奖励,否则只能慢慢"饿死";鹿则必须躲开老虎的围猎。
这套设定看似简单,却同时逼出两类高阶行为:
| 阵营 | 数量 | 生存压力 | 要学到的能力 |
|---|---|---|---|
| 🐯 虎(tiger) | 20 | 每回合 −0.1 HP,不捕猎会饿死 | 组队、包抄、协同攻击 |
| 🦌 鹿(deer) | 101 | 被攻击 −0.1 HP,阵亡 −1 | 感知威胁、持续逃跑 |
对新手来说,它是"多智能体协作学习"的理想入门场景:规则少、地图小、反馈直接,训练几个小时就能看到智能体自发涌现出包抄战术。
二、地图与规模:map_size 决定了 121 个智能体
智能体数量由map_size(默认45)推导,见源码中的 generate_map:
- 🗺️ 地图为 45×45 的正方形网格,随机放置4% 面积的墙体(wall)作为障碍物
- 🦌 鹿:
45 × 45 × 0.05 ≈ 101个 - 🐯 虎:
45 × 45 × 0.01 ≈ 20个 - ⏱️ 单局最多运行
max_cycles回合(默认 300 步)
调大map_size就能按比例放大博弈规模,这也是 MAgent2"支持海量智能体"这一卖点的直观体现。MAgent2 引擎中其他环境(如 Gather)甚至能容纳2000+ 个智能体同场运算:
三、规则拆解:血量、视野与"双人同帧攻击"
完整规则定义在 get_config 函数中,核心参数一览:
| 属性 | 🦌 鹿 | 🐯 虎 |
|---|---|---|
| 初始 HP | 5 | 10 |
| 每回合回血 | +0.2 | −0.1(tiger_step_recover,即饥饿惩罚) |
| 视野范围 | 1 格 | 4 格 |
| 攻击范围 | 无(不能攻击) | 1 格 |
| 击杀/攻击回报 | 阵亡 −1 HP | 吃到鹿+8 HP |
| 动作空间 | 5 个(原地/四向移动) | 9 个(原地/四向移动/四向攻击) |
三个设计细节是精髓所在:
- 饥饿机制(starvation):虎每回合固定掉 0.1 HP,只有成功捕猎才能回血 +8。这给协作注入了"时间压力"——散漫的单兵虎必然饿死,团队必须高效运作。
- 协同攻击奖励(cooperative attack reward):两只虎在同一回合攻击同一只鹿时,各得 0.5 奖励(合计 1 分,源码中做了平分处理)。这是整个环境最关键的信号,它让"靠近同伴、对齐攻击时机"成为唯一正收益路径。
- 视野不对称:虎的视野是鹿的 4 倍。鹿只能在威胁逼近时反应,因此逃跑必须提前、持续,而不是临阵决策——这正适合训练长时程的逃避策略。
四、观察空间:智能体"看到"的世界
每个智能体并非获得全局地图,而是以自身为中心的局部视图,共 5 个基础通道:
obstacle:障碍/地图边界my_team_presence/my_team_hp:友军位置与血量other_team_presence/other_team_hp:敌军位置与血量
视野不同导致视图尺寸不同:鹿为 3×3×5,虎为 9×9×5;全局状态(state)为 45×45×5。开启extra_features=True后还会追加 agent 二进制 ID、动作 one-hot、上一回合奖励等通道,minimap_mode=True则把视图替换为包含全图密度信息的小地图 + 绝对坐标——两者都是研究"信息量如何影响策略"的常用开关。
五、奖励设计如何"教出"协作与逃跑 🎯
把奖励表摊开看,策略的"最优解"就藏在里面:
| 事件 | 奖励 |
|---|---|
| 两只虎同帧攻击同一只鹿 | 虎各 +0.5 |
| 鹿被攻击 | 鹿 −0.1(deer_attacked) |
| 鹿阵亡 | 鹿 −1 |
| 虎存活(隐性) | 避免 −0.1/回合的持续失血 |
- 🐯 对虎而言:单独扑鹿没有直接奖励,与同伴协同是唯一收益来源——强化学习算法会自然收敛到"寻找队友→合围→同步攻击"的策略族。
- 🦌 对鹿而言:被攻击即扣血,而自身又能缓慢回血,因此最优策略是最大化生存时间——远离老虎群、利用墙体走位、避免孤立。
一攻一逃两侧的策略博弈,构成了典型的**多智能体对抗协作(multi-agent cooperative-competitive)**训练场景。
六、快速上手:3 步运行 Tiger_Deer 环境
安装后(pip install magent2)即可使用,环境遵循 PettingZoo API,提供env(并行)、raw_env(AEC)、parallel_env三种入口:
from magent2.environments import tiger_deer_v4 from pettingzoo.utils import random_demo # 并行 API + 人类可视化,随机策略演示 env = tiger_deer_v4.env(render_mode="human") random_demo(env, render=True, episodes=1)常用可调参数(详见文档字符串 tiger_deer.py):
| 参数 | 默认值 | 作用 |
|---|---|---|
map_size | 45 | 地图边长,≥10,同时决定智能体数量 |
max_cycles | 300 | 单局最大回合数 |
tiger_step_recover | −0.1 | 虎每回合血量变化(饥饿强度) |
deer_attacked | −0.1 | 鹿被攻击的惩罚 |
minimap_mode | False | 启用全局小地图观察 |
extra_features | False | 追加 ID/动作/奖励等特征通道 |
💡 调参建议:调大tiger_step_recover的绝对值可显著放大协作压力,是研究"饥饿感如何塑造协作行为"的杠杆;minimap_mode适合对比"局部感知 vs 全局感知"下的策略差异。更多入门工作流见 docs/introduction/basic_usage.md。
七、源码导读与二次开发思路 🔧
想深入或定制环境,按这条路径阅读代码即可:
- magent2/environments/tiger_deer/tiger_deer.py —— 规则、奖励与地图生成全部在此,约 250 行即可读完
- magent2/environments/magent_env.py —— PettingZoo 并行环境基类,负责观察/奖励空间的封装
- magent2/gridworld.py 与 docs/API/gridworld.md —— 底层 GridWorld 引擎 API,支持自定义智能体类型、范围(
CircleRange)与事件奖励规则 - src/gridworld/ —— C++ 高性能实现(
GridWorld.cc、RewardEngine.cc等),这是 MAgent2 能驱动数百乃至上千智能体实时演化的关键
🛠️ 二次开发思路举例:修改get_config中的view_range、damage、奖励规则(add_reward_rule支持"事件组合"匹配),几分钟内就能孵化出"三虎合围才有奖励""鹿拥有反击能力"等变体,用于研究协作阈值与策略的对应关系。
八、版本历史与延伸阅读
- v0:MAgent2 0.3.0 首次发布,当前主线为
tiger_deer_v4模块(历史版本名tiger_deer_v3仍可通过 magent2/environments/tiger_deer_v4.py 兼容导入)。
小结:Tiger_Deer 用 121 个智能体、十余行奖励规则,构建了一个压力清晰、反馈直接的博弈场——饥饿驱动协作,视野差催生逃跑。它是新手进入大规模多智能体强化学习训练最平滑的起点,也是研究群体智能涌现的高性价比基准。
【免费下载链接】MAgent2
An engine for high performance multi-agent environments with very large numbers of agents, along with a set of reference environments
相关推荐
agno中的智能体协作策略:多智能体决策的策略优化方法
agno中的智能体协作策略:多智能体决策的策略优化方法 在多智能体系统(Multi Agent System, MAS)中,智能体之间的协作与竞争关系直接影响系
人工智能AI AgentAgent 框架多智能体工具调用RAGAgent 记忆Agent 工作流后端InternVL3-1B-Pretrained 训练策略深度解读:SFT、MPO 与 Test-Time Scaling 如何协同
InternVL3 1B Pretrained 训练策略深度解读:SFT、MPO 与 Test Time Scaling 如何协同 InternVL3 1B P
深入 RLlib 多智能体环境(MultiAgentEnv):从策略映射到回合制博弈的完整实战指南
深入 RLlib 多智能体环境(MultiAgentEnv):从策略映射到回合制博弈的完整实战指南 导读 多智能体强化学习(MARL)是 RLlib 的核心能力
人工智能分布式训练强化学习任务调度模型推理服务后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考