Files
zk-data-agent/skills/label-master/knowledge/判断维度/自动任务判断.md
T
2026-05-09 17:49:53 +08:00

267 lines
6.8 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.
# 自动任务判断
自动任务是独立维度,不属于业务标签树。它用于判断 query 是否包含“条件触发 + 动作”的结构,以及如何抽取 condition 和 action。
## 输出目标
推荐结构:
```json
[
{
"condition": "上车时",
"querys": [
{"subquery": "打开空调", "intent": "设备控制"}
]
}
]
```
`condition` 可以是:
- 具体条件文本,例如 `上车时``电量低于20%时`
- `default`:无条件管理超级任务或无条件创建/修改/查询/删除备忘录类信息。
- `null`:普通无条件单意图或非 default 的无条件动作。
## 条件定义
常见触发事件:
- `……时候`
- `当……时`
- `如果……就`
- `把……就`
- `在……之后`
- `到达……时`
- `一……就`
- `每……`
常见时间条件:
- 时间段,例如“上午”。
- 时间点,例如“14点”。
- 持续或延迟时间,例如“开十分钟”“二十分钟后”。
## 复合条件完整性
`就` 作为动作分隔标记时,`就` 之前的所有内容整体构成 condition,禁止截断。
`且` 连接的多个状态全部是 condition 的组成部分,不可将其中任意部分误识别为 action。
例子:
```text
晚饭前20分钟后转向灯关闭就风量调高
condition = 晚饭前20分钟后转向灯关闭
action = 风量调高
```
```text
关闭后排空调且副驾座椅加热开启时打开副驾座椅通风
condition = 关闭后排空调且副驾座椅加热开启时
action = 打开副驾座椅通风
```
## 条件作用域
### 默认向右绑定
条件默认只作用于其后最近的动作序列,直到出现新的条件或语义结束。
### 不向左回溯
条件不影响其前面的动作。
```text
播放音乐上车时打开空调
```
应解析为:
```json
[
{"condition": null, "querys": [{"subquery": "播放音乐", "intent": "音乐播放"}]},
{"condition": "上车时", "querys": [{"subquery": "打开空调", "intent": "设备控制"}]}
]
```
### 多个条件各自作用域
```text
上车时打开空调下车时关闭空调
```
应解析为:
```json
[
{"condition": "上车时", "querys": [{"subquery": "打开空调", "intent": "设备控制"}]},
{"condition": "下车时", "querys": [{"subquery": "关闭空调", "intent": "设备控制"}]}
]
```
### `或` 连接多个触发条件
`或` 连接多个触发条件时,视为同一自动任务的多触发项,整体保留为单一 condition,不拆成多个 group,不重复输出动作。
```text
主驾有人上车时或车内温度低于10度时或主驾系上安全带时打开空调
```
应解析为:
```json
[
{
"condition": "主驾有人上车时或车内温度低于10度时或主驾系上安全带时",
"querys": [{"subquery": "打开主驾空调", "intent": "车载控制"}]
}
]
```
## default 场景
`default` 表示无条件自动任务管理或无条件备忘录类信息管理,不等同于 `null`
适用:
- 无条件打开、关闭、创建、删除、修改、查询、编辑超级任务。
- 超级任务别称包括:自定义习惯、智能习惯、智能场景、自动化、小米任务等。
- 无条件创建、修改、查询、删除备忘录类信息,包括日程、提醒、备忘录、便签、安排、事项等。
例子:
```json
[
{"condition": "default", "querys": [{"subquery": "删除自定义习惯", "intent": "系统控制"}]}
]
```
```json
[
{"condition": "default", "querys": [{"subquery": "提醒我去买菜", "intent": "提醒"}]}
]
```
反例:
- `打开提醒`:这是普通无条件单意图,`condition=null`intent 为提醒,不属于 default。
- `创建长途驾驶前检查水和食物的提醒`:包含明确触发条件,condition 应为 `长途驾驶前`,不属于 default。
## 改写规则
### 持续时间
符合条件抽取的持续时间统一改写为 `持续+时间`。若同时存在触发事件,则改写为 `触发条件+持续+时间`
例子:
```text
座椅加热十分钟
```
```json
[
{"condition": "持续十分钟", "querys": [{"subquery": "打开座椅加热", "intent": "车载控制"}]}
]
```
### 提醒改写
条件不为空时,播报、提示、叫我、喊我、通知我、告诉我、报告、念一下等表述统一改写为 `提醒我`
例子:
```text
电量低于20%时通知我立刻充电
```
```json
[
{"condition": "电量低于20%时", "querys": [{"subquery": "提醒我立刻充电", "intent": "提醒"}]}
]
```
### 超级任务
当用户 query 明确包含超级任务相关关键词,或明确修改/删除/取消某个已命名习惯或规则时,需要新增对应管理动作子句,intent 为 `系统控制`
关键词包括:
- HyperTask
- HyperMind
- 超级任务
- 小米任务
- 小米任务大师
- 智能任务
- 任务大师
- 自动化
- 自动化任务
- 自动化场景
- 智能场景
- 自定义场景
- 自定义习惯
- 智能习惯
反例:如果只是直接描述条件触发控制,例如“学校放学时段开启警示灯”,且没有超级任务关键词,不添加管理 Agent。
### 带 trigger 的位置继承
当 condition 中包含位置,如主驾、副驾、后排,后续无明确位置的动作子句需要继承 condition 中的位置。
继承模式:
- 继承 trigger 全部位置:动作语义上作用于所有位置时拆分。
- 就近继承:动作更适合绑定最近位置时只继承最近位置。
- 不继承:动作本身已有位置、提醒类动作、或动作语义不区分位置。
### 提醒我说
条件不为空且用户子句语义为提醒时,如果提醒内容中还包含时间词,不把提醒内容里的时间额外抽为 condition,而是改写为 `提醒我说...`
例子:
```text
明天八点提醒我后天晚上去露营
```
```json
[
{"condition": "明天八点", "querys": [{"subquery": "提醒我说后天晚上去露营", "intent": "提醒"}]}
]
```
### 执行一次
当用户子句中包含“执行一次 / 只执行一次 / 仅一次 / 单次执行”等限定词时,将其拼接到条件中,格式为 `执行一次+原始条件`
### 纯条件句
如果 input 仅包含触发条件,没有具体动作,则输出条件和空 `querys`,禁止凭空生成动作。
```json
[
{"condition": "停车超过90分钟时", "querys": []}
]
```
## 条件负例
以下表达虽然包含“时”等触发词,但更像车辆/系统内置功能、状态描述或固定安全能力,不一定应当当作用户创建自动任务:
- 走远时车门上锁
- 锁车时关闭车窗
- 车辆解锁时鸣笛
- 倒车时后视镜自动下翻
- 停车时后视镜自动折叠
- 离车时打开哨兵模式
- 车辆超速时提醒我
- 并线时打开后向来车辅助
- 低速行驶时提示我
- 红绿灯时提醒我
- 车道偏离时打开辅助
- 上车时打开冰箱
- 雨天时打开雾灯建议
- 安全带未系时提醒我
- 超速时打开告警限速