Add label master skill

This commit is contained in:
wuyang6
2026-05-09 17:49:53 +08:00
parent 84b715a293
commit 010dc1a88d
166 changed files with 13099 additions and 3 deletions
+143
View File
@@ -0,0 +1,143 @@
---
name: label-master
description: 标签大师:读取和使用中控标签知识库,辅助标签边界理解、候选标签比较、数据生成目标校验和标签知识问答。
when_to_use: 当用户要求判断 query 应该归属哪个标签、解释标签边界、校验数据生成目标中的 target、整理标签知识或分析标签混淆时使用。
aliases: label-knowledge, 标签大师, 标签知识, label, 标签体系
allowed_tools: read_file, write_file, edit_file, grep_search, glob_search, ask_user_question, python_exec, bash
---
使用这个 skill 作为“标签知识理解和标签边界分析”的入口。它不直接把标签判断收敛成一个黑盒分类工具,而是指导 Agent 逐步阅读知识、比较候选、解释依据,并在不确定时向用户确认。
## 知识入口
长期维护入口在本 skill 的 `knowledge/` 目录:
- `knowledge/标签总览.md`:标签体系总览、领域索引和推荐阅读路径。
- `knowledge/决策流程.md`:完整判断顺序,覆盖结构维度、业务标签、输出能力和最终组合。
- `knowledge/索引/候选召回索引.md`:根据 query 的动作、对象、资源和设备快速缩小候选范围。
- `knowledge/索引/标签索引.md`:Agent 第一阶段使用的轻量索引,包含领域、标签、旧 tag、Agent 候选、Function 候选和知识卡片路径。
- `knowledge/索引/维度索引.md`:Agent 第一阶段判断是否需要加载标注输出、complex、多指令、自动任务等维度知识。
- `knowledge/输出能力/`:维护 object、function、intent 和最终 target 组合规范。
- `knowledge/判断维度/`:独立维护标注输出形态、complex、多指令、自动任务等非业务标签维度。
- `knowledge/标签/`:按标签维护的知识卡片,文件名使用中文。
- `knowledge/边界/边界索引.md`:高频混淆边界入口。
- `knowledge/边界/高频混淆/`:人工维护的高频边界卡,运行时优先读取。
- `knowledge/边界/领域概览/`:旧资料自动迁移出的领域边界概览,只作为补充背景。
- `knowledge/迁移记录.md`:仅记录从旧文档迁移到 Markdown 知识库的过程,不作为运行时主要依据。
如果用户问单个标签,优先读 `knowledge/索引/标签索引.md` 定位对应卡片,再读 `knowledge/标签/*.md`。如果用户问边界、分类或最终 target,先读 `knowledge/决策流程.md`,再按流程读取 `候选召回索引.md`、候选标签、`边界索引.md`、高频混淆卡、判断维度和输出能力文件。
## 决策流程
处理标签判断、边界解释、目标校验或数据 target 确认时,按下面流程工作:
1. 提取用户 query、上下文、设备、已有候选标签、用户给出的标签假设。
2. 读取 `knowledge/决策流程.md`,按“结构维度 -> 业务标签 -> 输出能力 -> 组合结果”的顺序推进。
3. 先判断是否涉及自动任务、多指令或 complex;必要时读取 `knowledge/索引/维度索引.md``knowledge/判断维度/`
4. 再读取 `knowledge/索引/候选召回索引.md``knowledge/标签总览.md``knowledge/索引/标签索引.md`,找出 2-5 个候选领域或候选标签。
5. 如果命中高频混淆,读取 `knowledge/边界/边界索引.md``knowledge/边界/高频混淆/` 下对应文件。
6. 读取候选标签卡片,重点看“标注输出”“适用范围”“不适用范围”“易混淆标签”“划分原则”。
7. 如果仍然不清楚,再读取 `knowledge/边界/领域概览/` 下对应领域文件作为补充。
8. 如任务涉及最终 target 输出,读取 `knowledge/判断维度/标注输出形态.md``knowledge/输出能力/` 下对应文件。
9. 输出判断时必须包含:
- 推荐标签
- 候选标签
- 判断依据
- 排除哪些标签以及原因
- 输出形式判断:function program、intent、Agent 包装,或需要用户确认
- complex 判断(如任务需要)
- 不确定点或需要用户确认的问题
不要只给一个标签名。标签判断应该可解释、可 review。不要一开始读取整个 `标签/``边界/``输出能力/` 目录;先读索引,再读候选文件。
## 输出形式约束
旧标签资料中同时存在 `tag标签``Function及参数定义`、object、function、intent 和承接 Agent。不要默认把所有标签都写成 `Agent(tag="...")`。需要判断输出格式时,先读取 `knowledge/判断维度/标注输出形态.md``knowledge/输出能力/输出组合规范.md`
阅读标签卡片时,必须区分:
- `旧 tag 标签`:旧表里的标签名。
- `Agent 形式候选`:如果当前任务仍使用 tag 体系,可能写成 `Agent(tag="xxx")`
- `Function 形式候选`:如果当前任务使用 function 体系,需要参考卡片中的函数、参数或满足方式。
- `object`:只在 function 需要参数时抽取,例如 `Location``PersonalDate``Resource`
- `intent`:业务意图输出,可以直接作为 intent target,也可以按任务要求包装为 Agent。
- `当前最终输出`:没有明确迁移状态时,一律视为待确认。
当用户要生成训练/评测数据,且没有明确说明使用 function program、intent 还是 Agent 包装时,必须先确认 target 输出格式,不要自行选择。
## 脚本化能力
本 skill 提供两个确定性脚本。脚本只负责知识索引、格式检查和合法性校验,不负责替代 Agent 做 query 语义判断。
### 生成知识索引
当标签知识 Markdown 被新增或修改后,调用:
```bash
python skills/label-master/scripts/build_label_manifest.py
```
脚本会读取 `knowledge/标签/``knowledge/输出能力/``knowledge/判断维度/``knowledge/边界/`,生成:
```text
skills/label-master/knowledge/索引/label_manifest.json
```
这个 manifest 是 Agent 和校验脚本使用的机器索引。人工维护仍以 Markdown 为准,不要直接手改 manifest。需要检查 manifest 是否同步时,调用:
```bash
python skills/label-master/scripts/build_label_manifest.py --check
```
### 校验标签输出
当 Agent 已经给出 target、function program、intent、Agent 包装、多指令 JSON 或自动任务 JSON 后,在写入数据集前调用:
```bash
python skills/label-master/scripts/validate_label_output.py --target 'Agent(tag="地图导航")'
```
常见示例:
```bash
python skills/label-master/scripts/validate_label_output.py --target 'Agent(tag="餐饮服务")'
python skills/label-master/scripts/validate_label_output.py --target $'x0=Resource(type="DOC")\nSummarize(object=x0)'
python skills/label-master/scripts/validate_label_output.py --target '[{"condition": null, "querys": [{"subquery": "附近有什么好吃的", "intent": "餐饮服务"}]}]'
```
批量校验 JSON/JSONL 文件中的 target 字段:
```bash
python skills/label-master/scripts/validate_label_output.py --file output/records.jsonl --field target
```
校验结果会输出 JSON
```json
{
"valid": true,
"detected_type": "agent",
"normalized_output": "Agent(tag=\"地图导航\")",
"errors": [],
"warnings": [],
"references": []
}
```
如果 `valid=false`,必须先根据 `errors` 修正输出,再继续生成、落盘或导出数据。
## 和数据开发 skill 的关系
`product-data``online-mining` 等数据开发 skill 在需要确认 target、比较标签边界、生成边界样本或分析 badcase 时,可以读取本 skill 的知识文件。
本 skill 只负责标签知识、边界判断和 target 合法性校验,不负责生成 dataset draft,不负责导出 canonical records。需要生成数据时,继续使用数据开发 skill 的 review 和 records 工具链。
## 维护规则
- 新增或修改标签知识时,优先修改 `knowledge/标签/*.md``knowledge/边界/高频混淆/*.md`
- 不要要求 Agent 长期回读旧 docx。旧 docx 只作为迁移输入。
- complex、多指令、自动任务等维度只写在 `knowledge/判断维度/`,不要写进每个标签卡片。
- object、function、intent 和 Agent 承接关系写在 `knowledge/输出能力/`,不要散落到标签卡片里重复维护。
- 标签卡片文件名使用中文,便于人工维护。
- 标签输出表达必须保留完整形式。Agent 形式例如 `Agent(tag="地图导航")`;Function 形式必须按已确认的 function 格式写,不要只写标签名。
- 修改标签、function、intent、object 或边界知识后,运行 `scripts/build_label_manifest.py` 更新 manifest。