アーキテクチャの基礎
バージョン4.0では、高セキュリティで柔軟性の高い本番環境グレードのプラグインシステムを導入し、開発者に豊富なAPIと使いやすいサポートツールを提供しています。
stdioとwebsocketの2つの動作モードがあります。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ディレクトリを開き、プラグインコードの記述を開始できます。
lbpコマンドの代わりにpython -m langbot_plugin.cli.__init__を使用できます。例えば:デバッグモードの開始
まずLangBotをデプロイして起動し、Plugin Runtimeが実行されてポート5401をリッスンしていることを確認する必要があります。
-
Stdioモード: 起動パラメータ--standalone-runtimeなしでソースコードを使用してLangBotを起動すると、LangBotは自動的にPlugin Runtimeをサブプロセスとして起動し、stdio(標準入出力ストリーム)を通じてPlugin Runtimeと通信します。この場合、RuntimeはLangBotルートディレクトリのdata/pluginsディレクトリからプラグインをロードし、LangBotホストのポート5401をデバッグポートとしてリッスンします。 -
WebSocketモード:- 本番環境: 公式の
docker-compose.yamlを使用してLangBotを起動すると、Plugin Runtimeは別のコンテナで実行され、起動パラメータ--standalone-runtimeのためにLangBotはWebSocketモードでPlugin Runtimeと通信します。Runtimeコンテナの5401ポートはデフォルトでホストの5401ポートにマッピングされます。 - 開発環境: 起動パラメータ
--standalone-runtimeを使用してソースコードでLangBotを起動すると、LangBotはdata/config.yamlで設定されたplugin.runtime_ws_urlアドレス(ポートは通常5400)に従って既に起動されているPlugin Runtimeに接続します。スタンドアロンのPlugin Runtimeを自分で起動する必要があります。Plugin Runtimeの開発を参照してください。
- 本番環境: 公式の
stdioまたはwebsocketモードのいずれの場合でも、Plugin Runtimeはそのホストのポート5401をプラグインデバッグ接続のデバッグポートとしてリッスンします。プラグインを開発する際は、開発設定方法に従ってLangBotを起動することをお勧めします。これによりPlugin RuntimeがStdioモードで起動され、プラグイン開発が容易になります。.env.exampleファイルを.envにコピーし、DEBUG_RUNTIME_WS_URLをPlugin RuntimeのWebSocketアドレスに確認または変更します。


次のステップ
このチュートリアルでは、プラグイン機能を段階的に完成させる方法を案内します。- プラグイン情報の変更: プラグインは基本的なプラグイン情報で作成されました。プラグイン情報を完成させてください。
- コンポーネントの追加: プラグインコンポーネントはプラグインのコア機能ユニットです。必要に応じてコンポーネントを追加できます。
