メインコンテンツへスキップ

プラグインSDK概要

プラグインSDKは、プラグインとcoreの間にある型付き契約です。このページは、 何をインポートするか何を登録できるかのリファレンスです。
ハウツーガイドを探していますか?
  • 最初のプラグインですか? はじめにから始めてください
  • チャネルプラグインですか? Channel Pluginsを参照してください
  • プロバイダープラグインですか? Provider Pluginsを参照してください

インポート規約

必ず特定のサブパスからインポートしてください。
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
各サブパスは、小さく自己完結したモジュールです。これにより起動を高速に保ち、 循環依存の問題を防ぎます。チャネル固有のエントリ / ビルドヘルパーには、 openclaw/plugin-sdk/channel-coreを優先し、より広い包括的サーフェスと buildChannelConfigSchemaのような共有ヘルパーには openclaw/plugin-sdk/coreを使用してください。 openclaw/plugin-sdk/slackopenclaw/plugin-sdk/discordopenclaw/plugin-sdk/signalopenclaw/plugin-sdk/whatsappのような プロバイダー名付きの便宜的なサーフェスや、 チャネルブランド付きのヘルパーサーフェスを追加したり依存したりしないでください。バンドルプラグインは、 汎用的なSDKサブパスを自分自身のapi.tsまたはruntime-api.tsバレル内で 組み合わせるべきであり、coreは、それらのプラグインローカルバレルを使うか、 本当にチャネル横断のニーズである場合にのみ、狭く汎用的なSDK 契約を追加するべきです。 生成されたエクスポートマップには、依然として少数のバンドルプラグイン向けヘルパー サーフェスが含まれています。たとえばplugin-sdk/feishuplugin-sdk/feishu-setupplugin-sdk/zaloplugin-sdk/zalo-setupplugin-sdk/matrix*などです。これらの サブパスは、バンドルプラグインの保守と互換性のためだけに存在しており、 意図的に以下の共通テーブルからは除外されています。新しいサードパーティ プラグインに推奨されるインポートパスではありません。

サブパスリファレンス

用途別にまとめた、最もよく使われるサブパスです。200以上のサブパスからなる 生成済みの完全一覧はscripts/lib/plugin-sdk-entrypoints.jsonにあります。 予約されたバンドルプラグイン向けヘルパーサブパスは、その生成一覧にも引き続き表示されます。 ドキュメントページが明示的に公開として案内していない限り、それらは 実装詳細 / 互換性サーフェスとして扱ってください。

プラグインエントリ

サブパス主なエクスポート
plugin-sdk/plugin-entrydefinePluginEntry
plugin-sdk/coredefineChannelPluginEntry, createChatChannelPlugin, createChannelPluginBase, defineSetupPluginEntry, buildChannelConfigSchema
plugin-sdk/config-schemaOpenClawSchema
plugin-sdk/provider-entrydefineSingleProviderPluginEntry
サブパス主なエクスポート
plugin-sdk/channel-coredefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/config-schemaルートopenclaw.json Zodスキーマエクスポート(OpenClawSchema
plugin-sdk/channel-setupcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, およびDEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/setup共有セットアップウィザードヘルパー、許可リストプロンプト、セットアップステータスビルダー
plugin-sdk/setup-runtimecreatePatchedAccountSetupAdapter, createEnvPatchedAccountSetupAdapter, createSetupInputPresenceValidator, noteChannelLookupFailure, noteChannelLookupSummary, promptResolvedAllowFrom, splitSetupEntries, createAllowlistSetupWizardProxy, createDelegatedSetupWizardProxy
plugin-sdk/setup-adapter-runtimecreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreマルチアカウント設定 / アクションゲートヘルパー、デフォルトアカウントのフォールバックヘルパー
plugin-sdk/account-idDEFAULT_ACCOUNT_ID、account-id正規化ヘルパー
plugin-sdk/account-resolutionアカウント参照 + デフォルトフォールバックヘルパー
plugin-sdk/account-helpers狭いアカウント一覧 / アカウントアクションヘルパー
plugin-sdk/channel-pairingcreateChannelPairingController
plugin-sdk/channel-reply-pipelinecreateChannelReplyPipeline
plugin-sdk/channel-config-helperscreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaチャネル設定スキーマ型
plugin-sdk/telegram-command-configバンドル契約フォールバック付きのTelegramカスタムコマンド正規化 / 検証ヘルパー
plugin-sdk/channel-policyresolveChannelGroupRequireMention
plugin-sdk/channel-lifecyclecreateAccountStatusSink
plugin-sdk/inbound-envelope共有受信ルート + エンベロープビルダーヘルパー
plugin-sdk/inbound-reply-dispatch共有の受信記録 / ディスパッチヘルパー
plugin-sdk/messaging-targetsターゲット解析 / マッチングヘルパー
plugin-sdk/outbound-media共有送信メディア読み込みヘルパー
plugin-sdk/outbound-runtime送信アイデンティティ / 送信デリゲートヘルパー
plugin-sdk/thread-bindings-runtimeスレッドバインディングのライフサイクルおよびアダプターヘルパー
plugin-sdk/agent-media-payload古いagent media payloadビルダー
plugin-sdk/conversation-runtime会話 / スレッドバインディング、ペアリング、設定済みバインディングヘルパー
plugin-sdk/runtime-config-snapshotランタイム設定スナップショットヘルパー
plugin-sdk/runtime-group-policyランタイムグループポリシー解決ヘルパー
plugin-sdk/channel-status共有チャネルステータススナップショット / サマリーヘルパー
plugin-sdk/channel-config-primitives狭いチャネル設定スキーマプリミティブ
plugin-sdk/channel-config-writesチャネル設定書き込み認可ヘルパー
plugin-sdk/channel-plugin-common共有チャネルプラグイン前奏エクスポート
plugin-sdk/allowlist-config-edit許可リスト設定編集 / 読み取りヘルパー
plugin-sdk/group-access共有グループアクセス判定ヘルパー
plugin-sdk/direct-dm共有ダイレクトDM認証 / ガードヘルパー
plugin-sdk/interactive-runtime対話返信payload正規化 / 縮約ヘルパー
plugin-sdk/channel-inbound受信デバウンス、メンションマッチング、メンションポリシーヘルパー、およびエンベロープヘルパー
plugin-sdk/channel-send-result返信結果型
plugin-sdk/channel-actionscreateMessageToolButtonsSchema, createMessageToolCardSchema
plugin-sdk/channel-targetsターゲット解析 / マッチングヘルパー
plugin-sdk/channel-contractチャネル契約型
plugin-sdk/channel-feedbackフィードバック / リアクション配線
plugin-sdk/channel-secret-runtimecollectSimpleChannelFieldAssignments, getChannelSurface, pushAssignment、およびsecret target型などの狭いsecret-contractヘルパー
サブパス主なエクスポート
plugin-sdk/provider-entrydefineSingleProviderPluginEntry
plugin-sdk/provider-setup厳選されたローカル / セルフホスト型プロバイダーのセットアップヘルパー
plugin-sdk/self-hosted-provider-setupOpenAI互換セルフホストプロバイダー向けの焦点を絞ったセットアップヘルパー
plugin-sdk/cli-backendCLIバックエンドのデフォルト + watchdog定数
plugin-sdk/provider-auth-runtimeプロバイダープラグイン向けのランタイムAPIキー解決ヘルパー
plugin-sdk/provider-auth-api-keyupsertApiKeyProfileなどのAPIキーオンボーディング / プロファイル書き込みヘルパー
plugin-sdk/provider-auth-result標準OAuth auth-resultビルダー
plugin-sdk/provider-auth-loginプロバイダープラグイン向け共有対話ログインヘルパー
plugin-sdk/provider-env-varsプロバイダー認証環境変数参照ヘルパー
plugin-sdk/provider-authcreateProviderApiKeyAuthMethod, ensureApiKeyFromOptionEnvOrPrompt, upsertAuthProfile, upsertApiKeyProfile, writeOAuthCredentials
plugin-sdk/provider-model-sharedProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat、共有replay-policyビルダー、provider-endpointヘルパー、およびnormalizeNativeXaiModelIdのようなmodel-id正規化ヘルパー
plugin-sdk/provider-catalog-sharedfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-http汎用プロバイダーHTTP / endpoint capabilityヘルパー
plugin-sdk/provider-web-fetch-contractenablePluginInConfigWebFetchProviderPluginなどの狭いweb-fetch設定 / 選択契約ヘルパー
plugin-sdk/provider-web-fetchWeb-fetchプロバイダー登録 / キャッシュヘルパー
plugin-sdk/provider-web-search-config-contractプラグイン有効化配線を必要としないプロバイダー向けの狭いweb-search設定 / 認証情報ヘルパー
plugin-sdk/provider-web-search-contractcreateWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig、およびスコープ付き認証情報setter/getterなどの狭いweb-search設定 / 認証情報契約ヘルパー
plugin-sdk/provider-web-searchWeb-searchプロバイダー登録 / キャッシュ / ランタイムヘルパー
plugin-sdk/provider-toolsProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, Geminiスキーマクリーンアップ + 診断、およびresolveXaiModelCompatPatch / applyXaiModelCompatのようなxAI互換ヘルパー
plugin-sdk/provider-usagefetchClaudeUsageなど
plugin-sdk/provider-streamProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers、stream wrapper型、および共有のAnthropic / Bedrock / Google / Kilocode / Moonshot / OpenAI / OpenRouter / Z.A.I / MiniMax / Copilot wrapperヘルパー
plugin-sdk/provider-onboardオンボーディング設定パッチヘルパー
plugin-sdk/global-singletonプロセスローカルsingleton / map / cacheヘルパー
サブパス主なエクスポート
plugin-sdk/command-authresolveControlCommandGate、コマンドレジストリヘルパー、送信者認可ヘルパー
plugin-sdk/command-statusbuildCommandsMessagePaginatedbuildHelpMessageなどのコマンド / ヘルプメッセージビルダー
plugin-sdk/approval-auth-runtime承認者解決および同一チャットaction-authヘルパー
plugin-sdk/approval-client-runtimeネイティブexec承認プロファイル / フィルターヘルパー
plugin-sdk/approval-delivery-runtimeネイティブ承認capability / deliveryアダプター
plugin-sdk/approval-gateway-runtime共有承認Gateway解決ヘルパー
plugin-sdk/approval-handler-adapter-runtimeホットチャネルエントリポイント向けの軽量ネイティブ承認アダプター読み込みヘルパー
plugin-sdk/approval-handler-runtimeより広い承認ハンドラーランタイムヘルパー。狭いadapter / gatewayサーフェスで十分な場合はそちらを優先してください
plugin-sdk/approval-native-runtimeネイティブ承認ターゲット + account-bindingヘルパー
plugin-sdk/approval-reply-runtimeexec / プラグイン承認返信payloadヘルパー
plugin-sdk/command-auth-nativeネイティブコマンド認証 + ネイティブsession-targetヘルパー
plugin-sdk/command-detection共有コマンド検出ヘルパー
plugin-sdk/command-surfaceコマンド本文正規化およびコマンドサーフェスヘルパー
plugin-sdk/allow-fromformatAllowFromLowercase
plugin-sdk/channel-secret-runtimeチャネル / プラグインsecretサーフェス向けの狭いsecret-contract収集ヘルパー
plugin-sdk/secret-ref-runtimesecret-contract / 設定解析向けの狭いcoerceSecretRefおよびSecretRef型ヘルパー
plugin-sdk/security-runtime共有trust、DMゲーティング、外部コンテンツ、secret収集ヘルパー
plugin-sdk/ssrf-policyホスト許可リストおよびプライベートネットワークSSRFポリシーヘルパー
plugin-sdk/ssrf-runtimepinned-dispatcher、SSRFガード付きfetch、およびSSRFポリシーヘルパー
plugin-sdk/secret-inputsecret入力解析ヘルパー
plugin-sdk/webhook-ingressWebhookリクエスト / ターゲットヘルパー
plugin-sdk/webhook-request-guardsリクエスト本文サイズ / タイムアウトヘルパー
サブパス主なエクスポート
plugin-sdk/runtime広範なランタイム / ロギング / バックアップ / プラグインインストールヘルパー
plugin-sdk/runtime-env狭いランタイム環境、logger、timeout、retry、backoffヘルパー
plugin-sdk/channel-runtime-context汎用チャネルランタイムコンテキスト登録 / 参照ヘルパー
plugin-sdk/runtime-storecreatePluginRuntimeStore
plugin-sdk/plugin-runtime共有プラグインコマンド / hook / http / interactiveヘルパー
plugin-sdk/hook-runtime共有webhook / internal hook pipelineヘルパー
plugin-sdk/lazy-runtimecreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeSurfaceなどの遅延ランタイムインポート / バインディングヘルパー
plugin-sdk/process-runtimeプロセスexecヘルパー
plugin-sdk/cli-runtimeCLI整形、待機、バージョンヘルパー
plugin-sdk/gateway-runtimeGatewayクライアントおよびchannel-statusパッチヘルパー
plugin-sdk/config-runtime設定読み込み / 書き込みヘルパー
plugin-sdk/telegram-command-configバンドルTelegram契約サーフェスが利用できない場合でも使えるTelegramコマンド名 / 説明の正規化と重複 / 競合チェック
plugin-sdk/approval-runtimeexec / プラグイン承認ヘルパー、approval-capabilityビルダー、auth / profileヘルパー、ネイティブルーティング / ランタイムヘルパー
plugin-sdk/reply-runtime共有受信 / 返信ランタイムヘルパー、chunking、dispatch、heartbeat、reply planner
plugin-sdk/reply-dispatch-runtime狭い返信dispatch / finalizeヘルパー
plugin-sdk/reply-historybuildHistoryContext, recordPendingHistoryEntry, clearHistoryEntriesIfEnabledなどの共有短時間窓reply-historyヘルパー
plugin-sdk/reply-referencecreateReplyReferencePlanner
plugin-sdk/reply-chunking狭いtext / markdown chunkingヘルパー
plugin-sdk/session-store-runtimeセッションストアパス + updated-atヘルパー
plugin-sdk/state-paths状態 / OAuthディレクトリパスヘルパー
plugin-sdk/routingresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountIdなどのルート / session-key / account bindingヘルパー
plugin-sdk/status-helpers共有チャネル / アカウントステータスサマリーヘルパー、ランタイム状態デフォルト、およびissueメタデータヘルパー
plugin-sdk/target-resolver-runtime共有ターゲットリゾルバーヘルパー
plugin-sdk/string-normalization-runtimeslug / 文字列正規化ヘルパー
plugin-sdk/request-urlfetch / request風入力から文字列URLを抽出
plugin-sdk/run-command正規化済みstdout / stderr結果を伴う時間制限付きコマンドランナー
plugin-sdk/param-readers共通tool / CLIパラメーターリーダー
plugin-sdk/tool-payloadtool結果オブジェクトから正規化済みpayloadを抽出
plugin-sdk/tool-sendtool引数から標準的な送信ターゲットフィールドを抽出
plugin-sdk/temp-path共有一時ダウンロードパスヘルパー
plugin-sdk/logging-coreサブシステムloggerおよびマスキングヘルパー
plugin-sdk/markdown-table-runtimeMarkdownテーブルモードヘルパー
plugin-sdk/json-store小規模JSON状態読み書きヘルパー
plugin-sdk/file-lock再入可能file-lockヘルパー
plugin-sdk/persistent-dedupeディスクバックのdedupe cacheヘルパー
plugin-sdk/acp-runtimeACPランタイム / セッションおよびreply-dispatchヘルパー
plugin-sdk/agent-config-primitives狭いagentランタイムconfig-schemaプリミティブ
plugin-sdk/boolean-param緩いbooleanパラメーターリーダー
plugin-sdk/dangerous-name-runtime危険名マッチング解決ヘルパー
plugin-sdk/device-bootstrapデバイスbootstrapおよびペアリングトークンヘルパー
plugin-sdk/extension-shared共有passive-channel、status、およびambient proxyヘルパープリミティブ
plugin-sdk/models-provider-runtime/modelsコマンド / プロバイダー返信ヘルパー
plugin-sdk/skill-commands-runtimeSkillコマンド一覧ヘルパー
plugin-sdk/native-command-registryネイティブコマンドレジストリ / build / serializeヘルパー
plugin-sdk/provider-zai-endpointZ.A.I endpoint検出ヘルパー
plugin-sdk/infra-runtimeシステムイベント / heartbeatヘルパー
plugin-sdk/collection-runtime小規模な上限制cacheヘルパー
plugin-sdk/diagnostic-runtime診断フラグおよびイベントヘルパー
plugin-sdk/error-runtimeエラーグラフ、整形、共有エラー分類ヘルパー、isApprovalNotFoundError
plugin-sdk/fetch-runtimeラップ済みfetch、proxy、およびpinned lookupヘルパー
plugin-sdk/host-runtimeホスト名およびSCPホスト正規化ヘルパー
plugin-sdk/retry-runtimeretry設定およびretry runnerヘルパー
plugin-sdk/agent-runtimeagent dir / identity / workspaceヘルパー
plugin-sdk/directory-runtime設定バックディレクトリ問い合わせ / dedup
plugin-sdk/keyed-async-queueKeyedAsyncQueue
サブパス主なエクスポート
plugin-sdk/media-runtime共有メディアfetch / transform / storeヘルパーに加え、media payloadビルダー
plugin-sdk/media-generation-runtime共有メディア生成failoverヘルパー、候補選択、およびモデル欠落メッセージング
plugin-sdk/media-understandingメディア理解プロバイダー型と、プロバイダー向け画像 / 音声ヘルパーエクスポート
plugin-sdk/text-runtimeassistant-visible-text除去、markdown render / chunking / tableヘルパー、マスキングヘルパー、directive-tagヘルパー、安全なテキストユーティリティなどの共有text / markdown / loggingヘルパー
plugin-sdk/text-chunking送信text chunkingヘルパー
plugin-sdk/speech音声プロバイダー型と、プロバイダー向けdirective、registry、validationヘルパー
plugin-sdk/speech-core共有音声プロバイダー型、registry、directive、normalizationヘルパー
plugin-sdk/realtime-transcriptionリアルタイム文字起こしプロバイダー型およびregistryヘルパー
plugin-sdk/realtime-voiceリアルタイム音声プロバイダー型およびregistryヘルパー
plugin-sdk/image-generation画像生成プロバイダー型
plugin-sdk/image-generation-core共有画像生成型、failover、auth、およびregistryヘルパー
plugin-sdk/music-generation音楽生成プロバイダー / リクエスト / 結果型
plugin-sdk/music-generation-core共有音楽生成型、failoverヘルパー、プロバイダー参照、およびmodel-ref解析
plugin-sdk/video-generation動画生成プロバイダー / リクエスト / 結果型
plugin-sdk/video-generation-core共有動画生成型、failoverヘルパー、プロバイダー参照、およびmodel-ref解析
plugin-sdk/webhook-targetsWebhookターゲットレジストリおよびルートインストールヘルパー
plugin-sdk/webhook-pathWebhookパス正規化ヘルパー
plugin-sdk/web-media共有リモート / ローカルメディア読み込みヘルパー
plugin-sdk/zodプラグインSDK利用者向けに再エクスポートされたzod
plugin-sdk/testinginstallCommonResolveTargetErrorCases, shouldAckReaction
サブパス主なエクスポート
plugin-sdk/memory-coremanager / config / file / CLIヘルパー向けのバンドルmemory-coreヘルパーサーフェス
plugin-sdk/memory-core-engine-runtimeメモリindex / searchランタイムファサード
plugin-sdk/memory-core-host-engine-foundationメモリhost foundation engineエクスポート
plugin-sdk/memory-core-host-engine-embeddingsメモリhost embedding engineエクスポート
plugin-sdk/memory-core-host-engine-qmdメモリhost QMD engineエクスポート
plugin-sdk/memory-core-host-engine-storageメモリhost storage engineエクスポート
plugin-sdk/memory-core-host-multimodalメモリhostマルチモーダルヘルパー
plugin-sdk/memory-core-host-queryメモリhost queryヘルパー
plugin-sdk/memory-core-host-secretメモリhost secretヘルパー
plugin-sdk/memory-core-host-eventsメモリhostイベントジャーナルヘルパー
plugin-sdk/memory-core-host-statusメモリhostステータスヘルパー
plugin-sdk/memory-core-host-runtime-cliメモリhost CLIランタイムヘルパー
plugin-sdk/memory-core-host-runtime-coreメモリhost coreランタイムヘルパー
plugin-sdk/memory-core-host-runtime-filesメモリhost file / ランタイムヘルパー
plugin-sdk/memory-host-coreメモリhost coreランタイムヘルパー向けのベンダー中立エイリアス
plugin-sdk/memory-host-eventsメモリhostイベントジャーナルヘルパー向けのベンダー中立エイリアス
plugin-sdk/memory-host-filesメモリhost file / ランタイムヘルパー向けのベンダー中立エイリアス
plugin-sdk/memory-host-markdownメモリ隣接プラグイン向け共有managed-markdownヘルパー
plugin-sdk/memory-host-searchsearch-managerアクセス向けのアクティブメモリランタイムファサード
plugin-sdk/memory-host-statusメモリhostステータスヘルパー向けのベンダー中立エイリアス
plugin-sdk/memory-lancedbバンドルmemory-lancedbヘルパーサーフェス
ファミリー現在のサブパス想定用途
Browserplugin-sdk/browser-cdp, plugin-sdk/browser-config-runtime, plugin-sdk/browser-config-support, plugin-sdk/browser-control-auth, plugin-sdk/browser-node-runtime, plugin-sdk/browser-profiles, plugin-sdk/browser-security-runtime, plugin-sdk/browser-setup-tools, plugin-sdk/browser-supportバンドルbrowserプラグイン向けサポートヘルパー(browser-supportは互換性バレルとして維持)
Matrixplugin-sdk/matrix, plugin-sdk/matrix-helper, plugin-sdk/matrix-runtime-heavy, plugin-sdk/matrix-runtime-shared, plugin-sdk/matrix-runtime-surface, plugin-sdk/matrix-surface, plugin-sdk/matrix-thread-bindingsバンドルMatrixヘルパー / ランタイムサーフェス
Lineplugin-sdk/line, plugin-sdk/line-core, plugin-sdk/line-runtime, plugin-sdk/line-surfaceバンドルLINEヘルパー / ランタイムサーフェス
IRCplugin-sdk/irc, plugin-sdk/irc-surfaceバンドルIRCヘルパーサーフェス
チャネル固有ヘルパーplugin-sdk/googlechat, plugin-sdk/zalouser, plugin-sdk/bluebubbles, plugin-sdk/bluebubbles-policy, plugin-sdk/mattermost, plugin-sdk/mattermost-policy, plugin-sdk/feishu-conversation, plugin-sdk/msteams, plugin-sdk/nextcloud-talk, plugin-sdk/nostr, plugin-sdk/tlon, plugin-sdk/twitchバンドルチャネル互換性 / ヘルパーサーフェス
認証 / プラグイン固有ヘルパーplugin-sdk/github-copilot-login, plugin-sdk/github-copilot-token, plugin-sdk/diagnostics-otel, plugin-sdk/diffs, plugin-sdk/llm-task, plugin-sdk/thread-ownership, plugin-sdk/voice-callバンドル機能 / プラグインヘルパーサーフェス。plugin-sdk/github-copilot-tokenは現在DEFAULT_COPILOT_API_BASE_URLderiveCopilotApiBaseUrlFromTokenresolveCopilotApiTokenをエクスポートします

登録API

register(api)コールバックは、以下のメソッドを持つOpenClawPluginApiオブジェクトを受け取ります。

ケイパビリティ登録

メソッド登録するもの
api.registerProvider(...)テキスト推論(LLM)
api.registerCliBackend(...)ローカルCLI推論バックエンド
api.registerChannel(...)メッセージングチャネル
api.registerSpeechProvider(...)テキスト読み上げ / STT合成
api.registerRealtimeTranscriptionProvider(...)ストリーミングのリアルタイム文字起こし
api.registerRealtimeVoiceProvider(...)双方向リアルタイム音声セッション
api.registerMediaUnderstandingProvider(...)画像 / 音声 / 動画解析
api.registerImageGenerationProvider(...)画像生成
api.registerMusicGenerationProvider(...)音楽生成
api.registerVideoGenerationProvider(...)動画生成
api.registerWebFetchProvider(...)Web fetch / スクレイププロバイダー
api.registerWebSearchProvider(...)Web検索

ツールとコマンド

メソッド登録するもの
api.registerTool(tool, opts?)agentツール(必須、または{ optional: true }
api.registerCommand(def)カスタムコマンド(LLMをバイパスする)

インフラストラクチャ

メソッド登録するもの
api.registerHook(events, handler, opts?)イベントhook
api.registerHttpRoute(params)Gateway HTTPエンドポイント
api.registerGatewayMethod(name, handler)Gateway RPCメソッド
api.registerCli(registrar, opts?)CLIサブコマンド
api.registerService(service)バックグラウンドサービス
api.registerInteractiveHandler(registration)interactive handler
api.registerMemoryPromptSupplement(builder)加算的なメモリ隣接プロンプトセクション
api.registerMemoryCorpusSupplement(adapter)加算的なメモリ検索 / 読み取りコーパス
予約済みのcore管理名前空間(config.*, exec.approvals.*, wizard.*, update.*)は、プラグインがより狭いGatewayメソッドスコープを割り当てようとしても、 常にoperator.adminのままです。 プラグイン所有メソッドには、プラグイン固有の接頭辞を優先してください。

CLI登録メタデータ

api.registerCli(registrar, opts?)は、2種類のトップレベルメタデータを受け取ります。
  • commands: registrarが所有する明示的なコマンドルート
  • descriptors: ルートCLIヘルプ、 ルーティング、および遅延プラグインCLI登録で使われる解析時コマンド記述子
プラグインコマンドを通常のルートCLIパスで遅延読み込みのままにしたい場合は、 そのregistrarが公開するすべてのトップレベルコマンドルートをカバーする descriptorsを提供してください。
api.registerCli(
  async ({ program }) => {
    const { registerMatrixCli } = await import("./src/cli.js");
    registerMatrixCli({ program });
  },
  {
    descriptors: [
      {
        name: "matrix",
        description: "Manage Matrix accounts, verification, devices, and profile state",
        hasSubcommands: true,
      },
    ],
  },
);
通常のルートCLI登録で遅延読み込みが不要な場合にのみ、 commandsを単独で使用してください。 この即時互換パスは引き続きサポートされていますが、解析時の遅延読み込みのための descriptorバックのプレースホルダーはインストールしません。

CLIバックエンド登録

api.registerCliBackend(...)を使うと、codex-cliのようなローカル AI CLIバックエンドのデフォルト設定をプラグインが所有できます。
  • バックエンドのidは、codex-cli/gpt-5のようなmodel ref内のプロバイダー接頭辞になります。
  • バックエンドconfigは、agents.defaults.cliBackends.<id>と同じ形状を使用します。
  • ユーザー設定が常に優先されます。OpenClawはCLI実行前に、プラグインのデフォルトの上へ agents.defaults.cliBackends.<id>をマージします。
  • マージ後にバックエンドが互換性書き換えを必要とする場合はnormalizeConfigを使用してください (たとえば古いフラグ形状の正規化など)。

排他的スロット

メソッド登録するもの
api.registerContextEngine(id, factory)コンテキストエンジン(一度に1つだけアクティブ)。assemble()コールバックはavailableToolscitationsModeを受け取るため、エンジンはそれに応じてプロンプト追加を調整できます。
api.registerMemoryCapability(capability)統合メモリケイパビリティ
api.registerMemoryPromptSection(builder)メモリプロンプトセクションビルダー
api.registerMemoryFlushPlan(resolver)メモリflush planリゾルバー
api.registerMemoryRuntime(runtime)メモリランタイムアダプター

メモリ埋め込みアダプター

メソッド登録するもの
api.registerMemoryEmbeddingProvider(adapter)アクティブなプラグイン向けのメモリ埋め込みアダプター
  • registerMemoryCapabilityは、推奨される排他的メモリプラグインAPIです。
  • registerMemoryCapabilitypublicArtifacts.listArtifacts(...)も公開できるため、 コンパニオンプラグインは特定のメモリプラグインの非公開レイアウトに入り込むのではなく、 openclaw/plugin-sdk/memory-host-core経由でエクスポートされたメモリアーティファクトを利用できます。
  • registerMemoryPromptSectionregisterMemoryFlushPlan、および registerMemoryRuntimeは、古い互換性のある排他的メモリプラグインAPIです。
  • registerMemoryEmbeddingProviderを使うと、アクティブなメモリプラグインは1つ以上の 埋め込みアダプターID(たとえばopenaigemini、またはカスタムの プラグイン定義ID)を登録できます。
  • agents.defaults.memorySearch.provideragents.defaults.memorySearch.fallbackのようなユーザー設定は、 それらの登録済みアダプターIDに対して解決されます。

イベントとライフサイクル

メソッド役割
api.on(hookName, handler, opts?)型付きライフサイクルhook
api.onConversationBindingResolved(handler)会話バインディングコールバック

Hook判定セマンティクス

  • before_tool_call: { block: true }を返すと終端です。いずれかのハンドラーがこれを設定すると、より低優先度のハンドラーはスキップされます。
  • before_tool_call: { block: false }を返しても判定なしとして扱われます(blockを省略した場合と同じ)であり、上書きではありません。
  • before_install: { block: true }を返すと終端です。いずれかのハンドラーがこれを設定すると、より低優先度のハンドラーはスキップされます。
  • before_install: { block: false }を返しても判定なしとして扱われます(blockを省略した場合と同じ)であり、上書きではありません。
  • reply_dispatch: { handled: true, ... }を返すと終端です。いずれかのハンドラーがdispatchを引き受けると、より低優先度のハンドラーとデフォルトのモデルdispatchパスはスキップされます。
  • message_sending: { cancel: true }を返すと終端です。いずれかのハンドラーがこれを設定すると、より低優先度のハンドラーはスキップされます。
  • message_sending: { cancel: false }を返しても判定なしとして扱われます(cancelを省略した場合と同じ)であり、上書きではありません。

APIオブジェクトのフィールド

フィールド説明
api.idstringプラグインID
api.namestring表示名
api.versionstring?プラグインバージョン(任意)
api.descriptionstring?プラグイン説明(任意)
api.sourcestringプラグインソースパス
api.rootDirstring?プラグインルートディレクトリ(任意)
api.configOpenClawConfig現在の設定スナップショット(利用可能な場合はアクティブなインメモリランタイムスナップショット)
api.pluginConfigRecord<string, unknown>plugins.entries.<id>.configからのプラグイン固有設定
api.runtimePluginRuntimeランタイムヘルパー
api.loggerPluginLoggerスコープ付きlogger(debug, info, warn, error
api.registrationModePluginRegistrationMode現在の読み込みモード。"setup-runtime"は、完全なエントリ起動 / セットアップ前の軽量ウィンドウです
api.resolvePath(input)(string) => stringプラグインルート相対でパスを解決する

内部モジュール規約

プラグイン内部では、内部インポートにローカルバレルファイルを使用してください。
my-plugin/
  api.ts            # 外部利用者向け公開エクスポート
  runtime-api.ts    # 内部専用ランタイムエクスポート
  index.ts          # プラグインエントリポイント
  setup-entry.ts    # 軽量セットアップ専用エントリ(任意)
本番コードから、自分自身のプラグインをopenclaw/plugin-sdk/<your-plugin> 経由でインポートしてはいけません。内部インポートは./api.tsまたは ./runtime-api.ts経由にしてください。SDKパスは外部契約専用です。
ファサード読み込みのバンドルプラグイン公開サーフェス(api.tsruntime-api.tsindex.tssetup-entry.ts、および類似の公開エントリファイル)は、現在、 OpenClawがすでに実行中であればアクティブなランタイム設定スナップショットを優先します。 まだランタイムスナップショットが存在しない場合は、ディスク上の解決済み設定ファイルへフォールバックします。 プロバイダープラグインは、ヘルパーが意図的にプロバイダー固有で、 まだ汎用SDKサブパスに属さない場合に、狭いプラグインローカル契約バレルを公開することもできます。 現在のバンドル例: Anthropicプロバイダーは、Anthropicのbeta-headerと service_tierロジックを汎用plugin-sdk/*契約へ昇格させる代わりに、 Claude streamヘルパーを独自の公開api.ts / contract-api.tsサーフェスに保持しています。 現在のその他のバンドル例:
  • @openclaw/openai-provider: api.tsはプロバイダービルダー、 default-modelヘルパー、およびリアルタイムプロバイダービルダーをエクスポートします
  • @openclaw/openrouter-provider: api.tsはプロバイダービルダーに加えて オンボーディング / 設定ヘルパーをエクスポートします
拡張機能の本番コードも、openclaw/plugin-sdk/<other-plugin>の インポートを避けるべきです。ヘルパーが本当に共有されるべきものであれば、 2つのプラグインを結合してしまうのではなく、openclaw/plugin-sdk/speech.../provider-model-shared、または別の ケイパビリティ指向サーフェスのような中立的なSDKサブパスへ昇格してください。

関連

  • Entry PointsdefinePluginEntrydefineChannelPluginEntryのオプション
  • Runtime Helpersapi.runtime名前空間の完全リファレンス
  • Setup and Config — パッケージング、マニフェスト、設定スキーマ
  • Testing — テストユーティリティとlintルール
  • SDK Migration — 非推奨サーフェスからの移行
  • Plugin Internals — 詳細なアーキテクチャとケイパビリティモデル