Skip to content

SA 设备控制:Agent 设计方案 (Semantic/AI Layer)

文档目的:描述设备控制专家(IoT Specialist)如何通过多轮对话完成槽位提取、意图澄清,并结合后端实时回传的设备能力(Capabilities)实现精准控制。


1. 槽位定义与验证逻辑 (Slot Filling & Validation)

1.1 槽位定义 (Slots)

槽位名称必填性类型说明
target_space必填String指令发生的位置(如 "305", "会议室")。若缺失,必须追问。
target_device选填String被控制的设备(如 "灯", "空调")。缺省时由后端执行“能力反查”逻辑。
instruction必填String用户的控制意图(如 "开一下", "调到26度")。若缺失,必须追问。

1.2 澄清追问逻辑 (Clarification)

当核心槽位缺失时,Agent 需按照以下优先级进行追问:

  1. Space 缺失:“请问您是指哪个房间或区域的操作?”
  2. Instruction 缺失:“请问您想对 [Space] 执行什么操作(如:开启、关闭或调节)?”

2. 动态能力匹配逻辑 (Dynamic Intent Binding)

为了解决“指令歧义”并确保控制精准,系统采用 “语义提取 -> 能力注入 -> 最终裁决 -> 用户确认” 的四阶段逻辑。

2.1 阶段一:初次提取 (Initial NLU)

Agent 从用户原始输入中提取三个基础槽位。提取规则:target_spaceinstruction 核心必填,target_device 可空。

2.2 阶段二:能力发现与隐式匹配 (Discovery & Matrix)

  1. 工具调用:Agent 调用后端工具 IoT_Locator
    • Case A (有设备):传 target_space + target_device
    • Case B (无设备/隐式):仅传 target_space
  2. 能力反传:后端返回匹配实体的能力列表。若指定了设备则返回该设备 actions;若未指定设备(隐式)则返回该空间下所有绑定设备的能力集合。
  3. LLM 意图精细化 (Refinement)
    • LLM 结合用户原始 instruction(如“关下”)在搜索结果中进行过滤并选出最匹配的设备与动作。

2.3 阶段三:用户确认卡片 (UI Confirmation) —— [核心交互策略]

IMPORTANT

无论 AI 判定的置信度多高(即使只有唯一选项),系统都必须弹出交互卡片。

  • UI 策略:Agent 向用户发送 “确认执行卡片”
  • 内容:展示解析到的动作详情(如:“305会议室 - 空调 - 设为26℃”)。
  • 交互:用户手动点击卡片上的 [确认控制] 后,流程才进入物理执行。

3. Dify 工作流设计 (Dify Workflow)


  • 同步成功:“好的,已经帮您执行了 [空间] [设备] 的 [动作] 操作。”

4.2 边缘场景处理 (Edge Cases)

异常类型判定条件Agent 预期话术 (示例)
空间歧义用户输入 3楼 (对应多个房间)"3 楼包含多个区域,请问您是指 305 会议室 还是 3 楼走廊 的灯?"
设备歧义空间内同类设备 >1"305 有两盏顶灯,是执行 全开 还是只开其中一盏?"
安全/策略拦截执行值超出 Min/Max"现在的指令已达到安全上限(如: 30℃),已经帮您调到最高了哦。"
物理执行失败IoT 平台返回 Error"哎呀,[设备名] 好像现在不听使唤了,可能是掉线了。您可以稍后再试。"
意图过宽指令过于模糊 (如 "弄下这个")"抱歉,我不太确定您想对 [设备] 怎么操作,是想 开启 吗?"

5. 相关设计参考

Released under the Private License.