Dify 1.17.1 版本更新:知识库错误修复、工作流交互与权限改进
Dify 1.17.1 修复了知识库文档提取、模型迁移、Human Input 工作流、Agent 会话记忆等多类问题,新增知识库级 API 密钥作用域、工作流节点键盘移动和市场创作者主页。自托管使用内置 Weaviate 的部署需先按指南分阶段升级向量库版本。
本次变化
新增功能
- 数据集级知识库 API 密钥:知识库服务 API 密钥可绑定到指定知识库,支持在工作区与单个知识库之间选择作用域。绑定后的密钥访问其他数据集(文档与检索)以及不含数据集 ID 的端点(如列出全部)时返回 403。既有密钥保持工作区级行为不变。
- 工作流节点与批注键盘移动:节点、多选节点、批注标记和草稿批注可用方向键移动,按住 Shift 加大步长,覆盖 Note、Iteration、Loop 节点;连续移动在按键释放或失焦时提交,只产生一条撤销记录,并仍遵守只读模式、容器边界与协作更新。
- 市场创作者主页与首页改版:插件作者拥有公开主页,列出其作品并提供发布者侧栏;市场首页重建为 hero、横幅轮播、置顶搜索、目录标签和标签/语言筛选,移动端为堆叠可滑动布局;Bundles 不再混入插件分类。
- Markdown 表单字段名长度可配置:原固定 128 字符,现可通过
MARKDOWN_FORM_FIELD_NAME_MAX_LENGTH(Docker)或NEXT_PUBLIC_MARKDOWN_FORM_FIELD_NAME_MAX_LENGTH(直接 Web 部署)配置,默认仍为 128;字符校验与原型污染防护不变。
知识库修复
本版本修复一批会改变文档内容而不报错的提取问题,升级后需重新导入受影响文档,已索引文本不会追溯修复:
- CSV 单元格此前经过 pandas 类型推断,导致前导零编码变为浮点数、空单元格变为字符串
nan、含NA/NULL的单元格变为缺失值;现统一按文本读取并禁用缺失值推断,显式csv_args仍可覆盖。 - Notion 表格行会丢失或增加列:单元格内每个富文本片段被输出为独立 Markdown 列,空单元格被跳过导致整行左移;现每个单元格输出一列并拼接其片段。
- Notion 数据库属性在首个格式变化处截断,
rich_text和title只读取第一个片段;现拼接全部片段。 - 含双引号的
.xls单元格会破坏行,旧.xls路径未转义内嵌引号;现两种引擎行为一致。 - 从 URL 加载的 PDF 因缺少上传记录触发断言崩溃,包括内置网页抓取器遇到
Content-Type: application/pdf的情况;现租户上下文改为可选,缺失时跳过图片提取,文本提取恢复。 - 内置网页抓取器返回 Python 数据结构而非页面文本,现将其展平为可读文本。
- 局部片段更新会清空附件:未提供
attachment_ids的更新曾被当作“替换为空”,现仅显式传入时才改动,传空数组仍会清空。 - 含无效 Markdown 图片链接的文档可能阻塞索引队列:相对、协议相对、
data:、ftp:及格式错误的图片目标会进入 SSRF 重试循环;现校验后跳过不可抓取目标。 - 删除内容会在对象存储留下孤立文件:片段删除、多模态重索引和批量文档删除现于数据库提交后删除底层对象,并做孤立检查以保留被其他片段共享的附件。
- 文本文件预览被误判为二进制:预览字节上限截断多字节 UTF-8 字符导致严格解码失败;现保留最长的完整 UTF-8 前缀,真正无效编码的文件仍报为二进制。
模型提供方修复
- pre-1.15 升级后模型不可用的问题现并入
flask db upgrade自动处理:旧模型类型值被规范化为llm/text-embedding/rerank,旧值与规范值行冲突时确定性解决并保留凭据引用,提供方缓存命名空间轮换以避免陈旧缓存遮蔽迁移后的行。 - 创建 RAG Pipeline 知识库时,本地文件上传不再被误报需要授权;无凭据 schema 的提供方直接标记为已授权。
- 应用提供方级凭据校验规则,并显式提示缺失的工具凭据。
工作流与触发器修复
- Human Input 表单提交后工作流看似卡住的问题修复:重建了表单填写与超时事件,保留提交的文件值、原始超时截止时间和执行元数据。
- Human Input 现可放入 Iteration 或 Loop 节点内部。
- Human Input 超时边不再走错分支(编辑器写入
__timeout而后端比较__timeout__)。 - 同一运行中第二次 Human Input 暂停不再无法恢复:快照清理改为尽力而为并记录孤立对象键。
- Workflow-as-Tool 现收集所有 End 节点的输出声明,并标注来源节点,重复或保留名每个输出给出一次警告,实时草稿元数据不可用时回退到已发布 schema。
- Loop 布尔 break 条件不再永远不匹配,值以真实布尔存储,旧字符串值在渲染时归一化。
- 触发器入口工作流不再能从 Web App、Service API、OpenAPI 和 MCP
tools/call手动调用。 - 单个 LLM 节点
model_selector为null不再导致整个编辑器崩溃。 - 启用 Agent V2 后,含旧 Agent 节点的历史工作流重新可发布,旧 Agent 节点仍从节点选择器隐藏。
- 从工作流创建工具时先发布当前工作流,发布失败则停止创建,不再绑定旧版本。
- 撤销删除 webhook 触发器节点不再改变其 URL。
- MySQL 下文档创建与更新不再误报“未找到文件”。
- 大型工作流图不再破坏协作套接字,
WEBSOCKET_MAX_HTTP_BUFFER_SIZE默认 10 MiB。
Agent 与聊天修复
- Chatflow Agent V2 现按
conversation_id建立会话键,记忆可跨轮保持;会话发布新 Agent 名单版本时,既有会话固定在起始版本,仅新会话采用当前版本。 - 推理模型回复整体渲染为“思考”的问题修复:工具调用中断流导致
<think>未闭合时补全标签,Markdown 预处理器同步修复。 - Agent App 上传的图片对支持视觉的模型以原生多模态内容传入,非图片文件和不支持视觉的模型保留下载回退,日志中图片 URL 与 Base64 载荷被脱敏。
- 建议问题生成不再耗时过长或挂起:输出上限 256 token,禁用思考或设为最低支持档,30 秒请求级超时,默认模型不可用时立即返回空列表。
- E2B 后端运行失败问题:升级 SDK,对连接/暂停/终止/删除快照在有限传输失败时重试一次,容量耗尽返回 429。
- Agent Preview 配置变更但层拓扑不变时仍复用会话,拓扑变化返回 409 并提示新建对话。
Service API 与 OpenAPI 修复
- 分页不再静默截断:
has_more按有效页大小计算并在响应中报告该大小。 - 删除 MCP 提供方不再返回 422,DELETE 请求在查询串为空时回退读取 JSON body。
- 含
X-Request-Env头的标准 OpenAPI schema 不再被误拒。 - 生成的 Service API 契约与运行时行为对齐(非空字段默认值、权限元数据、错误响应、404/503 声明、任务停止 schema 拆分等),影响导出的契约与生成客户端,不改变请求处理。
并发与死锁修复
- 并发知识检索不再死锁:命中计数更新先按
ORDER BY id稳定加锁再递增,仅针对死锁错误最多重试三次。 - 自动摘要生成不再无限占用 worker:Tencent VectorDB 的
is_summary标记改用整数,错误记录在调用方所属会话中。
技能、插件与触发器修复
- Windows 上构建的技能包导入不再因 CRLF 行尾报出误导性错误,CRLF 在导入时被接受并归一化,技能归档中的
__MACOSX元数据目录被容忍。 - 触发器在测试运行有效但生产不触发的问题修复:插件触发器关系从待发布版本同步。
- 基于租约的触发器不再约一周后失效:存储提供方返回的真实过期时间而非占位值
-1。
工作区、账户与导入修复
- 仅以点号或
+别名区分的 Gmail 地址不再注册为独立账户,注册时存储并校验归一化邮箱(去点、去+别名、googlemail.com折叠为gmail.com),既有登录与账户更新查找不变,既有等价账户保留。 - 转让工作区所有权后状态一致:原所有者降为受限成员,owner 列正确更新,历史上已不一致的工作区在下次转让时修复,无需迁移。
- 配额为零不再显示为无限:Trigger Events 与 API 速率限制中零显示为已耗尽,
-1仍表示无限。 - DSL 导入显示真实警告详情,不再被通用版本警告替换;待确认的 DSL 导入需验证归属;损坏的应用图标引用回退到默认图标。
- 重复的相同 GET 失败不再堆叠提示,同一 URL 的相同错误十秒内抑制。
文本与值解析修复
- 含反引号的 JSON 提取不再失败:提取改为锚定 JSON 括号本身,影响规则配置生成器和数据集检索元数据的 LLM 输出解析。
- 带尾随换行的变量名不再通过校验。
无障碍与 UI
控制台与 Web 应用进行广泛无障碍改进:表单控件标签与校验反馈关联、可排序列表与面板/节点缩放可键盘操作、浮层关闭后焦点归还、页面地标与标题结构修正、按钮样式的导航保留链接语义、装饰内容对辅助技术隐藏、可点击 div 替换为原生按钮等;设置对话框在各视口居中,Home 与 Studio 路由标题稳定,插件详情抽屉不再作为模态拦截交互。
限制与待核实事项
- 自托管且使用内置 Weaviate 的部署必须按升级指南完成分阶段手动升级:内置 Weaviate 从 1.27.0 升至 1.39.2(跨 12 个次版本),不支持跳过次版本,直接拉取并重启可能静默且永久破坏向量搜索。全新部署、外部 Weaviate 及其他向量存储不受影响。
- 来源内容存在截断,Web App 与 UI 部分末尾内容不完整,相关细节需以官方来源为准。
- 来源未提供发布日期之外的时间信息,不代表当前时间。
- 正文中的修复效果描述均来自来源说明,未进行独立运行验证。
来源与核对说明
- 原始来源资料 ↗https://github.com/langgenius/dify/releases/tag/1.17.1
本文经 AI 整理及独立自动校对,未做运行验证;自动校对仍可能遗漏问题,请以原始资料为准。
这篇内容对你有帮助吗?
点赞人数由服务器记录,收藏保存在当前浏览器。
继续阅读
deepagents 0.7.28 修复 ContextHubBackend.glob 路径处理 →
NVIDIA 将 Run:ai 平台开源并纳入 DSX AI Factory →