免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Dify v1.8.0大版本更新:多模型凭证系统的底层架构革新与MCP的 OAuth 集成能力突破!

发布日期:2025-08-28 11:07:40 浏览次数: 1557
作者:AI工具推荐官

微信搜一搜,关注“AI工具推荐官”

推荐语

Dify v1.8.0带来重大架构升级,OAuth集成与多模型凭证系统让开发者体验更流畅安全。

核心内容:
1. 多模型凭证系统与MCP的OAuth集成能力突破
2. 工作流功能增强与智能体节点监控优化
3. 全面的安全性能提升与用户体验改进

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家



 

dify 1.8.0 版本,大版本号都变了,说明该版本进行了全方位的重大改进,涵盖从增强安全性、性能优化,到焕然一新的用户界面以及强大的新工作流功能等诸多方面。下面让我们一起来看看有哪些新内容吧!

🚀 v1.8.0 新增功能


工作流与智能体功能
多模型凭证系统:通过新建数据库表实现了一套全面的多模型凭证系统,能够更灵活地进行模型管理。
支持带 OAuth 的模型上下文协议(MCP):添加了对带 OAuth 认证的资源发现的模型上下文协议(MCP)支持,拓展了集成的可能性。
工作流变量的默认值:现在所有工作流起始节点的变量类型都支持默认值,使工作流更加稳健。
智能体节点令牌使用情况:公开了智能体节点使用指标,以便更好地进行监控和优化。



用户界面 / 用户体验增强
知识库中的文档排序:在知识库中添加了文档状态的排序功能,改进了文档管理。
删除头像功能:用户现在可以通过确认模态框来删除自己的头像,以确保安全。
可扩展的 “快速定位” 命令:通过可扩展架构改进了 “快速定位” 命令,以实现更好的导航效果。
文档名称提示框:在列表中的文档名称上添加了有用的提示框,以提高可见性。
设置后自动登录:在管理员账户设置完成后实现了安全的自动登录功能。



API 与后端
Redis SSL/TLS 认证:添加了对 Redis SSL/TLS 证书认证的支持,以增强安全性。
从 Flask-RESTful 迁移至 Flask-RESTX:成功地从 Flask-RESTful 迁移至 Flask-RESTX,以提供更好的 API 文档和结构。
Swagger 授权:在 Swagger 文档中添加了授权配置支持。


🐛 错误修复


关键修复

数据库性能:通过在每次创建消息时移除对提供程序表的更新,修复了重大性能问题。

认证错误处理:通过正确抛出异常而非返回的方式,修复了登录错误处理问题。

OAuth 与 Redis 兼容性:解决了 OAuth 与 Redis 的兼容性问题。

HTTP 请求节点文件访问:修复了 HTTP 请求节点中从起始节点使用远程 URL 访问文件的问题。


工作流改进

循环退出条件:修复了循环退出条件,使其能够接受来自循环内部节点的变量。

智能体节点令牌计数:在智能体节点令牌计数中,正确区分了提示令牌和完成令牌。

工具配置中的数字输入:修复了智能体节点工具配置中数字输入的行为问题。

通过 API 删除对话:修复了通过 API 删除对话时能正确从数据库中移除相关数据的问题。


用户界面 / 用户体验修复

暗色模式改进:进行了多项暗色模式修复,包括插件下拉菜单的背景模糊、悬停按钮对比度以及嵌入式模态图标等方面。

React 警告:通过将 shareCode 更新正确移至 useEffect 中,修复了 Next.js 的 React 警告问题。

边框半径一致性:修复了各组件间用户界面边框半径不一致的问题。


🔒 安全增强

防止用户枚举:对认证错误消息进行了标准化处理,以防止用户枚举攻击。

自定义头部修复:修复了在使用承载令牌或基本授权时自定义头部被忽略的问题。

修复 Oracle 虚拟数据库(VDB)中的 SQL 注入问题。


⚡ 性能与基础设施


工作流性能突破

异步工作流运行 / 工作流节点运行存储库:为工作流执行实现了异步存储库,带来了显著的性能提升。这一架构变更使得工作流运行期间能够进行非阻塞操作,早期测试显示,在典型工作流中执行时间几乎减半。这一优化尤其有益于包含多个节点和并行操作的复杂工作流。


数据库优化

语义版本比较:为向量数据库版本检查实现了语义版本比较功能。

分析数据库(AnalyticDB)改进:修复了分析数据库创建中文解析器(zhparser)失败时的回滚问题。

数据集清理:对数据集清理任务进行了优化,以提升性能。


测试基础设施

全面的测试覆盖:为多个服务(包括工作流应用、网站、认证、对话等)添加了基于测试容器的集成测试。

速率限制测试:为速率限制模块添加了一套全面的测试套件。


Docker 与部署

Docker 构建优化:通过清理 Jest 工作文件的脚本对 Docker 构建过程进行了优化。

亚马逊弹性容器服务(Amazon ECS)部署:添加了使用亚马逊弹性容器服务(Amazon ECS)和云开发工具包(CDK)的部署模式文档。

可配置的插件缓冲区大小:在组合文件中为插件添加了可配置的标准输入输出(stdio)缓冲区大小。

📚 文档

用于大语言模型(LLM)开发的 CLAUDE.md 文件:添加了全面的 CLAUDE.md 文件,用于大语言模型辅助开发指导。

API 文档:增强了文件端点、模型上下文协议(MCP)以及服务 API 的 API 文档。

本地化文档:更新了本地化的 README 文件,使其链接到相应的本地化CONTRIBUTING.md 文件。

Markdown 自动格式化:使用 mdformat 工具实现了对 Markdown 文件的自动格式化。



🧹 代码质量与重构

类型安全改进:对整个代码库中的类型注解和静态类型检查进行了重大改进。

AST-Grep 集成:添加了 ast-grep 工具,用于维护代码库的一致性。

无用代码清除:清理了项目中所有的空文件和未使用的代码。

导入优化:替换了代码库中已弃用的函数并优化了导入操作。

🌐 国际化

自动翻译更新:持续更新国际化(i18n)翻译文件,提高了翻译准确性。

日语翻译修正:修复了日语翻译问题。

翻译同步:更好地同步了所有支持语言之间的翻译内容。



本次发布标志着 Dify 在发展进程中迈出了重要的一步,在性能、安全性以及开发者体验方面都有了实质性的改进。我们尤其对增强的工作流功能以及全面的测试基础设施感到兴奋,它们将有助于我们在未来继续保持高质量标准。

升级指南

Docker Compose部署

  1. 1. 备份自定义的docker-compose YAML文件(可选)
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
  1. 2. 从main分支获取最新代码
git checkout main
git pull origin main
  1. 3. 停止服务(请在docker目录中执行)
docker compose down
  1. 4. 备份数据
tar -cvf volumes-$(date +%s).tgz volumes
  1. 5. 升级服务
docker compose up -d

源代码部署

  1. 1. 停止API服务器、Worker和Web前端服务器。
  2. 2. 从发布分支获取最新代码:
git checkout 1.8.0
  1. 3. 更新Python依赖:
cd api
uv sync
  1. 4. 运行迁移脚本:
uv run flask db upgrade
  1. 5. 重新运行API服务器、Worker和Web前端服务器。

变更内容

测试(API):由 @QuantumGhost 在 #23749 中修复了 TestWorkflowDraftVariableService 里不稳定的测试。

重构:由 @laipz8200 在 #23732 中简化了变量池键结构并提高了类型安全性。

重构:由 @laipz8200 在 #23747 中将任务管道中的_queue_manager 改为公有属性 queue_manager。

杂务:由 @hyongtao-code 在 #23690 中移除了 ModelProviderFactory 里未使用的变量。

新功能:由 @lyzno1 在 #23763 中为 “快速定位”(goto-anything)里的 @命令选择器添加了筛选支持。

紧急修复:由 @NeatGuyCoding 在 #23757 中修复了翻译问题。

新功能:由 @lyzno1 在 #23774 中为标签筛选组件添加了 “select-none” 类,以防止文本被选中。

修复(API):由 @QuantumGhost 在 #23768 中通过生成唯一变量名修复了不稳定的测试。

修复:由 @farion1231 在 #23766 中更新了集成测试,使其使用含 2 个元素的变量选择器。

修复:由 @lslzl3000 在 #23743 中将 MAX_TREE_DEPTH 暴露在环境变量中。

测试:由 @farion1231 在 #23765 中为速率限制模块添加了一套全面的测试套件。

由 @engchina 在 #23764 中修复了问题 #23758。

新功能:由 @jiangbo721 在 #23779 中提出,如果合并文本和文件,将文本提示置于文件之后……

新功能:由 @lyzno1 在 #23783 中为 “快速定位”(goto-anything)分层的模态框(Modal)添加了 “highPriority” 选项。

修复:由 @lslzl3000 在 #23785 中在 env.service.web 中添加了 MAX_TREE_DEPTH。

修复:由 @lyzno1 在 #23788 中防止了数据集设置模态框中的 “X” 按钮飘到屏幕角落。

新功能 / 改进的 MCP 超时配置:由 @IthacaDream 在 #23605 中完成。

杂务:由 @github-actions [bot] 在 #23789 中翻译了国际化(i18n)文件。

修复:由 @lyzno1 在 #23791 中移除了易造成误解的清除按钮,并改善了 SimpleSelect 的用户体验。

杂务:由 @WTW0313 在 #23792 中恢复了 package.json 和 pnpm-lock.yaml 里的 @mdx-js 依赖项。

修复节点搜索:由 @ZeroZ-lab 在 #23795 中完成。

修复:由 @lyzno1 在 #23815 中为 “快速定位”(goto-anything)命令选择器添加了缺失的翻译键。

为文件服务添加基于测试容器的测试:由 @NeatGuyCoding 在 #23771 中完成。

杂务:由 @CathyL0 在 #23805 中处理了 “快速定位”(goto-anything)的鼠标键盘交互问题。

修复在 app.ts 里缺失的导入:由 @hyongtao-code 在 #23831 中完成。

杂务:由 @bowenliang123 在 #23833 中将 uv 更新到 0.8.9 版本。

新功能 / 运行命令:由 @ZeroZ-lab 在 #23822 中完成。

杂务:由 @github-actions [bot] 在 #23841 中翻译了国际化(i18n)文件。

新功能:由 @xinlmain 在 #20050 中添加了一个异步存储库以提高工作流性能。

杂务:由 @laipz8200 在 #23847 中将容易造成误解的 “chore.yaml” 问题模板重命名为 “refactor.yml”。

重构:由 @laipz8200 在 #23845 中改进了 Redis 包装器的类型提示,并修复了 None 值的处理问题。

修复:由 @lyzno1 在 #23843 中改进了 “快速定位”(goto-anything)的高亮显示一致性。

新功能(API):由 @QuantumGhost 在 #23737 中实现了当应用被删除时自动删除 WorkflowDraftVariable。

修复:由 @WTW0313 在 #23855 中更新了模态框组件,使其使用相对定位。

为高级提示服务添加更全面的基于测试容器的测试:由 @NeatGuyCoding 在 #23850 中完成。

修复:由 @kenwoodjw 在 #23828 中优化了数据集清理任务。

修复:由 @lyzno1 在 #23858 中实现了 SimpleSelect 箭头图标状态同步,并为监控选择器添加了 “notClearable” 属性。

修复:由 @lyzno1 在 #23862 中规定 “快速定位”(goto-anything)命令过滤器应仅匹配快捷键。

修复账户头部易造成误解的 “Studio” 按钮:由 @lyzno1 在 #23842 中完成。

新功能:由 @goofy-z 在 #23521 中实现在单步调试运行大语言模型(LLM)节点时,支持为可视化模型调用上传文件。

样式:由 @WTW0313 在 #23865 中更新了暗色和亮色主题颜色,并添加了新的颜色变量。

修复:由 @IthacaDream 在 #23869 中处理了消息的 updated_at 问题。

在控制器中重构文件错误:由 @hyongtao-code 在 #23801 中完成。

杂务(cmdk):由 @HyaCiovo 在 #23813 中解决了 “快速定位”(GotoAnything)组件里默认选项选择的问题(#23878)。

修复翻译问题:由 @NeatGuyCoding 在 #23873 中完成。

更新 use-document-title.ts 以修复 favicon.ico 路径:由 @xb565517830 在 #23872 中完成。

修复:由 @lyzno1 在 #23893 中为嵌入式模态框选项图标添加了暗色模式支持。

移除冗余的 acceptedKeys 检查:由 @hyongtao-code 在 #23891 中完成。

修复:由 @hyongtao-code 在 #23860 中将 beforeRequest 钩子类型收窄,以避免数组中出现布尔值。

修复(API):由 @QuantumGhost 在 #23232 中修复了管理员创建反馈时出现的 “消息不存在” 错误。

修复(Web):由 @lyzno1 在 #23901 中解决了应用概览组件里的 TypeScript 错误。

修复 HTTP 调用节点里的 multipart/form-data 边界问题:由 @liugddx 在 #23903 中完成。

修复:由 @lyzno1 在 #23907 中解决了概览图表组件里的文本截断问题。

为应用生成服务添加基于测试容器的测试:由 @NeatGuyCoding 在 #23899 中完成。

修复:由 @liugddx 在 #23584 中确保在使用承载令牌或基本授权时忽略自定义头部。

修复:由 @crazywoola 在 #23880 中处理了 mime_type 可能为 None 的情况。

修复:由 @hyongtao-code 在 #23915 中用 slice 替换已弃用的 String.prototype.substr。

回退 “新功能:实现在单步调试运行大语言模型(LLM)节点时,支持为可视化模型调用上传文件”:由 @crazywoola 在 #23922 中完成。

由 @AlexChim1231 在 #23924 中修复了问题 #23921。

新功能:由 @laipz8200 在 #23935 中集成了 flask-orjson,以提高 JSON 序列化性能。

修复:由 @lyzno1 在 #23937 中解决了用户配置文件下拉菜单在不同布局间的缓存同步问题。

修复:由 @hyongtao-code 在 #23931 中移除了 jsonable_encoder 里冗余的 allowed_keys 检查。

修复(工作流 /if-else):由 @iamrajhans 在 #23611 中在变量重命名时保持条件同步。

杂务:由 @laipz8200 在 #23948 中从根目录移除了冗余的.env.example 文件。

重构:由 @lyzno1 在 #23943 中使用 packageManager 字段统一了 pnpm 版本管理。

新功能:由 @NeatGuyCoding 在 #23951 中为工具引擎序列化添加了测试。

新功能:由 @hieheihei 在 #23918 中实现了 External_trace_id 与 OpenTelemetry 的兼容。

修复应用和数据集卡片在暗色模式下悬停按钮的对比度问题:由 @lyzno1 在 #23955 中完成。

修复:由 @xb565517830 在 #23961 中解决了 /console/api/version 端点出现的 504 网关超时错误。

更新:由 @lyzno1 在 #23957 中将 GitHub 星标回退计数更新为当前值。

修复与可调用对象的比较问题:由 @IthacaDream 在 #23978 中完成。

文档:由 @tmokmss 在 #23985 中添加了使用亚马逊弹性容器服务(Amazon ECS)和云开发工具包(CDK)的部署模式。

杂务:由 @IthacaDream 在 #23984 中改进了与 MCP 相关代码中的类型注释。

杂务:由 @crazywoola 在 #23980 中在组合文件中为插件添加了可配置的标准输入输出(stdio)缓冲区大小。

杂务:由 @hyongtao-code 在 #23990 中移除了空文件和未使用的代码。

修复:由 @qiqizjl 在 #23996 中将数据库服务调用移到工作流草稿变量 API 的会话上下文内部。

修复在 trace_manager 里缺失的 user_id:由 @hyongtao-code 在 #24024 中完成。

修复:由 @hyongtao-code 在 #24022 中添加了 “api_key” 别名以保证向后兼容性。

更新 mypy.ini:由 @hyongtao-code 在 #24014 中完成。

杂务(i18n):由 @kurokobo 在 #24041 中纠正了日语翻译。

消息队列中未使用的函数:由 @zhanluxianshen 在 #24027 中提出。

回退 “修复:纠正工作流中自定义工具的文件变量处理”:由 @kurokobo 在 #24061 中完成。

恢复在提交 403e2d5 中误删的 useLabelStore:由 @hyongtao-code 在 #24052 中完成。

杂务:由 @lyzno1 在 #24044 中同步了翻译内容。

新功能:由 @NeatGuyCoding 在 #24048 中为元数据服务添加了基于测试容器的测试。

新功能:由 @NeatGuyCoding 在 #24066 中为模型负载均衡服务添加了基于测试容器的测试。

新功能:由 @Zhehao-P 在 #24043 中为对话开启器添加了选择输入支持。

新功能:由 @laipz8200 在 #23946 中添加了用于大语言模型辅助开发指导的 CLAUDE.md 文件。

新功能:由 @laipz8200 在 #23624 中添加了对 Redis SSL/TLS 证书认证的支持。

修复暗色模式下粘性表头透明度与背景模糊滤镜的问题:由 @lyzno1 在 #23999 中完成。

修复:由 @liugddx 在 #23992 中更新了 first_id 逻辑,使其使用聊天消息中最旧的回复项。

重构:由 @WTW0313 在 #24075 中改进了加载动画和调试面板样式。

修复(oauth):由 @Mairuis 在 #23959 中处理了 Redis 兼容性问题。

新功能:由 @iamjoel 在 #23633 中增强了提示和代码。

修复:由 @BoWuGit 在 #24032 中当 qdrant 搜索的 score_threshold 为 1 时,返回空列表而非抛出异常。

杂务:由 @github-actions [bot] 在 #24081 中翻译了国际化(i18n)文件。

修复:由 @iamjoel 在 #24086 中处理了因无当前代码导致代码生成显示错误的问题。

修复(UI):由 @HyaCiovo 在 #24092 中优化了 UI 组件样式和布局(#24090)。

新功能:由 @RockChinQ 在 #24101 中提出当应用市场被禁用时,不再启用自动升级(#24…)。

新功能 / 改进 “快速定位”(goto-anything)命令:由 @ZeroZ-lab 在 #24091 中完成。

杂务:由 @github-actions [bot] 在 #24102 中翻译了国际化(i18n)文件。

修复 pg_vector 扩展需要超级用户权限,但在华为云关系型数据库服务(RDS)中不可用的问题:由 @ElvisWai 在 #24093 中完成。

回退 “修复 pg_vector 扩展需要超级用户权限,但不可用……”:由 @crazywoola 在 #24108 中完成。

修复:由 @laipz8200 在 #24104 中在发布工作流前验证核对清单。

杂务:由 @hyongtao-code 在 #24110 中移除了体验增强组里的一些无用代码。

修复:由 @Stream29 在 #24106 中将代码的默认模板视为空。

将 pyobvector 升级到 0.2.15 版本:由 @whhe 在 #24120 中完成。

使用 typing.Literal 替换部分 str:由 @Zhehao-P 在 #24099 中完成。

新功能:由 @liugddx 在 #24127 中添加了带有确认模态框的删除头像功能。

杂务:由 @github-actions [bot] 在 #24131 中翻译了国际化(i18n)文件。

一个抑制(suppress)的示例:由 @asukaminato0721 在 #24136 中给出。

新功能:由 @NeatGuyCoding 在 #24026 中为特性服务添加了基于测试容器的测试。

新功能:由 @9527MrLi 在 #23881 中实现了定期删除超出时间限制的工作流运行日志。

尝试 ast-grep:由 @asukaminato0721 在 #24149 中进行。

修复:由 @Stream29 在 #24152 中纠正了代码修复的行为。

修复智能体节点工具项的工具配置表单里的数字输入问题:由 @JzoNgKVO 在 #24154 中完成。

移除第二个 if self.runtime is None: 检查:由 @hyongtao-code 在 #24171 中完成。

修复:由 @hyongtao-code 在 #24180 中正确匹配图像上传文件里的 http/https URL。

新功能:由 @NeatGuyCoding 在 #24193 中为模型提供程序服务添加了基于测试容器的测试。

修复:由 @hyongtao-code 在 #24191 中用 get_plugin_provider 替换 get_builtin_provider。

文档:由 @yihong0618 在 #24195 中格式化了所有的 md 文件。

紧急修复:由 @NeatGuyCoding 在 #24204 中修复了多情况匹配语法问题。

新功能:由 @iamjoel 在 #24210 中给出了教育验证过期的通知。

新功能:由 @GareArc 在 #24208 中实现了教育相关功能。

杂务:由 @github-actions [bot] 在 #24211 中翻译了国际化(i18n)文件。

Httpx 示例:由 @asukaminato0721 在 #24151 中给出。

添加 tyck 工具(当前忽略错误):由 @asukaminato0721 在 #22592 中完成。

修复自动将基础路径附加到图像资源的问题:由 @17hz 在 #24201 中完成。

修复:由 @lpdink 在 #24239 中在初始化 AnalyticdbVectorBySql 时保持幂等性。

修复:由 @huangzhuo1949 在 #24177 中实现了数据集文档格式的兼容。

新功能:由 @NeatGuyCoding 在 #24259 中为已保存消息服务添加了基于测试容器的测试。

MCP 支持资源发现:由 @CodeSpaceiiii 在 #24223 中完成。





53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询