You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Assistant未触发Smart Home Modes Trait相关意图求助

问题描述

我为Google智能家居Action实现了action.devices.traits.Modes特性,但通过Google Nest Mini发出语音命令时,Google Assistant无法将意图转发到我的Fulfillment服务:

  • 查询命令:Ok, Google, What is the mode on D5s?
  • 控制命令:Ok, Google, set D5s to smart

但在Google Home App中点击模式控制按钮,能正常触发Fulfillment服务接收意图请求。设备为Google Nest Mini,我的action.devices.SYNC响应内容如下:

{
    "payload":{
        "agentUserId":"uid-1",
        "devices":[
            {
                "traits":[
                    "action.devices.traits.StartStop",
                    "action.devices.traits.Modes"
                ],
                "willReportState":true,
                "name":{
                    "defaultNames":[
                        "D5s"
                    ],
                    "name":"D5s",
                    "nicknames":[
                        "D5s"
                    ]
                },
                "attributes":{
                    "availableModes":[
                        {
                            "settings":[
                                {
                                    "setting_name":"smart",
                                    "setting_values":[
                                        {
                                            "setting_synonym":[
                                                "smart"
                                            ],
                                            "lang":"en"
                                        }
                                    ]
                                },
                                {
                                    "setting_name":"mop",
                                    "setting_values":[
                                        {
                                            "setting_synonym":[
                                                "mop"
                                            ],
                                            "lang":"en"
                                        }
                                    ]
                                },
                                {
                                    "setting_name":"dock",
                                    "setting_values":[
                                        {
                                            "setting_synonym":[
                                                "dock"
                                            ],
                                            "lang":"en"
                                        }
                                    ]
                                },
                                {
                                    "setting_name":"spot",
                                    "setting_values":[
                                        {
                                            "setting_synonym":[
                                                "spot"
                                            ],
                                            "lang":"en"
                                        }
                                    ]
                                }
                            ],
                            "ordered":false,
                            "name":"mode",
                            "name_values":[
                                {
                                    "lang":"en",
                                    "name_synonym":[
                                        "mode"
                                    ]
                                },
                                {
                                    "lang":"en",
                                    "name_synonym":[
                                        "Clean"
                                    ]
                                },
                                {
                                    "lang":"en",
                                    "name_synonym":[
                                        "Mode"
                                    ]
                                }
                            ]
                        }
                    ]
                },
                "customData":{
                    "uid":"uid-1"
                },
                "id":"device-id1",
                "type":"action.devices.types.VACUUM",
                "deviceInfo":{
                    "swVersion":"sw1.0.0",
                    "model":"D5s Pro",
                    "manufacturer":"Smart ",
                    "hwVersion":"hw1.0.0"
                }
            }
        ]
    },
    "requestId":"11614522009820639979"
}
排查与解决方案

1. 优化模式同义词配置

从SYNC响应的配置来看,存在可能干扰语音识别匹配的问题:

  • 合并重复的name_values条目:当前name_values里重复添加了大小写不同的mode,建议合并为单个条目,避免解析逻辑混乱:
    "name_values": [
        {
            "lang": "en",
            "name_synonym": ["mode", "clean"]
        }
    ]
    
  • 扩展模式设置的同义词:每个setting_synonym仅配置单个词,无法覆盖用户可能的语音表述,建议补充扩展同义词,比如:
    "setting_synonym": ["smart", "smart mode"]
    

2. 调整语音命令表述验证

Google Assistant对语音命令的解析依赖设备类型的默认交互模板,尝试使用更明确的命令测试:

  • 控制命令改为:Ok, Google, set the mode on D5s to smart
  • 查询命令改为:Ok, Google, what's the cleaning mode on D5s?

如果调整后能触发Fulfillment,说明原始命令表述未匹配到Modes特性的解析规则,需进一步优化同义词配置覆盖更多表述。

3. 检查设备状态报告

设备设置了willReportState": true,若状态报告未正确同步当前模式,Assistant可能直接返回缓存状态而不调用Fulfillment:

  • 确保action.devices.REPORT或action.devices.QUERY响应包含正确的currentModeSettings字段:
    "payload": {
        "devices": {
            "device-id1": {
                "currentModeSettings": [
                    {
                        "mode": "mode",
                        "setting": "smart"
                    }
                ]
            }
        }
    }
    

4. 利用工具排查日志

  • 使用Google Actions Console的测试模拟器模拟语音命令,查看是否触发Fulfillment请求,同时检查控制台日志的解析错误或意图匹配失败记录。
  • 核对Fulfillment服务日志,确认是否存在请求被忽略、权限或网络异常(App能正常触发的情况下概率较低,但需排除)。

内容的提问来源于stack exchange,提问作者hxy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:01:00