mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-03-27 13:28:32 +07:00
158 lines
4.3 KiB
Plaintext
158 lines
4.3 KiB
Plaintext
---
|
|
dimensions:
|
|
type:
|
|
primary: conceptual
|
|
detail: architecture
|
|
level: beginner
|
|
standard_title: Cheatsheet
|
|
language: en
|
|
title: Dify Plugin Development Cheatsheet
|
|
description: 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.
|
|
---
|
|
|
|
### Environment Requirements
|
|
|
|
- Python version ≥ 3.12
|
|
- Dify plugin scaffold tool (dify-plugin-daemon)
|
|
|
|
> Learn more: [Initializing Development Tools](/plugin-dev-en/0221-initialize-development-tools)
|
|
|
|
### Obtaining the Dify Plugin Development Package
|
|
|
|
[Dify Plugin CLI](https://github.com/langgenius/dify-plugin-daemon/releases)
|
|
|
|
#### Installation Methods for Different Platforms
|
|
|
|
**macOS [Brew](https://github.com/langgenius/homebrew-dify) (Global Installation):**
|
|
|
|
```bash
|
|
brew tap langgenius/dify
|
|
brew install dify
|
|
```
|
|
|
|
After installation, open a new terminal window and enter the `dify version` command. If it outputs the version information, the installation was successful.
|
|
|
|
**macOS ARM (M Series Chips):**
|
|
|
|
```bash
|
|
# Download dify-plugin-darwin-arm64
|
|
chmod +x dify-plugin-darwin-arm64
|
|
./dify-plugin-darwin-arm64 version
|
|
```
|
|
|
|
**macOS Intel:**
|
|
|
|
```bash
|
|
# Download dify-plugin-darwin-amd64
|
|
chmod +x dify-plugin-darwin-amd64
|
|
./dify-plugin-darwin-amd64 version
|
|
```
|
|
|
|
**Linux:**
|
|
|
|
```bash
|
|
# Download dify-plugin-linux-amd64
|
|
chmod +x dify-plugin-linux-amd64
|
|
./dify-plugin-linux-amd64 version
|
|
```
|
|
|
|
**Global Installation (Recommended):**
|
|
|
|
```bash
|
|
# Rename and move to system path
|
|
# Example (macOS ARM)
|
|
mv dify-plugin-darwin-arm64 dify
|
|
sudo mv dify /usr/local/bin/
|
|
dify version
|
|
```
|
|
|
|
### Running the Development Package
|
|
|
|
Here we use `dify` as an example. If you are using a local installation method, please replace the command accordingly, for example `./dify-plugin-darwin-arm64 plugin init`.
|
|
|
|
### Plugin Development Process
|
|
|
|
#### 1. Create a New Plugin
|
|
|
|
```bash
|
|
./dify plugin init
|
|
```
|
|
|
|
Follow the prompts to complete the basic plugin information configuration
|
|
|
|
> Learn more: [Dify Plugin Development: Hello World Guide](/plugin-dev-en/0211-getting-started-dify-tool)
|
|
|
|
#### 2. Run in Development Mode
|
|
|
|
Configure the `.env` file, then run the following command in the plugin directory:
|
|
|
|
```bash
|
|
python -m main
|
|
```
|
|
|
|
> Learn more: [Remote Debugging Plugins](/plugin-dev-en/0411-remote-debug-a-plugin)
|
|
|
|
#### 4. Packaging and Deployment
|
|
|
|
Package the plugin:
|
|
|
|
```bash
|
|
cd ..
|
|
dify plugin package ./yourapp
|
|
```
|
|
|
|
> Learn more: [Publishing Overview](/plugin-dev-en/0321-release-overview)
|
|
|
|
### Plugin Categories
|
|
|
|
#### Tool Labels
|
|
|
|
Category `tag` [class ToolLabelEnum(Enum)](https://github.com/langgenius/dify-plugin-sdks/blob/main/python/dify_plugin/entities/tool.py)
|
|
|
|
```python
|
|
class ToolLabelEnum(Enum):
|
|
SEARCH = "search"
|
|
IMAGE = "image"
|
|
VIDEOS = "videos"
|
|
WEATHER = "weather"
|
|
FINANCE = "finance"
|
|
DESIGN = "design"
|
|
TRAVEL = "travel"
|
|
SOCIAL = "social"
|
|
NEWS = "news"
|
|
MEDICAL = "medical"
|
|
PRODUCTIVITY = "productivity"
|
|
EDUCATION = "education"
|
|
BUSINESS = "business"
|
|
ENTERTAINMENT = "entertainment"
|
|
UTILITIES = "utilities"
|
|
OTHER = "other"
|
|
```
|
|
|
|
### Plugin Type Reference
|
|
|
|
Dify supports the development of various types of plugins:
|
|
|
|
- **Tool plugins**: Integrate third-party APIs and services
|
|
> Learn more: [Tool Plugin Development](/plugin-dev-en/0211-getting-started-dify-tool)
|
|
- **Model plugins**: Integrate AI models
|
|
> Learn more: [Model Plugin Introduction](/plugin-dev-en/0411-model-plugin-introduction), [Quick Integration of a New Model](/plugin-dev-en/0211-getting-started-new-model)
|
|
- **Agent Strategy plugins**: Customize Agent thinking and decision-making strategies
|
|
> Learn more: [Agent Strategy Plugins](/plugin-dev-en/9433-agent-strategy-plugin)
|
|
- **Extension plugins**: Extend Dify platform functionality, such as Endpoints and WebAPP
|
|
> Learn more: [Extension Plugins](/plugin-dev-en/9231-extension-plugin)
|
|
|
|
{/*
|
|
Contributing Section
|
|
DO NOT edit this section!
|
|
It will be automatically generated by the script.
|
|
*/}
|
|
|
|
---
|
|
|
|
[Edit this page](https://github.com/langgenius/dify-docs/edit/main/plugin-dev-en/0131-cheatsheet.mdx) | [Report an issue](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)
|
|
|