---
name: wind-hazard-diagnosis
description: 风速风量监测与隐患判识：查询平台测风装置实时数据，结合云通防知识库判识风速超限/风量不足/重大隐患，输出固定格式md报告。触发词："查询当前风速风量"、"测风数据有没有问题/隐患"、"风速风量隐患判识"
---

# 风速风量监测与隐患判识（wind-hazard-diagnosis）

通用 skill：当用户提到「查询当前风速风量数据及是否存在问题/隐患」「测风数据判识」「风速风量有没有问题」等意图时自动启用。**不局限于特定 agent**，任何具备以下依赖的环境均可运行。

## 依赖（写死，运行前先确认可用）
- **MCP 服务器 `tf_mcp`**：提供测风装置/实时数据/需风量查询工具（`query_device_info`、`query_device_data_by_id`、`get_needq_all_data`、`execute_sql_query`、`get_device_kind_dict` 等）。
- **云通防知识库**：`http://39.97.59.228:8067`（Obsidian Vault Knowledge Service，`/api/search`、`/api/retrieve`、`/api/context`）。
- 若以上不可用：明确告知用户"缺少 tf_mcp 或云知识库，无法完整执行"，并说明缺哪一环。

## 执行流程

### Step 1 获取测风装置全量清单
1. `mcp__tf_mcp__get_device_kind_dict` 确认测风装置大类为 `windrect`（小类：`windrect_dd/ds/ds_two/ds_two_235/ds_four/rect/normal/sensor/siyoute/test` 等）。
2. `mcp__tf_mcp__query_device_info(device_kind="windrect")` 或 SQL `SELECT gdeviceid, strName, strInstallPos, gdevicetype, nSubStationID FROM device WHERE gdevicetype LIKE 'windrect%'` 获取全量清单。
3. 标注设备类别：
   - **测试/模拟设备**：类型含 `test`，或名称匹配 `测风N`、`测试`、`多参传感器`、`test`、`25xd`、`**矿井进风/回风` 等 → 标记为"测试设备"。
   - **真实测点**：其余。

### Step 2 逐台获取实时数据
对每台设备调用 `mcp__tf_mcp__query_device_data_by_id(device_id=...)`（**必须逐台调用，不支持逗号批量**）。
提取字段：`windSpeed`/`va`（风速 m/s）、`airVolume`/`m3`（风量 m³/min）、`temperature`、`tTime`（采样时间）、`netStatus`、`cachedAlarms`（活跃报警）、`alarmLogs`（历史报警）。
- `netStatus` 为空或 0、无 `windSpeed` → 记录"**无实时数据/离线**"。
- **模拟数据识别**：若多台设备数据呈高度雷同规律值（如风速≈1.3x 或 3.2x、风量≈120x、温度≈33~34℃、`sourcePressure≈8~9`），且**风量 ≠ 风速×断面×60**，判定为分站模拟/仿真数据，标注"模拟数据，不可用于生产判识"。

### Step 3 判定巷道类型（确定风速上下限依据）
优先级：
1. **绑定信息优先**：若设备查询结果/`wind` 表/模型数据中带有明确的巷道类型（`strType`、`modeltype`、巷道属性等），直接采用并在报告中注明"绑定信息"。
2. **名称关键词推断**（无绑定信息时），规则表：
   - 无提升设备的风井/风硐 → 上限 15
   - 专为升降物料的井筒 → 上限 12
   - 风桥 → 上限 10
   - 升降人员和物料的井筒（副井、副斜井、主斜井带提升）→ 上限 8
   - 总进风巷/总回风巷/回风大巷/进风大巷 → 上限 8
   - 架线电机车巷道 → 下限 1.0 / 上限 8
   - 箕斗提升井兼作进风 → 上限 6
   - 装有带式输送机兼作回风的井筒 → 上限 6
   - 输送机巷、采区进/回风巷、胶运/胶带/皮带巷、顺槽（胶运/回风）→ 下限 0.25 / 上限 6
   - 装有带式输送机兼作进风的井筒 → 上限 4
   - 采煤工作面、掘进中的煤巷和半煤岩巷、工作面进/回风 → 下限 0.25 / 上限 4
   - 掘进中的岩巷 → 下限 0.15 / 上限 4
   - 其他通风人行巷道、辅运/行人巷 → 下限 0.15 / 无上限
3. 报告中**注明每台设备的判定依据**（绑定信息 or 关键词推断），供人工核对。

### Step 4 知识库佐证限值
用 `web_fetch` 调云知识库确认限值表未过时：
`http://39.97.59.228:8067/api/search?q=井巷允许风流速度 最低 最高 总回风巷 采煤工作面&mode=keyword&top_k=5&min_score=0.1`
将命中片段（如《煤矿安全规程》2025版 表6 / AQ1028-2006 表2）作为引用出处写入报告。若检索不到或分过低，以 Step 3 规则表为准并注明"知识库未检索到佐证"。

### Step 5 风速超限判定
每台设备：实测风速 vs [下限,上限]：
- `风速 > 上限` → 🔴 **超速**（写明超限百分比与限值来源）。
- `风速 < 下限` → 🔴 **欠速/风速不足**（通风不良风险）。
- 在区间内但贴近边界（≥85%上限）→ 提示"接近上限"。

### Step 6 需风量关联与风量不足判定（核心）
1. `mcp__tf_mcp__get_needq_all_data` 获取全量需风量：采煤面 `retWorkFaceList`、掘进面 `headingFaceList`、硐室 `roomList`、其他用风点 `otherList`、通风系统 `ventilationSystemList`。
2. **筛选最新月份**：按 `nyear/nmonth`（及 `time`）取最新一期数据，避免多月份重复记录干扰。
3. **关联顺序**（每个测点依次尝试，命中即停）：
   - **① 巷道 ID 精确关联**：测风装置 `wind` 表 `nTunID` 或 `query_device_data_by_id` 返回的 `tunnelId`，匹配需风量地点的 `tunIDs` 列表（逗号分隔），命中 → 关联成功，依据=巷道ID。
   - **② 名称模糊匹配兜底**：规范化（去空格/单位/方位词）后，测点名称（或安装位置）与需风量地点 `strName` 满足"一方包含另一方 ≥1 个长度≥2 的核心词"（如"42上工作面""15211回风""充电硐室"），命中 → 关联成功，依据=名称匹配。
   - **③ 不满足匹配条件** → 显示「**未匹配到对应用风地点**」。若该测点为系统/区段巷道（总进回风巷、大巷等），追加与所属通风系统 `ventilationSystemList` 的 `qra`（系统总需风量）做系统级对比，并注明。
4. **判定**：监测风量 < 需风量（`fqneed` 或 `fqmax`，取 `fqmax` 为准并列出两者）→ 风量不足预警。
5. **回复中必须逐条明示**（人工排查关联是否错误的关键）：
   > 监测风量 [数值] m³/min ←→ 需风量位置：「[地点名]」需风量 [fqneed/fqmax] m³/min（关联依据：巷道ID xxx / 名称匹配 / 未匹配到对应用风地点）

### Step 7 重大隐患比对
1. 知识库检索重大隐患条款：`/api/search?q=煤矿重大事故隐患判定标准 通风 风量不足 需风量&mode=keyword`。核心红线：**《煤矿重大事故隐患判定标准》第八条：实际供风量 < 需风量 × 75% → 通风系统重大事故隐患**。
2. 判定：
   - **系统级**：总进/回风测点风量（或系统进风合计）< 该系统需风量 × 75% → 🔴 构成重大事故隐患风险。
   - **用风点级**：监测风量 < 该地点需风量 × 75% → 🔴 该地点供风严重不足（同条款精神）。
   - 数据不可靠（模拟/缺失/异常值）无法支撑判定 → 明确写"**当前数据不足以支撑重大隐患直接判定**"，并列出阻断判定的原因。
3. 其他隐患（离线、超速、活跃报警、数据失配、测点失效）逐一与重大隐患条款比对，说明是否触碰红线。

### Step 8 输出整体结论
回复结构（会话形式即可，无需固定模板但须包含）：
- **总览**：总测点数 / 有效数据数 / 离线数 / 超速数 / 风量不足数 / 活跃报警数。
- **分级清单**：🔴 高风险（离线、超速、活跃报警、风量严重不足）→ 🟠 中风险（数据失配、接近限值）→ 🟡 提示（模拟数据、测试设备、台账问题）。
- **重大隐患结论**：构成 / 不构成 / 数据不足无法判定（三者取一，给出依据）。
- **Step 6 的关联明细表**（监测风量→需风量位置/数值/关联依据）必须完整呈现。

### Step 9 询问并生成报告
1. 流程结束用 `ask` 工具询问（无 ask 环境用文字问）：「是否生成 md 分析报告？」
   - 选项：生成（默认，含完整数据表）/ 不生成（仅会话结论）。
2. 用户同意 → 生成 md 文件：
   - **文件名固定**：`测风装置实时数据分析报告_YYYY-MM-DD.md`（YYYY-MM-DD = 数据采样日期；同日重复生成直接覆盖旧文件）。
   - **路径固定**：当前工作区根目录（用户另行指定路径时除外）。
   - **格式必须严格按下方「固定报告格式」章节执行，不得自行增删章节/表格列/判定用语。**
3. 用户拒绝 → 仅输出会话结论，不写文件。

---

## 固定报告格式（必须严格遵守，每次输出一致）

> 规则：章节顺序固定；无内容章节保留标题并写"无"；表格列名固定不可增减；判定用语使用固定词表。**任何一次生成都不得改变本格式。**

### 文件
```
测风装置实时数据分析报告_YYYY-MM-DD.md
```

### 报告骨架（章节顺序固定，编号 0 至 八 不可变）

```markdown
# 测风装置实时数据分析报告（风速风量监测与隐患判识）

## 0. 报告元信息
| 字段 | 内容 |
|---|---|
| 报告名称 | 测风装置实时数据分析报告 |
| 生成时间 | <本地时间> |
| 数据采样时间 | <平台实时数据 tTime 起止范围> |
| 数据来源 | tf_mcp：device表 / query_device_data_by_id / get_needq_all_data |
| 判识知识库 | 云通防知识库 http://39.97.59.228:8067 |
| 判识标准 | 《煤矿安全规程》2025版表6 / AQ1028-2006表2 / 《煤矿重大事故隐患判定标准》第八条 |
| 测风装置总数 | <N> 台（真实测点 <X> / 测试设备 <Y>） |
| 生成方式 | wind-hazard-diagnosis skill 自动生成 |

## 一、判识框架与标准
（固定四要素：①速域判识 ②量纲判识 ③红线判识 ④测风管理；附《煤矿安全规程》2025版表6 允许风流速度全表，每次照抄不省略行）

## 二、总体结论
### 2.1 总览表（固定行）
| 指标 | 数值 |
|---|---|
| 测风装置总数 | |
| 有实时数据测点 | |
| 离线/无数据 | |
| 超速（含疑似） | |
| 风量不足 | |
| 活跃报警 | |
| 数据失配/模拟 | |
| 重大隐患结论 | 构成 / 不构成 / 数据不足无法判定 |

### 2.2 重大隐患判定（固定格式）
**结论：<三选一>**
判定依据：……
阻断原因（仅"数据不足无法判定"时列出，编号列表）：

## 三、逐台判识明细（固定 13 列；测试设备并入表底并标注）
| 序号 | 设备ID | 测点名称 | 设备类型 | 巷道类型(判定依据) | 风速(m/s) | 风量(m³/min) | 限值(最低~最高) | 风速判定 | 风量校验 | 需风量关联 | 报警/状态 | 问题分级 |

## 四、需风量关联明细（固定 7 列，供人工排查关联）
| 测点名称 | 监测风量(m³/min) | 需风量位置 | 需风量fqneed | 需风量fqmax | 关联依据 | 对比判定 |

## 五、需风量数据全表（平台最新月份，固定 6 列）
| 用风地点 | 类型 | fqneed(m³/min) | fqmax(m³/min) | 所属通风系统 | 系统总需风qra(m³/min) |

## 六、隐患分级清单（固定三级，编号格式固定）
### 🔴 高风险
1. <测点>：<问题描述>（<判定依据>）
### 🟠 中风险
1. <测点>：<问题描述>（<判定依据>）
### 🟡 提示
1. <测点>：<问题描述>（<判定依据>）

## 七、整改建议（固定编号列表，按 🔴🟠🟡 顺序归类）

## 八、判识依据出处（固定列表：note_id / 标准号 / 条款）

> 尾部声明（固定段落，不可省略）：
> 本报告基于 <采样时间> 平台实时快照，由 wind-hazard-diagnosis skill 自动生成。测风装置数据质量参差（模拟/失配占比 <N>%），判定以"需核查项"为主；重大隐患结论受数据可靠性限制未直接认定时，建议结合每旬人工测风数据复核后形成正式结论。
```

### 固定用语词表（判识/填写时只允许使用下列用语）
- **风速判定**：`正常` / `接近上限` / `超速` / `欠速` / `疑似超速` / `无法判识`（超上限/低于下限时附"超/欠 X%"）
- **风量校验**（风速×断面×60 vs 上报风量）：`一致`（±10%内）/ `不符`（10%~50%）/ `严重不符`（>50%）/ `—`（无断面或数据）
- **需风量关联依据**：`巷道ID匹配` / `名称匹配` / `未命中`
- **需风量位置**（未命中时固定写）：`未匹配到对应用风地点`
- **问题分级**：`高风险` / `中风险` / `提示`（对应 🔴🟠🟡）
- **重大隐患结论**：`构成` / `不构成` / `数据不足无法判定`（三选一）

### 填充规则
- 每章内容为空时：保留该章标题，正文写"无"。
- 表格无数据行时：保留表头，正文写"无数据"。
- 判定用语必须取自词表；限值、依据、出处必须与知识库检索结果一致。
