Files
zk-data-agent/skills/label-fast-slow-routing/SKILL.md
T

192 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: label-fast-slow-routing
description: 依据 XA4.1 2026.6 新标准,对单条或批量 query、带会话上下文的请求和快慢分流评测数据进行“快 / 慢 / 模糊”三档可解释打标,给出默认路由、原因码、证据、置信度和复核标记,并在需要时兼容旧 FAST_DIRECT / SLOW_* 评测标签。用于快慢系统策略标注、旧评测集重标、边界 case 仲裁、标注 Prompt 编写、标签一致性检查和 badcase 分析;可结合相邻 label-master skill 判断业务领域、候选标签、复杂度、多指令和自动任务,但不得把这些辅助维度直接等同于快慢标签。
---
# 快慢分流打标
## 目标
按用户对响应速度和结果质量的预期判断语义标签,不按当前系统能力反推标签。始终分开输出:
- `label``快``慢``模糊`
- `default_route`:三档标签的默认系统策略。
- `fast_system_pending`:已确认的快系统能力缺口。
- 业务标签及 `complex`、多指令、自动任务等辅助维度。
## 加载知识
1. 每次打标前读取 [references/policy.md](references/policy.md)。
2. 处理边界 case、校准标注员或编写 Prompt 时,再读取 [references/golden-examples.md](references/golden-examples.md)。
3. 迁移旧评测集、输出 `FAST_DIRECT` / `SLOW_*`、设计评测集或做质检时,再读取 [references/legacy-eval-and-quality.md](references/legacy-eval-and-quality.md)。
4. 需要业务领域、业务标签、候选标签或结构维度时,按“结合 label-master”一节渐进加载相邻知识;不要一次读取整个知识库。
## 遵守真源优先级
按以下顺序处理冲突:
1. 用户在当前任务中明确给出的已批准新口径。
2. 《【XA4.1】快慢分流新标准-2026.6》最终汇总(物理页 7–10)。
3. 同文档的垂域调研细则(物理页 2–7),仅补充最终汇总未覆盖的场景。
4. 《快慢系统分发-评测集构建》的旧八类标签,仅用于原因解释、旧数据迁移和评测方法。
5. `label-master` 的业务标签与正交维度,仅用于辅助理解。
明确处理以下冲突:
- 把“导航去附近评分 4.5 以上的泰国菜”标为 `快`,不要沿用旧的筛选即慢。
- 把“那个压线噔噔的声音关掉”标为 `快`,前提是功能可唯一识别且动作明确。
- 把纯静态产品知识、故障诊断、设备或环境状态查询标为 `模糊`,不要直接沿用旧的快或慢。
- 把多个全部明确的设备控制动作标为 `快`;不要仅因多指令就标慢。
- 不要使用“长度不超过 5 字默认快”。它只是旧候选挖掘捷径,不是语义规则。
## 执行工作流
### 1. 整理输入
提取并保留:
- 当前 `query`
- 已提供的前轮、系统回复、时间窗口、设备、端侧和场景。
- 用户要求的输出格式和旧标签兼容要求。
- 已提供的快系统能力清单;没有清单时不要猜测能力支持状态。
只使用可见上下文。缺少会改变结论的上下文时,保留不确定点并设置 `review_required=true`
### 2. 判断业务与结构辅助信息
需要时使用 `label-master` 判断:
- 业务领域和 2–5 个候选业务标签。
- 是否为多指令、自动任务或 `complex`
- 当前轮是否真正依赖上文。
保持这些结果与快慢标签正交。特别注意:
- `complex=true` 不自动等于 `慢`
- 多指令不自动等于 `慢`
- 自动任务要结合端侧专项策略。
- 业务标签不自动决定快慢。
### 3. 按三档策略裁决
使用 [references/policy.md](references/policy.md) 的完整决策树。执行以下最小顺序:
1. 先区分纯信息获取和带副作用的执行请求。
2. 对执行请求,先检查是否必须反推意图、映射场景、消歧、补槽、依赖上下文或规划多步;命中则倾向 `慢`
3. 再检查动作和目标能否直接识别、是否无需先决定“做什么”;满足则标 `快`
4. 对纯闲聊、开放问答、产品知识、故障诊断、设备或环境状态查询标 `模糊`
5. 无法可靠归入快或慢、或速度和质量预期同时明显存在时标 `模糊`,不要把“模型自己不确定”伪装成确定标签。
6. 聚合多个子请求时使用 `慢 > 模糊 > 快`;多个全部明确的设备控制动作使用 `快`特例。
同时做反证检查:说明为什么没有选择另外两档。不要只凭关键词命中一个规则。
### 4. 确定默认路由和能力状态
按固定映射填写:
- `快``default_route="快系统"`
- `慢``default_route="慢系统"`
- `模糊` → 默认 `default_route="慢系统"`;只有用户另给细分部署策略时才在下游覆盖,语义标签保持 `模糊`
仅在有明确能力清单或验证结果证明“语义上应为快,但当前快系统尚不支持”时填写 `fast_system_pending=true`。没有检查能力时填 `null`,不要填 `false` 假装已验证。
### 5. 生成可审查结果
默认每条样本输出一个符合 [schemas/label-record.schema.json](schemas/label-record.schema.json) 的 JSON 对象:
```json
{
"query": "太冷了,调一下空调",
"label": "快",
"default_route": "快系统",
"primary_reason_code": "DIRECT_ACTION",
"reason_codes": ["DIRECT_ACTION"],
"reason": "用户明确给出调节动作和空调对象,无需反推要操作什么。",
"evidence": ["“调一下空调”同时包含动作和可识别对象"],
"counterevidence": ["含感受词“太冷”,但感受词不覆盖明确执行目标"],
"domain_label": "设备控制",
"candidate_domain_labels": ["设备控制", "车载控制"],
"structural_signals": {
"complex": null,
"multi_instruction": false,
"auto_task": false
},
"context_used": false,
"fast_system_pending": null,
"legacy_eval_label": "FAST_DIRECT",
"confidence": "high",
"review_required": false,
"uncertainties": [],
"policy_version": "XA4.1-2026.6"
}
```
使用 `null` 表示未评估,不要用猜测值补齐辅助字段。用户只要求简表时至少保留 `query``label``primary_reason_code``reason``review_required`;落盘数据仍使用完整契约。
### 6. 校验后再落盘
对单条结果执行:
```bash
python skills/label-fast-slow-routing/scripts/validate_label.py \
--record '{"query":"开空调","label":"快","default_route":"快系统","primary_reason_code":"DIRECT_ACTION","reason_codes":["DIRECT_ACTION"],"reason":"动作和对象明确。","evidence":["开+空调"],"context_used":false,"fast_system_pending":null,"confidence":"high","review_required":false,"uncertainties":[],"policy_version":"XA4.1-2026.6"}'
```
对 JSON、JSONL 文件执行:
```bash
python skills/label-fast-slow-routing/scripts/validate_label.py \
--file output/fast_slow_labels.jsonl
```
出现 `valid=false` 时先修正结构和不变量,再写入训练集或评测集。校验器只保证结构和跨字段一致性,不能替代语义复核。
## 结合 label-master
需要业务标签时按以下最短路径读取:
1. 读取 `../label-master/knowledge/决策流程.md`
2. 读取 `../label-master/knowledge/索引/候选召回索引.md``../label-master/knowledge/标签总览.md`
3.`../label-master/knowledge/索引/标签索引.md` 召回 25 个候选。
4. 命中高频混淆时读取对应边界卡,再读取候选标签卡。
5. 只在任务需要时读取复杂度、多指令或自动任务文件。
复用它的“候选召回 → 边界比较 → 排除理由 → 不确定点”方法,不复用它的 `Agent` / function target 作为快慢输出。
`label-master` 与本策略冲突时:
- 保留其业务标签与结构维度结论。
- 按本 skill 的真源优先级独立重算快慢标签。
-`counterevidence` 中记录冲突,不静默覆盖。
## 批量与评测集要求
- 保留原始 ID、query、上下文和来源,不修改原始数据。
- 逐条执行完整语义判断,不按字数、关键词或既有类别比例直接定标。
- 对同一 session 使用相同的上下文截取规则;缺上下文样本单独标记。
-`模糊` 保留为语义标签;需要二值评测时另派生默认路由,不要覆盖原标签。
- 旧八类标签只写入 `legacy_eval_label`;无法无损映射时填 `null` 并解释。
- 对高流量、高分歧、高风险误分样本优先双人盲标并仲裁。
- 分别统计三档标签、垂域、端侧和方向性错误;不要只看总准确率。
## 复核门禁
满足任一情况时设置 `review_required=true`
- 缺少会改变标签的前轮、设备或端侧信息。
- 快慢规则同时有强证据,且优先级无法消解。
- 只能依赖未确认的系统能力或白名单。
- 旧标签无法无损迁移到新三档。
- `confidence="low"`
`模糊` 不自动等于需要人工复核。产品知识或状态查询可以高置信地标为 `模糊`
## 禁止事项
- 不要因快系统当前不支持而把 `快`改成 `慢`
- 不要把 `complex=true`、长 query、联网、搜索、排序、模糊词或多轮中的任一项当成单独硬触发器。
- 不要把非标准叫法等同于真实歧义;先判断对象能否唯一识别。
- 不要脑补前轮、设备位置、说话人位置或能力清单。
- 不要把旧评测集的样本占比当成先验配额。
- 不要输出没有证据或排除理由的裸标签。