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

如何为Google Action发送到webhook的userresponse添加自定义参数

Google Action 自定义参数传递与视频播放控制实现方案

1. 自定义参数主动传递实现方式

你之前使用的intent参数只能获取用户输入匹配的内容,要主动传递自定义参数,使用**会话存储(session storage)**即可,不需要依赖用户话术匹配。

  • 首次返回媒体响应时,在webhook返回的JSON中添加session字段,把你需要传递的videoNumber、布尔值这类自定义参数放到session.params中即可,示例结构如下:
{
  "session": {
    "params": {
      "videoNumber": 1,
      "autoPlayNext": false
    }
  },
  // 剩余的媒体响应、提示话术等内容按原有逻辑编写
}
  • 后续不管是媒体播放结束触发的MEDIA_STATUS_FINISHED事件,还是用户回复触发的intent请求,Google Action都会自动把session.params里的所有参数完整带到你webhook收到的请求JSON中,不需要用户说出对应内容,也不需要提前在intent里配置这些参数。
  • 你每次处理完请求,更新videoNumber的值之后再写回session.params返回即可实现参数自增效果,比如看完第一个视频返回时把videoNumber改成2,下次请求携带的就是更新后的值,以此类推。

2. 单视频播放结束后交互的实现方案

你不需要使用默认的媒体播放列表自动播放逻辑,按以下步骤实现即可:

  • 首次返回响应时,仅添加当前要播放的单个MediaObject,不要配置多内容的播放列表。
  • 监听系统内置的actions.intent.MEDIA_STATUS事件,该事件会在媒体播放结束时自动触发,不需要你配置额外的intent。
  • 收到播放结束的事件请求时,从session.params中拿到当前的videoNumber,返回给用户的响应中带上询问话术:“当前视频已播放结束,你可以选择播放下一个、重播当前视频或者回看前一个”,同时可以配置对应的建议芯片方便用户点击选择。
  • 配置三个对应的intent分别匹配“下一个”、“重播”、“回看前一个”的用户话术,收到对应请求时根据videoNumber的值计算要返回的视频序号:
    • 下一个:videoNumber + 1
    • 重播:videoNumber保持不变
    • 前一个:videoNumber -1(注意做边界判断,序号不能小于1)
  • 计算好新的序号之后更新到session.params的videoNumber字段,再返回对应序号的视频内容即可。

3. 其他类型自定义参数的传递

布尔值、字符串、对象这类任意类型的自定义参数都可以放到session.params中传递,不需要提前在Action Console里做任何配置,只要你在返回的时候把参数写进去,后续的会话请求都会自动携带。如果需要跨会话持久存储用户的参数,还可以用user.params字段,只要用户账号处于关联状态,参数会一直保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:27:01