Dify v1.6.0:支持MCP了,为更顺畅的交互打开了大门
Dify 1.6.0 版本带来了多项重要功能升级与优化,重磅更新就是新增了 MCP 支持,其他更新还包括主题拖放排序、SSL 验证切换等核心功能,同时对批量嵌入、Redis 故障转移等关键模块进行了增强。(还是老样子,为了尽量减少个人认知偏差影响,以下内容由大模型翻译而来):
🚀 v1.6.0 新增功能
欢迎使用 1.6.0 版本!🎉🎉🎉 本次发布包含了诸多新功能、关键修复以及各类优化,旨在提升您的使用体验。我们听取了您的反馈意见,并进行了全方位的重大改进:
🌟 亮点功能
引入 MCP 支持!
我们很高兴地推出对 Anthropic 的模型上下文协议(MCP)的支持 —— 这是一种用于构建模型输入和输出的全新行业标准。借助 MCP,使用统一、可靠的格式与前沿的语言模型进行集成将变得前所未有的轻松。
🚀 新功能
MCP 支持:我们已经集成了 MCP 支持,为更顺畅的交互打开了大门。(参见 #20716,由新手(Novice)提交)
⚡ 增强功能
主题的拖放操作:现在,您可以通过拖放排序功能轻松地对主题列表重新排序。(参见 #22066,由南山(Minamiyama)提交)
SSL 验证切换:您现在可以在 HTTP 节点中更改 SSL 验证设置了。(参见 #22052,由达维德・德尔比安科(Davide Delbianco)提交)
批量嵌入优化:对批量嵌入以及 Qdrant 写入一致性进行了优化。(参见 #21776,由幸运 lhb90(luckylhb90)提交)
问题分类器增强:在分类项编辑器中引入了实例 ID(instanceId),以实现更精细的分类。(参见 #22002,由南山(Minamiyama)提交)
Redis 故障转移机制:为 Redis 添加了一个强大的故障转移机制,以确保数据的弹性。(参见 #21044,由整洁代码哥(NeatGuyCoding)提交)
🐛 修复内容
JSON 输出问题:解决了一个影响数据一致性的 JSON 输出问题。(参见 #22053,由包努德塞菲斋(baonudesifeizhai)提交)
变量名唯一性:确保列表中的变量名具有唯一性,以避免冲突。(参见 #22038,由南山(Minamiyama)提交)
抽屉中溢出隐藏修复:通过添加溢出隐藏功能,确保复制按钮始终可点击。(参见 #22103,由王合阳(Heyang Wang)提交)
插件守护进程故障:解决了导致插件守护进程无法启动的问题。(参见 #21841,由卡洛・陈(Kalo Chin)提交)
🚀 1.6.0 版本带来了重大的流程优化,消除了之前的瓶颈,同时引入了模型上下文协议(MCP)标准,极大地提升了模型输入和输出的一致性和兼容性。这使得集成和扩展比以往更加顺畅、高效。
升级指南
Docker Compose部署
-
1. 备份自定义的docker-compose YAML文件(可选)
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
-
2. 从main分支获取最新代码
git checkout main
git pull origin main
-
3. 停止服务(请在docker目录中执行)
docker compose down
-
4. 备份数据
tar -cvf volumes-$(date +%s).tgz volumes
-
5. 升级服务(强烈建议指定容器名称来启动镜像,防止和其它应用冲突)
docker compose up -d
源代码部署
-
1. 停止API服务器、Worker和Web前端服务器。
-
2. 从发布分支获取最新代码:
git checkout 1.6.0
-
3. 更新Python依赖:
cd api
uv sync
-
4. 运行迁移脚本:
uv run flask db upgrade
-
5. 重新运行API服务器、Worker和Web前端服务器。
变更内容
• #21832 中由 bowenliang123 执行的移除未使用的 CURRENT_VERSION 配置
• #21835 中由 laipz8200 执行的杂务(版本相关):将插件守护进程版本提升至 0.1.3
• #21823 中由 zxhlyh 执行的杂务(工作流上次运行相关)
• #21822 中由 zxhlyh 执行的修复工作流使用节点钩子的问题
• #21837 中由 Yeuoly 执行的修复:在结构化大语言模型(LLM)输出中添加对列表内容的处理
• #21842 中由 fdb02983rhy 执行的功能:为代理节点保留大语言模型设置
• #21825 中由 jiangbo721 执行的杂务:添加消息状态枚举
• #21841 中由 fdb02983rhy 执行的修复:插件守护进程启动失败问题
• #21838 中由 Yeuoly 执行的功能(测试相关):为大语言模型响应添加结构化输出解析器测试
• #21855 中由 HyaCiovo 执行的修复(网页相关):调整 HTTP 节点的方法和输入布局(#21834)
• #21856 中由 crazywoola 执行的修复:nodeExtraData 可能未定义的问题
• #21846 中由 Minamiyama 执行的样式(配置变量相关):更新样式类以使用设计系统标记
• #21843 中由 Minamiyama 执行的功能(变量相关):在变量名输入中自动将空格替换为下划线
• #21821 中由 jiangbo721 执行的修复:在发布应用前预览语音合成(TTS)的语音时出现的一个错误
• #19840 中由 ialisaleh 执行的功能:通过集成 Arize 和 Phoenix 提升可观测性
• #21867 中由 NeatGuyCoding 执行的将 MessageStatus 类从 models.model 模块移至 models.enums 模块的操作
• #21861 中由 Nov1c444 执行的修复:统计页面无法显示代理节点消耗的令牌问题
• #21783 中由 cutiechi 执行的功能(API 相关):在文档更新时验证并拒绝外部数据集
• #21871 中由 ZeroZ-lab 执行的修复:为编辑时间文本添加标题属性以提升可访问性
• #21880 中由 iamjoel 执行的修复:如果启用了应用市场则不搜索插件
• #21453 中由 baonudesifeizhai 执行的修复:防止大文件编码检测超时
• #21877 中由 hjlarry 执行的修复:语音合成工具必须选择一种语音
• #21888 中由 Minamiyama 执行的修复(循环变量相关):验证变量名输入
• #21909 中由 ZombieBlue 执行的使用 repair_json 修复 HTTP 请求节点的 JSON 解析错误
• #21894 中由 ZeroZ-lab 执行的功能:添加文档暂停和恢复功能
• #21907 中由 ZeroZ-lab 执行的功能:列表查询
• #21916 中由 nite-knite 执行的功能:更新账户菜单样式
• #21919 中由 bowenliang123 执行的测试:为 API 版本配置添加单元测试
• #21927 中由 NeatGuyCoding 执行的小修复:从操作跟踪提供程序配置映射(OpsTraceProviderConfigMap)中移除针对跟踪提供程序枚举(TracingProviderEnum)中 ARIZE 和 PHOENIX 的重复处理逻辑
• #21818 中由 HyaCiovo 执行的重构(网页相关):重构应用信息组件中的操作按钮布局(#21742)
• #21471 中由 hieheihei 执行的功能:添加阿里云大语言模型可观测性集成
• #21949 中由 NeatGuyCoding 执行的小修复:“暂停” 一词的翻译问题
• #21955 中由 heojawon 执行的杂务(国际化相关):修正拼写错误并改进韩语翻译
• #21934 中由 NeatGuyCoding 执行的重构:提取 config_entity.py 的通用 URL 验证器
• #21945 中由 baonudesifeizhai 执行的修复(代理相关):显示代理运行步骤,修复 #21718 问题
• #21253 中由 baonudesifeizhai 执行的修复:解决因 JSON.parse 精度问题导致的 “列表索引越界” 问题
• #21922 中由 mizoo-snow21 执行的功能:在 Markdown 表单中添加对 “type="hidden"” 输入元素的支持
• #21882 中由 laipz8200 执行的重构(图引擎相关):将 GraphRuntimeState 从图引擎(GraphEngine)中取出
• #21932 中由 Minamiyama 执行的增强(用户界面相关):增强检查表
• #21995 中由 lrhan321 执行的杂务(Docker 相关):将 NGINX 客户端最大请求体大小从 15M 增加到 100M
• #21991 中由 quicksandznzn 执行的修复:文档删除图像文件时检查文件是否存在
• #21986 中由 hyongtao-db 执行的杂务:移除不可达代码
• #22000 中由 GeZiMm 执行的修复:解决因 z-index 冲突导致的下拉菜单可见性问题
• #22001 中由 NeatGuyCoding 执行的小修复:修正 “aliyun” 的拼写错误
• #22012 中由 NeatGuyCoding 执行的功能:为阿里云跟踪添加单元测试和验证
• #21987 中由 Minamiyama 执行的修复(变量相关):改进 getNodeUsedVars 的实现细节
• #22013 中由 NeatGuyCoding 执行的小修复:修复 ToolProviderType 的重复本地导入问题
• #22003 中由 farion1231 执行的测试:为密码验证和哈希添加单元测试
• #22002 中由 Minamiyama 执行的功能(问题分类器相关):在类别项编辑器中添加实例 ID
• #22034 中由 douxc 执行的:从应用市场打开详细链接时不添加搜索参数
• #22038 中由 Minamiyama 执行的修复(变量相关):确保变量列表中的变量名唯一
• #21766 中由 DavideDelbianco 执行的在工作流中暴露大语言模型使用情况
• #22030 中由 farion1231 执行的测试:为 UrlSigner 添加全面的单元测试
• #22022 中由 hyongtao-db 执行的移除两个未使用的文件
• #21321 中由 kurokobo 执行的功能:引入新环境变量 ALLOW_UNSAFE_DATA_SCHEME 以允许呈现数据统一资源标识符(URI)方案
• #21556 中由 Minamiyama 执行的功能:为环境变量添加描述字段
• #22079 中由 wlleiiwang 执行的优化:优化腾讯向量数据库的内存使用
• #22052 中由 DavideDelbianco 执行的功能:允许在 HTTP 节点中更改 SSL 验证
• #22086 中由 laipz8200 执行的功能(库相关):引入 extract_tenant_id
• #22090 中由 wangsen3 更新 clean_document_task.py
• #22103 中由 water-in-stone 执行的修复(抽屉相关):添加溢出隐藏以确保复制按钮始终可点击(#21992)
• #22111 中由 douxc 执行的修复:允许更新插件安装设置
• #22102 中由 farion1231 执行的测试:为加密模块添加全面的单元测试
• #22066 中由 Minamiyama 执行的功能(问题分类器相关):为主题列表添加拖放排序功能
• #22113 中由 WTW0313 执行的杂务:更新主题变量
• #21776 中由 luckylhb90 执行的优化:批量嵌入和 Qdrant 写入一致性因子参数
• #21044 中由 NeatGuyCoding 执行的功能:添加 Redis 故障转移机制(#21043)
• #22108 中由 hyongtao-db 执行的杂务:移除无用的导入和变量
• #22053 中由 baonudesifeizhai 执行的修复:解决 json_output 相关问题
• #20716 中由 Nov1c444 执行的功能:添加 MCP(模型上下文协议)支持
• #22131 中由 iamjoel 执行的功能:MCP 的前端部分
• #22132 中由 github-actions 执行的杂务:翻译国际化(i18n)文件
• #19871 中由 zhanluxianshen 执行的更新工作流事件日志
• #22081 中由 Yeuoly 执行的功能:为提供程序和工具实体添加对深色图标支持
• #22141 中由 hjlarry 执行的修复:MCP 服务器卡片按钮显示问题
• #22144 中由 hjlarry 执行的功能:支持 MCP 服务器的 ping 方法
• #22149 中由 Nov1c444 执行的修复:为深色图标添加默认值
• #22155 中由 iamjoel 执行的杂务:修复模式编辑器无法悬停项目的问题
• #22136 中由 Mairuis 执行的杂务(版本相关):将版本提升至 1.6.0