SA 设备控制 - 设备数据权限提示需求
状态:待评审 | 范围:对话端(Chatbot)设备控制 / 设备查询 | 关联:SA 设备控制 Agent 设计
1. 背景与问题
AI 设备管理引入设备后,设备数据权限在中台按用户配置(用户可见/可控哪些空间范围的设备)。
当前对话端的实际行为是:无权限的设备在检索阶段被直接过滤,用户查询/控制时系统只报"找不到设备",不会提示"无权限",导致:
- 用户误以为空间里没有该设备,反复换说法仍报找不到,体验像缺陷
- 无法引导用户走开通权限的流程
- 权限边界对用户完全不可见
2. 目标与效果
让用户在对话中操作设备时,对权限状态可感知:
| 用户场景 | 现在的表现 | 期望表现 |
|---|---|---|
| 对整类设备完全无权限 | 报"找不到设备" | 明确提示"无权限" + 开通指引 |
| 同类设备部分有权限 | 只操作有权限的,不提示 | 正常操作 + 提示"部分设备无权限,已过滤" |
| 空间确实没有该设备 | 报"找不到设备" | 维持"找不到设备"(不受影响) |
3. 交互效果(ascii 原型)
场景 A:完全无权限
用户对目标设备无任何控制权限。助手直接回复话术,不展示确认卡片。(示例:用户请求控制 305 空调,但无权限)
用户:打开305的空调
(该用户对 305 空调无任何控制权限)
助手:
┌────────────────────────────────────┐
│ 💬 抱歉,您当前没有「{空间}」「{设备}」的 │
│ 控制权限,暂时无法为您执行操作。 │
│ 如需开通,请联系楼宇管理员为您配置设备权限。 │
└────────────────────────────────────┘场景 B:部分无权限(控制)
命中设备中部分有权限,助手过滤后仅操作有权限设备,并在气泡与确认卡片中明示"部分设备无权限"。(示例:305 的 3 台空调中 2 台有权限、1 台无权限)
用户:打开305的空调
(305 空调中部分无权限)
助手:
┌────────────────────────────────────┐
│ 💬 已为您找到相关设备,其中部分设备您暂无 │
│ 控制权限,已为您跳过。其余设备已按指令 │
│ 准备,请在确认卡片中核对。 │
└────────────────────────────────────┘
┌────────────────────────────────────┐
│ [❄️] 调节 空调开关 │
│ 执行动作:设定为 开启 │
│ 受控范围:305会议室 │
│ [x] 全场同步 (2台设备) │
│ ───────────────────────────── │
│ [x] 空调(左) (当前 关闭) ← 待操作 │
│ [x] 空调(右) (当前 关闭) ← 待操作 │
│ ⚠️ 已跳过部分无权限设备 │
│ [ 取消 ] [ 确认执行 ] │
└────────────────────────────────────┘场景 C:部分无权限(查询)
命中设备中部分有查看权限,助手仅返回有权限设备状态,并明示"部分设备无权限"。(示例:305 空调中部分无权限)
用户:看下305空调多少度
(305 空调中部分无权限)
助手:
┌────────────────────────────────────┐
│ 💬 已为您查询相关设备的状态,其中部分设备您 │
│ 暂无查看权限,已为您过滤。 │
└────────────────────────────────────┘
(下方展示有权限设备的状态)场景 D:客观缺位(维持现状)
空间确实没有该设备(与权限无关),话术保持不变。(示例:305 确实没有空调设备)
用户:打开305的空调
(305 空间确实没有空调设备)
助手:
┌────────────────────────────────────┐
│ 💬 该空间下目前暂无我能控制的设备。 │
└────────────────────────────────────┘4. 判定规则(供产品与测试核对)
| 场景 | 判定依据 | 行为 |
|---|---|---|
| 完全无权限 | 检索命中的设备对当前用户均无权限 | 提示"无权限 + 开通指引",不展示确认卡片 |
| 部分无权限 | 检索命中的设备中存在无权限设备 | 仅操作有权限设备 + 提示"部分设备无权限,已跳过" |
| 客观缺位 | 检索命中 0 台,且与权限无关 | 维持"找不到设备"话术 |
5. 实现边界说明
- 权限数据来源:复用中台现有"设备单控-按建筑空间"数据权限,不在本需求内新增权限配置能力。
- 技术方案:设备检索接口需向对话端返回"本次检索的权限判定结果"信号(如:全部无权限 / 部分无权限),对话端据此区分三种场景并输出对应话术。具体接口字段与实现方式由技术同学实现时自行确定,本需求不做技术设计。
