> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Manifest

> 插件 manifest 的 YAML schema，用于声明名称、作者、运行时、资源、权限，以及插件附带的工具、模型和端点

> 本文档由 AI 自动翻译。如有任何不准确之处，请参考 [英文原版](/en/develop-plugin/features-and-specs/plugin-types/plugin-info-by-manifest)。

manifest 是一个定义插件基本信息的 YAML 文件，包括名称、作者、包含的工具和模型等。如果文件格式不正确，插件的解析和打包会失败。

关于插件的整体架构，详见 [插件开发基本概念](/zh/develop-plugin/getting-started/getting-started-dify-plugin) 和 [开发者速查表](/zh/develop-plugin/dev-guides-and-walkthroughs/cheatsheet)。

## 代码示例

下面是一个简单的 manifest 文件，每个字段都会在后续的「结构」一节中说明。实际示例可参考 [Google 工具插件 manifest](https://github.com/langgenius/dify-official-plugins/blob/main/tools/google/manifest.yaml)。

```yaml theme={null}
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.12"
    entrypoint: "main"
privacy: "./privacy.md"
```

## 结构

<ParamField path="version" type="version" required>
  插件版本。
</ParamField>

<ParamField path="type" type="string" required>
  插件类型。目前仅支持 `plugin`，未来将支持 `bundle`。
</ParamField>

<ParamField path="author" type="string" required>
  作者，定义为市场中的组织名称。
</ParamField>

<ParamField path="label" type="object" required>
  多语言名称。
</ParamField>

<ParamField path="created_at" type="RFC3339" required>
  创建时间。市场要求该时间不能晚于当前时间。
</ParamField>

<ParamField path="icon" type="string" required>
  图标路径。
</ParamField>

<ParamField path="resource" type="object">
  插件申请的资源。

  <ParamField path="memory" type="int64">
    最大内存使用量，单位为字节。主要与 Dify Cloud 上的 AWS Lambda 资源分配相关。
  </ParamField>

  <ParamField path="permission" type="object">
    插件申请的权限。

    <ParamField path="tool" type="object">
      反向调用工具的权限。

      <ParamField path="enabled" type="boolean">
        是否启用工具权限。
      </ParamField>
    </ParamField>

    <ParamField path="model" type="object">
      反向调用模型的权限。

      <ParamField path="enabled" type="boolean">
        是否启用模型权限。
      </ParamField>

      <ParamField path="llm" type="boolean">
        是否启用大语言模型权限。
      </ParamField>

      <ParamField path="text_embedding" type="boolean">
        是否启用文本嵌入模型权限。
      </ParamField>

      <ParamField path="rerank" type="boolean">
        是否启用重排序模型权限。
      </ParamField>

      <ParamField path="tts" type="boolean">
        是否启用文本转语音模型权限。
      </ParamField>

      <ParamField path="speech2text" type="boolean">
        是否启用语音转文本模型权限。
      </ParamField>

      <ParamField path="moderation" type="boolean">
        是否启用内容审核模型权限。
      </ParamField>
    </ParamField>

    <ParamField path="node" type="object">
      反向调用节点的权限。

      <ParamField path="enabled" type="boolean">
        是否启用节点权限。
      </ParamField>
    </ParamField>

    <ParamField path="endpoint" type="object">
      注册 `endpoint` 的权限。

      <ParamField path="enabled" type="boolean">
        是否启用 endpoint 权限。
      </ParamField>
    </ParamField>

    <ParamField path="app" type="object">
      反向调用 `app` 的权限。

      <ParamField path="enabled" type="boolean">
        是否启用 app 权限。
      </ParamField>
    </ParamField>

    <ParamField path="storage" type="object">
      申请持久化存储的权限。

      <ParamField path="enabled" type="boolean">
        是否启用存储权限。
      </ParamField>

      <ParamField path="size" type="int64">
        允许的最大持久化存储大小，单位为字节。
      </ParamField>
    </ParamField>
  </ParamField>
</ParamField>

<ParamField path="plugins" type="object" required>
  列出插件所扩展能力对应的 YAML 文件，使用插件包内的绝对路径。例如，要扩展一个模型，需定义一个类似 `openai.yaml` 的文件并在此列出其路径。该路径下必须存在对应文件，否则打包会失败。

  <Warning>
    以下组合不被允许：

    * 同时扩展工具和模型。
    * 同时扩展模型和 Endpoints。
    * 没有任何扩展。

    目前，每种扩展类型仅支持一个 provider。
  </Warning>

  <ParamField path="tools" type="array[string]">
    [工具](/zh/develop-plugin/dev-guides-and-walkthroughs/tool-plugin) provider 的插件扩展。
  </ParamField>

  <ParamField path="models" type="array[string]">
    [模型](/zh/develop-plugin/features-and-specs/plugin-types/model-designing-rules) provider 的插件扩展。
  </ParamField>

  <ParamField path="endpoints" type="array[string]">
    [Endpoints](/zh/develop-plugin/dev-guides-and-walkthroughs/develop-a-slack-bot-plugin) provider 的插件扩展。
  </ParamField>

  <ParamField path="agent_strategies" type="array[string]">
    [Agent 策略](/zh/develop-plugin/features-and-specs/advanced-development/reverse-invocation) provider 的插件扩展。
  </ParamField>
</ParamField>

<ParamField path="meta" type="object" required>
  插件的元数据。

  <ParamField path="version" type="version" required>
    manifest 格式版本。初始版本为 `0.0.1`。
  </ParamField>

  <ParamField path="arch" type="array[string]" required>
    支持的架构。目前仅支持 `amd64` 和 `arm64`。
  </ParamField>

  <ParamField path="runner" type="object" required>
    运行时配置。

    <ParamField path="language" type="string" required>
      编程语言。目前仅支持 Python。
    </ParamField>

    <ParamField path="version" type="string" required>
      语言版本。目前仅支持 `3.12`。
    </ParamField>

    <ParamField path="entrypoint" type="string" required>
      程序入口点。Python 下应为 `main`。
    </ParamField>
  </ParamField>
</ParamField>

<ParamField path="privacy" type="string">
  插件隐私政策的相对路径或 URL，例如 `"./privacy.md"` 或 `"https://your-web/privacy"`。**在 Dify 市场上架时必填**，插件须明确说明如何使用用户数据。详见 [插件隐私数据保护指南](/zh/develop-plugin/publishing/standards/privacy-protection-guidelines)。
</ParamField>
