架构基础
在 4.0 版本中,我们引入了一种高安全性、高灵活性的生产级插件系统,并为插件开发者提供了丰富的 API 和易用的配套工具。
stdio 和 websocket。当 LangBot 是由用户直接启动(未运行在容器内时),会使用 stdio 模式,这种场景多为个人用户或轻量级环境。当 LangBot 运行在容器内时,会使用 websocket 模式,此场景专为生产级环境设计。
Plugin Runtime 会自动启动各个已安装的插件,通过 stdio 交互。在插件开发场景中,开发者可以使用 lbp 命令行工具启动插件并通过 WebSocket 连接到已启动的 Runtime 进行调试。
插件结构
一个插件的目录结构与以下类似:langbot_plugin.api.definition.plugin.BasePlugin,并提供 LangBot 全局 API。
各个组件是您插件的核心功能模块,可以根据需要添加和删除组件。不同的组件会在不同的情况下被调用,这种设计方便后续扩展插件功能。各个组件均直接继承于langbot_plugin.api.definition.components包下的各个组件基类,并在其中包含plugin: BasePlugin对象,您可直接调用插件的 API。
请您继续阅读本页教程,了解插件的开发流程。
AI 辅助开发
- skills-LangBotplugin - 来自社区成员 @TyperBody 贡献的 Skills,使用 AI 快速开发插件,欢迎体验
- langbotplugin 该skill提供自动化生成插件工具
- langbotplugindebug 该skill提供调试插件工具
安装 CLI
请确保您已安装 Python 3.10 或更高版本,并已安装 uv 包管理器。 在任意空目录执行命令,安装 LangBot CLI 和 SDK初始化插件目录
假设您的插件名称为HelloPlugin,则在任意目录下创建目录HelloPlugin,并进入该目录,执行命令初始化插件:
Author(作者)、Description(描述)等信息

HelloPlugin 目录,开始编写插件代码。
可使用
python -m langbot_plugin.cli.__init__替代lbp命令。例如:启动调试
您需要先部署并启动 LangBot,确保 Plugin Runtime 正在运行并监听5401 端口。
-
Stdio模式:当您使用源代码启动 LangBot 并未携带启动参数--standalone-runtime时,LangBot 会自动以子进程的形式启动 Plugin Runtime,并通过stdio(标准输入输出流)模式与 Plugin Runtime 通信。此时 Runtime 会加载 LangBot 根目录的data/plugins目录下的插件。并监听 LangBot 运行主机的5401端口作为调试端口。 -
WebSocket模式:- 生产环境:当您使用官方提供的
docker-compose.yaml启动 LangBot 时,会在独立的容器运行 Plugin Runtime,LangBot 也会因为携带启动参数--standalone-runtime而以 WebSocket 模式与 Plugin Runtime 通信。默认情况下,Runtime 容器的 5401 端口会被映射到宿主机的 5401 端口。 - 开发环境:若您通过源代码启动 LangBot,并携带启动参数
--standalone-runtime,LangBot 按照data/config.yaml中配置的plugin.runtime_ws_url地址(端口通常是5400)连接到已启动的 Plugin Runtime。您需要自行启动独立运行的 Plugin Runtime,见开发 Plugin Runtime。
- 生产环境:当您使用官方提供的
stdio或websocket模式,Plugin Runtime 都会监听其所在的主机的5401端口作为调试端口供插件调试时连接。当您在开发插件时,推荐您按照开发配置中的方式 LangBot,此方式将以 Stdio 形式启动 Plugin Runtime,便于插件开发。.env.example文件为.env,检查或修改DEBUG_RUNTIME_WS_URL为您的 Plugin Runtime 的 WebSocket 地址。


