Gymnasium 是一个强化学习(Reinforcement Learning, RL)环境(Environment)的标准接口库,用统一的 reset、step 等协议,把智能体(agent)和它要交互的环境连接起来。它本身不负责训练模型,而是规定“环境该怎么被调用”。
核心协议:四件事
reset():重置环境,返回初始观测(observation)和附加信息(info)。step(action):执行动作(action),返回观测、奖励(reward)、是否终止(terminated)、是否截断(truncated)以及附加信息。reward:这一步的即时奖励,像游戏里的得分。terminated / truncated:回合是否结束。terminated表示任务自然结束,比如杆子倒下或到达终点;truncated表示被外部条件截断,比如达到时间步上限。旧接口常把它们统称为done。
打个比方:Gymnasium 像游戏机的“手柄接口标准”。环境是不同游戏卡,算法是玩家。只要都遵守 reset/step,换游戏就不用重写玩家。reset 是重新开局,step 是走一步,reward 是得分,terminated/truncated 是 Game Over 或时间到。
典型循环大致是:
```python
obs, info = env.reset()
while True:
action = policy(obs)
obs, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
obs, info = env.reset()
```
和相邻概念的区别
| 概念 | 负责什么 | 例子 |
|---|---|---|
| Gymnasium | 定义环境接口 | reset、step、reward |
| 仿真器/游戏 | 提供物理或规则动态 | 物理引擎、棋类规则 |
| 算法库 | 实现学习策略 | DQN、PPO 等算法实现 |
Gymnasium 是接口层;仿真器或游戏提供具体动态;算法库负责学习策略。OpenAI Gym 是它的前辈,Gymnasium 是其社区延续。具体 API 名称和返回顺序可能随版本演进,以官方文档为准。
对从业者和普通人的意义
对从业者,它让环境代码和算法代码解耦:新任务只要实现 reset 和 step,就能接入常见算法;做基准测试时,大家用同一套协议,结果更容易比较;包装器(wrapper)还能统一改观测、奖励或加时间限制。对普通人,可以把它理解成 AI 试错学习的“插座标准”:没有标准时,每个实验室各造一套插头;有了标准,换环境、复现实验、共享代码都省事很多。看到 reset、step、reward、done 这类词,基本就是在说这套交互协议。
