# Dify Docs ## Docs - [Welcome to Dify Plugin Development](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0111-getting-started-dify-plugin.en.md): An introduction to Dify plugins' concepts, functions, and development value, including brief explanations of plugin types (Model, Tool, Agent Strategy, Extension, Bundle), and an overview of developer documentation contents. - [Dify Plugin Development: Prompt](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0211-getting-started-by-prompt.en.md): Please copy this prompt and paste it into your Agent. It will assist you in developing Dify plugins, providing best practices and code examples. - [Dify Plugin Development: Hello World Guide](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0211-getting-started-dify-tool.en.md): This document provides a detailed tutorial for Dify plugin development from scratch, using the Telegraph publishing plugin as an example, covering environment preparation, project initialization, virtual environment configuration, plugin core logic development, local debugging, plugin metadata enhan… - [Quick Integration of a New Model](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0211-getting-started-new-model.en.md): This document guides non-professional developers on how to add new models to Dify, focusing on adding new model versions to existing model providers by modifying configuration files. Includes the complete process of forking the repository, copying and modifying model configurations, updating provide… - [Initializing Development Tools](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0221-initialize-development-tools.en.md): This document details the necessary preparations before developing Dify plugins, including complete steps for installing the Dify plugin scaffold tool (dify-plugin-daemon) and configuring a Python environment (version requirement ≥3.12). The document also provides reference links for developing vari… - [Implementing Standard Model Integration](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0222-creating-new-model-provider-extra.en.md): This document is aimed at developers who need to write Python code to add or enhance Dify model support, providing detailed guidance on creating directory structures, writing model configurations, implementing model calling logic, and the complete process of debugging and publishing plugins, includi… - [Creating Model Providers](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0222-creating-new-model-provider.en.md): This document provides detailed guidance on creating model provider plugins, including project initialization, choosing model configuration methods (predefined models and custom models), creating provider configuration YAML files, and the complete process of writing provider code. - [Tool Plugin](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0222-tool-plugin.en.md): This document provides detailed instructions on how to develop tool plugins for Dify, using Google Search as an example to demonstrate a complete tool plugin development process. The content includes plugin initialization, template selection, tool provider configuration file definition, adding third… - [Plugin Developer Guidelines](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0312-contributor-covenant-code-of-conduct.en.md): This document provides guidelines that Dify plugin developers need to follow before submitting a Pull Request, including ensuring that the plugin functions properly, has complete documentation, provides unique value, and complies with data privacy and security standards. It includes documentation re… - [Plugin Privacy Policy Guidelines](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0312-privacy-protection-guidelines.en.md): This document describes guidelines for developers on how to write a privacy policy when submitting plugins to the Dify Marketplace. It includes how to identify and list the types of personal data collected (direct identification information, indirect identification information, combined information)… - [Publishing Plugins](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0321-release-overview.en.md): This document introduces three ways to publish Dify plugins - official Marketplace, open-source GitHub repository, and local plugin file package. It details the characteristics, publishing process, and applicable scenarios for each method, and provides specific publishing recommendations to meet the… - [Package as Local File and Share](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0322-release-by-file.en.md): This document provides detailed steps on how to package a Dify plugin project as a local file and share it with others. It covers the preparation work before packaging a plugin, using the Dify plugin development tool to execute packaging commands, how to install the generated .difypkg file, and how… - [Publish to Dify Marketplace](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0322-release-to-dify-marketplace.en.md): This guide provides detailed instructions on the complete process of publishing plugins to the Dify Marketplace, including submitting PRs, the review process, post-release maintenance, and other key steps and considerations. - [Publish to Individual GitHub Repository](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0322-release-to-individual-github-repo.en.md): This document provides detailed instructions on how to publish Dify plugins to a personal GitHub repository, including preparation work, initializing a local plugin repository, connecting to a remote repository, uploading plugin files, packaging plugin code, and the complete process of installing pl… - [Frequently Asked Questions](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0331-faq.en.md): This document answers common questions about Dify plugin development and installation, including how to resolve plugin upload failures (by modifying the author field) and how to handle verification exceptions during plugin installation (by setting the FORCE_VERIFYING_SIGNATURE environment variable). - [Develop A Slack Bot Plugin](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0432-develop-a-slack-bot-plugin.en.md): This guide provides a complete walkthrough for developing a Slack Bot plugin, covering project initialization, configuration form editing, feature implementation, debugging, endpoint setup, verification, and packaging. You'll need the Dify plugin scaffolding tool and a pre-created Slack App to build… - [Endpoint](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0432-endpoint.en.md): Authors Yeuoly, Allen. This document details the structure and implementation of Endpoints in Dify plugins, using the Neko Cat project as an example. It covers defining Endpoint groups, configuring interfaces, implementing the _invoke method, and handling requests and responses. The document explain… - [Extension Plugin](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/9231-extension-plugin.en.md): This document provides a complete tutorial for developing Extension type plugins, detailing the entire process including environment preparation, project creation, defining plugin request entry points, writing functional code, debugging, packaging, and publishing. The example project is a Nyan Cat p… - [Agent](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/9232-agent.en.md): This document details the development process for Dify's Agent strategy plugins, including adding Agent strategy fields in the Manifest file, defining Agent providers, and the core steps for implementing Agent strategies. It provides complete example code for getting parameters, invoking models, inv… - [Agent Strategy Plugin](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/9433-agent-strategy-plugin.en.md): This document details how to develop an Agent strategy plugin, covering the entire process from initializing the plugin template to invoking models, invoking tools, outputting logs, and packaging for release. It provides detailed code examples, including how to implement automated tool invocation fe… - [Bundle Plugin Package](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/9241-bundle.en.md): This document introduces the concept and development method of Bundle plugin packages. Bundle plugin packages can aggregate multiple plugins together, supporting three types (Marketplace, GitHub, and Package). The document details the entire process of creating a Bundle project, adding different typ… - [Reverse Invocation of Dify Services](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/9241-reverse-invocation.en.md): This document briefly introduces the reverse invocation capability of Dify plugins, meaning plugins can call specified services within the main Dify platform. It lists four types of modules that can be invoked, App (access App data), Model (call model capabilities within the platform), Tool (call ot… - [App](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/9242-reverse-invocation-app.en.md): This document details how plugins can reverse invoke App services within the Dify platform. It covers three types of interfaces Chat interface (for Chatbot/Agent/Chatflow applications), Workflow interface, and Completion interface, providing entry points, invocation specifications, and practical cod… - [Reverse Invocation Model](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/9242-reverse-invocation-model.en.md): This document details how plugins can reverse invoke model services within the Dify platform. It covers specific methods for reverse invoking LLM, Summary, TextEmbedding, Rerank, TTS, Speech2Text, and Moderation models. Each model invocation includes its entry point, interface parameter descriptions… - [Tool](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/9242-reverse-invocation-tool.en.md): This document details how plugins can reverse invoke Tool services within the Dify platform. It covers three types of tool invocation methods calling installed tools (Built-in Tool), calling Workflow as Tool, and calling custom tools (Custom Tool). Each method includes corresponding entry points and… - [Integrating Custom Models](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/9243-customizable-model.en.md): This document details how to integrate custom models into Dify, using the Xinference model as an example. It covers the complete process, including creating model provider files, writing code based on model type, implementing model invocation logic, handling exceptions, debugging, and publishing. It… - [Node](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/9243-reverse-invocation-node.en.md): This document describes how plugins can reverse invoke the functionality of Chatflow/Workflow application nodes within the Dify platform. It primarily covers the invocation methods for two specific nodes, ParameterExtractor and QuestionClassifier. The document details the entry points, interface par… - [Dify Plugin Development Cheatsheet](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0131-cheatsheet.en.md): A comprehensive reference guide for Dify plugin development, including environment requirements, installation methods, development process, plugin categories and types, common code snippets, and solutions to common issues. Suitable for developers to quickly consult and reference. - [Model Plugins](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0131-model-plugin-introduction.en.md): Introduction to the basic concepts and structure of model plugins. Model plugins allow Dify to call various models from different providers (such as OpenAI, Anthropic, Google, etc.), including large language models (LLMs), text embeddings, speech-to-text, and other types. - [General Specification Definitions](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0411-general-specifications.en.md): This document provides a detailed introduction to the common structures and specifications in Dify plugin development, including path specifications, internationalization objects (I18nObject), provider form structures (ProviderConfig), model configurations (ModelConfig), node responses (NodeResponse… - [Model Design Rules](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0411-model-designing-rules.en.md): This document defines in detail the core concepts and structures for Dify model plugin development, including model providers (Provider), AI model entities (AIModelEntity), model types (ModelType), configuration methods (ConfigurateMethod), model features (ModelFeature), parameter rules (ParameterRu… - [Persistent Storage](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0411-persistent-storage-kv.en.md): This document introduces the persistent storage functionality in Dify plugins, detailing how to use the KV database in plugins to store, retrieve, and delete data. This feature enables plugins to persistently store data within the same Workspace, meeting the needs for data preservation across sessio… - [Manifest](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0411-plugin-info-by-manifest.en.md): Authors Yeuoly, Allen. This document details the Manifest file in Dify plugins, a YAML file defining basic plugin information. It includes complete code examples and detailed structure explanations, covering configurations like plugin version, type, author, name, resource usage, permission requests,… - [Plugin Debugging](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0411-remote-debug-a-plugin.en.md): This document introduces how to use Dify's remote debugging feature to test plugins. It provides detailed instructions on obtaining debugging information, configuring environment variable files, starting plugin remote debugging, and verifying plugin installation status. Through this method, develope… - [Tool Return](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0411-tool.en.md): This document provides a detailed introduction to the data structure and usage of Tools in Dify plugins. It covers how to return different types of messages (image URLs, links, text, files, JSON), how to create variable and streaming variable messages, and how to define tool output variable schemas… - [Model API Interface](https://alterxyz-a56768d7.mintlify.app/plugin_dev_en/0412-model-schema.en.md): This document provides detailed interface specifications required for Dify model plugin development, including model provider implementation, interface definitions for five model types (LLM, TextEmbedding, Rerank, Speech2text, Text2speech), and complete specifications for related data structures suc… This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.