プラグインのエントリーポイント
すべてのプラグインはデフォルトのエントリーオブジェクトを export します。SDK は、 それらを作成するための 3 つのヘルパーを提供します。definePluginEntry
Import: openclaw/plugin-sdk/plugin-entry
provider plugin、tool plugin、hook plugin、およびメッセージングチャンネルではない
ものに使用します。
| Field | Type | Required | Default |
|---|---|---|---|
id | string | Yes | — |
name | string | Yes | — |
description | string | Yes | — |
kind | string | No | — |
configSchema | OpenClawPluginConfigSchema | () => OpenClawPluginConfigSchema | No | Empty object schema |
register | (api: OpenClawPluginApi) => void | Yes | — |
idはopenclaw.plugin.jsonマニフェストと一致している必要があります。kindは排他的スロット用です:"memory"または"context-engine"。configSchemaは遅延評価のために関数にできます。- OpenClaw はそのスキーマを初回アクセス時に解決してメモ化するため、高コストなスキーマ ビルダーは 1 回しか実行されません。
defineChannelPluginEntry
Import: openclaw/plugin-sdk/channel-core
チャンネル固有の配線で definePluginEntry をラップします。自動的に
api.registerChannel({ plugin }) を呼び出し、任意のルートヘルプ CLI metadata シームを公開し、
登録モードに応じて registerFull を制御します。
| Field | Type | Required | Default |
|---|---|---|---|
id | string | Yes | — |
name | string | Yes | — |
description | string | Yes | — |
plugin | ChannelPlugin | Yes | — |
configSchema | OpenClawPluginConfigSchema | () => OpenClawPluginConfigSchema | No | Empty object schema |
setRuntime | (runtime: PluginRuntime) => void | No | — |
registerCliMetadata | (api: OpenClawPluginApi) => void | No | — |
registerFull | (api: OpenClawPluginApi) => void | No | — |
setRuntimeは登録中に呼び出されるため、ランタイム参照を保存できます (通常はcreatePluginRuntimeStoreを使います)。CLI metadata の 取得中はスキップされます。registerCliMetadataはapi.registrationMode === "cli-metadata"とapi.registrationMode === "full"の両方で実行されます。 ルートヘルプを非アクティブのまま保ちつつ、通常の CLI コマンド登録を full plugin load と互換に保つため、 チャンネル所有の CLI descriptor の正規の置き場所としてこれを使ってください。registerFullはapi.registrationMode === "full"のときだけ実行されます。setup-only の読み込み中はスキップされます。definePluginEntryと同様に、configSchemaは遅延ファクトリーにでき、 OpenClaw は解決済みスキーマを初回アクセス時にメモ化します。- プラグイン所有のルート CLI コマンドでは、コマンドを
ルート CLI parse tree から消さずに lazy-load のままにしたい場合、
api.registerCli(..., { descriptors: [...] })を優先してください。channel plugin では、 それらの descriptor はregisterCliMetadata(...)から登録し、registerFull(...)はランタイム専用の処理に集中させてください。 registerFull(...)が gateway RPC method も登録する場合は、それらを plugin 固有の prefix に保ってください。予約済みの core admin namespace(config.*、exec.approvals.*、wizard.*、update.*)は常にoperator.adminに強制されます。
defineSetupPluginEntry
Import: openclaw/plugin-sdk/channel-core
軽量な setup-entry.ts ファイル用です。ランタイムや CLI の配線を持たず、
単に { plugin } を返します。
defineSetupPluginEntry(...) は次の狭い setup helper
ファミリーと組み合わせて使ってください。
openclaw/plugin-sdk/setup-runtimeは、import-safe な setup patch adapter、 lookup-note 出力、promptResolvedAllowFrom、splitSetupEntries、委譲 setup proxy などの ランタイムセーフな setup helper 用openclaw/plugin-sdk/channel-setupは任意インストールの setup surface 用openclaw/plugin-sdk/setup-toolsは setup / install CLI / archive / docs helper 用
登録モード
api.registrationMode は、プラグインがどのように読み込まれたかを示します。
| Mode | When | 何を登録するか |
|---|---|---|
"full" | 通常の gateway 起動時 | すべて |
"setup-only" | 無効または未設定のチャンネル | チャンネル登録のみ |
"setup-runtime" | ランタイム利用可能な setup フロー | チャンネル登録に加え、full entry が読み込まれる前に必要な軽量ランタイムのみ |
"cli-metadata" | ルートヘルプ / CLI metadata 取得 | CLI descriptor のみ |
defineChannelPluginEntry は、この分岐を自動的に処理します。チャンネルに
definePluginEntry を直接使う場合は、自分でモードを確認してください。
"setup-runtime" は、setup-only の起動サーフェスが
full の bundled channel runtime に再突入せずに存在しなければならない期間として扱ってください。
適しているのは、チャンネル登録、setup-safe な HTTP route、setup-safe な gateway method、
および委譲 setup helper です。重い background service、CLI registrar、
provider / client SDK の bootstrap は、引き続き "full" に属します。
特に CLI registrar について:
- registrar が 1 つ以上のルートコマンドを所有し、
最初の呼び出し時に OpenClaw に実際の CLI module を lazy-load させたい場合は
descriptorsを使ってください - それらの descriptor が、その registrar によって公開されるすべてのトップレベルコマンド root をカバーしていることを確認してください
commands単独は eager な互換パスにのみ使ってください
プラグイン形状
OpenClaw は、読み込まれたプラグインをその登録動作によって分類します。| Shape | 説明 |
|---|---|
| plain-capability | 1 種類の capability のみ(例: provider のみ) |
| hybrid-capability | 複数種類の capability(例: provider + speech) |
| hook-only | hook のみで、capability はなし |
| non-capability | tools / commands / services はあるが capability はなし |
openclaw plugins inspect <id> を使ってください。
関連
- SDK Overview — 登録 API と subpath リファレンス
- Runtime Helpers —
api.runtimeとcreatePluginRuntimeStore - Setup and Config — マニフェスト、setup entry、遅延読み込み
- Channel Plugins —
ChannelPluginオブジェクトの構築 - Provider Plugins — provider 登録と hook