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

Watson Assistant中如何实现偏离对话的条件式返回?

解决方案:Watson Assistant 偏离对话后的分支跳转需求

当然可以实现这个需求!不管是用可视化编辑器还是手动修改对话JSON,都能搞定这个场景。核心思路是利用上下文变量记录对话位置,再结合偏离对话节点的分支逻辑来控制跳转。

具体实现步骤

1. 记录当前对话节点的上下文变量

在每个需要支持“返回”的关键对话节点中,添加一个上下文变量(比如last_valid_node),用来存储当前节点的名称或ID。这样后续要返回时,就能精准定位到之前的位置。

  • 可视化编辑器操作:在节点的「上下文」面板中添加键值对:last_valid_node → 节点名称(比如“订单查询节点”)
  • JSON编辑方式:在对应节点的context字段中添加:
"context": {
  "last_valid_node": "订单查询节点"
}

2. 自定义偏离对话(Off-topic)的回复逻辑

默认的偏离对话节点只会提示用户“我不太理解”,你需要修改这个节点的回复,引导用户选择是否切换话题:

你是不是想聊别的内容?请回复Yes或No。

3. 添加分支节点处理用户回复

在偏离对话节点下添加两个子节点,分别匹配用户的“Yes”和“No”回复:

  • 当用户回复“Yes”:创建一个普通节点,直接处理新话题即可,无需跳转回原流程。比如回复“好的,那我们聊聊别的吧!”,然后进入新的对话分支。
  • 当用户回复“No”:创建一个节点,设置跳转逻辑回到last_valid_node记录的位置:
    • 可视化编辑器:在节点的「下一步」中选择「跳转到特定节点」,然后输入{{last_valid_node}}(引用上下文变量)
    • JSON编辑方式:在该节点的next字段中添加跳转指令:
"next": {
  "jump_to": {
    "node": "{{last_valid_node}}"
  }
}

完整JSON示例片段

这里给你一个简化的对话节点JSON示例,方便你参考:

{
  "dialog_nodes": [
    // 示例原对话节点:订单查询
    {
      "type": "standard",
      "title": "订单查询节点",
      "output": {
        "generic": [
          {
            "response_type": "text",
            "text": "请问你要查询哪个订单的状态?"
          }
        ]
      },
      "context": {
        "last_valid_node": "订单查询节点"
      },
      "conditions": "#订单查询"
    },
    // 偏离对话处理节点
    {
      "type": "off_topic",
      "title": "偏离对话处理",
      "output": {
        "generic": [
          {
            "response_type": "text",
            "text": "你是不是想切换话题?请回复Yes或No。"
          }
        ]
      },
      "children": [
        // 匹配Yes的分支
        {
          "type": "standard",
          "title": "确认切换话题",
          "conditions": "@Yes",
          "output": {
            "generic": [
              {
                "response_type": "text",
                "text": "好的,那我们聊聊别的吧!"
              }
            ]
          }
        },
        // 匹配No的分支,跳转回原节点
        {
          "type": "standard",
          "title": "返回原对话",
          "conditions": "@No",
          "next": {
            "jump_to": {
              "node": "{{last_valid_node}}"
            }
          },
          "output": {
            "generic": [
              {
                "response_type": "text",
                "text": "好的,我们回到之前的话题。"
              }
            ]
          }
        }
      ]
    }
  ]
}

注意事项

  • 确保每个需要支持返回的节点都更新了last_valid_node变量,避免跳转错误。
  • 如果你的对话中有大量节点,可以考虑用节点ID代替名称,ID在Watson Assistant的节点详情中可以找到,更稳定不易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:21:01