Files
zk-data-agent/skills/label-master/SKILL.md
T
2026-05-09 17:49:53 +08:00

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