# 系统控制-设备控制-车载控制

## 适用场景

当 query 是“打开、关闭、调节、设置、查询状态”等控制类表达时，容易在 `系统控制`、`设备控制`、`车载控制`、`应用控制`、`相机`、`声纹`、`设备查找`、`自动任务` 之间混淆。

## 候选集合

- `系统控制`：当前设备或通用系统层能力，如音量、亮度、关机、护眼、截图、朗读屏幕、系统开关。
- `设备控制`：IoT 设备控制，如灯、空调、电视、扫地机、洗衣机等，通常涉及家庭/房间/米家设备。
- `车载控制`：车载设备和车辆特有能力，如车窗、座椅、雨刮、前备箱、智驾、泊车、哨兵、驾驶模式。
- `应用控制`：打开/关闭 App、进入 App 页面、App 内操作。
- `相机` / `声纹` / `设备查找`：白名单型专项控制标签，优先级高于系统控制兜底。
- `自动任务`：存在条件触发结构时，优先进入自动任务维度。

## 决策顺序

1. 先判断是否是条件触发：
   - “当/如果/时候/之后/到达/每/一...就”：先读 `自动任务判断.md`，不要直接给普通控制标签。
2. 再判断控制对象：
   - 当前设备系统属性：优先 `系统控制`。
   - 家庭 IoT / 米家设备：优先 `设备控制`。
   - 车辆部件或车载特有功能：优先 `车载控制`。
   - App 或页面：优先 `应用控制`。
   - 声纹、相机、查找设备等专项能力：优先专项标签。
3. 再看发起端和上下文：
   - 车载端中“空调、座椅、车窗、方向盘”等优先 `车载控制`。
   - 家庭音箱/手机控制家中设备，优先 `设备控制`。
   - 控制当前设备自身音量/亮度，优先 `系统控制`。
4. 最后处理歧义：
   - 如果设备词既可能是当前设备又可能是 IoT 设备，例如“电视音量大一点”，需要看发起端和用户意图。
   - 如果上下文缺失且影响标签，向用户确认或在结果中标注不确定点。

## 正例

| query | 推荐 | 原因 |
| --- | --- | --- |
| 音量大一点 | 系统控制 | 当前设备系统属性 |
| 屏幕亮度调到 50 | 系统控制 | 当前设备系统设置 |
| 打开主卧空调 | 设备控制 | 家庭 IoT + 房间 |
| 扫地机扫一下客厅 | 设备控制 | IoT 设备控制 |
| 打开车窗 | 车载控制 | 车辆部件 |
| 副驾座椅加热打开 | 车载控制 | 车载座椅能力 |
| 打开微信 | 应用控制 | App 打开 |
| 找一下我的手机 | 设备查找 | 专项能力 |

## 反例

| query | 不应给 | 推荐 |
| --- | --- | --- |
| 上车时打开空调 | 车载控制 | 自动任务维度 + subquery 车载控制 |
| 电视音量大一点 | 固定系统控制 | 需要看发起端：电视自身可能系统控制，音箱控电视可能设备控制 |
| 打开相机倒计时 | 系统控制 | 相机 |
| 录入声纹 | 系统控制 | 声纹 |
| 打开智能驾驶 | 应用控制 | 车载控制 |

## 输出建议

- 结构上命中自动任务时，最终输出通常是带 `condition` 的 group，而不是单个控制标签。
- 控制类标签经常有端侧依赖，输出时应说明“依据当前设备/上下文判断”。
- 如果当前任务要求 function program，但控制类 function 未共识，不要编造函数；先用 intent 或 Agent 包装，并标记待确认。

## 仍需确认

- 当前设备端是什么。
- query 中的设备是当前设备、IoT 被控设备，还是车载部件。
- 控制类 function 是否已经有正式函数化定义。
