Add label master skill
This commit is contained in:
@@ -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。
|
||||
Reference in New Issue
Block a user