Dify超长会话需通过外部存储永久保存;启用【External Storage Integration】并配置PostgreSQL或MinIO后,新会话直传外部存储,旧会话需调用/v1/export_sessions补录。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中处理超长历史会话时,内置数据库默认仅保留最近100轮对话,超出部分自动截断;若需永久保存完整交互记录(如客服对话存档、合规审计场景),必须通过外部存储节点接管会话数据流。
配置外部存储节点接入权限
进入Dify控制台 → 左侧导航栏点击【Settings】→ 选择【Advanced】选项卡 → 打开【External Storage Integration】开关。
勾选【Enable session history export】后,系统将强制启用会话数据外发机制;【未开启此开关时,所有后续配置均不生效】。
复制页面底部生成的API密钥,该密钥仅显示一次,丢失需重新生成。
部署兼容的外部存储服务
方法一:使用PostgreSQL自建表结构
创建名为dify_sessions的数据库,执行以下建表语句:
CREATE TABLE sessions (id VARCHAR(255) PRIMARY KEY,app_id VARCHAR(255),user_id VARCHAR(255),messages JSONB NOT NULL,created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW());
注意:messages字段必须为JSONB类型,否则Dify写入时会因格式校验失败而丢弃整条记录。
方法二:对接MinIO对象存储
在MinIO中新建bucket命名为dify-archives,设置public读写策略;Dify将按/app_id/user_id/YYYYMMDD/session_id.json路径写入文件。
绑定存储服务到具体应用
第一步:在Dify应用编辑页 → 点击【Chatbot】标签 → 滚动到底部【Session Management】区域。
第二步:点击【Configure External Storage】→ 从下拉菜单选择已配置的PostgreSQL或MinIO实例。
第三步:在【Session Retention Policy】中选择【Archive All】→ 保存设置。
这一步生效后,新发起的会话将不再写入Dify本地数据库,全部直传至外部存储;【已有会话历史不会自动迁移,需单独调用/v1/export_sessions API触发补录】。
验证归档是否生效
在应用中发起一次新对话,发送3条以上消息。
立即登录PostgreSQL执行SELECT COUNT(*) FROM sessions WHERE app_id = 'your_app_id'; 或检查MinIO对应路径下是否生成了.json文件。
若查不到记录,返回【Settings】→ 【Advanced】确认API密钥是否过期,或检查网络策略是否拦截了出站POST请求到存储服务地址。


















