用于创建、编辑、调试或验证自托管 Dify 的工作流 DSL。首先从目标实例导出的工作流入手,进行最小化编辑。
dify Workflow DSL (自带).
功能概述
dify Workflow DSL (自带).是一项面向实际任务的技能,主要用于Ein konsoliter Skillfuer Dify-Workflow-DSL: 作者,编辑,调试,Refenzen, Templates und lokale virierung in einem Paket.;Arbeitsbereich: World。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
结果检查与注意事项
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Dify 工作流 DSL(自托管版)
一个面向 Dify 工作流 DSL 的综合能力模块:涵盖编写、编辑、调试、引用、模板及本地验证,全部集成于单一包中。
职责范围:工作流 DSL 本身、贴近导入/导出的变更操作、以及 YAML 格式验证。
不负责:App、Prompt、Dataset 或 Knowledge Base 的编排任务。此类需求请使用技能 ../dify/SKILL.md。
触发条件
在以下情况下使用本技能:
- 创建新的 Dify 工作流
- 编辑或调试现有工作流 DSL 文件
- 添加或移除节点(Node)、边(Edge)或分支(Branch)
- 在不同 Dify 实例之间迁移工作流
- 验证导入错误或可疑的 DSL 行为
作用域边界
请使用 本技能 处理以下任务:
- 编写或编辑工作流 DSL
- 修改节点/边结构
- 基于导入/导出的工作流迁移
- 对工作流文件进行 YAML 格式验证
- 排查导入失败或 Schema 不匹配问题
请使用 dify 处理以下任务:
- App 编排
- Prompt 和 Dataset 相关操作
- Knowledge Base 管理
- Management API 与 Console API 流程
- 面向运维的健康检查(Health-Checks)
专家领域
本技能长期目标是成为自托管 Dify 工作流领域的真正专家,覆盖如下核心方向:
- 节点类型(Node Types)、句柄(Handles)与变量语法(Variable Syntax)
- 导入(Import)、重新导入(Re-Import)及 Schema 常见陷阱
- 基于真实导出内容的最小化编辑(Minimal Edits)
- 对版本(Version)与插件(Plugin)敏感的工作流语义表达
- 在高风险覆盖操作前,提供安全的 Draft / Backup / Rollback 路径
快速分诊(Rapid Triage)
当用户提供或明确要求以下任一内容时,请**始终留在 dify-workflow 技能内处理**:
- 已导出的工作流 DSL 内容
- 新增或修改的节点(Nodes)、边(Edges)或分支(Branches)
- 导入错误或 Schema 错误
- 变量语法、句柄(Handles)、输出(Outputs)或节点依赖关系
- 针对同一目标实例成功重新导入所需的精确最小化编辑(Concrete Minimal Edits)
若问题可通过 App、Prompt 或 Dataset 操作解决,请**切勿停留于此技能**,应立即交还给 dify 技能处理。
App、Prompt 或 Dataset 类任务通常属于管理类操作(Management Operations),因此归属 dify,而非 dify-workflow。
运行原则
- 先导出(Export first):目标实例导出的内容始终是唯一可信来源。
- 最小化编辑(Minimal edits):仅执行必要且精准的变更,避免无依据的全量重写。
- 版本感知(Version aware):显式校验版本差异与插件兼容性。
- 密钥不得嵌入内容(Secrets stay out of content):禁止在 YAML、Prompt 或示例中硬编码 API Keys。
- 导入前必验证(Validate before import):先本地验证,再于同一目标实例执行导入。
推荐工作流
- 从目标实例导出一个已知可用、功能正常的工作流。
- 从中推导其结构、版本号及字段命名规范。
- 仅将本技能提供的模板与参考文档作为辅助指引,而非绝对权威标准。
- 优先采用最小化编辑方式调整 DSL,而非完全重构。
- 完成编辑后,先本地验证,再于同一目标实例测试导入效果。
若无可用导出文件,请严格遵循以下流程:
- 明确声明:“当前无导出文件”;
- 不得暗示任何模板已具备生产就绪(production-ready)状态;
- 必须将输出结果明确标记为 unverified draft(未经验证草稿);
- 清晰指出:该工作流在缺乏导出文件前提下无法直接导入;
- 在执行任何高风险覆盖操作前,必须索取一份已有导出文件或其他可信赖备份,以支持回滚(Rollback);
- 一旦用户提出实际导入需求,须坚持要求其提供目标实例的导出文件。
关键规则
规则 1:先导出(Export First)
- 始终先从目标实例导出 工作流。
- 绝不假设 DSL 版本、节点 Schema、依赖格式或功能开关(feature flags)。
- 所有编辑均需保持最小化,并严格对齐导出文件的原始结构。
规则 2:变量语法必须精确
{{#NODE_ID.VARIABLE_NAME#}}
错误示例:
{{NODE_ID.VARIABLE_NAME}}{{#NODE_ID.VARIABLE_NAME}}{{{#NODE_ID.VARIABLE_NAME#}}}
规则 3:Code Node 输出必须匹配声明
若 Code Node 返回 {"result": ...} 或其他字段,这些字段必须在 outputs Schema 中明确定义。
规则 4:密钥不得出现在 DSL 中
- 严禁在节点代码、Prompt 或导出的 YAML 中嵌入 API Keys。
- 应使用 Dify 环境变量,或通过服务端/实例配置注入密钥。
规则 5:验证变更路径,而非仅凭理论
每次完成关键编辑后,请执行以下步骤:
- 运行本地 YAML 格式校验;
- 对照修改后的结构,逐项检查受影响的 Outputs 与变量引用;
- 如可行,建议或协助在相同目标实例上执行 Re-Import。
包内容概览
references/:DSL 结构、节点类型、边规则与常见错误templates/:新建工作流的精简起点模板assets/:面向高频模式的完整示例工作流scripts/:用于生成 ID 及本地验证的辅助脚本
可用参考资料
references/workflow_structure.md:DSL 全局结构说明references/node_types.md:节点类型及其适用场景references/edge_types.md:句柄(Handles)、边(Edges)与路由逻辑references/node_positioning.md:布局与节点定位规则references/variable-syntax.md:变量语法详解与典型错误references/common-gotchas.md:导入/节点/Schema 常见陷阱references/node-templates.md:关键节点的 YAML 模式片段references/current_patterns.md:当前主流 Chatflow / Workflow、Trigger 与错误处理路径模式references/advanced_patterns.md:面向生产的高级模式 —— Human Input、Loop、Iteration 与 Agentreferences/retrieval_patterns.md:Knowledge Retrieval、Aggregator、Question Classifier 与 Document Extractor 等工作流模式
上级主题与资料来源待办清单位于 ../../../research/。
模板与示例资产
templates/minimal-workflow.yaml:最简启动模板templates/llm-chain-workflow.yaml:线性 LLM Chain 模板templates/http-llm-workflow.yaml:HTTP + LLM 混合流程模板assets/simple_llm_workflow.yml:简单流程示例assets/conditional_workflow.yml:IF/ELSE 条件路由示例assets/error_handling_workflow.yml:错误处理流程示例
本地脚本
scripts/generate_id.py:生成唯一节点 IDscripts/validate_workflow.py:校验 YAML 结构与基础完整性
使用示例:
# 生成 5 个唯一 Node ID python3 scripts/generate_id.py 5 # 本地验证指定工作流文件 python3 scripts/validate_workflow.py /absolute/path/to/workflow.yaml
安全注意事项
- 如有真实导出文件,切勿盲目信任模板。
- Provider 名称、插件名与字段名,务必与目标实例逐一核对。
- 遇到导入失败时,优先检查语法与依赖关系,而非立即重构整份 DSL。
- 在目标实例上成功完成导入前,任何工作流变更均不得视为已确认生效。
- 若无导出文件,则输出内容仅为 unverified draft,不可直接导入,直至目标实例提供匹配导出。
实用编辑检查清单
- 是否已定义 Start / End 节点?
- 所有 Node ID 是否唯一?
- 所有 Edge 是否指向真实存在的节点?
sourceHandle与targetHandle是否符合对应节点类型要求?- 变量语法是否完全准确?
- Code Node 的实际返回字段是否与
outputs声明一致? - Provider / 插件依赖及其版本是否适配目标实例?
- 是否已在目标实例上完成导入测试?
- 若无导出文件,是否已明确标注为 Draft?
- 执行高风险替换前,是否存在可靠的 Backup 或 Rollback 路径?
导入错误分诊流程
若 Re-Import 失败,请按以下顺序排查:
- 首先运行
validate_workflow.py进行本地校验; - 检查 Node ID 与 Edge 引用是否有效;
- 核对
sourceHandle与targetHandle是否与所涉节点类型兼容; - 比对 Code Node 的
outputs声明与其实际返回字段; - 重新审阅变量语法及由此衍生的所有引用;
- 优先准备最小化修复方案,而非全量重写;
- 仅在排除上述问题后,才考虑结构性缺陷或版本差异等深层原因。
推荐响应模式
当用户提出工作流变更请求时,请按此流程响应:
- 主动询问是否已有导出文件或现有 DSL 文件;
- 若目标实例或 Dify 版本不明确,需进一步澄清;
- 优先建议最小化编辑方案,而非全量重写;
- 针对具体细节,精准引导至相关模板、参考文档或校验器;
- 最终以“在同一目标实例上执行 Re-Import 与 Smoke Check”收尾。
若判定请求实属误入本技能,请按如下方式移交至 dify:
这很可能并非 DSL 变更需求,而是涉及 App、Prompt 或 Dataset 的管理类操作。我将切换至 `dify` 技能,以便在不引入额外工作流复杂度的前提下,高效完成该管理任务。
有用参考资料
- Dify 官方文档:
https://docs.dify.ai/ - GitHub 仓库:
https://github.com/langgenius/dify - 发布版本页:
https://github.com/langgenius/dify/releases
热门AI工具
相关专题
本专题围绕 Dify RAG 知识库的全流程实践展开,从文档导入、分段切片、向量化到混合检索、重排优化与召回评估,帮助你打造高准确率、低幻觉的企业知识问答应用。
156
2026.06.05
本专题聚焦 Dify Agent 智能体的设计与开发,涵盖 Agent 模式选择、工具集成、提示词设计、多步推理、上下文记忆与多 Agent 协作,帮助开发者构建可执行复杂业务任务的智能体应用。
145
2026.06.05
本专题系统讲解 Dify 从零开始的本地部署方法与企业环境配置实践,涵盖 Docker 安装、依赖准备、数据库初始化、反向代理、参数调优、安全加固与多用户开通,帮助开发者与企业团队快速搭建稳定可用的 Dify 平台。
137
2026.06.05
本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。
0
2026.09.23
本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。
0
2026.09.23
本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。
0
2026.09.23
本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。
0
2026.09.22
本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。
0
2026.09.22
本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。
0
2026.09.22
热门下载
相关下载
精品课程
最新文章