AgentSkillsCN

media-hub

交通安全宣传素材中枢。支持自然语言搜索素材库、为新素材自动标引标签、统计素材库概况。当用户提到"找素材""搜索素材""查找素材""素材标签""标引素材""素材统计""有什么素材"时激活。

中文原作
SKILL.md
--- frontmatter
name: media-hub
description: 交通安全宣传素材中枢。支持自然语言搜索素材库、为新素材自动标引标签、统计素材库概况。当用户提到"找素材""搜索素材""查找素材""素材标签""标引素材""素材统计""有什么素材"时激活。
user-invocable: true

素材中枢(Media Hub)

功能概述

本 Skill 是交通安全宣传教育的素材管理系统,提供三大核心能力:

  1. 自然语言素材搜索:用户用自然语言描述需求,Agent 语义匹配素材库元数据,返回最相关的素材列表
  2. 自动标签标引:为新入库的素材自动生成多维度标签(事故类型、违法种类、路段、天气、场景等)
  3. 素材库统计:汇总素材总量、类型分布、热门标签等概况信息

触发条件(When to Use)

当用户的输入匹配以下意图时激活本 Skill:

  • 要求搜索或查找交通安全宣传素材
  • 提到"找素材""搜索素材""查找素材""有没有……的素材""找一些……的视频/图片"
  • 要求为素材添加标签或进行标引
  • 提到"素材标签""标引素材""给素材打标签""添加素材"
  • 要求查看素材库概况
  • 提到"素材统计""素材库有多少""素材概况"

不激活的情况:用户要求生成文案内容(由 content-producer 处理)、审核内容(由 content-reviewer 处理)。

工作流程(Instructions)

模式一:素材搜索

步骤 1:解析搜索意图

分析用户的自然语言查询,提取搜索维度:

维度说明示例
场景关键词事故类型、场景描述"追尾事故""行人闯红灯"
天气条件天气相关"雨天""雾天""冰雪"
道路类型道路环境"高速公路""城区路口""农村道路"
素材类型文件格式偏好"视频""图片"
时间范围拍摄时间"去年冬季""2025年"
来源素材来源"执法记录仪""道路监控"

步骤 2:读取素材索引

读取 data/materials/index.json 获取全量素材元数据列表。

索引数据结构:

json
{
  "version": "1.0",
  "total_count": 256,
  "last_updated": "2026-02-11",
  "materials": [
    {
      "id": "mat-001",
      "title": "雨天高速公路追尾事故",
      "type": "video",
      "tags": ["追尾", "雨天", "高速公路", "事故"],
      "thumbnail": "thumbs/mat-001.jpg",
      "usage_count": 12
    }
  ]
}

步骤 3:语义匹配

对用户查询词与每条素材的 title、tags、description 进行语义匹配:

匹配策略:

  • 直接关键词匹配:查询词与标签完全匹配
  • 语义近似匹配:查询"暴雨"可匹配标签含"雨天"的素材;查询"交通事故"可匹配"追尾""碰撞"等
  • 多维度交叉匹配:多个查询条件取交集

匹配算法:

code
匹配分数 = Σ(标签匹配度 × 权重)

其中:
- 完全匹配:1.0
- 同义词匹配:0.8
- 相关词匹配:0.5

步骤 4:返回搜索结果

为每条匹配的素材返回以下信息:

  • 素材 ID 和标题
  • 素材类型(视频/图片)
  • 标签列表
  • 描述信息
  • 文件路径(相对路径)
  • 使用次数

搜索结果格式:

markdown
## 搜索结果:"{查询关键词}"

共找到 {N} 条相关素材:

### 1. {素材标题}
- **ID**: {mat-XXX}
- **类型**: {视频/图片}
- **标签**: {标签1}, {标签2}, ...
- **描述**: {描述}
- **已使用**: {N} 次

### 2. ...

步骤 5:提供使用建议

根据搜索结果,建议用户:

  • 可以将哪些素材用于 content-producer 生成文案
  • 哪些素材适合制作海报或视频
  • 如果搜索结果不理想,建议调整搜索关键词

模式二:素材标引

步骤 1:获取素材信息

用户提供新素材的基本信息:

  • 文件名(必填)
  • 素材类型(视频/图片,必填)
  • 简要描述(必填,1-2句话说明素材内容)
  • 来源(可选,如"执法记录仪""道路监控")
  • 拍摄地点(可选)
  • 拍摄日期(可选)

步骤 2:生成多维度标签

基于素材信息,使用 LLM 自动生成以下维度的标签:

维度示例标签
事故类型追尾、侧翻、碾压、单车事故
违法种类酒驾、超速、闯红灯、逆行
道路类型高速公路、城区道路、农村道路、山区公路
天气条件晴天、雨天、雾天、冰雪
时间特征夜间、早高峰、晚高峰
涉及对象货车、电动车、行人、学生、老年人
宣传用途安全教育、警示教育、正能量、节日宣传

标签生成规则:

  • 每条素材至少生成 3 个标签,最多 8 个
  • 标签使用中文短词(2-4个字)
  • 标签必须基于素材的实际内容,不臆造

步骤 3:生成元数据并保存

生成完整的素材元数据 JSON 文件:

json
{
  "id": "mat-{新序号}",
  "title": "{标题}",
  "type": "{video/image}",
  "filename": "{文件名}",
  "tags": ["标签1", "标签2", ...],
  "source": "{来源}",
  "description": "{描述}",
  "location": "{地点}",
  "date": "{日期}",
  "usage_count": 0,
  "created_at": "{入库时间}",
  "thumbnail": "{缩略图路径}"
}

保存到 data/materials/items/mat-{序号}.json,并更新 data/materials/index.json 索引文件。

标引结果格式:

markdown
## 素材标引完成

- **素材ID**: {mat-XXX}
- **标题**: {标题}
- **生成标签**: {标签列表}
- **保存路径**: data/materials/items/{id}.json
- **索引已更新**: 是

模式三:素材统计

读取 data/materials/index.json,汇总以下统计信息:

  • 素材总数
  • 按类型分布(视频/图片各多少条)
  • 热门标签 Top 10(出现频率最高的标签)
  • 最近入库的素材列表
  • 使用频率最高的素材列表

统计报告格式:

markdown
## 素材库概况

- **素材总数**: {N} 条
- **视频素材**: {N} 条
- **图片素材**: {N} 条

### 热门标签 Top 10
| 排名 | 标签 | 出现次数 |
|------|------|---------|
| 1 | {标签} | {次数} |

### 最近入库
[最近入库的5条素材]

### 高频使用
[使用次数最多的5条素材]

资源文件清单

文件路径类型用途
reference/tagging-standards.md文档标签标引标准
reference/search-tips.md文档搜索技巧指南
data/materials/index.json数据素材索引(全量素材概要)
data/materials/items/mat-{序号}.json数据单条素材完整元数据

标签体系

标签分类

1. 事故类型标签

  • 追尾、侧面碰撞、正面碰撞
  • 翻车、侧翻、碾压
  • 行人事故、非机动车事故
  • 单车事故、多车事故
  • 火灾、爆炸

2. 违法类型标签

  • 酒驾、醉驾、毒驾
  • 超速、超员、超载
  • 闯红灯、逆行、占道
  • 疲劳驾驶、分心驾驶
  • 无证驾驶、准驾不符

3. 道路类型标签

  • 高速公路、城市快速路
  • 城区道路、郊区道路
  • 农村道路、山区公路
  • 隧道、桥梁
  • 路口、路段

4. 天气条件标签

  • 晴天、阴天
  • 雨天、暴雨
  • 雾天、团雾
  • 雪天、冰雪
  • 大风

5. 时间特征标签

  • 早高峰、晚高峰
  • 夜间、凌晨
  • 节假日、工作日
  • 白天、黄昏

6. 涉及对象标签

  • 货车、客车、轿车
  • 电动车、摩托车、自行车
  • 行人、学生、老年人
  • 特种车辆

7. 宣传用途标签

  • 警示教育
  • 安全教育
  • 正能量
  • 节日宣传
  • 天气提醒

标签命名规范

  • 使用中文简短词组(2-4字)
  • 使用名词或名词性短语
  • 避免使用形容词
  • 保持标签含义明确

搜索技巧

有效搜索策略

  1. 关键词组合

    • 好的查询:"雨天高速公路追尾"
    • 避免:"找一些视频"
  2. 具体化描述

    • 好的查询:"学生闯红灯视频"
    • 避免:"交通事故"
  3. 多维度限定

    • "2025年冬季农村道路事故"
    • "早高峰城区路口电动车"

同义词扩展

系统自动处理的同义词:

  • 暴雨 ↔ 大雨 ↔ 雨天
  • 高速公路 ↔ 高速 ↔ 快速路
  • 追尾 ↔ 追撞 ↔ 撞车
  • 酒驾 ↔ 醉驾 ↔ 酒后驾驶

约束规则

搜索规则

  • 搜索结果按相关度排序,最多返回 10 条
  • 如果没有匹配结果,告知用户并建议调整搜索词
  • 语义匹配时要考虑同义词和近义词
  • 不返回与查询完全不相关的素材

标引规则

  • 每条素材至少生成 3 个标签,最多 8 个
  • 标签使用中文短词(2-4个字)
  • 标签必须基于素材的实际内容,不臆造
  • 新素材 ID 必须按顺序递增(检查现有最大 ID 后 +1)
  • 更新 index.json 时保持数据结构一致

数据完整性

  • 不修改已有素材的元数据(除非用户明确要求更新标签)
  • index.json 和单条 JSON 文件中的信息必须保持一致
  • usage_count 字段由其他 Skill 更新,本 Skill 不主动修改

脚本工具

脚本功能
scripts/search-materials.js素材搜索脚本(占位)
scripts/auto-tag.js自动标引脚本(占位)
scripts/update-index.js索引更新脚本(占位)

使用示例

示例 1:语义搜索

code
用户: 找一些雨天高速公路事故的视频素材

Agent 执行流程:
1. 提取搜索维度: 天气=雨天, 道路=高速公路, 场景=事故, 类型=视频
2. 读取 data/materials/index.json
3. 匹配标签含 "雨天/暴雨" + "高速公路" + "追尾/事故" + type=video 的素材
4. 返回排序后的匹配结果列表

示例 2:模糊搜索

code
用户: 有没有跟学生安全教育相关的素材?

Agent 执行流程:
1. 提取搜索维度: 场景=学生安全教育
2. 匹配标签含 "学生/学校/安全教育/校园" 的素材
3. 返回匹配结果

示例 3:素材标引

code
用户: 新入库一个视频素材,文件名 drunk-driving-case-20260201.mp4,内容是2月1日城区查获的一起醉驾案件现场记录

Agent 执行流程:
1. 收集素材信息
2. 生成标签: ["酒驾", "醉驾", "城区", "查处", "夜间", "执法"]
3. 生成 mat-021.json 并保存
4. 更新 index.json

示例 4:查看素材概况

code
用户: 素材库现在有多少素材?各类型分布怎样?

Agent 执行流程:
1. 读取 index.json
2. 统计总数、类型分布、热门标签
3. 输出统计报告