Add router session mining tools

This commit is contained in:
武阳
2026-04-30 18:25:13 +08:00
parent 97bf5b9a54
commit 2ea3a63447
5 changed files with 1240 additions and 8 deletions
@@ -3,11 +3,43 @@ name: online-badcase-mining
description: 分析 badcase,并通过可 review 的策略迭代挖掘线上相似 case。
when_to_use: 当用户提供线上 badcase 或产品/标签定义,并希望查找相似线上问题或构建专项集时使用。
aliases: badcase-mining, online-mining
allowed_tools: read_file, write_file, edit_file, grep_search, glob_search, ask_user_question, mcp_list_tools, mcp_call_tool
allowed_tools: read_file, write_file, edit_file, grep_search, glob_search, ask_user_question, data_agent_profile_router_sessions, data_agent_search_router_sessions, data_agent_sample_router_candidates, data_agent_convert_router_candidates_to_records, data_agent_export_dataset_records
---
使用这个 skill 处理“badcase 或标签定义 -> 挖掘策略 -> 候选召回 -> 抽样 review -> 策略迭代 -> mined dataset”的工作流。
## 两条分支
线上挖掘后必须先判断用户要的是哪条分支。
### 分支 A:线上候选直接作为数据样本
当用户说“把筛选出的数据变成样本”“拿这些线上数据做评测集”“保留这批线上 case”“导出候选样本”时,走这个分支。
流程:
1.`data_agent_profile_router_sessions` 查看数据概貌。
2.`data_agent_search_router_sessions` 按策略召回线上候选。
3.`data_agent_sample_router_candidates` 抽样展示给用户 review。
4. 根据用户 review 意见形成 include/exclude/uncertain 决策和目标标签。
5.`data_agent_convert_router_candidates_to_records` 把线上候选直接转换为 canonical records。
6. 如果用户要求落盘,用 `data_agent_export_dataset_records` 导出紧凑 JSONL。
这个分支不生成新 query,不调用数据生成计划工具,不调用 dataset draft 归一化工具。
### 分支 B:基于线上问题再生成补充数据
当用户明确说“生成/扩写/构造/造一批类似 case/补充训练数据”时,才走这个分支。
流程:
1. 先完成线上召回、抽样和 review。
2. 总结线上问题模式和需要覆盖的边界。
3. 再切换到数据生成流程,创建待 review 的 generation goal 和 generation plan。
4. 用户确认后才生成 draft,并转换为 canonical records。
如果用户只是要求“把线上数据作为样本”,不要进入这个分支。
## 输入假设
用户可能会提供:
@@ -51,15 +83,16 @@ allowed_tools: read_file, write_file, edit_file, grep_search, glob_search, ask_u
- `grep_search`
- `glob_search`
- `ask_user_question`
- `data_agent_profile_router_sessions`:读取 `router_session_parquet/date=YYYYMMDD/` 的小样本概貌,查看 schema、设备、轮次、domain、intent、func 等分布。
- `data_agent_search_router_sessions`:按日期、设备、domain、intent、func、query 关键词/正则、轮次数等条件召回线上 session 候选;输出命中 turn、前文 turn、req_id 和 action_json 解析结果。
- `data_agent_sample_router_candidates`:对召回候选做稳定抽样,并输出 review 需要的基础统计。
- `data_agent_convert_router_candidates_to_records`:把 review 后的线上候选直接转换为 canonical records;用于“线上数据作为样本”的分支。
- `data_agent_export_dataset_records`:后续把 review 后的线上候选转换为 canonical records 后落盘;默认紧凑 JSONL。
如果线上挖掘工具通过 MCP 暴露,先用 `mcp_list_tools` 查看可用工具,再决定是否调用 `mcp_call_tool`
TODO:规划中的专用工具:
TODO:后续规划中的专用工具:
- `analyze_badcases`
- `build_mining_strategy`
- `search_online_sessions`
- `sample_online_candidates`
- `create_annotation_batch`
- `read_annotation_result`
- `evaluate_mining_precision`
@@ -86,3 +119,5 @@ tasks/{task_id}/memory/failed_attempts.md
- 除非批准的工具输出已经脱敏,否则不要导出敏感线上原始字段。
- 不要把第一版挖掘策略当成最终策略。
- 始终让筛选条件和抽样决策可 review。
- 只有用户明确要求生成、扩写或构造新数据时,才进入数据生成分支。
- 如果用户要求把筛选出的线上候选变成样本,必须先使用 `data_agent_convert_router_candidates_to_records`,不要改走 generation goal/plan。