Dialogflow:在Dialogflow中使用实现库(node.js)设置多个上下文

Dialogflow:在Dialogflow中使用实现库(node.js)设置多个上下文,node.js,dialogflow-es,dialogflow-es-fulfillment,Node.js,Dialogflow Es,Dialogflow Es Fulfillment,我正在尝试根据用户的响应设置/更改多个上下文。为此,我试图通过内联编辑器(node.js)使用实现库通过agent.setContext()设置输出上下文。我想删除dialogflow中由intent设置的上下文,并在dialogflow的输出上下文中添加新上下文 使用node.js中的agent.setContext()调用设置一个输出上下文时,它可以正常工作,但当我在agent.setContext()中传递多个上下文的列表时,它会抛出错误,如下所示: 注意:我在Dialogflow Int

我正在尝试根据用户的响应设置/更改多个上下文。为此,我试图通过内联编辑器(node.js)使用实现库通过agent.setContext()设置输出上下文。我想删除dialogflow中由intent设置的上下文,并在dialogflow的输出上下文中添加新上下文

使用node.js中的agent.setContext()调用设置一个输出上下文时,它可以正常工作,但当我在agent.setContext()中传递多个上下文的列表时,它会抛出错误,如下所示:

注意:我在Dialogflow Intent的输出上下文中给出了3个输出上下文(context_name_1、context_name_2、context_name_3)

代码段:

function intent_name(agent) {
    ... // defined text response for user
    ...
    agent.setContext([{
            'name':'context_name_1',
            'lifespan': 10
            }, 
          {
            'name':'context_name_2',
            'lifespan': 0
            }, 
          {
            'name':'context_name_3',
            'lifespan': 0
            },
          {
            'name':'context_name_4',
            'lifespan': 3
            }]);
    ....
    }

我得到的错误是:

Error: context must be provided and must have a name
    at WebhookClient.setContext (/srv/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:343:13)
    at prepaidRecharge (/srv/index.js:45:15)
    at WebhookClient.handleRequest (/srv/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:303:44)
    at exports.dialogflowFirebaseFulfillment.functions.https.onRequest (/srv/index.js:92:9)
    at cloudFunction (/srv/node_modules/firebase-functions/lib/providers/https.js:57:9)
    at /worker/worker.js:783:7
    at /worker/worker.js:766:11
    at _combinedTickCallback (internal/process/next_tick.js:132:7)
    at process._tickDomainCallback (internal/process/next_tick.js:219:9)

任何帮助都将不胜感激。

分别设置它们

agent.setContext({ name: 'context_name_1', lifespan: 10, parameters: { city: 'Rome' }});
agent.setContext({ name: 'context_name_2', lifespan: 11, parameters: { continent: 'eu' }});
或者使用新的方式:

agent.context.set('context_name_1', 10, {'param1' : 'abc'});
agent.context.set('context_name_2', 11, {'param2' : 2});