必须选择chatflow应用类型并启用memory机制,设置记忆窗口(如5)、配置会话变量(如order_id)及通过api透传conversation_id,才能实现上下文记忆、指代消解与订单信息自动补全。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Dify中让AI记住用户前几轮说过的话、自动补全订单信息、理解“它”指代什么,必须正确启用并配置Memory机制,否则每轮对话都是孤立的全新会话。
选择Chatflow应用类型
进入Dify控制台→点击“创建应用”→在应用类型中【必须选择Chatflow】,不能选Workflow或Completion。Workflow类型完全不支持记忆功能,即使后续所有设置都正确,多轮对话仍会丢失上下文。
Chatflow是唯一内置会话管理能力的应用类型,它默认启用session_id绑定、消息时间戳记录和内存级短期缓存。
在LLM节点中开启记忆开关
方法一:基础启用
进入Chatflow编辑页→双击任意LLM节点→在右侧面板找到“记忆(Memory)”开关→将其打开。
方法二:精细控制窗口大小
开启记忆后,必须设置“记忆窗口”数值,例如填入5。该值代表模型最多能看到最近5轮完整对话(含用户输入与AI回复),超出轮数将被自动截断。窗口过小会导致上下文断裂;过大则易触发token超限报错。
【注意:窗口值必须为正整数,且建议不超过10】——Dify不会校验非法输入,若填入0或负数,系统将静默禁用记忆功能,但界面不提示错误。
配置会话变量保存结构化状态
第一步:在工作流顶部添加“设置变量”节点
第二步:双击该节点,在“变量名”栏输入order_id,“变量值”栏填写{{sys.query}}中的提取结果,例如用正则提取“订单号是(.+?)”
第三步:在后续LLM节点的Prompt中插入{{conversation_variables.order_id}},模型即可直接引用该值生成回复
会话变量与普通记忆不同,它不依赖文本回溯,而是以JSON键值对形式持久存在于本次session生命周期内。即使用户隔了8轮才说“查这个单”,变量仍准确可用。
通过API调用维持同一会话
首次请求时不要传conversation_id,Dify会返回类似{"conversation_id":"sess_xxx"}的响应体。
后续所有请求必须在请求体中携带该conversation_id字段,格式为{"conversation_id":"sess_xxx","query":"我想修改地址"}
企业微信等外部渠道对接时,必须由前端或网关层完成conversation_id的透传与存储,Dify自身不提供跨会话ID合并能力。











