Skip to main content

Modifying the Manifest File

The manifest.yaml file in the plugin directory declares the basic information about the plugin, which will be displayed in the LangBot UI or plugin marketplace interfaces.
Plugin multilingual support follows the RFC 4646 standard. Currently supported languages include:
  • en_US English (required)
  • zh_Hans Simplified Chinese
  • zh_Hant Traditional Chinese
  • ja_JP Japanese
  • vi_VN Vietnamese
  • th_TH Thai
  • es_ES Spanish

Plugin Configuration Item Format

In the manifest.yaml file, fields declared in spec.config will be rendered by LangBot as configuration item forms for users to fill out. Plugins can retrieve user-filled configuration items through APIs provided by the SDK (see later sections). For example:
The supported types and fields for configuration items are as follows:

Conditional Rendering (show_if)

All types of configuration items support conditional rendering using the show_if field. You can decide whether the current field is rendered based on the value of another field in the same (or an associated) form.
Note: Cross-form cascading relationships (e.g. creation_schema values reading from retrieval_schema values and vice versa in a Knowledge Engine) are supported in the latest LangBot frontend.

type: string

String type. Optionally supports options for preset values — when provided, a dropdown button appears next to the input allowing users to quickly fill in a preset value. Users can still type freely.
With preset options:

type: array[string]

String array.

type: integer

Integer type.

type: float

Float type.

type: boolean

Boolean type.

type: select

Dropdown menu. Requires configuring options, which represents the dropdown menu options. Each option displays its label as the primary text, with the name (value) shown in smaller text below.

type: prompt-editor

Prompt editor. Displays a prompt editor from the pipeline configuration page, with the final result represented in OpenAI’s messages format.

type: text

Large text input. Rendered as a textarea in the frontend for user input, and passed to the plugin as a string.

type: file

File upload. Supports file uploads up to 10MB, passed to the plugin in the format {"file_key": "xxxxx.xxx", "mimetype": "xxxxx"}. The plugin can use the get_config_file API to retrieve the file content.
Retrieving the file in the plugin:
Common MIME type and file extension reference: MDN Documentation

type: array[file]

Multiple file upload. Similar to the file type, but supports uploading multiple files, passed to the plugin in the format [{"file_key": "xxxxx.xxx", "mimetype": "xxxxx"}].
Retrieving files in the plugin:

type: llm-model-selector

LLM model selector. Displays an LLM model selector where you can choose configured LLM models, with the final result represented as the LLM model UUID.

type: bot-selector

Bot selector. Displays a Bot selector where you can choose configured Bots, with the final result represented as the Bot UUID.
Using the Bot UUID in the plugin:

type: tools-selector

Tool selector. Displays a multi-select tool selector where you can choose registered tools (plugin tools and MCP tools), with the final result represented as an array of tool names.
Using the selected tool names in the plugin:

What’s Next

This tutorial will guide you through step-by-step completion of plugin functionality.
  • Adding Components: Plugin components are the core functional units of plugins. You can add components based on your needs.