#!/usr/bin/env python3 # -*- coding: UTF-8 -*- ########################################################################### # Copyright © 1998 - 2026 Tencent. All Rights Reserved. ########################################################################### """ Author: Tencent AI Arena Authors Monitor panel configuration builder for Robot Vacuum. 清扫大作战监控面板配置构建器。 """ from kaiwudrl.common.monitor.monitor_config_builder import MonitorConfigBuilder def build_monitor(): """ # This function is used to create monitoring panel configurations for custom indicators. # 该函数用于创建自定义指标的监控面板配置。 """ monitor = MonitorConfigBuilder() config_dict = ( monitor.title("清扫大作战") .add_group( group_name="算法指标", group_name_en="algorithm", ) .add_panel( name="累积回报", name_en="reward", type="line", ) .add_metric( metrics_name="reward", expr="avg(reward{})", ) .end_panel() .add_panel( name="总损失", name_en="total_loss", type="line", ) .add_metric( metrics_name="total_loss", expr="avg(total_loss{})", ) .end_panel() .add_panel( name="价值损失", name_en="value_loss", type="line", ) .add_metric( metrics_name="value_loss", expr="avg(value_loss{})", ) .end_panel() .add_panel( name="策略损失", name_en="policy_loss", type="line", ) .add_metric( metrics_name="policy_loss", expr="avg(policy_loss{})", ) .end_panel() .add_panel( name="熵损失", name_en="entropy_loss", type="line", ) .add_metric( metrics_name="entropy_loss", expr="avg(entropy_loss{})", ) .end_panel() .add_panel( name="近似KL", name_en="approx_kl", type="line", ) .add_metric( metrics_name="approx_kl", expr="avg(approx_kl{})", ) .end_panel() .add_panel( name="裁剪比例", name_en="clip_fraction", type="line", ) .add_metric( metrics_name="clip_fraction", expr="avg(clip_fraction{})", ) .end_panel() .end_group() .add_group( group_name="行为指标", group_name_en="behavior", ) .add_panel( name="原地撞墙步数", name_en="stuck", type="line", ) .add_metric( metrics_name="stuck_count", expr="avg(stuck_count{})", ) .add_metric( metrics_name="max_stuck_steps", expr="avg(max_stuck_steps{})", ) .end_panel() .add_panel( name="回充逃脱次数", name_en="recharge_escape", type="line", ) .add_metric( metrics_name="recharge_escape_count", expr="avg(recharge_escape_count{})", ) .add_metric( metrics_name="recharge_steps", expr="avg(recharge_steps{})", ) .end_panel() .add_panel( name="NPC危险接近", name_en="npc_danger", type="line", ) .add_metric( metrics_name="npc_close_steps", expr="avg(npc_close_steps{})", ) .add_metric( metrics_name="npc_danger_steps", expr="avg(npc_danger_steps{})", ) .end_panel() .add_panel( name="失败类型", name_en="failure_type", type="line", ) .add_metric( metrics_name="npc_collision", expr="avg(npc_collision{})", ) .add_metric( metrics_name="battery_fail", expr="avg(battery_fail{})", ) .end_panel() .add_panel( name="得分与充电", name_en="score_charge", type="line", ) .add_metric( metrics_name="total_score", expr="avg(total_score{})", ) .add_metric( metrics_name="charge_count", expr="avg(charge_count{})", ) .add_metric( metrics_name="remaining_charge", expr="avg(remaining_charge{})", ) .end_panel() .add_panel( name="动作掩码健康", name_en="mask_health", type="line", ) .add_metric( metrics_name="mask_final_avg", expr="avg(mask_final_avg{})", ) .add_metric( metrics_name="mask_one_action_steps", expr="avg(mask_one_action_steps{})", ) .add_metric( metrics_name="mask_two_or_less_action_steps", expr="avg(mask_two_or_less_action_steps{})", ) .add_metric( metrics_name="mask_zero_final_steps", expr="avg(mask_zero_final_steps{})", ) .end_panel() .add_panel( name="回充动作掩码", name_en="recharge_mask", type="line", ) .add_metric( metrics_name="mask_recharge_active", expr="avg(mask_recharge_active{})", ) .add_metric( metrics_name="mask_recharge_changed", expr="avg(mask_recharge_changed{})", ) .end_panel() .end_group() .build() ) return config_dict