


在 Dify 1.9.0 版本中,官方带来了两个重量级新能力:知识管道(Knowledge Pipeline) 与 基于队列的图执行引擎(Queue-based Graph Engine)。这次更新不仅彻底重构了文档处理架构,还让复杂工作流的并行执行变得更加稳定、可控,为企业级 AI 应用的落地提供了坚实基础。本文将详细解读新特性、使用场景、升级指南以及未来规划。
在 Dify 1.9.0 中,我们引入了两个重要的新功能:知识管道(Knowledge Pipeline) 和 基于队列的图引擎(Queue-based Graph Engine)。
知识管道 提供了一个模块化、可扩展的知识摄取与处理流程,而 基于队列的图引擎 则让工作流执行更加稳健和可控。 我们相信,这两项功能将帮助你更顺畅地构建和调试 AI 应用,并期待你们的使用体验,以便我们持续改进。
全新的知识管道编排界面,引入了一次基础架构升级,重新塑造了文档处理的设计和执行方式。它提供了更加模块化和灵活的工作流,让用户可以编排管道的每一个阶段。 配合市场中丰富而强大的插件,用户能够灵活集成不同的数据源和处理工具。 这种架构最终能帮助用户构建高度定制、特定领域的 RAG 解决方案,以满足企业在可扩展性、适应性和精确性方面不断增长的需求。
在此之前,Dify 的 RAG 用户在实际落地过程中依然会遇到一些长期存在的挑战——例如:
这些问题都会导致回答质量下降,并影响模型的整体表现。
为此,我们将 Dify 中的 RAG 重新构想为开放且模块化的架构,使开发者、集成商和领域专家能够从 数据导入 到 分块存储与检索,构建符合自身需求的文档处理管道。
知识管道是一个专注于文档摄取的可视化、基于节点的编排系统。 它提供了一种可定制化的自动化路径,用于复杂文档处理,使得细粒度的内容转换成为可能,并将原始内容与结构化、可检索的知识连接起来。 开发者可以像拼拼图一样一步一步构建工作流,让文档处理更易于观察和调整。



每个知识库都可以支持多个数据源。 你可以通过基于插件的数据摄取框架,无缝集成本地文件、在线文档、云盘以及网络爬虫等多种来源。 开发者也可以通过新的数据源插件扩展生态系统,而市场中的处理器插件则能应对更专业的场景,例如:公式识别、电子表格处理、图片解析等——确保数据摄取的准确性和结构化表示。
除了**通用模式(General)和父子模式(Parent-Child)**之外,我们新增了 Q&A 处理器插件,可支持问答结构的分块方式。 这拓展了更多应用场景,并在检索精度与上下文完整性之间取得平衡。

可以从多种格式的文档中提取图片,将其以 URL 形式 存储到知识库中,并支持文本与图像混合输出,从而提升 LLM(大语言模型)的回答质量。
在发布一个管道之前,你可以:
▶️ 独立执行单个步骤或节点 🔍 详细查看中间变量 👀 在变量检查器中以 Markdown 格式预览字符串变量
这让你可以在管道的每个阶段进行安全的迭代与调试。
可通过一次操作,无缝将现有的知识库转换为知识管道架构,确保平滑过渡,并兼容历史数据。
知识管道让知识管理过程变得更加透明,可调试,并易于扩展。 它并不是终点,而是未来功能增强的基础,例如:
过去,在设计具有并行分支的工作流时,经常会遇到以下问题:
这些问题降低了复杂工作流的可用性。 为了解决这些痛点,我们围绕队列调度重新设计了执行引擎,从而提升了并行任务的管理能力。
所有任务会进入一个统一的队列,由调度器管理任务的依赖关系与执行顺序。 这种方式减少了并行执行的错误,并让工作流拓扑更加直观。
执行可以从任何节点开始,支持部分运行、恢复执行或子图调用。
新增 ResponseCoordinator,用于处理来自多个节点的流式输出,例如:
通过 CommandProcessor,工作流可以在执行过程中暂停、恢复或终止,支持外部控制。
新增的插件层允许在无需修改核心代码的情况下扩展引擎功能:
先决条件
如何启用
DEBUG=true 以启用 DebugLoggingLayer执行限制:
WORKFLOW_MAX_EXECUTION_STEPS=500
WORKFLOW_MAX_EXECUTION_TIME=1200
WORKFLOW_CALL_MAX_DEPTH=10工作线程配置(可选):
WORKFLOW_MIN_WORKERS=1
WORKFLOW_MAX_WORKERS=10
WORKFLOW_SCALE_UP_THRESHOLD=3
WORKFLOW_SCALE_DOWN_IDLE_TIME=30适用于所有工作流。
执行流程:
开始 ─→ 统一任务队列 ─→ WorkerPool 调度
├─→ 分支1执行
└─→ 分支2执行
↓
聚合器
↓
结束改进点:
from core.workflow.graph_engine.manager import GraphEngineManager
# 发送停止命令
GraphEngineManager.send_stop_command(
task_id="workflow_task_123",
reason="紧急停止:资源限制已超出"
)提示:暂停/恢复功能将在未来版本中支持。
GraphEngineLayer Example
此版本是否专注于性能? 不是。本次重点在于稳定性、清晰性以及并行分支的正确性,性能提升只是次要收益。
可订阅的事件类型有哪些?
图级事件
节点级事件
容器节点事件
流式输出事件
如何调试工作流执行?
DEBUG=true 查看详细日志DebugLoggingLayer 记录事件GraphEngineLayer 添加自定义监控本次更新只是起点,后续改进包括:
我们期待收到你的反馈与使用体验,以进一步优化该引擎的实用性。
升级后,你必须运行以下迁移命令,以转换现有的数据源凭证。 此步骤是必需的,以确保与新版本兼容:
uv run flask transform-datasource-credentialscd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bakgit checkout 1.9.0
git pull origin 1.9.0docker compose downtar -cvf volumes-$(date +%s).tgz volumesdocker compose up -ddocker exec -it docker-api-1 uv run flask transform-datasource-credentialsgit checkout 1.9.0cd api
uv syncuv run flask db upgrade
uv run flask transform-datasource-credentials如果你当前使用的是 v2.0.0-beta.1 或 v2.0.0-beta.2,必须运行以下迁移脚本进行升级。
⚠️ 警告:这是一个破坏性操作,将造成数据丢失。
该迁移脚本会永久删除以下数据:
请务必在执行前备份所有必要信息。
迁移命令:
uv run flask db downgrade cf7c38a32b2d
uv run flask db upgrade
uv run flask transform-datasource-credentials重新启动 API Server、Worker 和 Web 前端服务。
number 代替 floatGraph 类中的无用代码TypeSelector 组件样式get_app_model 的 delete() 方法模式RefObject 使用# type: ignore 注释useEffect 使用示例ChatClient 类添加类型注释list、dict、Sequence、None、Anytext-secondaryconfigs 模块中的类型错误no-unstable-context-value 示例useBatchUpdateDocMetadata 中修正 queryKey 并添加测试用例models 模块的类型注释ref 作为 propscurr_message_tokens 未关联值的问题PrecessRule 字符拼写错误user_id 获取失败pyrightconfig.json,使用 ignore 字段以优化类型检查配置maxLength 属性tenant_id 在插件反向调用封装中检索终端用户时不够明确current_user 在 MCP 请求中未被正确设置{}, 200service_api 中创建空知识库接口时的错误问题--fix 而不是 --fix-onlypyrightconfig 以扫描所有 API 文件inner_api 中 get_user_tenant 逻辑get_conversational_variable 中 has_more 分页逻辑WorkflowByIdApi.patch 中冗余的 parse_args 调用autospec=Truekeyword_searchVarType 添加整数类型startNode 有 defaultValue 时无法修改值的问题StrEnum 和 auto()too_slow 错误typing.Literal 完善类型提示并增加类型标注v10.16.0_merge_splits 函数改为使用 enumerate 代替手动索引跟踪__all__ 指定导出成员/api 中的 transformers 从 4.53.3 升级到 4.56.1/api 中的 clickzetta-connector-python 从 0.8.102 升级到 0.8.104/web 中的 sass 从 1.89.2 升级到 1.92.1/web 中的 scheduler 从 0.23.2 升级到 0.26.0/web 中的 @next/bundle-analyzer 从 15.5.0 升级到 15.5.3/web 中的 @lexical/text 从 0.30.0 升级到 0.35.0Optional[T] 转换为 T | Nonedevalue 原型链污染漏洞e-1.8.1 版本custom-tool 的 output_schema.properties 缺失 type 属性disable_segments_from_index_task 测试中的顺序依赖问题Dify 1.9.0 的两个核心升级 Knowledge Pipeline 与 Queue-based Graph Engine,分别从知识处理和工作流执行两大维度提升了系统的可扩展性、可调试性与稳定性。对于需要构建精确、高效、可维护的 AI 应用的团队来说,这无疑是一次重要的架构进化。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。