关于“对话过程中途中不再有回复”的问题

目前我正在开发一款使用 RAG 的聊天机器人。起初运行一切正常,但当对话次数超过约 150 次时,开始出现没有回复的情况。

由于内存功能是关闭的,我认为在 token 方面应该没有问题。

整体形态类似于 Q&A 服务,用户可以进行提问。同时,为了能够基于上一次的聊天开启新的对话,我们为每位用户分配了一个 Conversation ID,并让他们使用同一个 ID 继续对话。

一直以来对话都能正常进行,但当对话大约达到 150 次(用户输入约 75 次)后,系统开始变得不稳定。

目前尚不清楚问题原因,如果有了解的朋友,烦请不吝赐教。

@John_nhira
请从以下几个方面说明一下:

  • 使用的是云版还是社区版?
  • 应用是通过 Dify 的 Web UI 使用,还是通过 API 使用?
    • 由于提到固定了 Conversation ID,我推测可能是通过 API 使用的。
  • 对于聊天流程中的 LLM 节点,是否已关闭“记忆”功能?
    • 理解为:虽然前端自定义实现中可以看到历史记录,但实际上系统并未基于之前的对话内容进行响应……?
  • “回复消失”在技术上具体指什么状态?
    • 例如,Dify 侧的追踪界面中会显示什么情况?如果是社区版,是否可以在容器日志中看到相关现象?

非常感谢。

  • 这是云端版本。
  • 应用程序是通过 API 调用的。
  • 我理解为内存已关闭,这个理解是正确的吗?

例如,假设在 Dify 的界面上可以查看到的对话 ID 是「f38cc632- \~\~\~ 5fe4adc2」。

当我通过 API 尝试调用该对话时,系统会提示“不存在”并被拒绝。

通常情况下一切正常,但随着对话次数的增加,或部分用户会出现错误,让我感到困惑。

截图 2025-12-16 15.24.09

请多关照。

@John_nhira
感谢确认。

例如,假设在对 /chat-messages 的 API 请求中指定了 conversation_idf38cc632...5fe4adc2 时出现了问题错误,那么:

  • 在 Dify 应用的 Logs & Annotations 页面中,确实可以确认该会话 ID f38cc632...5fe4adc2 的日志存在
  • 也就是说,该会话实际上应该并没有被删除

我的理解是正确的吗?
因为免费计划可能会清理旧的会话,所以想确认一下。

另外,虽然界面上确实存在日志,但请求却报错,这种情况通常与 API 请求中的 user 指定有关。不过,您应该是一直使用相同的值,对吧?
在向 /chat-messages 发送请求时,conversation_id 被指定后,数据库会根据会话 ID、应用 ID 和用户 ID(请求中的 user)进行完全匹配来查找现有会话,这一点也请确认一下。

除此之外,我暂时想不出其他可能的原因。
目前也有一些可能相关的 bug 或异常行为报告,可能与此有关。如果问题是从某一天开始出现的,那么也有可能是云端升级的影响。

谢谢您。

用户也一致。

是啊……

我自己在查找的过程中,也觉得可能是bug。

非常感谢您的耐心解答!:person_bowing: