DIFY-07多轮对话记忆与历史消息实验目的深入理解 Dify 的对话记忆机制掌握如何控制历史消息长度和上下文窗口。重点节点对话历史窗口记忆窗口大小LLM 上下文管理操作步骤1. 创建对话型应用“工作室”→“创建应用”→“Chatflow”→ 命名记忆测试助手2. 配置 LLM 节点选择模型deepseek-chat设置系统提示词你是一个记忆力测试助手。 请记住用户之前说的话并在后续对话中引用。3. 调整记忆设置在 LLM 节点中找到“记忆”配置尝试以下设置并分别测试记忆窗口设为 3只记住最近 3 轮对话记忆窗口设为 10无限制使用完整上下文4. 测试记忆差异第一轮我叫小明我喜欢游泳第二轮我今年 25 岁第三到五轮随便聊别的如什么是机器学习第六轮你还记得我叫什么吗我喜欢什么运动5. 对比窗口为 3应该不记得第一轮的信息窗口为 10应该记得对比 Token 消耗差异后续深入意见学习使用变量手动存储关键信息不依赖自动记忆尝试在 RAG 场景下结合历史消息做检索增强了解会话级变量 vs 节点级变量的区别关于记忆的说明以下图为例① 记忆窗口 10滑动条作用每次请求时把最近10 轮对话历史发给 LLM默认关 → 历史消息不携带。你打开了所以前 10 轮上下文都带着但注意这里的10 轮是会话消息轮次user assistant 为一轮不是第 10 次对话后记忆消失② 持久化记忆第二个开关关键这个开关打开后Dify 会从对话中提取关键信息姓名、偏好、事实性结论等写入长期记忆不是简单地靠上下文窗口携带这些提取出的记忆独立于轮次限制不占用窗口长度所以你第一轮说了我叫张三第二轮之后 Dify 已经把它写入了持久记忆即使窗口过期比如超过 10 轮只要持久化记忆开着这个信息依然存在模拟一下你现在的状态第1轮用户说我叫张三上海人 ↓ 持久化记忆 → 存储 {name: 张三, city: 上海} ↓ 第11轮记忆窗口里已经没有第1轮的对话历史了 但持久化记忆还在LLM 接收到的上下文里仍有 {name:张三, city:上海} 所以它记得结论配置项状态效果记忆窗口 10✅ 开最近 10 轮对话历史发给 LLM持久化记忆✅ 开关键信息永久保留不轮窗口大小让你觉得 “10轮后还记得” 的是持久化记忆不是记忆窗口。如果你希望它 10 轮后忘掉需要把持久化记忆开关关掉——但那样它第一轮记下的信息第 11 轮就没了。