> ## Documentation Index
> Fetch the complete documentation index at: https://docs.langbot.app/llms.txt
> Use this file to discover all available pages before exploring further.

# プラグインランタイム、CLI、SDKのデバッグ

<Info>
  プラグインランタイム、CLI、SDKはこちらでオープンソース化されています: [https://github.com/langbot-app/langbot-plugin-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）をサブディレクトリとして配置することをお勧めします。ディレクトリ構造は以下の通りです：](https://github.com/langbot-app/langbot-plugin-sdk）をサブディレクトリとして配置することをお勧めします。ディレクトリ構造は以下の通りです：)

```bash theme={null}
langbot-projects
├── LangBot
├── langbot-plugin-sdk
```

LangBotディレクトリに移動し、依存関係をインストールします：

```bash theme={null}
cd LangBot
uv sync --dev
```

この時点で、uvは自動的に仮想環境(.venv)を作成します。エディターがこの仮想環境を使用するかどうかを尋ねる場合は、`Yes`を選択してください。

<img width="600" src="https://mintcdn.com/langbot/3wTxBGgCdTnu0gxf/images/zh/develop/confirm_venv.png?fit=max&auto=format&n=3wTxBGgCdTnu0gxf&q=85&s=1c4b69062b214c5a9727ebf890b0c2f8" data-path="images/zh/develop/confirm_venv.png" />

プロンプトが表示されない場合は、右下隅からPythonインタープリターのパスをvenv内のインタープリターに手動で設定してください。

次に、VS Code下部のターミナルを開きます。これにより自動的にvenvがアクティブ化されます。

または、この仮想環境を手動でアクティブ化できます：

```bash theme={null}
# .venvのパスに応じてコマンドを変更してください
source .venv/bin/activate
```

## プラグインランタイムの起動

```bash theme={null}
uv run --no-sync lbp rt
```

または`python -m langbot_plugin.cli.__init__ rt`で起動してください。

プラグインランタイムは以下のパラメーターを受け入れます:

* `--debug-only`: `data/plugins`ディレクトリのプラグインを起動せず、デバッグ接続を通じたプラグインの読み込みのみを許可します。
* `--ws-debug-port`: リッスンするデバッグポート、デフォルトは`5401`です。
* `--ws-control-port`: リッスンする制御ポート(LangBotメインプログラム接続用)、デフォルトは`5400`です。
* `-s`: `stdio`を使用して制御接続を受け入れます。**本番環境でのみ使用してください**。
* `--skip-deps-check`: すべてのプラグイン依存関係がインストールされていることを確認するため、ランタイムは起動時に毎回すべてのインストール済みプラグインの依存関係をチェックしてインストールします。このパラメーターを使用してこのチェックを無効にします。

### LangBotでローカル修正したlangbot-plugin-sdkを使用する

メッセージエンティティやプラグインデータ定義などを変更した場合、実行時のデータ形式の互換性を確保するために、LangBot環境に更新する必要があります。

**LangBotディレクトリの仮想環境（.venv）がアクティブ化されたターミナル**で、langbot-plugin-sdkディレクトリに移動し、以下を実行します：

```bash theme={null}
uv pip install .
```

これにより、修正したlangbot-plugin-sdkがLangBotの環境にインストールされます。

### LangBotをこのランタイムに接続する

LangBotの`data/config.yaml`で`plugin.runtime_ws_url`を`ws://localhost:5400/control/ws`に設定します。

```yaml theme={null}
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-sdkアーキテクチャ

このコードベースには以下が含まれています:

* `langbot_plugin.api`: プラグイン関連のエンティティとAPI定義。
* `langbot_plugin.assets`: プラグインテンプレート。
* `langbot_plugin.cli`: プラグイン開発CLIツール。
* `langbot_plugin.entities`: APIで定義されていないプラグインシステム関連のエンティティ。
* `langbot_plugin.runtime`: プラグインランタイムと基礎通信(stdioおよびwebsocket)の実装。

## `lbp` CLIツール

CLIツールは、ランタイムの起動、プラグインの初期化、プラグインコンポーネント管理、Marketplaceとのインタラクションなどの機能を提供します。

詳細なプログラムエントリポイントについては、[`langbot_plugin.cli.__init__`](https://github.com/langbot-app/langbot-plugin-sdk/blob/main/src/langbot_plugin/cli/__init__.py)を参照してください。
