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

如何使用Node.js在Dialogflow中创建同意图下生命周期为2的参数

问题解答

两种实现方案选择

两种实现路径都可以正常跑通,你可以根据自己的需求选择:

  • 方案1:控制台配置参数+Node.js写逻辑:操作更简单,你可以先在Dialogflow控制台把first、second设为必填参数,分别配置对应参数的询问话术,Dialogflow会自动按顺序触发参数询问,你只需要用Node.js编写参数校验逻辑,校验不通过时返回重新输入的提示即可,不需要自己处理会话上下文的生命周期控制。
  • 方案2:全程Node.js实现:不需要在控制台做任何参数配置,所有参数收集、校验、顺序询问的逻辑都可以通过Node.js操作上下文完成。

全Node.js实现具体操作

你只需要先打开对应意图的「启用webhook调用」开关,所有逻辑都在服务端代码里控制即可,核心逻辑是每次触发webhook时先判断当前已收集的参数状态,按顺序询问未完成收集/校验不通过的参数,参考代码如下:

function test(agent) {
  // 获取已存储的test上下文,无上下文则取空对象
  const testContext = agent.context.get('test') || { parameters: {} };
  // 优先读取已收集的参数,避免初始参数覆盖已录入内容
  const collectedFirst = testContext.parameters.first || agent.parameters.first;
  const collectedSecond = testContext.parameters.second || agent.parameters.second;

  // 处理第一个参数的收集与校验
  if (!collectedFirst) {
    agent.add("请输入第一个参数的值:");
    agent.context.set({
      name: 'test',
      lifespan: 2,
      parameters: {}
    });
    return;
  }
  // 此处可自定义第一个参数的校验规则,示例为校验是否为纯数字
  const firstIsValid = /^\d+$/.test(collectedFirst);
  if (!firstIsValid) {
    agent.add("第一个参数仅支持输入数字,请重新输入:");
    agent.context.set({
      name: 'test',
      lifespan: 2,
      parameters: {}
    });
    return;
  }

  // 处理第二个参数的收集与校验
  if (!collectedSecond) {
    agent.add("请输入第二个参数的值:");
    agent.context.set({
      name: 'test',
      lifespan: 2,
      parameters: {
        first: collectedFirst
      }
    });
    return;
  }
  // 此处可自定义第二个参数的校验规则,示例为校验长度不小于3位
  const secondIsValid = collectedSecond.length >= 3;
  if (!secondIsValid) {
    agent.add("第二个参数长度不能少于3位,请重新输入:");
    agent.context.set({
      name: 'test',
      lifespan: 2,
      parameters: {
        first: collectedFirst
      }
    });
    return;
  }

  // 所有参数收集校验完成,执行后续业务逻辑
  agent.add(`参数收集完成:第一个参数为${collectedFirst},第二个参数为${collectedSecond}`);
  // 可选:清空已失效的上下文,避免影响后续会话
  agent.context.set({
    name: 'test',
    lifespan: 0
  });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:18:03