144 lines
8.4 KiB
Markdown
144 lines
8.4 KiB
Markdown
---
|
||
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。
|