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

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

OpenClaw は、広範な後方互換性レイヤーから、焦点を絞った文書化済み import を備えるモダンな Plugin アーキテクチャへ移行しました。あなたの Plugin が新しいアーキテクチャ以前に 作られたものなら、このガイドが移行を支援します。

何が変わるのか

古い Plugin システムは、Plugin が単一のエントリーポイントから必要なものを 何でも import できる、2 つの広く開かれたサーフェスを提供していました。
  • openclaw/plugin-sdk/compat - 数十個のヘルパーを再エクスポートする単一の import。 新しい Plugin アーキテクチャの構築中に、古いフックベースの Plugin を動かし続けるために 導入されました。
  • openclaw/plugin-sdk/infra-runtime - システムイベント、heartbeat 状態、配信キュー、 fetch/proxy ヘルパー、ファイルヘルパー、承認型、無関係なユーティリティを混在させた 広範なランタイムヘルパーバレル。
  • openclaw/plugin-sdk/config-runtime - 移行期間中、非推奨の直接 load/write ヘルパーを まだ含んでいる広範な設定互換バレル。
  • openclaw/extension-api - 埋め込みエージェントランナーのようなホスト側ヘルパーへ Plugin が直接アクセスできるようにするブリッジ。
  • api.registerEmbeddedExtensionFactory(...) - tool_result などの埋め込みランナーイベントを 監視できた、削除済みの Pi 専用バンドル拡張フック。
広範な import サーフェスは現在 非推奨 です。ランタイムではまだ動作しますが、 新しい Plugin はこれらを使ってはならず、既存の Plugin は次のメジャーリリースで 削除される前に移行する必要があります。Pi 専用の埋め込み拡張ファクトリ登録 API は 削除されました。代わりに tool-result ミドルウェアを使用してください。 OpenClaw は、置き換えを導入する同じ変更で、文書化済みの Plugin 動作を削除したり 再解釈したりしません。破壊的な契約変更は、まず互換アダプター、診断、ドキュメント、 非推奨期間を経る必要があります。これは SDK import、manifest フィールド、セットアップ API、 フック、ランタイム登録動作に適用されます。
後方互換性レイヤーは将来のメジャーリリースで削除されます。 これらのサーフェスからまだ import している Plugin は、その時点で壊れます。 Pi 専用の埋め込み拡張ファクトリ登録は、すでに読み込まれなくなっています。

なぜ変更されたのか

古いアプローチには問題がありました。
  • 起動が遅い - 1 つのヘルパーを import すると、数十個の無関係なモジュールが読み込まれる
  • 循環依存 - 広範な再エクスポートにより import サイクルを作りやすかった
  • 不明確な API サーフェス - どの export が安定版で、どれが内部用かを判別する方法がなかった
モダンな Plugin SDK はこれを解決します。各 import パス(openclaw/plugin-sdk/\<subpath\>)は、 明確な目的と文書化済みの契約を持つ、小さく自己完結したモジュールです。 バンドルチャンネル向けのレガシーなプロバイダー利便性シームも削除されました。 チャンネル名付きのヘルパーシームは、安定した Plugin 契約ではなく、非公開のモノレポ内 ショートカットでした。代わりに、狭い汎用 SDK サブパスを使用してください。バンドル Plugin ワークスペース内では、プロバイダー所有のヘルパーをその Plugin 自身の api.ts または runtime-api.ts に置いてください。 現在のバンドルプロバイダー例:
  • Anthropic は Claude 固有のストリームヘルパーを自分の api.ts / contract-api.ts シームに保持します
  • OpenAI はプロバイダービルダー、デフォルトモデルヘルパー、realtime プロバイダー ビルダーを自分の api.ts に保持します
  • OpenRouter はプロバイダービルダーとオンボーディング/設定ヘルパーを自分の api.ts に保持します

Talk と realtime 音声の移行計画

Realtime 音声、電話、会議、ブラウザー Talk コードは、サーフェスローカルなターン管理から、 openclaw/plugin-sdk/realtime-voice が export する共有 Talk セッションコントローラーへ移行しています。 新しいコントローラーは、共通の Talk イベントエンベロープ、アクティブターン状態、キャプチャ状態、 出力音声状態、最近のイベント履歴、古いターンの拒否を所有します。プロバイダー Plugin は ベンダー固有の realtime セッションを引き続き所有し、サーフェス Plugin はキャプチャ、再生、 電話、会議の癖を引き続き所有する必要があります。 この Talk 移行は、意図的に破壊的かつクリーンなものです。
  1. 共有コントローラー/ランタイムプリミティブを plugin-sdk/realtime-voice に保持します。
  2. バンドルサーフェスを共有コントローラーへ移動します: ブラウザーリレー、 managed-room ハンドオフ、voice-call realtime、voice-call streaming STT、Google Meet realtime、ネイティブ push-to-talk。
  3. 古い Talk RPC ファミリーを最終的な talk.session.*talk.client.* API に置き換えます。
  4. Gateway hello-ok.features.events で 1 つのライブ Talk イベントチャンネル talk.event を通知します。
  5. 古い realtime HTTP エンドポイントと、リクエスト時の instruction override パスを削除します。
新しいコードは、低レベルアダプターまたはテストフィクスチャを実装している場合を除き、 createTalkEventSequencer(...) を直接呼び出すべきではありません。共有コントローラーを優先してください。 これにより、ターン ID なしでターンスコープイベントが送信されることを防ぎ、古い turnEnd / turnCancel 呼び出しが新しいアクティブターンを消去することを防ぎ、出力音声ライフサイクル イベントを電話、会議、ブラウザーリレー、managed-room ハンドオフ、ネイティブ Talk クライアント間で 一貫させます。 対象となる公開 API 形状は次のとおりです。
// Gateway-owned Talk session API.
await gateway.request("talk.session.create", {
  mode: "realtime",
  transport: "gateway-relay",
  brain: "agent-consult",
  sessionKey: "main",
});
await gateway.request("talk.session.appendAudio", { sessionId, audioBase64 });
await gateway.request("talk.session.cancelOutput", { sessionId, reason: "barge-in" });
await gateway.request("talk.session.submitToolResult", {
  sessionId,
  callId,
  result: { status: "working" },
  options: { willContinue: true },
});
await gateway.request("talk.session.submitToolResult", {
  sessionId,
  callId,
  result: { status: "already_delivered" },
  options: { suppressResponse: true },
});
await gateway.request("talk.session.submitToolResult", { sessionId, callId, result });
await gateway.request("talk.session.close", { sessionId });

// Client-owned provider session API.
await gateway.request("talk.client.create", {
  mode: "realtime",
  transport: "webrtc",
  brain: "agent-consult",
  sessionKey: "main",
});
await gateway.request("talk.client.toolCall", { sessionKey, callId, name, args });
ブラウザー所有の WebRTC/provider-websocket セッションは talk.client.create を使用します。 これは、ブラウザーがプロバイダーのネゴシエーションとメディアトランスポートを所有し、Gateway が 認証情報、instructions、ツールポリシーを所有するためです。talk.session.* は、gateway-relay realtime、 gateway-relay transcription、managed-room ネイティブ STT/TTS セッション向けの共通 Gateway 管理サーフェスです。 talk.provider / talk.providers の横に realtime selector を配置していたレガシー設定は、 openclaw doctor --fix で修復する必要があります。ランタイム Talk は、speech/TTS プロバイダー設定を realtime プロバイダー設定として再解釈しません。 サポートされる talk.session.create の組み合わせは、意図的に小さくなっています。
モードトランスポートブレイン所有者メモ
realtimegateway-relayagent-consultGatewayGateway を介してブリッジされる全二重プロバイダー音声。ツール呼び出しは agent-consult ツール経由でルーティングされます。
transcriptiongateway-relaynoneGatewayStreaming STT のみ。呼び出し元は入力音声を送信し、transcript イベントを受信します。
stt-ttsmanaged-roomagent-consultネイティブ/client roomクライアントがキャプチャ/再生を所有し、Gateway がターン状態を所有する push-to-talk と walkie-talkie スタイルの room。
stt-ttsmanaged-roomdirect-toolsネイティブ/client roomGateway ツールアクションを直接実行する、信頼済みファーストパーティサーフェス向けの管理者専用 room モード。
削除されたメソッド対応表:
talk.realtime.sessiontalk.client.create
talk.realtime.toolCalltalk.client.toolCall
talk.realtime.relayAudiotalk.session.appendAudio
talk.realtime.relayCanceltalk.session.cancelOutput または talk.session.cancelTurn
talk.realtime.relayToolResulttalk.session.submitToolResult
talk.realtime.relayStoptalk.session.close
talk.transcription.sessiontalk.session.create({ mode: "transcription" })
talk.transcription.relayAudiotalk.session.appendAudio
talk.transcription.relayCanceltalk.session.cancelTurn
talk.transcription.relayStoptalk.session.close
talk.handoff.createtalk.session.create({ transport: "managed-room" })
talk.handoff.jointalk.session.join
talk.handoff.revoketalk.session.close
統一された制御語彙も、意図的に狭くなっています。
メソッド適用対象契約
talk.session.appendAudiorealtime/gateway-relay, transcription/gateway-relay同じ Gateway 接続が所有するプロバイダーセッションへ base64 PCM 音声チャンクを追加します。
talk.session.startTurnstt-tts/managed-roommanaged-room ユーザーターンを開始します。
talk.session.endTurnstt-tts/managed-room古いターンの検証後にアクティブターンを終了します。
talk.session.cancelTurnすべての Gateway 所有セッションターンに対するアクティブなキャプチャ/プロバイダー/エージェント/TTS 作業をキャンセルします。
talk.session.cancelOutputrealtime/gateway-relay必ずしもユーザーターンを終了せずに、アシスタントの音声出力を停止します。
talk.session.submitToolResultrealtime/gateway-relayリレーが送信したプロバイダーツール呼び出しを完了します。中間出力には options.willContinue を、別のアシスタント応答なしで呼び出しを満たすには options.suppressResponse を渡します。
talk.session.closeすべての統一セッションリレーセッションを停止するか managed-room 状態を取り消し、その後、統一セッション ID を忘れます。
これを機能させるために、プロバイダーやプラットフォーム固有の特例をコアに導入しない。 コアは Talk セッションのセマンティクスを所有する。Provider Plugin はベンダーセッションのセットアップを所有する。 Voice-call と Google Meet はテレフォニー/会議アダプターを所有する。ブラウザーとネイティブ アプリはデバイスのキャプチャ/再生 UX を所有する。

互換性ポリシー

外部 Plugin の互換性対応は、次の順序に従う。
  1. 新しいコントラクトを追加する
  2. 古い動作を互換性アダプター経由で接続したままにする
  3. 古いパスと置き換え先を示す診断または警告を出力する
  4. テストで両方のパスをカバーする
  5. 非推奨化と移行パスを文書化する
  6. 予告した移行期間の後にのみ削除する。通常はメジャーリリースで行う
メンテナーは現在の移行キューを pnpm plugins:boundary-report で監査できる。コンパクトな件数には pnpm plugins:boundary-report:summary を使用し、1 つの Plugin または互換性オーナーには --owner <id> を使用し、期限到来の互換性レコード、オーナー横断の予約済み SDK インポート、または未使用の予約済み SDK サブパスで CI ゲートを失敗させるべき場合は pnpm plugins:boundary-report:ci を使用する。このレポートは、非推奨の互換性レコードを削除日ごとにグループ化し、ローカルのコード/ドキュメント参照を数え、オーナー横断の予約済み SDK インポートを明示し、プライベートなメモリホスト SDK ブリッジを要約することで、互換性のクリーンアップが場当たり的な検索に依存せず明示的に保たれるようにする。予約済み SDK サブパスには、追跡されたオーナー使用が必要である。未使用の予約済みヘルパーエクスポートは公開 SDK から削除するべきである。 マニフェストフィールドがまだ受け付けられている場合、Plugin 作者はドキュメントと診断が別の指示をするまで使い続けることができる。新しいコードでは文書化された置き換え先を優先するべきだが、既存の Plugin が通常のマイナーリリース中に壊れてはならない。

移行方法

1

ランタイム設定の読み込み/書き込みヘルパーを移行する

バンドル Plugin は api.runtime.config.loadConfig()api.runtime.config.writeConfigFile(...) を直接呼び出すのをやめるべきである。アクティブな呼び出しパスにすでに渡されている設定を優先する。現在のプロセススナップショットが必要な長寿命ハンドラーは api.runtime.config.current() を使用できる。長寿命のエージェントツールは、設定書き込み前に作成されたツールでも更新後のランタイム設定を参照できるように、execute 内でツールコンテキストの ctx.getRuntimeConfig() を使用するべきである。設定書き込みはトランザクションヘルパーを経由し、書き込み後ポリシーを選択しなければならない。
await api.runtime.config.mutateConfigFile({
  afterWrite: { mode: "auto" },
  mutate(draft) {
    draft.plugins ??= {};
  },
});
呼び出し元が、その変更にはクリーンな Gateway 再起動が必要だと分かっている場合は afterWrite: { mode: "restart", reason: "..." } を使用し、呼び出し元がフォローアップを所有し、リロードプランナーを意図的に抑制したい場合にのみ afterWrite: { mode: "none", reason: "..." } を使用する。 ミューテーション結果には、テストとロギング用の型付き followUp サマリーが含まれる。 Gateway は引き続き、再起動の適用またはスケジュールを担当する。 loadConfigwriteConfigFile は移行期間中、外部 Plugin 向けの非推奨互換性ヘルパーとして残り、 runtime-config-load-write 互換性コードで一度だけ警告する。バンドル Plugin とリポジトリのランタイムコードは pnpm check:deprecated-api-usagepnpm check:no-runtime-action-load-config のスキャナーガードレールで保護される。新しい本番 Plugin での使用は即座に失敗し、直接の設定書き込みも失敗し、Gateway サーバーメソッドはリクエストランタイムスナップショットを使わなければならず、ランタイムのチャンネル send/action/client ヘルパーは境界から設定を受け取らなければならず、長寿命ランタイムモジュールには許可されたアンビエント loadConfig() 呼び出しが 0 件でなければならない。新しい Plugin コードでは、広範な openclaw/plugin-sdk/config-runtime 互換性バレルのインポートも避けるべきである。作業に一致する狭い SDK サブパスを使用する。
必要なものインポート
OpenClawConfig などの設定型openclaw/plugin-sdk/config-contracts
読み込み済み設定のアサーションと Plugin エントリ設定の検索openclaw/plugin-sdk/plugin-config-runtime
現在のランタイムスナップショットの読み取りopenclaw/plugin-sdk/runtime-config-snapshot
設定書き込みopenclaw/plugin-sdk/config-mutation
セッションストアヘルパーopenclaw/plugin-sdk/session-store-runtime
Markdown テーブル設定openclaw/plugin-sdk/markdown-table-runtime
グループポリシーランタイムヘルパーopenclaw/plugin-sdk/runtime-group-policy
シークレット入力の解決openclaw/plugin-sdk/secret-input-runtime
モデル/セッションのオーバーライドopenclaw/plugin-sdk/model-session-runtime
バンドル Plugin とそのテストは、広範なバレルに対してスキャナーでガードされているため、インポートとモックは必要な動作に対してローカルに保たれる。広範なバレルは外部互換性のためにまだ存在するが、新しいコードはそれに依存するべきではない。
2

Pi ツール結果拡張をミドルウェアに移行する

バンドル Plugin は、Pi 専用の api.registerEmbeddedExtensionFactory(...) ツール結果ハンドラーを、ランタイム中立のミドルウェアに置き換えなければならない。
// Pi and Codex runtime dynamic tools
api.registerAgentToolResultMiddleware(async (event) => {
  return compactToolResult(event);
}, {
  runtimes: ["pi", "codex"],
});
同時に Plugin マニフェストも更新する。
{
  "contracts": {
    "agentToolResultMiddleware": ["pi", "codex"]
  }
}
外部 Plugin はツール結果ミドルウェアを登録できない。これは、モデルが見る前に高信頼のツール出力を書き換えられるためである。
3

approval-native ハンドラーを capability facts に移行する

承認対応チャンネル Plugin は、現在、approvalCapability.nativeRuntime と共有ランタイムコンテキストレジストリを通じて、ネイティブ承認動作を公開する。主な変更点:
  • approvalCapability.handler.loadRuntime(...)approvalCapability.nativeRuntime に置き換える
  • 承認固有の認証/配信を、レガシーの plugin.auth / plugin.approvals 配線から approvalCapability へ移す
  • ChannelPlugin.approvals は公開チャンネル Plugin コントラクトから削除された。delivery/native/render フィールドは approvalCapability に移す
  • plugin.auth はチャンネルのログイン/ログアウトフロー専用として残る。そこにある承認認証フックは、コアではもう読み取られない
  • クライアント、トークン、Bolt アプリなど、チャンネルが所有するランタイムオブジェクトは openclaw/plugin-sdk/channel-runtime-context を通じて登録する
  • ネイティブ承認ハンドラーから Plugin 所有のリルート通知を送信しない。コアは実際の配信結果から routed-elsewhere 通知を所有するようになった
  • channelRuntimecreateChannelManager(...) に渡すときは、実際の createPluginRuntime().channel サーフェスを提供する。部分的なスタブは拒否される。
現在の承認 capability レイアウトについては /plugins/sdk-channel-plugins を参照する。
4

Windows ラッパーフォールバック動作を監査する

Plugin が openclaw/plugin-sdk/windows-spawn を使用している場合、解決されない Windows .cmd/.bat ラッパーは、明示的に allowShellFallback: true を渡さない限り、現在はフェイルクローズする。
// Before
const program = applyWindowsSpawnProgramPolicy({ candidate });

// After
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // Only set this for trusted compatibility callers that intentionally
  // accept shell-mediated fallback.
  allowShellFallback: true,
});
呼び出し元がシェルフォールバックに意図的に依存していない場合は、 allowShellFallback を設定せず、代わりにスローされたエラーを処理する。
5

非推奨インポートを見つける

Plugin 内で、いずれかの非推奨サーフェスからのインポートを検索する。
grep -r "plugin-sdk/compat" my-plugin/
grep -r "plugin-sdk/infra-runtime" my-plugin/
grep -r "plugin-sdk/config-runtime" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
6

焦点を絞ったインポートに置き換える

古いサーフェスからの各エクスポートは、特定の現代的なインポートパスに対応する。
// Before (deprecated backwards-compatibility layer)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// After (modern focused imports)
import { createChannelReplyPipeline } from "openclaw/plugin-sdk/channel-reply-pipeline";
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
ホスト側ヘルパーについては、直接インポートする代わりに、注入された Plugin ランタイムを使用する。
// Before (deprecated extension-api bridge)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// After (injected runtime)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
同じパターンは、他のレガシーブリッジヘルパーにも適用される。
古いインポート現代的な同等物
resolveAgentDirapi.runtime.agent.resolveAgentDir
resolveAgentWorkspaceDirapi.runtime.agent.resolveAgentWorkspaceDir
resolveAgentIdentityapi.runtime.agent.resolveAgentIdentity
resolveThinkingDefaultapi.runtime.agent.resolveThinkingDefault
resolveAgentTimeoutMsapi.runtime.agent.resolveAgentTimeoutMs
ensureAgentWorkspaceapi.runtime.agent.ensureAgentWorkspace
セッションストアヘルパーapi.runtime.agent.session.*
7

広範な infra-runtime インポートを置き換える

openclaw/plugin-sdk/infra-runtime は外部互換性のためにまだ存在するが、新しいコードでは実際に必要な焦点を絞ったヘルパーサーフェスをインポートするべきである。
必要なものインポート
システムイベントキューヘルパーopenclaw/plugin-sdk/system-event-runtime
Heartbeat ウェイク、イベント、可視性ヘルパーopenclaw/plugin-sdk/heartbeat-runtime
保留中の配信キューのドレインopenclaw/plugin-sdk/delivery-queue-runtime
チャンネルアクティビティテレメトリopenclaw/plugin-sdk/channel-activity-runtime
インメモリ重複排除キャッシュopenclaw/plugin-sdk/dedupe-runtime
安全なローカルファイル/メディアパスヘルパーopenclaw/plugin-sdk/file-access-runtime
ディスパッチャー対応 fetchopenclaw/plugin-sdk/runtime-fetch
プロキシとガード付き fetch ヘルパーopenclaw/plugin-sdk/fetch-runtime
SSRF ディスパッチャーポリシー型openclaw/plugin-sdk/ssrf-dispatcher
承認リクエスト/解決型openclaw/plugin-sdk/approval-runtime
承認返信ペイロードとコマンドヘルパーopenclaw/plugin-sdk/approval-reply-runtime
エラー整形ヘルパーopenclaw/plugin-sdk/error-runtime
トランスポート準備完了待機openclaw/plugin-sdk/transport-ready-runtime
セキュアトークンヘルパーopenclaw/plugin-sdk/secure-random-runtime
制限付き非同期タスク並行性openclaw/plugin-sdk/concurrency-runtime
数値型強制openclaw/plugin-sdk/number-runtime
プロセスローカル非同期ロックopenclaw/plugin-sdk/async-lock-runtime
ファイルロックopenclaw/plugin-sdk/file-lock
バンドル Plugin は infra-runtime に対してスキャナーでガードされているため、リポジトリコードが広範なバレルへ逆戻りすることはできない。
8

チャンネルルートヘルパーを移行する

新しいチャンネルルートコードでは openclaw/plugin-sdk/channel-route を使用するべきである。 古い route-key 名と comparable-target 名は移行期間中、互換性エイリアスとして残るが、新しい Plugin は動作を直接説明するルート名を使用するべきである:
古いヘルパー最新のヘルパー
channelRouteIdentityKey(...)channelRouteDedupeKey(...)
channelRouteKey(...)channelRouteCompactKey(...)
ComparableChannelTargetChannelRouteParsedTarget
resolveComparableTargetForChannel(...)resolveRouteTargetForChannel(...)
resolveComparableTargetForLoadedChannel(...)resolveRouteTargetForLoadedChannel(...)
comparableChannelTargetsMatch(...)channelRouteTargetsMatchExact(...)
comparableChannelTargetsShareRoute(...)channelRouteTargetsShareConversation(...)
最新のルートヘルパーは、ネイティブ承認、返信抑制、受信重複排除、 cron配信、セッションルーティング全体で、{ channel, to, accountId, threadId }を 一貫して正規化します。Pluginがカスタムターゲット文法を所有している場合は、 resolveChannelRouteTargetWithParser(...)を使用して、その パーサーを同じルートターゲット契約に適合させます。
9

Build and test

pnpm build
pnpm test -- my-plugin/

インポートパスリファレンス

インポートパス目的主なエクスポート
plugin-sdk/plugin-entry正規の Plugin エントリーヘルパーdefinePluginEntry
plugin-sdk/coreチャンネルエントリー定義/ビルダー向けのレガシー包括再エクスポートdefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaルート設定スキーマのエクスポートOpenClawSchema
plugin-sdk/provider-entry単一プロバイダー用エントリーヘルパーdefineSingleProviderPluginEntry
plugin-sdk/channel-coreチャンネルエントリー定義とビルダーに特化defineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setup共有セットアップウィザードヘルパー許可リストプロンプト、セットアップ状態ビルダー
plugin-sdk/setup-runtimeセットアップ時ランタイムヘルパーインポート安全なセットアップパッチアダプター、ルックアップノートヘルパー、promptResolvedAllowFrom, splitSetupEntries, 委譲セットアッププロキシ
plugin-sdk/setup-adapter-runtime非推奨のセットアップアダプターエイリアスplugin-sdk/setup-runtime を使用
plugin-sdk/setup-toolsセットアップツールヘルパーformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-core複数アカウントヘルパーアカウントリスト/設定/アクションゲートヘルパー
plugin-sdk/account-idアカウントIDヘルパーDEFAULT_ACCOUNT_ID, アカウントIDの正規化
plugin-sdk/account-resolutionアカウント検索ヘルパーアカウント検索 + デフォルトフォールバックヘルパー
plugin-sdk/account-helpers範囲を絞ったアカウントヘルパーアカウントリスト/アカウントアクションヘルパー
plugin-sdk/channel-setupセットアップウィザードアダプターcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, および DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingDM ペアリングプリミティブcreateChannelPairingController
plugin-sdk/channel-reply-pipeline返信プレフィックス、入力中表示、ソース配信の配線createChannelReplyPipeline, resolveChannelSourceReplyDeliveryMode
plugin-sdk/channel-config-helpers設定アダプターファクトリと DM アクセスヘルパーcreateHybridChannelConfigAdapter, resolveChannelDmAccess, resolveChannelDmAllowFrom, resolveChannelDmPolicy, normalizeChannelDmPolicy, normalizeLegacyDmAliases
plugin-sdk/channel-config-schema設定スキーマビルダー共有チャンネル設定スキーマプリミティブと汎用ビルダーのみ
plugin-sdk/bundled-channel-config-schema同梱設定スキーマOpenClaw が保守する同梱 Plugin のみ。新しい Plugin は Plugin ローカルのスキーマを定義する必要があります
plugin-sdk/channel-config-schema-legacy非推奨の同梱設定スキーマ互換性エイリアスのみ。保守中の同梱 Plugin には plugin-sdk/bundled-channel-config-schema を使用
plugin-sdk/telegram-command-configTelegram コマンド設定ヘルパーコマンド名の正規化、説明のトリミング、重複/競合の検証
plugin-sdk/channel-policyグループ/DM ポリシー解決resolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleアカウント状態とドラフトストリームのライフサイクルヘルパーcreateAccountStatusSink, ドラフトプレビューの確定ヘルパー
plugin-sdk/inbound-envelopeインバウンドエンベロープヘルパー共有ルート + エンベロープビルダーヘルパー
plugin-sdk/inbound-reply-dispatchインバウンド返信ヘルパー共有の記録およびディスパッチヘルパー
plugin-sdk/messaging-targetsメッセージングターゲットの解析ターゲット解析/マッチングヘルパー
plugin-sdk/outbound-mediaアウトバウンドメディアヘルパー共有アウトバウンドメディア読み込み
plugin-sdk/outbound-send-depsアウトバウンド送信依存関係ヘルパー完全なアウトバウンドランタイムをインポートせずに使える軽量な resolveOutboundSendDep 検索
plugin-sdk/outbound-runtimeアウトバウンドランタイムヘルパーアウトバウンド配信、ID/送信デリゲート、セッション、整形、ペイロード計画ヘルパー
plugin-sdk/thread-bindings-runtimeスレッドバインディングヘルパースレッドバインディングのライフサイクルとアダプターヘルパー
plugin-sdk/agent-media-payloadレガシーメディアペイロードヘルパーレガシーフィールドレイアウト向けエージェントメディアペイロードビルダー
plugin-sdk/channel-runtime非推奨の互換性シムレガシーチャンネルランタイムユーティリティのみ
plugin-sdk/channel-send-result送信結果型返信結果型
plugin-sdk/runtime-store永続 Plugin ストレージcreatePluginRuntimeStore
plugin-sdk/runtime広範なランタイムヘルパーランタイム/ログ/バックアップ/Plugin インストールヘルパー
plugin-sdk/runtime-env範囲を絞ったランタイム環境ヘルパーロガー/ランタイム環境、タイムアウト、再試行、バックオフヘルパー
plugin-sdk/plugin-runtime共有 Plugin ランタイムヘルパーPlugin コマンド/フック/http/インタラクティブヘルパー
plugin-sdk/hook-runtimeフックパイプラインヘルパー共有 Webhook/内部フックパイプラインヘルパー
plugin-sdk/lazy-runtime遅延ランタイムヘルパーcreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeプロセスヘルパー共有 exec ヘルパー
plugin-sdk/cli-runtimeCLI ランタイムヘルパーコマンド整形、待機、バージョンヘルパー
plugin-sdk/gateway-runtimeGateway ヘルパーGateway クライアント、イベントループ準備完了の開始ヘルパー、チャンネル状態パッチヘルパー
plugin-sdk/config-runtime非推奨の設定互換性シムconfig-contracts, plugin-config-runtime, runtime-config-snapshot, config-mutation を推奨
plugin-sdk/telegram-command-configTelegram コマンドヘルパー同梱 Telegram コントラクトサーフェスが利用できない場合のフォールバック安定な Telegram コマンド検証ヘルパー
plugin-sdk/approval-runtime承認プロンプトヘルパーExec/Plugin 承認ペイロード、承認ケイパビリティ/プロファイルヘルパー、ネイティブ承認ルーティング/ランタイムヘルパー、構造化された承認表示パス整形
plugin-sdk/approval-auth-runtime承認認証ヘルパー承認者解決、同一チャットアクション認証
plugin-sdk/approval-client-runtime承認クライアントヘルパーネイティブ exec 承認プロファイル/フィルターヘルパー
plugin-sdk/approval-delivery-runtime承認配信ヘルパーネイティブ承認ケイパビリティ/配信アダプター
plugin-sdk/approval-gateway-runtime承認 Gateway ヘルパー共有承認 Gateway 解決ヘルパー
plugin-sdk/approval-handler-adapter-runtime承認アダプターヘルパーホットなチャンネルエントリーポイント向けの軽量ネイティブ承認アダプター読み込みヘルパー
plugin-sdk/approval-handler-runtime承認ハンドラーヘルパーより広範な承認ハンドラーランタイムヘルパー。十分な場合は、より狭いアダプター/Gateway の継ぎ目を推奨
plugin-sdk/approval-native-runtime承認ターゲットヘルパーネイティブ承認ターゲット/アカウントバインディングヘルパー
plugin-sdk/approval-reply-runtime承認返信ヘルパーExec/Plugin 承認返信ペイロードヘルパー
plugin-sdk/channel-runtime-contextチャンネルランタイムコンテキストヘルパー汎用チャンネルランタイムコンテキストの登録/取得/監視ヘルパー
plugin-sdk/security-runtimeセキュリティヘルパー共有信頼、DM ゲーティング、ルート境界付きファイル/パスヘルパー、外部コンテンツ、シークレット収集ヘルパー
plugin-sdk/ssrf-policySSRF ポリシーヘルパーホスト許可リストとプライベートネットワークポリシーヘルパー
plugin-sdk/ssrf-runtimeSSRF ランタイムヘルパー固定ディスパッチャー、保護付き fetch、SSRF ポリシーヘルパー
plugin-sdk/system-event-runtimeシステムイベントヘルパーenqueueSystemEvent, peekSystemEventEntries
plugin-sdk/heartbeat-runtimeHeartbeat ヘルパーHeartbeat ウェイク、イベント、可視性ヘルパー
plugin-sdk/delivery-queue-runtime配信キューヘルパーdrainPendingDeliveries
plugin-sdk/channel-activity-runtimeチャンネルアクティビティヘルパーrecordChannelActivity
plugin-sdk/dedupe-runtime重複排除ヘルパーメモリ内重複排除キャッシュ
plugin-sdk/file-access-runtimeファイルアクセスヘルパー安全なローカルファイル/メディアパスヘルパー
plugin-sdk/transport-ready-runtimeトランスポート準備完了ヘルパーwaitForTransportReady
plugin-sdk/collection-runtime境界付きキャッシュヘルパーpruneMapToMaxSize
plugin-sdk/diagnostic-runtime診断ゲーティングヘルパーisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeエラー整形ヘルパーformatUncaughtError, isApprovalNotFoundError, エラーグラフヘルパー
plugin-sdk/fetch-runtimeラップされた fetch/プロキシヘルパーresolveFetch, プロキシヘルパー、EnvHttpProxyAgent オプションヘルパー
plugin-sdk/host-runtimeホスト正規化ヘルパーnormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtime再試行ヘルパーRetryConfig, retryAsync, ポリシーランナー
plugin-sdk/allow-from許可リスト整形formatAllowFromLowercase
plugin-sdk/allowlist-resolution許可リスト入力マッピングmapAllowlistResolutionInputs
plugin-sdk/command-authコマンドゲーティングとコマンドサーフェスヘルパーresolveControlCommandGate, 送信者認可ヘルパー、動的引数メニュー整形を含むコマンドレジストリヘルパー
plugin-sdk/command-statusコマンド状態/ヘルプレンダラーbuildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage
plugin-sdk/secret-inputシークレット入力解析シークレット入力ヘルパー
plugin-sdk/webhook-ingressWebhook リクエストヘルパーWebhook ターゲットユーティリティ
plugin-sdk/webhook-request-guardsWebhook 本文ガードヘルパーリクエスト本文の読み取り/制限ヘルパー
plugin-sdk/reply-runtime共有返信ランタイムインバウンドディスパッチ、Heartbeat、返信プランナー、チャンク化
plugin-sdk/reply-dispatch-runtime範囲を絞った返信ディスパッチヘルパー確定、プロバイダーディスパッチ、会話ラベルヘルパー
plugin-sdk/reply-history返信履歴ヘルパーbuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-reference返信参照計画createReplyReferencePlanner
plugin-sdk/reply-chunking返信チャンクヘルパーテキスト/Markdown チャンク化ヘルパー
plugin-sdk/session-store-runtimeセッションストアヘルパーストアパス + updated-at ヘルパー
plugin-sdk/state-paths状態パスヘルパー状態ディレクトリと OAuth ディレクトリのヘルパー
plugin-sdk/routingルーティング/セッションキーヘルパーresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, セッションキー正規化ヘルパー
plugin-sdk/status-helpersチャンネル状態ヘルパーチャンネル/アカウント状態サマリービルダー、ランタイム状態デフォルト、問題メタデータヘルパー
plugin-sdk/target-resolver-runtimeターゲットリゾルバーヘルパー共有ターゲットリゾルバーヘルパー
plugin-sdk/string-normalization-runtime文字列正規化ヘルパースラッグ/文字列正規化ヘルパー
plugin-sdk/request-urlリクエスト URL ヘルパーリクエスト風入力から文字列 URL を抽出
plugin-sdk/run-command時間制限付きコマンドヘルパー正規化された stdout/stderr を持つ時間制限付きコマンドランナー
plugin-sdk/param-readersパラメーターリーダー共通ツール/CLI パラメーターリーダー
plugin-sdk/tool-payloadツールペイロード抽出ツール結果オブジェクトから正規化されたペイロードを抽出
plugin-sdk/tool-sendツール送信抽出ツール引数から正準の送信先フィールドを抽出
plugin-sdk/temp-path一時パスヘルパー共有一時ダウンロードパスヘルパー
plugin-sdk/logging-coreロギングヘルパーサブシステムロガーと秘匿化ヘルパー
plugin-sdk/markdown-table-runtimeMarkdownテーブルヘルパーMarkdownテーブルモードヘルパー
plugin-sdk/reply-payloadメッセージ返信型返信ペイロード型
plugin-sdk/provider-setupキュレーション済みローカル/セルフホストプロバイダーセットアップヘルパーセルフホストプロバイダーの検出/設定ヘルパー
plugin-sdk/self-hosted-provider-setupOpenAI互換セルフホストプロバイダー用の特化セットアップヘルパー同じセルフホストプロバイダーの検出/設定ヘルパー
plugin-sdk/provider-auth-runtimeプロバイダーランタイム認証ヘルパーランタイムAPIキー解決ヘルパー
plugin-sdk/provider-auth-api-keyプロバイダーAPIキーセットアップヘルパーAPIキーオンボーディング/プロファイル書き込みヘルパー
plugin-sdk/provider-auth-resultプロバイダー認証結果ヘルパー標準OAuth認証結果ビルダー
plugin-sdk/provider-selection-runtimeプロバイダー選択ヘルパー設定済みまたは自動のプロバイダー選択と生のプロバイダー設定マージ
plugin-sdk/provider-env-varsプロバイダー環境変数ヘルパープロバイダー認証環境変数検索ヘルパー
plugin-sdk/provider-model-shared共有プロバイダーモデル/リプレイヘルパーProviderReplayFamilybuildProviderReplayFamilyHooksnormalizeModelCompat、共有リプレイポリシービルダー、プロバイダーエンドポイントヘルパー、モデルID正規化ヘルパー
plugin-sdk/provider-catalog-shared共有プロバイダーカタログヘルパーfindCatalogTemplatebuildSingleProviderApiKeyCatalogbuildManifestModelProviderConfigsupportsNativeStreamingUsageCompatapplyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardプロバイダーオンボーディングパッチオンボーディング設定ヘルパー
plugin-sdk/provider-httpプロバイダーHTTPヘルパー音声文字起こしのマルチパートフォームヘルパーを含む、汎用プロバイダーHTTP/エンドポイント機能ヘルパー
plugin-sdk/provider-web-fetchプロバイダーWebフェッチヘルパーWebフェッチプロバイダー登録/キャッシュヘルパー
plugin-sdk/provider-web-search-config-contractプロバイダーWeb検索設定ヘルパーPlugin有効化の配線を必要としないプロバイダー向けの限定Web検索設定/認証情報ヘルパー
plugin-sdk/provider-web-search-contractプロバイダーWeb検索コントラクトヘルパーcreateWebSearchProviderContractFieldsenablePluginInConfigresolveProviderWebSearchPluginConfig、スコープ付き認証情報セッター/ゲッターなどの限定Web検索設定/認証情報コントラクトヘルパー
plugin-sdk/provider-web-searchプロバイダーWeb検索ヘルパーWeb検索プロバイダー登録/キャッシュ/ランタイムヘルパー
plugin-sdk/provider-toolsプロバイダーツール/スキーマ互換ヘルパーProviderToolCompatFamilybuildProviderToolCompatFamilyHooks、Geminiスキーマクリーンアップと診断
plugin-sdk/provider-usageプロバイダー使用量ヘルパーfetchClaudeUsagefetchGeminiUsagefetchGithubCopilotUsage、その他のプロバイダー使用量ヘルパー
plugin-sdk/provider-streamプロバイダーストリームラッパーヘルパーProviderStreamFamilybuildProviderStreamFamilyHookscomposeProviderStreamWrappers、ストリームラッパー型、共有Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilotラッパーヘルパー
plugin-sdk/provider-transport-runtimeプロバイダートランスポートヘルパーガード付きフェッチ、トランスポートメッセージ変換、書き込み可能なトランスポートイベントストリームなどのネイティブプロバイダートランスポートヘルパー
plugin-sdk/keyed-async-queue順序付き非同期キューKeyedAsyncQueue
plugin-sdk/media-runtime共有メディアヘルパーメディア取得/変換/保存ヘルパー、ffprobeベースの動画寸法プローブ、メディアペイロードビルダー
plugin-sdk/media-generation-runtime共有メディア生成ヘルパー画像/動画/音楽生成向けの共有フェイルオーバーヘルパー、候補選択、モデル欠落メッセージ
plugin-sdk/media-understandingメディア理解ヘルパーメディア理解プロバイダー型と、プロバイダー向け画像/音声ヘルパーエクスポート
plugin-sdk/text-runtime非推奨の広範なテキスト互換エクスポートstring-coerce-runtimetext-chunkingtext-utility-runtimelogging-coreを使用
plugin-sdk/text-chunkingテキスト分割ヘルパー送信テキスト分割ヘルパー
plugin-sdk/speech音声ヘルパー音声プロバイダー型と、プロバイダー向けディレクティブ、レジストリ、検証ヘルパー、OpenAI互換TTSビルダー
plugin-sdk/speech-core共有音声コア音声プロバイダー型、レジストリ、ディレクティブ、正規化
plugin-sdk/realtime-transcriptionリアルタイム文字起こしヘルパープロバイダー型、レジストリヘルパー、共有WebSocketセッションヘルパー
plugin-sdk/realtime-voiceリアルタイム音声ヘルパープロバイダー型、レジストリ/解決ヘルパー、ブリッジセッションヘルパー、共有エージェントトークバックキュー、トランスクリプト/イベントヘルス、エコー抑制、高速コンテキスト参照ヘルパー
plugin-sdk/image-generation画像生成ヘルパー画像生成プロバイダー型と、画像アセット/データURLヘルパー、OpenAI互換画像プロバイダービルダー
plugin-sdk/image-generation-core共有画像生成コア画像生成型、フェイルオーバー、認証、レジストリヘルパー
plugin-sdk/music-generation音楽生成ヘルパー音楽生成プロバイダー/リクエスト/結果型
plugin-sdk/music-generation-core共有音楽生成コア音楽生成型、フェイルオーバーヘルパー、プロバイダー検索、モデル参照解析
plugin-sdk/video-generation動画生成ヘルパー動画生成プロバイダー/リクエスト/結果型
plugin-sdk/video-generation-core共有動画生成コア動画生成型、フェイルオーバーヘルパー、プロバイダー検索、モデル参照解析
plugin-sdk/interactive-runtimeインタラクティブ返信ヘルパーインタラクティブ返信ペイロードの正規化/縮約
plugin-sdk/channel-config-primitivesチャンネル設定プリミティブ限定チャンネル設定スキーマプリミティブ
plugin-sdk/channel-config-writesチャンネル設定書き込みヘルパーチャンネル設定書き込み認可ヘルパー
plugin-sdk/channel-plugin-common共有チャンネルプレリュード共有チャンネルPluginプレリュードエクスポート
plugin-sdk/channel-statusチャンネルステータスヘルパー共有チャンネルステータススナップショット/要約ヘルパー
plugin-sdk/allowlist-config-edit許可リスト設定ヘルパー許可リスト設定の編集/読み取りヘルパー
plugin-sdk/group-accessグループアクセスヘルパー共有グループアクセス判定ヘルパー
plugin-sdk/direct-dm直接DMヘルパー共有直接DM認証/ガードヘルパー
plugin-sdk/extension-shared共有拡張ヘルパーパッシブチャンネル/ステータスとアンビエントプロキシのヘルパープリミティブ
plugin-sdk/webhook-targetsWebhookターゲットヘルパーWebhookターゲットレジストリとルートインストールヘルパー
plugin-sdk/webhook-path非推奨のWebhookパスエイリアスplugin-sdk/webhook-ingressを使用
plugin-sdk/web-media共有Webメディアヘルパーリモート/ローカルメディア読み込みヘルパー
plugin-sdk/zod非推奨のZod互換再エクスポートzodからzodを直接インポート
plugin-sdk/memory-coreバンドル済みmemory-coreヘルパーメモリマネージャー/設定/ファイル/CLIヘルパーサーフェス
plugin-sdk/memory-core-engine-runtimeメモリエンジンランタイムファサードメモリインデックス/検索ランタイムファサード
plugin-sdk/memory-core-host-engine-foundationメモリホスト基盤エンジンメモリホスト基盤エンジンエクスポート
plugin-sdk/memory-core-host-engine-embeddingsメモリホスト埋め込みエンジンメモリ埋め込みコントラクト、レジストリアクセス、ローカルプロバイダー、汎用バッチ/リモートヘルパー。具体的なリモートプロバイダーは、それぞれの所有Pluginに存在
plugin-sdk/memory-core-host-engine-qmdメモリホストQMDエンジンメモリホストQMDエンジンエクスポート
plugin-sdk/memory-core-host-engine-storageメモリホストストレージエンジンメモリホストストレージエンジンエクスポート
plugin-sdk/memory-core-host-multimodalメモリホストマルチモーダルヘルパーメモリホストマルチモーダルヘルパー
plugin-sdk/memory-core-host-queryメモリホストクエリヘルパーメモリホストクエリヘルパー
plugin-sdk/memory-core-host-secretメモリホストシークレットヘルパーメモリホストシークレットヘルパー
plugin-sdk/memory-core-host-events非推奨のメモリイベントエイリアスplugin-sdk/memory-host-eventsを使用
plugin-sdk/memory-core-host-statusメモリホストステータスヘルパーメモリホストステータスヘルパー
plugin-sdk/memory-core-host-runtime-cliメモリホストCLIランタイムメモリホストCLIランタイムヘルパー
plugin-sdk/memory-core-host-runtime-coreメモリホストコアランタイムメモリホストコアランタイムヘルパー
plugin-sdk/memory-core-host-runtime-filesメモリホストファイル/ランタイムヘルパーメモリホストファイル/ランタイムヘルパー
plugin-sdk/memory-host-coreメモリホストコアランタイムエイリアスベンダー中立のメモリホストコアランタイムヘルパーエイリアス
plugin-sdk/memory-host-eventsメモリホストイベントジャーナルエイリアスベンダー中立のメモリホストイベントジャーナルヘルパーエイリアス
plugin-sdk/memory-host-files非推奨のメモリファイル/ランタイムエイリアスplugin-sdk/memory-core-host-runtime-filesを使用
plugin-sdk/memory-host-markdown管理Markdownヘルパーメモリ隣接Plugin向け共有管理Markdownヘルパー
plugin-sdk/memory-host-searchActive Memory検索ファサード遅延Active Memory検索マネージャーランタイムファサード
plugin-sdk/memory-host-status非推奨のメモリホストステータスエイリアスplugin-sdk/memory-core-host-statusを使用
plugin-sdk/testingテストユーティリティリポジトリローカルの非推奨互換バレル。plugin-sdk/plugin-test-runtimeplugin-sdk/channel-test-helpersplugin-sdk/channel-target-testingplugin-sdk/test-envplugin-sdk/test-fixturesなど、焦点を絞ったリポジトリローカルのテストサブパスを使用
この表は意図的に共通の移行サブセットを示しており、完全な SDK サーフェスではありません。コンパイラーのエントリーポイント一覧は scripts/lib/plugin-sdk-entrypoints.json にあります。パッケージのエクスポートは 公開サブセットから生成されます。 予約済みのバンドル済み Plugin ヘルパーシームは、非推奨の plugin-sdk/discord シムのような、公開済みの @openclaw/discord@2026.3.13 パッケージ向けに保持されている 明示的に文書化された互換ファサードを除き、公開 SDK エクスポートマップから廃止されています。 所有者固有のヘルパーは、それを所有する Plugin パッケージ内にあります。共有ホストの動作は、 plugin-sdk/gateway-runtimeplugin-sdk/security-runtimeplugin-sdk/plugin-config-runtime などの汎用 SDK 契約を通すべきです。 作業に合う最も狭い import を使用してください。エクスポートが見つからない場合は、 src/plugin-sdk/ のソースを確認するか、どの汎用契約がそれを所有すべきかをメンテナーに尋ねてください。

有効な非推奨

Plugin SDK、プロバイダー契約、ランタイムサーフェス、マニフェスト全体に適用される、より狭い非推奨です。 それぞれは現在も動作しますが、将来のメジャーリリースで削除されます。 各項目の下のエントリーは、古い API から正規の置き換え先への対応を示します。
旧 (openclaw/plugin-sdk/command-auth): buildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage.新 (openclaw/plugin-sdk/command-status): 同じシグネチャ、同じ エクスポートです。より狭いサブパスから import するだけです。command-auth は 互換スタブとしてそれらを再エクスポートします。
// Before
import { buildHelpMessage } from "openclaw/plugin-sdk/command-auth";

// After
import { buildHelpMessage } from "openclaw/plugin-sdk/command-status";
: openclaw/plugin-sdk/channel-inbound または openclaw/plugin-sdk/channel-mention-gatingresolveInboundMentionRequirement({ facts, policy })shouldDropInboundForMention(...).: resolveInboundMentionDecision({ facts, policy }) - 分割された2つの呼び出しではなく、 単一の判定オブジェクトを返します。下流のチャネル Plugin(Slack、Discord、Matrix、MS Teams)はすでに 切り替え済みです。
openclaw/plugin-sdk/channel-runtime は古いチャネル Plugin 向けの互換シムです。 新しいコードから import しないでください。ランタイムオブジェクトの登録には openclaw/plugin-sdk/channel-runtime-context を使用してください。openclaw/plugin-sdk/channel-actionschannelActions* ヘルパーは、 生の「actions」チャネルエクスポートとともに非推奨です。代わりに意味的な presentation サーフェスを通じて機能を公開してください。チャネル Plugin は、 受け付ける生のアクション名ではなく、何をレンダリングするか(カード、ボタン、セレクト)を宣言します。
: openclaw/plugin-sdk/provider-web-searchtool() ファクトリー。: プロバイダー Plugin に直接 createTool(...) を実装します。 OpenClaw はツールラッパーを登録するために SDK ヘルパーを必要としなくなりました。
: 受信チャネルメッセージからフラットなプレーンテキストのプロンプトエンベロープを構築する formatInboundEnvelope(...)(および ChannelMessageForAgent.channelEnvelope)。: BodyForAgent と構造化されたユーザーコンテキストブロック。チャネル Plugin は、ルーティングメタデータ(スレッド、トピック、返信先、リアクション)を プロンプト文字列に連結するのではなく、型付きフィールドとして添付します。 formatAgentEnvelope(...) ヘルパーは、合成されたアシスタント向けエンベロープでは 引き続きサポートされますが、受信プレーンテキストエンベロープは廃止に向かっています。影響範囲: inbound_claimmessage_received、および channelEnvelope テキストを 後処理していたカスタムチャネル Plugin。
4つの discovery 型エイリアスは、現在はカタログ時代の型の薄いラッパーです。
旧エイリアス新しい型
ProviderDiscoveryOrderProviderCatalogOrder
ProviderDiscoveryContextProviderCatalogContext
ProviderDiscoveryResultProviderCatalogResult
ProviderPluginDiscoveryProviderPluginCatalog
さらに従来の ProviderCapabilities 静的バッグも対象です。プロバイダー Plugin は、 静的オブジェクトではなく、buildReplayPolicynormalizeToolSchemaswrapStreamFn などの明示的なプロバイダーフックを使用すべきです。
(ProviderThinkingPolicy 上の3つの個別フック): isBinaryThinking(ctx)supportsXHighThinking(ctx)、および resolveDefaultThinkingLevel(ctx).: 正規の id、任意の label、順位付けされたレベル一覧を含む ProviderThinkingProfile を返す、単一の resolveThinkingProfile(ctx)。 OpenClaw は、保存済みの古い値をプロファイル順位に基づいて自動的にダウングレードします。3つではなく1つのフックを実装してください。従来のフックは非推奨期間中も動作しますが、 プロファイル結果とは合成されません。
: Plugin マニフェストでプロバイダーを宣言せずに resolveExternalOAuthProfiles(...) を実装すること。: Plugin マニフェストで contracts.externalAuthProviders を宣言し、 かつ resolveExternalAuthProfiles(...) を実装します。古い「auth fallback」パスはランタイムで警告を出し、削除される予定です。
{
  "contracts": {
    "externalAuthProviders": ["anthropic", "openai"]
  }
}
マニフェストフィールド: providerAuthEnvVars: { anthropic: ["ANTHROPIC_API_KEY"] }.: 同じ env-var lookup をマニフェスト上の setup.providers[].envVars に ミラーリングします。これにより、セットアップ/ステータスの env メタデータが一箇所に統合され、 env-var lookup に答えるためだけに Plugin ランタイムを起動する必要がなくなります。providerAuthEnvVars は、非推奨期間が終了するまで互換アダプターを通じてサポートされます。
: 3つの個別呼び出し - api.registerMemoryPromptSection(...), api.registerMemoryFlushPlan(...), api.registerMemoryRuntime(...).: メモリ状態 API 上の1回の呼び出し - registerMemoryCapability(pluginId, { promptBuilder, flushPlanResolver, runtime }).同じスロットを単一の登録呼び出しで扱います。追加的なメモリヘルパー (registerMemoryPromptSupplement, registerMemoryCorpusSupplement, registerMemoryEmbeddingProvider) は影響を受けません。
src/plugins/runtime/types.ts からまだエクスポートされている2つの従来型エイリアス:
SubagentReadSessionParamsSubagentGetSessionMessagesParams
SubagentReadSessionResultSubagentGetSessionMessagesResult
ランタイムメソッド readSession は、getSessionMessages を推奨する形で非推奨です。 同じシグネチャです。古いメソッドは新しいメソッドへ呼び出しを渡します。
: runtime.tasks.flow(単数)はライブのタスクフローアクセサーを返していました。: runtime.tasks.managedFlows は、フローから子タスクを作成、更新、キャンセル、 または実行する Plugin 向けに、管理対象 TaskFlow 変更ランタイムを保持します。 Plugin が DTO ベースの読み取りだけを必要とする場合は runtime.tasks.flows を使用してください。
// Before
const flow = api.runtime.tasks.flow.fromToolContext(ctx);
// After
const flow = api.runtime.tasks.managedFlows.fromToolContext(ctx);
上記の「移行方法 → Pi ツール結果 extension をミドルウェアへ移行する」で説明されています。 完全性のためここにも含めます。削除された Pi 専用の api.registerEmbeddedExtensionFactory(...) パスは、 contracts.agentToolResultMiddleware の明示的なランタイム一覧とともに api.registerAgentToolResultMiddleware(...) に置き換えられます。
openclaw/plugin-sdk から再エクスポートされる OpenClawSchemaType は、現在は OpenClawConfig の1行エイリアスです。正規名を優先してください。
// Before
import type { OpenClawSchemaType } from "openclaw/plugin-sdk";
// After
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-schema";
extension レベルの非推奨(extensions/ 配下のバンドル済みチャネル/プロバイダー Plugin 内)は、 それぞれの api.ts および runtime-api.ts バレル内で追跡されます。 これらはサードパーティ Plugin 契約には影響せず、ここには記載されていません。 バンドル済み Plugin のローカルバレルを直接利用している場合は、アップグレード前に そのバレル内の非推奨コメントを読んでください。

削除タイムライン

時期起こること
現在非推奨サーフェスはランタイム警告を出します
次のメジャーリリース非推奨サーフェスは削除されます。それらをまだ使用している Plugin は失敗します
すべてのコア Plugin はすでに移行済みです。外部 Plugin は次のメジャーリリース前に移行してください。

警告を一時的に抑制する

移行作業中は、これらの環境変数を設定してください。
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
これは一時的な逃げ道であり、恒久的な解決策ではありません。

関連