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

如何在Alexa SDK的emit()响应中传递更新后的sessionAttributes?

在Alexa SDK中使用emit()时传递更新的sessionAttributes

嘿,我来帮你搞定这个问题!其实你不用在emit()的响应构建器参数里单独传入sessionAttributes——Alexa SDK已经帮你封装好了更简单的方式:

  • 直接更新this.attributes对象:SDK会自动将这个对象作为sessionAttributes包含在响应中。this.attributes就是请求中sessionAttributes的对应实例,每次请求到来时SDK会自动加载它,你修改后调用emit(),更新后的属性就会被带回Alexa服务。

举个具体的例子:

// 先更新单个session属性
this.attributes['favoriteColor'] = 'blue';

// 或者替换整个sessionAttributes对象
const updatedSessionAttributes = {
  favoriteColor: 'blue',
  lastInteraction: Date.now()
};
this.attributes = updatedSessionAttributes;

// 调用emit响应,SDK会自动带上更新后的sessionAttributes
this.emit(':elicitSlot', slotToElicit, speechOutput, repromptSpeech, updatedIntent);

如果之后遇到更复杂的响应场景,需要用自定义响应构建器,也可以通过responseBuilder的withSessionAttributes()方法显式设置,但对于emit()的快捷指令(比如:elicitSlot、:tell、:ask这些),直接修改this.attributes就完全够用了。

内容的提问来源于stack exchange,提问作者Jay A. Little

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:09:10