プラグインシステムの概要
N.E.K.O. のプラグインシステムにより、開発者は Python プラグインで機能を拡張できます。各プラグインは隔離されたプロセスで実行され、IPC(プロセス間通信)を介してメインシステムと通信します。
主な機能
- プロセス隔離 — プラグインは個別のプロセスで実行され、クラッシュしてもメインシステムに影響しません
- 非同期サポート — 同期・非同期の両方のプラグイン関数に対応
- 型安全性 — JSON Schema による入力バリデーション
- ライフサイクル管理 — 起動、シャットダウン、リロードフック
- メッセージプッシュ — プラグインからメインシステムにメッセージを送信可能
- スケジュールタスク — タイマーベースの定期実行
- イベント駆動 — システムイベントのサブスクライブ
アーキテクチャ
┌────────────────────────────────────┐
│ メインプロセス │
│ ┌──────────────────────────────┐ │
│ │ Plugin Server (FastAPI) │ │
│ │ - HTTP API エンドポイント │ │
│ │ - プラグインレジストリ │ │
│ │ - メッセージキュー │ │
│ └──────────────────────────────┘ │
└──────────────┬─────────────────────┘
│ キュー(IPC)
┌──────────┼──────────┬──────────┐
▼ ▼ ▼ ▼
Plugin 1 Plugin 2 Plugin 3 Plugin N
(プロセス) (プロセス) (プロセス) (プロセス)プラグインディレクトリ構造
plugin/plugins/
└── my_plugin/
├── __init__.py # プラグインコード
└── plugin.toml # プラグイン設定