Dify Orchestrator (Self-Hosted)
Fokussierter Skill fuer den operativen Umgang mit einer self-hosted Dify-Instanz: Apps, Datasets, Prompts, Uploads, Retrieval-Checks und Machbarkeitsbewertung.
Arbeitsbereich: Instanzbetrieb und Dify-Management
Nicht zustaendig: Workflow-DSL authoring oder Import-Editing. Dafuer den Skill ../dify-workflow/SKILL.md verwenden.
Trigger Conditions
Use when:
- - Creating, listing, inspecting, or deleting Dify apps
- Updating prompts for chat/completion style apps
- Creating or linking datasets
- Uploading files into datasets
- Searching an existing knowledge base
- Running a health check on a self-hosted Dify setup
- Checking whether a requested Dify feature is supported on the deployed version
Scope Boundaries
Nutze diesen Skill fuer:
- - App-Orchestrierung
- Prompt- und Dataset-Operationen
- Knowledge-Base-Management
- Management-API und Console-API Ablaufe
- Betriebsnahe Entscheidungen und Machbarkeitspruefung
Nutze dify-workflow fuer:
- - Workflow-DSL schreiben oder editieren
- Node-/Edge-Strukturen aendern
- Import-/Export-basierte Workflow-Migration
- YAML-Validierung fuer Workflow-Dateien
Expert Domains
Dieser Skill soll langfristig ein echter self-hosted-Dify-Experte fuer diese Bereiche werden:
- - App-Typen und ihre Einsatzgrenzen
- Prompt-, Dataset- und Knowledge-Base-Operationen
- self-hosted API-/Console-/Management-Abgrenzung
- Feature-Machbarkeit gegen aktuelle Docs und Releases
- Plugin-/Provider-Aussagen nur mit belastbarer Quelle oder Instanztest
Rapid Triage
Bleibe in dify, wenn der User vor allem nach diesen Dingen fragt:
- - "Erstelle oder aendere eine App"
- "Verknuepfe ein Dataset"
- "Passe den Prompt an"
- "Pruefe Retrieval oder die Knowledge Base"
- "Ist Feature X in meiner Dify-Version verfuegbar?"
Das sind in der Regel Management-Operationen an App, Prompt oder Dataset, nicht Workflow-DSL-Aenderungen.
Wechsle zu dify-workflow, sobald mindestens eines davon zutrifft:
- - der User liefert exportiertes Workflow-JSON/YAML
- es geht um Nodes, Edges, Handles, Branches oder Variablen-Syntax
- der Fehler liegt beim Import oder in der DSL-Struktur
- der Wunsch laesst sich nur per Workflow-Edit statt per Management-Operation loesen
Operating Principles
- 1. Version first: Vor riskanten Aussagen Release Notes und offizielle Dify-Doku pruefen.
- Management before DSL: Wenn das Ziel per App-/Dataset-/Prompt-Operation loesbar ist, nicht unnötig in Workflow-DSL abtauchen.
- Export before workflow edits: Sobald die Anfrage Workflow-JSON/YAML betrifft, an
dify-workflow uebergeben. - Secrets stay out of content: Keine API-Keys in Prompts, Beispielen, Logs oder Skill-Doku.
- Least surprise: Vor destruktiven Schritten den Impact klar benennen.
Available MCP Tools
Der kanonische MCP-Server liegt unter /Users/alexanderschneider/mcp-servers/dify-manager.
App Management
CODEBLOCK0
Dataset And Knowledge Base
CODEBLOCK1
Monitoring
CODEBLOCK2
Expert References
- -
references/app_types.md: belastbare Regeln fuer Chatbot, Text Generator, Agent, Chatflow und Workflow references/app_type_decision_guide.md: Entscheidungslogik und Anti-Patterns fuer die App-Typ-Auswahlreferences/plugins_and_providers.md: workspace-scoped Plugins, Provider-Logik, self-hosted OAuth und Trigger-Besonderheitenreferences/version_notes.md: aktuelle Versionssignale fuer Plugin-System, Trigger und Workflow-Enginereferences/knowledge_retrieval.md: aktuelle Retrieval-Regeln fuer Knowledge Bases, Rerank, Top K und self-hosted Bildsuchereferences/self_hosted_operations.md: Betriebsregeln fuer API-/Console-Trennung, Secrets, Smoke-Checks und Trigger-/OAuth-Realitaetreferences/plugin_integration_patterns.md: Datasources, Agent Strategies, Trigger und Extensions als Integrationsmuster
Preflight Checklist
Vor jeder Schreib- oder Loeschoperation kurz verifizieren:
- 1. Ist klar, welcher Endpunkt betroffen ist:
DIFY_MGMT_API_URL, DIFY_API_URL oder DIFY_CONSOLE_API_URL? - Passt die geplante Operation zum App-Typ und zur API-Oberflaeche?
- Sind App-ID, Dataset-ID oder Dateipfad gegen den Ist-Zustand geprueft?
- Ist bei potenziell destruktiven Schritten wie
delete_dify_app(...) der Impact klar benannt? - Gibt es direkt danach einen lesenden Check oder Smoke-Check?
Loeschoperationen nie sofort ausfuehren: erst Impact benennen, dann ausdrueckliche Bestaetigung einholen, danach den Smoke-Check planen.
Self-Hosted Operations Discipline
- 1. Management-, Runtime- und Console-Pfade nicht vermischen.
- Secrets nur als lokale Konfiguration oder Secret-Store denken, nie als Skill-Inhalt.
- Nach App-, Prompt-, Dataset- oder Trigger-Aenderungen immer einen lesenden Folge-Check oder Smoke-Check nennen.
- Cloud-Komfort nie stillschweigend fuer self-hosted annehmen.
External Verification
Bei unsicheren oder versionsabhaengigen Fragen:
- 1. Offizielle Dify-Doku pruefen
- GitHub Releases von
langgenius/dify pruefen - Erst dann konkrete Aussage oder Umsetzungsplan geben
Typische Kandidaten fuer Verifikation:
- - neue Features
- Limits oder Storage-Verhalten
- Plugin-/Provider-Support
- Console-API-Verhalten
- Unterschiede zwischen Chat, Completion, Workflow, Advanced Chat
Primaerquellen und Ausbau-Backlog liegen unter ../../../research/.
Recommended Interaction Pattern
Phase 1: Request Triage
Frueh unterscheiden:
- - Geht es um App-/Dataset-Verwaltung? Dann hier bleiben.
- Geht es um Workflow-DSL? Dann zu
dify-workflow. - Geht es um Versions-/Feature-Fragen? Erst Docs/Release Notes pruefen.
Praktische Handover-Formulierung:
CODEBLOCK3
Phase 2: Current State Check
Vor Aenderungen nach Bedarf:
CODEBLOCK4
Phase 3: Safe Execution
- - Kleine Schritte statt Massenmutation
- IDs und Namen vor Schreiboperationen verifizieren
- Bei Batch-Operationen Fortschritt und Anzahl nennen
- Bei potenziell destruktiven Schritten explizit warnen
Phase 4: Verification
Nach Aenderungen:
- - App-/Dataset-Zustand erneut lesen
- Falls Prompt geaendert wurde: App-Details oder UI-Test empfehlen
- Falls Uploads erfolgt sind: Retrieval oder UI-Pruefung empfehlen
Minimaler Abschluss pro Schreiboperation:
- 1. Zielobjekt erneut lesen
- IDs/Namen gegen Erwartung pruefen
- naechsten operativen Smoke-Check nennen
Common Tasks
New Chat Assistant
- 1. Anwendungsfall klaeren
- Als New Chat Assistant behandeln und
create_dify_app(...) ausfuehren - optional INLINECODE21
- INLINECODE22
- INLINECODE23
- Upload- und Testschritte nennen
Health Check
- 1. INLINECODE24
- INLINECODE25
- INLINECODE26
- Probleme benennen:
- leere Datasets
- unverknuepfte Datasets
- alte oder inaktive Apps
- Prompt-Duplikate
Knowledge Base Check
- 1. Ziel-Dataset identifizieren
- optional Datei per
add_document_to_dataset(...) hochladen - INLINECODE28 mit realistischen Queries ausfuehren
- Retrieval-Qualitaet und naechste Schritte zusammenfassen
Retrieval Triage
- 1. Query, Ziel-Knowledge-Base und Retrieval-Settings getrennt betrachten.
- Bei mehreren Knowledge Bases nicht blind eine einzige Ursache annehmen.
- Top K, Score Threshold, Rerank und Metadatenfilter als eigene Hebel behandeln.
- Bei bildbasiertem Retrieval self-hosted Limits und multimodale Knowledge Bases mitdenken.
Feature Feasibility Check
- 1. Gewuenschtes Feature konkret benennen
- App-Typ und Dify-Bereich klaeren: Chatbot, Text Generator, Agent, Chatflow, Workflow, Plugin oder Provider
- Offizielle Doku und Releases pruefen
- Keine blinde Zusage machen, bevor die Quellenlage klar ist
- Aussage klar markieren:
- bestaetigt
- nicht bestaetigt
- aus Quellen nur indirekt ableitbar
Self-Hosted Operations Triage
- 1. Vor jeder risikohaften Aussage erst klaeren, welche Oberflaeche wirklich betroffen ist.
- Trigger-/OAuth-Themen immer mit Domain, Callback,
TRIGGER_URL und Admin-Rechten denken. - Secrets, Delete-Impact und Smoke-Checks in jeder operativen Antwort mitfuehren.
App-Type Triage
- 1. Mehrturnige, speichernde, dialogische Logik eher als
Chatflow denken. - Einmalige Automation oder Batch-Logik eher als
Workflow denken. - Chatbot, Text Generator und Agent gegen die aktuelle Produktlogik pruefen, statt sie reflexartig als beste Wahl anzunehmen.
- Unterschiede fuer Memory, Startvariablen,
Answer und End aus references/app_types.md ziehen. - Anti-Patterns und vereinfachte Oberflaechen mit
references/app_type_decision_guide.md abfedern.
Plugin And Provider Triage
- 1. Plugins als workspace-scoped Komponenten denken.
- Nicht so tun, als seien Provider fest eingebaut; Modelle und Tools sind plugin-basiert.
- Bei self-hosted Trigger- oder OAuth-Fragen aktiv nach Admin-Rechten, Domain und Callback-Setup denken.
- Vor Aussagen zu Plugin-Verfuegbarkeit oder Upgrade-Verhalten Doku, Releases und offizielle Plugin-Quellen pruefen.
- Datasources, Agent Strategies, Trigger und Extensions bewusst auseinanderhalten.
Version-Sensitive Feature Triage
- 1. Trigger, Event-Driven-Workflows und neue Engine-/Knowledge-Funktionen nicht pauschal als ueberall vorhanden zusagen.
- Release-Kontext aktiv nennen, wenn ein Feature juenger oder besonders aenderungsanfällig ist.
- Bei self-hosted immer zwischen "in Dify-Doku beschrieben" und "auf deiner Instanz sicher verfuegbar" unterscheiden.
Prompt Guidance
Wenn ein Prompt neu erstellt oder ueberarbeitet wird, strukturiere ihn mindestens nach:
- - Rolle
- Geltungsbereich
- Antwortstil
- Sicherheitsregeln
- Fallback-Verhalten
Kurzes Muster:
CODEBLOCK5
Safety Notes
- -
update_dify_prompt(...) funktioniert nicht fuer alle App-Typen gleich; bei Workflow-/Advanced-Chat-Faellen keine falsche Sicherheit suggerieren. - Keine geheimen Zugangsdaten in Skill-Beispielen oder Testdaten verwenden.
- Grosse Dataset-Uploads schrittweise angehen und danach Retrieval pruefen.
- Loeschoperationen nur nach klarer Bestatigung ausfuehren.
- Loeschoperationen immer mit Impact-Hinweis und nachfolgendem Smoke-Check rahmen.
- Keine Workflow-Loesungen vorschlagen, wenn eine reine Management-Operation ausreicht.
Useful References
- - Dify Docs: INLINECODE37
- GitHub Repository: INLINECODE38
- Releases: INLINECODE39
Dify 编排器(自托管)
专注于操作管理自托管 Dify 实例的技能:应用、数据集、提示词、上传、检索检查与可行性评估。
工作范围: 实例运维与 Dify 管理
不负责: 工作流 DSL 编写或导入编辑。请使用技能 ../dify-workflow/SKILL.md。
触发条件
在以下情况使用:
- - 创建、列出、检查或删除 Dify 应用
- 更新聊天/补全类应用的提示词
- 创建或关联数据集
- 将文件上传到数据集
- 搜索现有知识库
- 对自托管 Dify 环境运行健康检查
- 检查已部署版本是否支持所请求的 Dify 功能
范围边界
使用本技能处理:
- - 应用编排
- 提示词与数据集操作
- 知识库管理
- 管理 API 与控制台 API 流程
- 运维决策与可行性检查
使用 dify-workflow 处理:
- - 编写或编辑工作流 DSL
- 修改节点/边结构
- 基于导入/导出的工作流迁移
- 工作流文件的 YAML 验证
专家领域
本技能应长期成为以下领域的自托管 Dify 专家:
- - 应用类型及其使用限制
- 提示词、数据集与知识库操作
- 自托管 API/控制台/管理边界
- 基于当前文档与版本的功能可行性
- 仅在有可靠来源或实例测试时,才提供插件/提供商声明
快速分流
当用户主要询问以下内容时,保持在 dify:
- - 创建或修改一个应用
- 关联一个数据集
- 调整提示词
- 检查检索或知识库
- 功能 X 在我的 Dify 版本中可用吗?
这些通常是针对应用、提示词或数据集的管理操作,而非工作流 DSL 修改。
当至少满足以下任一条件时,切换到 dify-workflow:
- - 用户提供了导出的工作流 JSON/YAML
- 涉及节点、边、手柄、分支或变量语法
- 错误源于导入或 DSL 结构
- 需求只能通过工作流编辑而非管理操作解决
操作原则
- 1. 版本优先:在做出有风险声明前,先查阅发布说明和官方 Dify 文档。
- 管理优先于 DSL:如果目标可通过应用/数据集/提示词操作实现,不要不必要地深入工作流 DSL。
- 导出优先于工作流编辑:一旦请求涉及工作流 JSON/YAML,立即移交至 dify-workflow。
- 密钥不进入内容:不要在提示词、示例、日志或技能文档中包含 API 密钥。
- 最小意外:在执行破坏性操作前,清晰说明影响。
可用 MCP 工具
规范 MCP 服务器位于 /Users/alexanderschneider/mcp-servers/dify-manager。
应用管理
javascript
dify-manager:listdifyapps({limit: 20})
dify-manager:createdifyapp({name, mode, description, icon})
dify-manager:getdifyapp({app_id})
dify-manager:updatedifyprompt({appid, systemprompt, opening_statement})
dify-manager:deletedifyapp({app_id})
数据集与知识库
javascript
dify-manager:listdifydatasets({limit: 20})
dify-manager:createdifydataset({name, description, indexingtechnique, docform})
dify-manager:linkdatasettoapp({appid, dataset_id})
dify-manager:adddocumenttodataset({datasetid, filepath, indexingtechnique, doc_form})
dify-manager:searchknowledgebase({query, datasetnames, limit, scorethreshold})
监控
javascript
dify-manager:getdifystats()
专家参考
预检清单
在执行任何写入或删除操作前,简要验证:
- 1. 是否清楚涉及哪个端点:DIFYMGMTAPIURL、DIFYAPIURL 还是 DIFYCONSOLEAPIURL?
- 计划的操作是否与应用类型和 API 接口匹配?
- 应用 ID、数据集 ID 或文件路径是否已对照实际状态检查?
- 对于潜在破坏性操作(如 deletedifyapp(...)),是否已清晰说明影响?
- 之后是否立即有读取检查或冒烟检查?
切勿立即执行删除操作:先说明影响,然后获得明确确认,之后再计划冒烟检查。
自托管运维纪律
- 1. 不要混淆管理、运行时和控制台路径。
- 密钥仅作为本地配置或密钥存储考虑,绝不要作为技能内容。
- 在应用、提示词、数据集或触发器更改后,始终提及后续的读取检查或冒烟检查。
- 不要默认将云环境的便利性默认为自托管环境也适用。
外部验证
对于不确定或依赖版本的问题:
- 1. 查阅官方 Dify 文档
- 查阅 langgenius/dify 的 GitHub 发布
- 然后才给出具体声明或实施计划
典型的验证候选:
- - 新功能
- 限制或存储行为
- 插件/提供商支持
- 控制台 API 行为
- 聊天、补全、工作流、高级聊天之间的差异
主要来源和扩展待办事项位于 ../../../research/。
推荐交互模式
阶段 1:请求分流
尽早区分:
- - 是否涉及应用/数据集管理?则留在此处。
- 是否涉及工作流 DSL?则转至 dify-workflow。
- 是否涉及版本/功能问题?则先查阅文档/发布说明。
实用的移交表述:
text
这不再是纯粹的应用或数据集操作。我将切换到 dify-workflow,因为这里需要工作流 DSL 修改,需遵循导出优先、最小编辑并在同一目标实例上成功重新导入的原则。
阶段 2:当前状态检查
在修改前根据需要:
text
- 1. listdifyapps()
- listdifydatasets()
- getdifystats()
- 对于现有应用:getdifyapp(app_id)
阶段 3:安全执行
- - 小步前进,而非批量修改
- 在写入操作前验证 ID 和名称
- 对于批量操作,说明进度和数量
- 对于潜在破坏性操作,明确警告
阶段 4:验证
修改后:
- - 重新读取应用/数据集状态
- 如果提示词已修改:建议检查应用详情或 UI 测试
- 如果已上传文件:建议进行检索或 UI 检查
每次写入操作的最小收尾:
- 1. 重新读取目标对象
- 对照预期检查 ID/名称
- 提及下一个操作性冒烟检查
常见任务
新建聊天助手
- 1. 明确用例
- 作为新建聊天助手处理,执行 createdifyapp(...)
- 可选:createdifydataset(...)
- linkdatasettoapp(...)
- updatedify_prompt(...)
- 提及上传和测试步骤
健康检查
- 1. getdifystats()
- listdifyapps()
- listdifydatasets()
- 指出问题:
- 空数据集
- 未关联的数据集
- 旧或不活跃的应用
- 提示词重复
知识库检查
- 1. 确定目标数据集
- 可选:通过 adddocumenttodataset(...) 上传文件
- 使用实际查询执行 searchknowledge_base(...)
- 总结检索