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

如何在DialogFlow中通过意图自身的yes后续响应递归触发该意图

Dialogflow 递归触发intent实现多航段循环添加方案

不要硬做intent的递归跳转,用上下文透传+自定义事件触发的方式实现,全程不会丢失已收集的航段数据,具体操作步骤如下:

  • 首先配置持久化上下文:给多程航班申请的主intent绑定输出上下文multi_flight_booking,上下文生命周期设置为15-20轮(足够覆盖多航段添加的对话轮次),在上下文里定义数组类型参数collected_segments,专门用来存储已经收集完成的航段信息。
  • 调整航段收集的流转逻辑:每收集完一个航段的出发地、目的地、出行时间等必填信息、校验通过后,不要直接跳流程,先把当前航段的结构化数据push到collected_segments数组里,再向用户发送确认话术:「当前航段已保存,是否需要添加下一个航段?」
  • 配置确认环节的分支路由:
    • 肯定分支:把用户回复yes、对、要加、再来一段这类肯定表述的语料归到这个分支,触发时不要直接跳转回多程申请intent的初始入口,而是触发自定义事件add_new_segment,透传当前上下文里的collected_segments参数,把事件的触发目标绑定到多程申请intent里「单个航段信息收集」的流程节点,直接进入下一轮航段信息采集,和首次添加航段的交互逻辑完全一致。
    • 否定分支:把用户回复no、不用了、够了这类否定表述的语料归到这个分支,触发时清空multi_flight_booking上下文,直接进入所有航段信息核对、生成航班申请单的后续流程即可。
  • 如果你用webhook处理后端校验和数据存储,不需要在控制台手动配事件触发,在收集完单个航段的接口响应里直接返回followupEvent结构即可,参考格式:
{
  "followupEventInput": {
    "name": "add_new_segment",
    "parameters": {
      "collected_segments": 已收集的航段结构化数组
    },
    "languageCode": "zh-CN"
  }
}

避坑提醒:不要直接从头触发多程航班申请的主intent,这种方式会重置上下文参数,直接导致之前已经收集到的航段数据全部丢失。

  • 补充兜底逻辑:每次进入单个航段收集节点时,先判断collected_segments的参数类型,如果不是数组就初始化为空数组,避免上下文过期导致的流程报错。

内容的提问来源于stack exchange,提问作者Gokul S Pillai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:30:50