feat: 新增label快慢分流skill全套配置与校验脚本

This commit is contained in:
zhukai8
2026-07-23 18:09:01 +08:00
parent 017743a415
commit 9067914ecc
7 changed files with 1386 additions and 0 deletions
+191
View File
@@ -0,0 +1,191 @@
---
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、联网、搜索、排序、模糊词或多轮中的任一项当成单独硬触发器。
- 不要把非标准叫法等同于真实歧义;先判断对象能否唯一识别。
- 不要脑补前轮、设备位置、说话人位置或能力清单。
- 不要把旧评测集的样本占比当成先验配额。
- 不要输出没有证据或排除理由的裸标签。