Dify Plugin Conversation Memory 设置完整教程(2026最新版)

👁 214 次阅读

dify-tutorial

如果你正在使用 Dify 搭建 AI 应用,大概率会遇到一个棘手问题:对话记忆怎么持久化? 默认情况下,Dify 的对话上下文在重启或切换会话后就会丢失。这时候,dify-plugin-conversation-memory 插件就成了刚需——它能把对话历史存储到 Cloudflare D1 数据库中,让你的 AI 应用真正拥有”长期记忆”。

但很多朋友在配置这个插件时卡住了,不是找不到参数就是连不上数据库。别急,这篇文章从零开始,带你一步步完成 dify-plugin-conversation-memory 设置,全程细节拉满。

一、dify-plugin-conversation-memory 是什么?

简单说,它是一个 Dify 平台的外部插件,核心功能是将 AI 对话的上下文信息(用户说了什么、AI 回答了什么)以结构化形式存入 Cloudflare D1 数据库。这样即使应用重启、容器重建,对话历史依然可以完整恢复。

  • 存储后端:Cloudflare D1(基于 SQLite 的边缘数据库)
  • 数据内容:Conversation(会话)和 Message(消息)两张核心表
  • 调用方式:通过 REST API 读写对话记录
  • 适用场景:聊天机器人、客服系统、AI 助手等需要长期对话记忆的应用

二、准备工作:你需要先搞定这 3 样东西

在 Dify 里配置插件之前,必须先在 Cloudflare 侧完成以下准备。很多人就是栽在这一步——直接跳到 Dify 填参数,结果当然连不上。

1. 获取 Cloudflare Account ID

登录 Cloudflare Dashboard,在右侧侧边栏底部或页面 URL 中就能找到你的 Account ID:

https://dash.cloudflare.com/{你的Account_ID}

直接复制这串 32 位十六进制字符串,保存好。

2. 创建 Cloudflare D1 数据库

在 Cloudflare Dashboard 左侧菜单中选择 Workers & Pages → D1,点击 Create Database:

  1. 数据库名称随意,比如 dify-conversation-memory
  2. 创建完成后,记下 Database ID(也是一长串十六进制字符)
  3. 如果你习惯命令行,也可以用 Wrangler:npx wrangler d1 create dify-conversation-memory

⚠️ 注意:数据库创建后是空的,不用担心,插件第一次运行时会自动建表(Conversation 和 Message 表)。但你也可以手动调用插件的初始化函数来建表。

3. 生成 Cloudflare API Token

这是最关键的一步。在 Cloudflare Dashboard 右上角点击头像 → My Profile → API Tokens → Create Token:

  1. 选择 “Create Custom Token”
  2. 权限配置(Permissions)设置如下:
资源类型 权限 说明
Account – D1 Edit 读写 D1 数据库
Account – Workers Scripts Edit 部分版本可能需要
  1. Account Resources 选择 “Include → 你的账户”
  2. 点击创建,立即复制 Token(关闭页面后将无法再次查看)

三、在 Dify 中安装和配置插件

准备工作完成后,回到 Dify 平台操作。

步骤 1:安装插件

进入 Dify 控制台 → 插件(Plugins) → 点击 从本地安装 或 市场安装,上传 dify-plugin-conversation-memory 的 .difypkg 文件。

如果你还没有插件包,可以前往 GitHub 官方仓库 下载最新 release。

步骤 2:填写配置参数

安装完成后,点击插件进入设置页面,你会看到三个必填字段:

参数名 填写内容 来源
cloudflare_account_id 你的 Cloudflare Account ID Dashboard URL 中获取
cloudflare_api_token 上一步生成的 API Token API Tokens 页面
cloudflare_d1_database_id 你创建的 D1 数据库 ID D1 数据库详情页

依次填入,保存设置。

步骤 3:初始化数据库(重要!)

很多教程漏掉了这一步。配置保存后,插件不会自动创建表结构。你需要调用一次 初始化接口:

  • 部分插件版本在设置页面有 “初始化数据库” 按钮,直接点击即可
  • 如果没有按钮,可以通过插件提供的 API 端点手动触发初始化
  • 初始化成功后,你可以在 Cloudflare D1 控制台看到新建的 Conversation 和 Message 两张表

步骤 4:验证连接

在你的 Dify 应用中触发一次对话,然后去 Cloudflare D1 控制台查询:

SELECT * FROM Conversation LIMIT 5;

如果能看到新创建的会话记录,恭喜你,dify-plugin-conversation-memory 设置成功!

四、常见问题排查

Q1:保存配置时报错 “Unauthorized”

99% 是 API Token 权限不够。回到 Cloudflare 检查 Token 是否包含了 Account – D1 – Edit 权限。只读权限(Read)是不行的。

Q2:对话没有存进去

检查以下几点:

  • 是否执行了数据库初始化?
  • Database ID 是否填错(注意不是数据库名称,是那串 ID)
  • 插件是否在应用中正确关联?在 Dify 应用的”插件”设置中勾选该插件

Q3:数据存了但读不出来

可能是 conversation_id 没有正确传递。确保你的应用在调用插件 API 时携带了正确的 conversation_id 参数。

五、进阶:用插件 API 构建智能对话记忆

配置完成后,你可以通过插件的几个核心 API 来操控对话记忆:

  • 获取对话历史:传入 conversation_id,返回完整的消息记录
  • 追加新消息:传入用户输入和 AI 回复,自动归档
  • 查询会话列表:获取所有历史会话,做会话管理

结合 Dify 的工作流编排能力,你可以轻松构建一个有”记忆”的 AI 助手——它会记得用户之前的偏好、上下文,甚至跨会话保持一致性。

总结

dify-plugin-conversation-memory 设置的难点不在 Dify 本身,而在于 Cloudflare 侧的准备工作。只要按照本文的顺序——先搞定 Account ID、D1 数据库、API Token 三件套,再到 Dify 里填参数、初始化、验证——基本不会出问题。

如果你在配置过程中遇到任何问题,欢迎在评论区留言,我会逐一解答。

📝 本文由AI辅助生成,内容仅供参考。


订阅 AI 百事知

每周精选 AI 工具评测、行业资讯与使用教程,第一时间送达。

🔗 相关阅读(你可能还想看)

📄 2026年8月AI对话模型三强横评:ChatGPT vs Claude vs Kimi,谁更值得订阅?
📄 2026年AI工具新手指南:从零开始选购最适合你的AI助手(附完整价格对比)
📄 Ollama本地部署大模型:2026年从零开始的完整教程
无需GPU也能跑!Ollama本地部署大模型完全指南,涵盖硬件选型、安装配置、模型选择、API调用、性能优化和成本对比,
📄 2026年AI工具订阅指南:国内外主流AI订阅方案价格对比与性价比分析
📄 DeepSeek 从入门到精通:2026年最新使用教程
📄 2026年AI工具订阅方案全面对比指南:ChatGPT、Claude、Gemini、Kimi谁最值得买?
📄 Dify 深度评测:150K+ Stars 的开源 AI Agent 工作流平台,值得上手吗?
📄 Claude AI 完整使用指南:从入门到高效工作流
从基础注册到高级工作流,手把手教你使用 Claude AI 提升工作效率。涵盖提示词工程、代码开发、研究写作、文件处理等
📄 Claude AI 使用教程:从入门到高效应用的完全指南
🤖 想直接和 AI 对话?
免费体验 DeepSeek V4 等顶级模型,无需注册,随问随答
🎯 立即体验 AI 工具
🤖 嘟嘟客服
滚动至顶部
🤖 嘟嘟客服
🤖 嘟嘟客服
';i.value='';m.innerHTML+='
...
';fetch('/dify-chat',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({query:q,user:'w'+Date.now()})}).then(function(r){return r.json()}).then(function(d){var a=d.answer||'暂时无法回复';m.removeChild(m.lastChild);m.innerHTML+='
'+a+'
'}).catch(function(){m.removeChild(m.lastChild);m.innerHTML+='
网络异常
'})">发送