Files
LangBot/zh/develop/plugin-runtime.mdx
T

98 lines
3.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "调试插件运行时、CLI、SDK"
---
<Info>
插件运行时、CLI、SDK 开源在: https://github.com/langbot-app/langbot-plugin-sdk
</Info>
由于 LangBot 需要依赖 langbot-plugin-sdk 中定义的实体,我们推荐您在一个新建目录下打开 VS Code,将 LangBot 和 langbot-plugin-sdk(git clone https://github.com/langbot-app/langbot-plugin-sdk) 作为子目录放入其中,目录结构如下:
```bash
langbot-projects
├── LangBot
├── langbot-plugin-sdk
```
进入 LangBot 目录,安装依赖:
```bash
cd LangBot
uv sync --dev
```
此时,uv 将自动为您创建虚拟环境(.venv),若您的编辑器询问您是否使用此虚拟环境,请选择`是`。
<img
width="600"
src="/images/zh/develop/confirm_venv.png"
/>
若未弹出,请手动在右下角设置 Python 解释器路径为该 venv 中的解释器。
然后打开 VS Code 底部的终端,这将自动激活 venv。
或者请您手动激活此虚拟环境:
```bash
# 请自行根据.venv路径来修改命令
source .venv/bin/activate
```
## 启动插件运行时
```bash
uv run --no-sync lbp rt
```
或通过`python -m langbot_plugin.cli.__init__ rt`启动。
Plugin Runtime 接受以下参数:
- `--debug-only`: 不启动`data/plugins`目录下的插件,仅允许通过调试连接加载插件。
- `--ws-debug-port`: 监听的调试端口,默认是`5401`。
- `--ws-control-port`: 监听的控制端口(供 LangBot 主程序连接),默认是`5400`。
- `-s`: 使用`stdio`接受控制连接。**仅在生产环境使用**。
- `--skip-deps-check`: 为了确保插件依赖均已安装,Runtime 会在每次启动时检查并安装所有已安装插件的依赖。携带此参数可禁用此检查。
### 使 LangBot 使用您本地修改过的 langbot-plugin-sdk
若您修改了诸如消息实体、插件数据定义等内容,需要将其更新到 LangBot 环境,以确保运行期间数据格式兼容。
请在**确保已激活 LangBot 目录下的虚拟环境(.venv)的终端**中,切换目录到 langbot-plugin-sdk 目录下,执行:
```bash
uv pip install .
```
这将把您修改后的 langbot-plugin-sdk 安装到 LangBot 的环境。
### 使 LangBot 连接到此运行时
在 LangBot 的`data/config.yaml`中配置`plugin.runtime_ws_url`为`ws://localhost:5400/control/ws`。
```yaml
plugin:
runtime_ws_url: ws://localhost:5400/control/ws
```
并在启动 LangBot 主程序时携带启动参数`--standalone-runtime`(如:`uv run --no-sync main.py --standalone-runtime`)。此命令行中,请务必携带`--no-sync`参数,这将确保您刚刚同步的本地 langbot-plugin-sdk 不会被远程的覆盖。\
重启 LangBot,将会使用 WebSocket 连接到此运行时。
默认情况下无需配置 `LANGBOT_PLUGIN_RUNTIME_CONTROL_TOKEN`:当 LangBot 与 Runtime 两端都未设置时,OSS 的本地控制连接直接建立。若部署环境需要为 5400 控制端口增加共享密钥,则必须在两端配置同一个至少 32 位的高熵值;只配置一端会导致连接失败。
## langbot-plugin-sdk 架构
本代码库中包含以下内容:
- `langbot_plugin.api`:插件相关实体和 API 定义。
- `langbot_plugin.assets`:插件模板。
- `langbot_plugin.cli`:插件开发 CLI 工具。
- `langbot_plugin.entities`:插件系统中非 API 定义的相关实体。
- `langbot_plugin.runtime`:插件运行时和底层通信(stdio 和 websocket)实现。
## `lbp` CLI 工具
CLI 工具提供 Runtime 启动、插件初始化、插件组件管理、Marketplace 交互等功能。
详细的程序入口请查看[`langbot_plugin.cli.__init__`](https://github.com/langbot-app/langbot-plugin-sdk/blob/main/src/langbot_plugin/cli/__init__.py)。