Path Specifications
File paths in the manifest or any YAML file follow two rules, depending on the file type:- Multimedia files such as images and videos (for example, the plugin’s
icon) go in the_assetsfolder under the plugin’s root directory. - Regular text files, such as
.pyor.yamlcode files, are referenced by their absolute path within the plugin project.
Common Structures
Some data structures are shared between tools, models, and Endpoints. They are defined here.I18nObject
I18nObject is an internationalization structure that conforms to the IETF BCP 47 standard. Four languages are supported:
string
English (United States).
string
Simplified Chinese.
string
Japanese.
string
Portuguese (Brazil).
ProviderConfig
ProviderConfig is a common provider form structure used by both Tool and Endpoint.
string
Form item name.
I18nObject
required
Display labels, following the IETF BCP 47 standard.
provider_config_type
required
Form field type. Determines how the field is rendered in the UI.
provider_config_scope
Optional range specification. Varies based on the value of
type.boolean
Whether the field must not be empty.
any
Default value. Only supports basic types:
float, int, string.array[provider_config_option]
Available options. Only used when
type is select.object
Help document link label, following IETF BCP 47.
string
Help document link.
object
Placeholder text in multiple languages, following IETF BCP 47.
ProviderConfigOption (object)
string
required
Option value.
object
required
Option display label, following IETF BCP 47.
ProviderConfigType (string)
string
Configuration information that will be encrypted.
string
Plain text input field.
string
Dropdown selection field.
boolean
Switch/toggle control.
object
Model configuration selector, including provider name, model name, and model parameters.
object
Application ID selector.
object
Tool configuration selector, including tool provider, name, and parameters.
string
Dataset selector (TBD).
ProviderConfigScope (string)
Whentype is model-selector:
string
All model types.
string
Large language models only.
string
Text embedding models only.
string
Reranking models only.
string
Text-to-speech models only.
string
Speech-to-text models only.
string
Content moderation models only.
string
Vision models only.
type is app-selector:
string
All application types.
string
Chat applications only.
string
Workflow applications only.
string
Completion applications only.
type is tool-selector:
string
All tool types.
string
Plugin tools only.
string
API tools only.
string
Workflow tools only.
ModelConfig
string
Model provider name containing the
plugin_id, in the form langgenius/openai/openai.string
Specific model name.
enum
Model type enumeration; see Model Design Rules.
NodeResponse
dict
Variables ultimately passed into the node.
dict
Output results of the node.
dict
Data generated during node execution.
ToolSelector
string
Tool provider name.
string
Tool name.
string
Tool description.
dict[string, any]
Tool configuration information.
dict[string, dict]
Related Resources
- Basic Concepts of Plugin Development—an overview of Dify plugin development
- Developer Cheatsheet—quick reference for common commands and concepts
- Tool Plugin Development Details—defining plugin information and the tool plugin development process
- Model Design Rules—standards for model configuration