You need to enable JavaScript to run this app. 如何在Dialogflow中通过Fulfillment从跟进意图触发另一个意图
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dialogflow中通过Fulfillment从跟进意图触发另一个意图

Dialogflow Fulfillment 触发跟进意图解决方案

问题描述

各位开发者好,我正在Dialogflow中设计智能代理,想要通过Events和Fulfillment从一个跟进意图中触发另一个意图。我没有开发背景,所以一直在网上查找相关帮助。
我找到的相关教程和我正在处理的使用场景十分相似,教程里在Mockable中使用了如下代码:

{
    "followupEventInput": {
        "name": "eventname"
    }
}

我尝试在Fulfillment板块的内联编辑器中使用这段代码,但一直报错。希望能获得各位的专业指导,我很想学习相关知识,想要自己动手实现而不是直接找别人帮我写代码,非常感谢大家的帮助!

此致
Kristel

解决方案

报错原因

你找到的这段是Dialogflow webhook响应的原生JSON结构,不能直接放到内联编辑器中运行。Dialogflow内联编辑器默认基于Node.js的Dialogflow Fulfillment SDK开发,需要遵循SDK的语法规范编写逻辑。

实现步骤

  • 第一步:提前在目标触发意图的「事件」配置项中添加对应事件,确保事件名和后续代码中使用的名称完全一致
  • 第二步:在内联编辑器的对应意图处理函数中,调用SDK封装的agent.setFollowupEvent()方法触发事件,参考代码结构如下:
const functions = require('firebase-functions');
const { WebhookClient } = require('dialogflow-fulfillment');

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });

  // 当前触发webhook的意图的处理函数
  function currentIntentHandler(agent) {
    // 此处可添加你的业务逻辑
    // 触发目标事件
    agent.setFollowupEvent('eventname');
  }

  // 配置意图和处理函数的映射关系,替换单引号内容为你实际的意图名称
  let intentMap = new Map();
  intentMap.set('你当前使用的意图名称', currentIntentHandler);
  agent.handleRequest(intentMap);
});
  • 第三步:修改完成后点击内联编辑器顶部的「部署」按钮,等待部署完成后再进行功能测试

拓展说明

如果需要在触发事件的同时给目标意图传递参数,可以按如下写法传入配置对象:

agent.setFollowupEvent({
  name: 'eventname',
  parameters: {
    "参数名1": "参数值1",
    "参数名2": "参数值2"
  }
});

部署前可以切换到内联编辑器的package.json标签页,确认dialogflow-fulfillment依赖包版本为最新稳定版,避免版本兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 18:39:03