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

DialogFlow中同一意图多次触发时各次参数值如何存储并复用?

DialogFlow 多轮意图参数存储复用实现方案

核心逻辑:DialogFlow 默认的会话参数是单值覆盖模式,你需要通过数组类型的自定义上下文/外部存储来追加保存每次触发progress_tracking意图的参数,供后续get_progress_report调用。以下是两种可直接落地的实现方案:

方案1:仅用DialogFlow原生能力实现(无需额外后端)

适合仅在单会话内复用参数的场景:

  • 首先创建自定义上下文progress_records,将生命周期设置为大于你预期的最大交互轮数(比如设置为20轮),避免上下文提前过期导致数据丢失
  • 给progress_tracking意图配置所需提取的参数:比如completion_rate(完成率)、time_cost(耗时)、user_attitude(用户状态描述)
  • 在progress_tracking意图的「参数响应」配置中,给progress_records上下文新增records参数,参数值设置为:
    `#progress_records.records ? #progress_records.records.concat([{'completion': $completion_rate, 'time': $time_cost, 'attitude': $user_attitude}]) : [{'completion': $completion_rate, 'time': $time_cost, 'attitude': $user_attitude}]`
    
    这段逻辑的作用是:如果上下文里已经有records数组,就把新的进度记录追加到数组末尾;如果是第一次触发该意图,就新建数组存入第一条记录
  • 给get_progress_report意图设置触发前提:必须存在progress_records上下文,回复内容直接遍历数组拼接报告即可,示例回复模板如下:

    你的项目进度记录如下:

    1. 完成率{{#progress_records.records[0].completion}},耗时{{#progress_records.records[0].time}},状态:{{#progress_records.records[0].attitude}}
    2. 完成率{{#progress_records.records[1].completion}},耗时{{#progress_records.records[1].time}},状态:{{#progress_records.records[1].attitude}}
    3. 完成率{{#progress_records.records[2].completion}},耗时{{#progress_records.records[2].time}},状态:{{#progress_records.records[2].attitude}}

方案2:通过Webhook实现(适合复杂逻辑/跨会话存储)

如果需要跨会话保留数据、或者要对进度数据做额外统计计算,用该方案:

  • 给progress_tracking意图开启webhook调用,每次触发时,你的后端服务将提取到的进度参数和当前会话的sessionID绑定,存在自己的数据库/缓存中(比如Redis,key设为progress_{sessionID},值存为JSON数组),每次新触发就往数组里追加新记录
  • 给get_progress_report意图也开启webhook调用,触发时后端用当前sessionID取出所有对应的进度记录,拼接成报告文本返回给DialogFlow即可
  • 如果需要支持用户下次打开对话仍能调取之前的进度记录,把存储的key替换为用户唯一ID而非sessionID即可

注意事项

  • 原生方案的上下文生命周期要设置足够大,避免还没触发get_progress_report上下文就被清空
  • 如果单会话内进度记录条数较多,优先用webhook方案,DialogFlow原生参数的存储大小有上限
  • 可以在progress_tracking的回复里增加提示,比如「已记录当前进度,随时可以让我生成进度报告」

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:39:05