mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-03-27 13:28:32 +07:00
135 lines
6.5 KiB
Plaintext
135 lines
6.5 KiB
Plaintext
---
|
|
dimensions:
|
|
type:
|
|
primary: reference
|
|
detail: core
|
|
level: beginner
|
|
standard_title: Plugin info by Manifest
|
|
language: en
|
|
title: Manifest
|
|
description: 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, feature definitions,
|
|
and runtime.
|
|
---
|
|
|
|
# Manifest
|
|
|
|
The Manifest is a YAML-compliant file that defines the most basic information of a **plugin**, including but not limited to the plugin name, author, included tools, models, etc. For the overall architecture of the plugin, please refer to [Basic Concepts of Plugin Development](/plugin-dev-en/0111-getting-started-dify-plugin) and [Developer Cheatsheet](/plugin-dev-en/0131-cheatsheet).
|
|
|
|
If the format of this file is incorrect, the parsing and packaging process of the plugin will fail.
|
|
|
|
### Code Example
|
|
|
|
Below is a simple example of a Manifest file. The meaning and function of each data item will be explained later.
|
|
|
|
For reference code of other plugins, please refer to the [GitHub code repository](https://github.com/langgenius/dify-official-plugins/blob/main/tools/google/manifest.yaml).
|
|
|
|
```yaml
|
|
version: 0.0.1
|
|
type: "plugin"
|
|
author: "Yeuoly"
|
|
name: "neko"
|
|
label:
|
|
en_US: "Neko"
|
|
created_at: "2024-07-12T08:03:44.658609186Z"
|
|
icon: "icon.svg"
|
|
resource:
|
|
memory: 1048576
|
|
permission:
|
|
tool:
|
|
enabled: true
|
|
model:
|
|
enabled: true
|
|
llm: true
|
|
endpoint:
|
|
enabled: true
|
|
app:
|
|
enabled: true
|
|
storage:
|
|
enabled: true
|
|
size: 1048576
|
|
plugins:
|
|
endpoints:
|
|
- "provider/neko.yaml"
|
|
meta:
|
|
version: 0.0.1
|
|
arch:
|
|
- "amd64"
|
|
- "arm64"
|
|
runner:
|
|
language: "python"
|
|
version: "3.10"
|
|
entrypoint: "main"
|
|
privacy: "./privacy.md"
|
|
```
|
|
|
|
### Structure
|
|
|
|
* `version` (version, required): The version of the plugin.
|
|
* `type` (type, required): Plugin type, currently only `plugin` is supported, `bundle` will be supported in the future.
|
|
* `author` (string, required): Author, defined as the organization name in the Marketplace.
|
|
* `label` (label, required): Multilingual name.
|
|
* `created_at` (RFC3339, required): Creation time, required by the Marketplace not to be later than the current time.
|
|
* `icon` (asset, required): Icon path.
|
|
* `resource` (object): Resources to apply for.
|
|
* `memory` (int64): Maximum memory usage, mainly related to AWS Lambda resource application on SaaS, unit in bytes.
|
|
* `permission` (object): Permission application.
|
|
* `tool` (object): Permission for reverse invocation of tools.
|
|
* `enabled` (bool)
|
|
* `model` (object): Permission for reverse invocation of models.
|
|
* `enabled` (bool)
|
|
* `llm` (bool)
|
|
* `text_embedding` (bool)
|
|
* `rerank` (bool)
|
|
* `tts` (bool)
|
|
* `speech2text` (bool)
|
|
* `moderation` (bool)
|
|
* `node` (object): Permission for reverse invocation of nodes.
|
|
* `enabled` (bool)
|
|
* `endpoint` (object): Permission to register `endpoint`.
|
|
* `enabled` (bool)
|
|
* `app` (object): Permission for reverse invocation of `app`.
|
|
* `enabled` (bool)
|
|
* `storage` (object): Permission to apply for persistent storage.
|
|
* `enabled` (bool)
|
|
* `size` (int64): Maximum allowed persistent memory size, unit in bytes.
|
|
* `plugins` (object, required): A list of `yaml` files for the specific capabilities extended by the plugin. Absolute path within the plugin package. For example, if you need to extend a model, you need to define a file similar to `openai.yaml`, fill in the file path here, and the file at this path must actually exist, otherwise packaging will fail.
|
|
* Format
|
|
* `tools` (list[string]): Plugin extension for [Tool](/plugin-dev-en/0222-tool-plugin) providers.
|
|
* `models` (list[string]): Plugin extension for [Model](/plugin-dev-en/0411-model-plugin-introduction) providers.
|
|
* `endpoints` (list[string]): Plugin extension for [Endpoints](/plugin-dev-en/0432-develop-a-slack-bot-plugin) providers. (Note: Link updated to closest available English document)
|
|
* `agent_strategies` (list[string]): Plugin extension for [Agent Strategy](/plugin-dev-en/9433-agent-strategy-plugin) providers.
|
|
* Restrictions
|
|
* Extending both tools and models simultaneously is not allowed.
|
|
* Having no extensions is not allowed.
|
|
* Extending both models and Endpoints simultaneously is not allowed.
|
|
* Currently, only one provider is supported for each type of extension.
|
|
* `meta` (object)
|
|
* `version` (version, required): `manifest` format version, initial version `0.0.1`.
|
|
* `arch` (list[string], required): Supported architectures, currently only `amd64` `arm64` are supported.
|
|
* `runner` (object, required): Runtime configuration.
|
|
* `language` (string): Currently only python is supported.
|
|
* `version` (string): Language version, currently only `3.12` is supported.
|
|
* `entrypoint` (string): Program entry point, should be `main` under python.
|
|
* `privacy` (string, optional): Optional, specifies the relative path or URL of the plugin's privacy policy file, e.g., `"./privacy.md"` or `"https://your-web/privacy"`. If you plan to list the plugin on the Dify Marketplace, **this field is required** to provide clear user data usage and privacy statements. For detailed filling guidelines, please refer to [Plugin Privacy Data Protection Guidelines](/plugin-dev-en/0312-privacy-protection-guidelines).
|
|
|
|
## Related Resources
|
|
|
|
* [Basic Concepts of Plugin Development](/plugin-dev-en/0111-getting-started-dify-plugin) - Comprehensive understanding of Dify plugin development.
|
|
* [Quickly Integrate a New Model](/plugin-dev-en/0211-getting-started-new-model) - Learn how to add new models for existing providers.
|
|
* [General Specifications Definition](/plugin-dev-en/0411-general-specifications) - Understand the common structures in plugin development.
|
|
* [Release Overview](/plugin-dev-en/0321-release-overview) - Learn about the plugin release process.
|
|
|
|
{/*
|
|
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/0411-plugin-info-by-manifest.mdx) | [Report an issue](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)
|
|
|