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

如何为非Google Smart Home SDK范畴的设备实现Google Home自定义动作?

实现Google Assistant自定义设备的语音指令与对话交互(以可移动机器人Roger为例)

刚好我之前折腾过类似的自定义设备集成,这种"Ok Google, ask [设备名] to [动作]"的模式其实不属于Google Smart Home SDK的范畴——Smart Home SDK主要是给灯、空调这类标准化设备用的,你的自定义机器人动作得用Actions on Google的对话代理来实现,和Logitech Harmony的逻辑完全一致,下面一步步给你拆解:

一、构建自定义Action实现"ask Roger to..."指令

核心是给你的机器人创建一个专属对话Agent(就是语音里喊的"Roger"),让Google Assistant能识别并转发自定义指令:

  • 先去Google Actions Console创建新项目,把Agent命名为"Roger"(用户语音里的名字必须和这个一致)
  • 用Actions Builder或者Dialogflow定义意图:比如创建MoveForwardIntent和DanceIntent,分别对应"move forward"和"dance"这类动作指令
  • 给每个意图加足够的训练短语:比如给MoveForwardIntent补充"go straight"、"advance";给DanceIntent加"do a little dance"、"show me your moves",这样Google能更好识别不同表述
  • 配置Fulfillment(执行逻辑):用Cloud Functions for Firebase或者自己搭的webhook,当意图被触发时,调用机器人的API(比如本地局域网的HTTP接口)执行对应动作——比如收到MoveForwardIntent请求就给机器人发前进指令
  • 测试时直接喊"Ok Google, ask Roger to move forward",Assistant会把请求转到你的自定义Action,触发对应的意图和执行逻辑

二、实现对话交互功能

要让机器人能和用户多轮对话,得利用上下文(Contexts)和动态回应:

  • 给意图添加回应文本:比如DanceIntent触发后,让Assistant回复"Got it! Roger's starting to dance 🕺",同时执行舞蹈动作
  • 用上下文维护对话状态:比如用户说"ask Roger to dance"后,设置一个DanceContext输出上下文,后续用户说"can you do it faster?",你可以创建AdjustDanceSpeedIntent,让这个意图只在DanceContext存在时触发,这样就能识别用户是在跟进之前的舞蹈请求
  • 扩展实体(Entities):比如定义Direction实体包含left/right/forward/backward,就能创建通用的MoveIntent,识别"ask Roger to move left"这类更灵活的指令

三、关键提醒

  • 别死磕Smart Home SDK文档了!这种自定义对话式指令属于Actions on Google的对话代理体系,和Smart Home的标准化设备控制是两条线
  • 设备访问要注意安全:如果机器人是本地设备,确保webhook能安全访问它,比如用API密钥验证,或者本地搭反向代理(记得做好权限管控)
  • 发布前多测场景:在Actions Console的测试工具里模拟各种语音指令,确保意图识别准确、执行逻辑没问题,之后提交审核就能让用户正式使用了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:31:27