You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ML-Agents Cooperative Push Block环境用Python API无法获取奖励咨询

问题原因

Cooperative Push Block环境使用*Group Reward(组奖励)*机制,所有奖励值不会写入单智能体的独立奖励字段,你当前使用的单智能体奖励读取逻辑仅适配Single Push Block这类非组奖励的单智能体环境,因此会始终返回0。

修复代码

直接读取决策步/终端步的组奖励字段即可获取正确的奖励值,修改后的代码如下:

decision_steps, terminal_steps = env.get_steps(behavior_name)
episode_rewards = 0

# 读取决策步组奖励
if len(decision_steps) > 0:
    # 全局组奖励,同组所有智能体共享该奖励值
    step_group_reward = decision_steps.group_reward
    episode_rewards += step_group_reward
    print('REWARD', step_group_reward)

# 也可按单个跟踪智能体读取,数值和全局组奖励一致
if tracked_agent in decision_steps:
    episode_rewards += decision_steps[tracked_agent].group_reward

# 不要遗漏终端步的组奖励结算
if tracked_agent in terminal_steps:
    episode_rewards += terminal_steps[tracked_agent].group_reward
验证说明
  • 每步默认的-0.0001时间惩罚会直接通过group_reward返回
  • 智能体协作推动方块到对应等级的目标区域时,+1/+2/+3的正向奖励也会写入该字段
  • 如果修改后依然无法获取奖励,可检查导出环境时是否勾选了组奖励导出选项,官方原生示例环境导出时默认开启该配置

内容的提问来源于stack exchange,提问作者escribano101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:36:00