Files
zk-data-agent/src/skills/bundled/online-mining/SKILL.md
T

5.6 KiB

name, description, when_to_use, aliases, allowed_tools
name description when_to_use aliases allowed_tools
online-mining 分析 badcase,并通过可 review 的策略迭代挖掘线上相似 case。 当用户提供线上 badcase 或产品/标签定义,并希望查找相似线上问题或构建专项集时使用。 badcase-mining, router-mining 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”的工作流。

所有线上挖掘产物必须放在当前用户当前会话的 output 目录下。不要把 records 或 review 结果写到项目根目录的 output/tasks/ 或源码目录。工具会把相对 output_path 自动路由到会话 output 目录;展示给用户时以工具返回的实际路径为准。

两条分支

线上挖掘后必须先判断用户要的是哪条分支。

分支 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。

如果用户只是要求“把线上数据作为样本”,不要进入这个分支。

输入假设

用户可能会提供:

  • 产品或标签定义
  • 线上 badcase 样例
  • 期望/正确 label
  • 线上预测 label
  • query、tts、agent type、function name、垂域、设备、日期、模型版本或其他元数据

线上字段和允许使用的筛选条件还没有最终确定。

必要工作流

  1. 读取用户提供的 badcase 或定义文件。
  2. 分析 badcase 共性:
    • query 模式
    • label 混淆
    • agent/function 类型
    • 垂域
    • 如存在,分析设备/日期/模型等元数据
  3. 起草带明确筛选条件的挖掘策略。
  4. 当筛选条件不清或影响较大时,先请用户 review,再做宽泛线上召回。
  5. 只使用批准的工具检索或请求候选数据。
  6. 先抽取小批 review 样本,通常约 100 条。
  7. 总结样本命中率和主要 false positive 模式。
  8. 根据结果调整策略,并按需重复。
  9. 最终产出以下一种或多种:
    • 线上问题评估报告
    • 专项评测集候选
    • 专项 badcase 集合
    • 训练候选数据

当前工具状态

当前先使用已有工具完成本地分析和策略起草:

  • read_file
  • write_file
  • edit_file
  • 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。

TODO:后续规划中的专用工具:

  • analyze_badcases
  • build_mining_strategy
  • create_annotation_batch
  • read_annotation_result
  • evaluate_mining_precision
  • refine_mining_strategy
  • export_mined_dataset

不要手写 raw SQL,也不要用宽泛 shell 命令进行数据检索。

推荐产物

tasks/{task_id}/context/badcases.*
tasks/{task_id}/artifacts/badcase_analysis.md
tasks/{task_id}/artifacts/mining_strategy.md
tasks/{task_id}/artifacts/candidate_sample.jsonl
tasks/{task_id}/artifacts/review_report.md
tasks/{task_id}/artifacts/mined_candidates.jsonl
tasks/{task_id}/memory/open_questions.md
tasks/{task_id}/memory/failed_attempts.md

约束

  • 除非批准的工具输出已经脱敏,否则不要导出敏感线上原始字段。
  • 不要把第一版挖掘策略当成最终策略。
  • 始终让筛选条件和抽样决策可 review。
  • 只有用户明确要求生成、扩写或构造新数据时,才进入数据生成分支。
  • 如果用户要求把筛选出的线上候选变成样本,必须先使用 data_agent_convert_router_candidates_to_records,不要改走 generation goal/plan。