docs: add subagent guidance and replay diff skill
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
---
|
||||
name: online-replay-diff
|
||||
description: 处理线上流量回放产生的 diff Excel 文件;当用户要处理线上系统回放 diff、计算 car/phone/glass 等回放数据 diff 率、整理 is_same=False 待标注样本,或复用 data-diff 的 fix_excel / diff_all / select_false 流程时使用。
|
||||
metadata:
|
||||
short-description: 计算线上回放 diff 率并输出待标注 False 样本
|
||||
---
|
||||
|
||||
使用这个 skill 处理线上流量回放导出的 Excel diff 文件:把 `.xls/.xlsx` 清洗成稳定表头,计算 `is_same`,统计 diff 率,并输出待人工标注的数据。
|
||||
|
||||
## 输入形态
|
||||
|
||||
常见输入是线上回放导出的老式 `.xls`:
|
||||
|
||||
- 第 1 行是标题,例如 `DiffCase数据`。
|
||||
- 第 2 行是真实表头。
|
||||
- 必须包含 `Query`、`Preview环境domain`、`Ptr环境domain`。
|
||||
- 常见文件名:`car_random.xls`、`car_top.xls`、`phone_random.xls`、`glass_top.xls`。
|
||||
|
||||
脚本也兼容已经清洗过的 `.xlsx`,会在前 10 行自动寻找真实表头。
|
||||
|
||||
## 处理口径
|
||||
|
||||
- `is_same=True`:`Preview环境domain` 与 `Ptr环境domain` 完全相同,或落在同一等价组。
|
||||
- `is_same=False`:两边 domain 不同且不在等价组内,进入待标注输出。
|
||||
- diff 率:`is_same=False 行数 / 总行数`。
|
||||
|
||||
默认等价组在 `knowledge/equivalence_groups.json`:
|
||||
|
||||
- `CalendarQA` / `time` / `TimeDistance`
|
||||
- `Chat` / `QA` / `dialogCopilot`
|
||||
- `controlCopilot` / `soundboxControl` / `smartMiot` / `smartApp:defaultApp` / `smartApp:app-commander` / `camera`
|
||||
- `music` / `station`
|
||||
|
||||
如果用户给出新的等价关系,优先更新或另存一个 JSON,通过 `--equiv-config` 传入;不要直接在脚本里临时写死。
|
||||
|
||||
## 推荐流程
|
||||
|
||||
1. 确认输入文件和输出目录。用户没指定时,优先在当前工作目录下找 `.xls/.xlsx`,输出到 `output/`。
|
||||
2. 确认依赖可用:
|
||||
```bash
|
||||
python - <<'PY'
|
||||
import pandas, openpyxl, xlrd
|
||||
print("excel deps ok")
|
||||
PY
|
||||
```
|
||||
缺依赖时,在项目虚拟环境里安装:`pip install pandas openpyxl xlrd==2.0.1`。
|
||||
3. 运行脚本:
|
||||
```bash
|
||||
python /Users/wuyang/Project/claw-code-agent/skills/online-replay-diff/scripts/process_replay_diff.py \
|
||||
car_random.xls car_top.xls \
|
||||
--output-dir output \
|
||||
--prefix car
|
||||
```
|
||||
4. 检查控制台 JSON 或 `*_summary.md`,向用户汇报每个文件和总体 diff 率。
|
||||
5. 把 `*_待标注_仅False.xlsx` 作为待标注数据交付。
|
||||
|
||||
## 脚本
|
||||
|
||||
```text
|
||||
skills/online-replay-diff/
|
||||
SKILL.md
|
||||
knowledge/
|
||||
equivalence_groups.json
|
||||
scripts/
|
||||
process_replay_diff.py
|
||||
```
|
||||
|
||||
### process_replay_diff.py
|
||||
|
||||
参数:
|
||||
|
||||
- 位置参数:输入 `.xls/.xlsx` 文件或目录。
|
||||
- `--input-dir`:输入目录;和位置参数目录等价。
|
||||
- `--glob`:目录扫描通配符,默认 `*.xls*`。
|
||||
- `--output-dir`:输出目录,默认 `output`。
|
||||
- `--prefix`:输出文件名前缀,默认 `replay_diff`。
|
||||
- `--equiv-config`:domain 等价规则 JSON。
|
||||
|
||||
输出:
|
||||
|
||||
- `normalized/<stem>.xlsx`:每个输入文件清洗首行标题后的单表。
|
||||
- `<prefix>_汇总结果.xlsx`:每个输入文件一个 sheet,补齐固定列并追加 `is_same`。
|
||||
- `<prefix>_待标注_仅False.xlsx`:只保留 `is_same=False` 的待标注数据。
|
||||
- `<prefix>_summary.json`:机器可读统计。
|
||||
- `<prefix>_summary.csv`:每文件统计表。
|
||||
- `<prefix>_summary.md`:可粘贴到在线文档的处理摘要。
|
||||
|
||||
## 汇报格式
|
||||
|
||||
处理完优先这样回复:
|
||||
|
||||
```text
|
||||
已处理 N 个回放 diff 文件。
|
||||
|
||||
- car_random:总行数 7,285,diff 416,diff 率 5.7104%
|
||||
- car_top:总行数 12,260,diff 485,diff 率 3.9560%
|
||||
- 总体:总行数 19,545,diff 901,diff 率 4.6099%
|
||||
|
||||
待标注数据:/abs/path/output/car_待标注_仅False.xlsx
|
||||
汇总结果:/abs/path/output/car_汇总结果.xlsx
|
||||
```
|
||||
|
||||
如果脚本失败,先检查:
|
||||
|
||||
- 是否缺 `xlrd`,老式 `.xls` 必须用它读。
|
||||
- 是否找不到真实表头;前 10 行必须能看到 `Query`、`Preview环境domain`、`Ptr环境domain`。
|
||||
- 是否输入了脚本刚产出的汇总文件,导致重复处理输出文件。
|
||||
Reference in New Issue
Block a user