概念和术语
- 客户端:这里特指使用硬件语音平台的终端用户应用程序。客户端与智能体之间可以进行文字或者语音交互。
- 智能体(Agent):指部署在硬件语音平台上的智能体实例,负责处理客户端的请求并与设备进行交互。
- 设备:指与智能体关联的物联网设备,可以向智能体上报数据。
- 单设备智能体:一种特殊类型的智能体,该智能体所服务的设备和客户端是同一个实体,设备直接与智能体交互。这种情况下,clientId 和 deviceId 是相同的。
- 客户端 ID (clientId):客户端唯一标识符,也就是客户端的 MQTT Client ID。
- 设备 ID (deviceId):设备唯一标识符,对应设备的 MQTT Client ID。
- 工具类型 (toolType):设备所属的工具类型,用于区分不同类型的设备。toolType 相同的设备在功能、上报的数据格式等方面是完全一样的,只是 deviceId 不同。toolType 可以是除 "#", "+" 以外的任意字符串,可以包含 "/"。
- 智能体 ID (agentId):智能体唯一标识符,对应智能体的 ID。
单设备智能体
单设备智能体是指客户端和设备是同一个实体的智能体类型。在这种情况下,clientId 和 deviceId 是相同的,且 toolType 在创建智能体时已确定,因此无需额外实现设备信息获取逻辑。
┌──────────────────┐ ┌─────────────────┐
│ │ │ │
│ ┌────────────┐ │ │ │
│ │ │ │ │ │
│ │ microphone ┼──┼TALK─┐ │ ┌─────────┐ │
│ │ │ │ │ │ │ │ │
│ └────────────┘ │ └─────┼───► agent │ │
│ ┌────────────┐ │ ┌─────┼───┤ │ │
│ │ │ │ │ │ └─────────┘ │
│ │ tools ◄──┼CALL─┘ │ ▲ │
│ │ │ │ │ │ │
│ └────────────┘ │ │ │ │
│ ┌────────────┐ │ │ │ │
│ │ │ │ │ │ │
│ │ sensor ├──┼───DATA────┼────────┘ │
│ │ │ │ │ │
│ └────────────┘ │ │ │
│ │ │ │
│ DEVICE │ │ VoiceAI SaaS │
└──────────────────┘ └─────────────────┘多设备智能体
多设备智能体是指一个智能体服务于多个设备的智能体类型。在这种情况下,clientId 和 deviceId 是不同的。客户端(使用 clientId)与智能体使用语音或者文字进行交互,智能体会在与客户端对话的过程中,通过 MCP over MQTT 来控制和访问多个设备(使用 deviceId)。
┌──────────────────┐ ┌─────────────────┐ ┌──────────────────┐
│ │ │ │ │ │
│ ┌────────────┐ │ │ ┌─────────┐ │ │ ┌────────────┐ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ microphone ┼──┼───TALK────┼───► agent ┼───┼───CALL───┼──► tools │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ └────────────┘ │ │ └─────────┘ │ │ └────────────┘ │
│ │ │ ▲ │ │ ┌────────────┐ │
│ │ │ │ │ │ │ │ │
│ │ │ └────────┼───DATA───┼──┤ sensor │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ └────────────┘ │
│ │ │ │ │ │
│ CLIENT │ │ VoiceAI SaaS │ │ DEVICE │
└──────────────────┘ └─────────────────┘ └──────────────────┘