Skip to main content

kaiwu-monitor

Use when working with the Kaiwu platform monitoring system — fetching training metrics, plotting charts, running anomaly checks, or updating monitor config. Covers the monitoring/ directory: fetch.py, check.py, plot.py, config.yaml.

跳到安装

来源信息

仓库
Piaoxuemoli/qoobeeHermes
最近来源活动
2026年6月15日 15:38
检测到的 SKILL.md 语言
中文
星标
0
分支
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
kaiwu-monitor
description
Use when working with the Kaiwu platform monitoring system — fetching training metrics, plotting charts, running anomaly checks, or updating monitor config. Covers the monitoring/ directory: fetch.py, check.py, plot.py, config.yaml.
version
1.0.0
author
Qoobee
platforms
["linux"]
metadata
{"hermes":{"tags":["kaiwu","monitoring","rl","training"],"related_skills":["rl-advisor","repo-scanner"]}}
# Kaiwu Monitor 开悟平台训练监控系统。自动抓取训练指标、绘图、异常检测。 ## When to Use - 用户问"看看训练状态"、"reward 怎么样" - 需要抓取训练监控数据 - 需要生成训练图表 - 需要检查训练异常 - 需要更新监控配置(token、task_id 等) Don't use for: 代码修改(用 git 工作流)、RL 理论问题(用 rl-advisor) ## 文件结构 ``` monitoring/ ├── config.yaml # 模板配置(提交 git) ├── config.local.yaml # 真实配置(不提交,.gitignore) ├── fetch.py # 数据抓取(DJB2 auth + API 调用) ├── check.py # 异常检测(cron 调用) ├── plot.py # 绘图(matplotlib Agg backend) └── data/ ├── latest.json # 最新快照 └── YYYY-MM-DD.json # 每天归档 ``` ## 快速命令 ```bash cd /root/Kaiwu_2026 # 验证连接 python3 monitoring/fetch.py --validate # 抓取数据 python3 monitoring/fetch.py --hours 6 python3 monitoring/fetch.py --hours 1 --groups quick_check # 异常检测 python3 monitoring/check.py # 绘图 python3 monitoring/plot.py python3 monitoring/plot.py --hours 12 # 更新配置 python3 monitoring/fetch.py --update-config --token NEW_TOKEN python3 monitoring/fetch.py --update-config --url "https://tencentarena.com/...task_id=183628&..." ``` ## 认证机制 Kaiwu 平台 API 使用自定义认证: ``` Authorization: Bearer <token> Cookie: select_lang=zh; kaiwu-token=<token> x-kaiwu-ts: <当前Unix时间戳(秒)> x-kaiwu-auth: <DJB2_HASH(ts + token[-32:] + endpoint)> ``` **DJB2 算法**(从 JS 源码逆向): ```python def kaiwu_auth(timestamp: int, token: str, endpoint: str) -> int: s = f"{timestamp}{token[-32:]}{endpoint}" r = 5381 for c in s: r = r + (r << 5) + ord(c) return r & 0x7FFFFFFF ``` 完整逆向过程记录:`docs/sop/开悟平台监控API接入SOP.md` ## API 端点 | 端点 | 用途 | |------|------| | `GetTrainMetricRange` | 时间范围内的指标时序数据(推荐) | | `GetTrainMetric` | 最新快照(可能返回空) | | `GetTrainLog` | 训练日志 | | `GetTrainTask` | 任务详情 | ## 配置管理 `config.local.yaml` 覆盖 `config.yaml` 的字段。`load_config()` 函数合并两个文件: - base (`config.yaml`) 提供 metric_groups 等默认值 - local (`config.local.yaml`) 提供 token、task_id 等敏感字段 **⚠️ 坑点**:三个脚本的 `load_config` 必须都实现合并逻辑,否则会丢失 metric_groups。 ## 用户修改分支 ### token 更新 ``` 用户: "token 过期了,新的 token 是 xxx" → python3 monitoring/fetch.py --update-config --token xxx → python3 monitoring/fetch.py --validate → "已更新 ✓" ``` ### 新训练启动 ``` 用户: "新训练 URL 是 https://tencentarena.com/...task_id=183628&..." → 从 URL 解析参数 → python3 monitoring/fetch.py --update-config --url URL → "已切换 ✓" ``` ### 赛段切换 ``` 用户: "现在打全国决赛了" → python3 monitoring/fetch.py --update-config --stage 全国决赛 → "已切换,请提供新 URL" ``` ## 常见问题 ### 1. 返回空数据 - 检查时间范围是否正确 - 用 `GetTrainMetricRange` 而不是 `GetTrainMetric` ### 2. 中文字体显示为方块 ```bash # 安装中文字体 dnf install -y google-noto-sans-cjk-sc-fonts # RHEL/CentOS apt install -y fonts-noto-cjk # Debian/Ubuntu # 清除 matplotlib 缓存 rm -rf ~/.cache/matplotlib # plot.py 中配置 plt.rcParams["font.sans-serif"] = ["Noto Sans CJK SC", "SimHei", "DejaVu Sans"] plt.rcParams["axes.unicode_minus"] = False ``` ### 3. config.local.yaml 不生效 检查 `load_config()` 是否实现了 base + local 合并逻辑。 ## 指标分组(按分析场景) ```yaml metric_groups: quick_check: [win_rate, reward, total_loss, train_step] reward_analysis: [reward_sum, reward_hp, reward_tower, reward_econ, reward_combat] loss_analysis: [value_loss_hp, value_loss_tower, value_loss_econ, value_loss_combat, policy_loss, entropy_loss] convergence: [episode_win_value, grad_norm, entropy_beta] environment: [self_tower_hp, enemy_tower_hp, kill, death, frame] ```
在 GitHub 查看