微信扫码
添加专属顾问
我要投稿
Dify v1.8.0带来重大架构升级,OAuth集成与多模型凭证系统让开发者体验更流畅安全。 核心内容: 1. 多模型凭证系统与MCP的OAuth集成能力突破 2. 工作流功能增强与智能体节点监控优化 3. 全面的安全性能提升与用户体验改进
dify 1.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部署
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
git checkout main
git pull origin main
docker compose down
tar -cvf volumes-$(date +%s).tgz volumes
docker compose up -d
源代码部署
git checkout 1.8.0
cd api
uv sync
uv run flask db upgrade
测试(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+中大型企业
2025-08-27
Dify发布了V1.8.0版本,安全性和性能有了重大改进,让我们一起来看看吧!
2025-08-25
4300字长文:使用dify搭建合同审核Agent
2025-08-23
Dify集成MCP服务
2025-08-23
Dify v1.7.2 实战爆破:6 大特性颠覆开发,23 处修复稳如老狗
2025-08-20
深度实战:我用 Dify 复刻了 1688 的 AI 搜索,“多路召回”才是灵魂
2025-08-20
Dify Java Client
2025-08-19
5 分钟搭建你的 AI 应用-Dify 全流程指南
2025-08-19
【万字长文】Dify 知识库全链路图解:7 个关键节点,彻底拆解 RAG 黑盒
2025-06-04
2025-06-25
2025-06-03
2025-06-02
2025-06-05
2025-06-10
2025-06-30
2025-06-29
2025-06-24
2025-06-09
2025-08-18
2025-08-02
2025-07-30
2025-06-26
2025-06-17
2025-05-29
2025-05-28
2025-05-22