Skip to main content
This page covers structures common to all plugin types. Read it alongside Basic Concepts of Plugin Development and the Developer Cheatsheet for a picture of the overall architecture.

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 _assets folder under the plugin’s root directory.
  • Regular text files, such as .py or .yaml code 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:
en_US
string
English (United States).
zh_Hans
string
Simplified Chinese.
ja_JP
string
Japanese.
pt_BR
string
Portuguese (Brazil).

ProviderConfig

ProviderConfig is a common provider form structure used by both Tool and Endpoint.
name
string
Form item name.
label
I18nObject
required
Display labels, following the IETF BCP 47 standard.
type
provider_config_type
required
Form field type. Determines how the field is rendered in the UI.
scope
provider_config_scope
Optional range specification. Varies based on the value of type.
required
boolean
Whether the field must not be empty.
default
any
Default value. Only supports basic types: float, int, string.
options
array[provider_config_option]
Available options. Only used when type is select.
helper
object
Help document link label, following IETF BCP 47.
url
string
Help document link.
placeholder
object
Placeholder text in multiple languages, following IETF BCP 47.

ProviderConfigOption (object)

value
string
required
Option value.
label
object
required
Option display label, following IETF BCP 47.

ProviderConfigType (string)

secret-input
string
Configuration information that will be encrypted.
text-input
string
Plain text input field.
select
string
Dropdown selection field.
boolean
boolean
Switch/toggle control.
model-selector
object
Model configuration selector, including provider name, model name, and model parameters.
app-selector
object
Application ID selector.
tool-selector
object
Tool configuration selector, including tool provider, name, and parameters.
dataset-selector
string
Dataset selector (TBD).

ProviderConfigScope (string)

When type is model-selector:
all
string
All model types.
llm
string
Large language models only.
text-embedding
string
Text embedding models only.
rerank
string
Reranking models only.
tts
string
Text-to-speech models only.
speech2text
string
Speech-to-text models only.
moderation
string
Content moderation models only.
vision
string
Vision models only.
When type is app-selector:
all
string
All application types.
chat
string
Chat applications only.
workflow
string
Workflow applications only.
completion
string
Completion applications only.
When type is tool-selector:
all
string
All tool types.
plugin
string
Plugin tools only.
api
string
API tools only.
workflow
string
Workflow tools only.

ModelConfig

provider
string
Model provider name containing the plugin_id, in the form langgenius/openai/openai.
model
string
Specific model name.
model_type
enum
Model type enumeration; see Model Design Rules.

NodeResponse

inputs
dict
Variables ultimately passed into the node.
outputs
dict
Output results of the node.
process_data
dict
Data generated during node execution.

ToolSelector

provider_id
string
Tool provider name.
tool_name
string
Tool name.
tool_description
string
Tool description.
tool_configuration
dict[string, any]
Tool configuration information.
tool_parameters
dict[string, dict]
Parameters that require LLM reasoning.
name
string
Parameter name.
type
string
Parameter type.
required
boolean
Whether the parameter is required.
description
string
Parameter description.
default
any
Default value.
options
array[string]
Available options for the parameter.

Edit this page | Report an issue