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

无需重复响应列表,如何循环触发intent?笑话机器人场景问询

嘿,当然可以直接触发smalltalk.agent.telljoke意图来实现这个需求!不用非得新建一个重复意图,下面给你两种靠谱的实现方式:

方法一:通过事件触发复用原意图

这种方式不需要改动原意图的核心逻辑,只加个触发开关就行:

  • 第一步:给smalltalk.agent.telljoke意图添加一个自定义触发事件,比如trigger_new_joke。这样这个意图不仅能被用户的"Tell me a joke"触发,还能被这个事件主动唤起。
  • 第二步:创建一个极简的辅助意图(比如叫ask_for_another_joke),训练短语只需要覆盖"another one"、"tell me another joke"这类用户会说的内容。同时给这个辅助意图设置输入上下文为joke_delivered(你需要先给smalltalk.agent.telljoke设置这个输出上下文,生命周期设2-3轮就够,确保只有刚听完笑话的用户才会触发)。
  • 第三步:在辅助意图ask_for_another_joke的响应设置里,不要加任何文本,直接选择触发事件为trigger_new_joke。这样用户说"another one"时,就会直接唤起原意图,机器人自动讲新笑话,完美实现循环。
方法二:用Webhook复用核心逻辑

如果你的笑话是通过Webhook动态生成的,那这种方式更直接:

  • 把生成并返回笑话的逻辑单独封装在一个Webhook函数里,绑定给smalltalk.agent.telljoke意图。
  • 创建辅助意图ask_for_another_joke(同样带上joke_delivered输入上下文),也绑定同一个Webhook函数。这样不管是用户第一次请求笑话,还是后续要"another one",都会调用同一个逻辑返回新笑话,相当于间接复用了原意图的核心功能。

小提醒

  • 上下文的生命周期别设太长,2-3轮刚好,避免用户隔了好几个话题后说"another one"还触发笑话逻辑,显得突兀。
  • 如果用事件触发,记得在平台设置里确认原意图的事件触发功能是开启的,有些平台默认可能需要手动启用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:28:24