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

Plugin SDK Overview

plugin SDKは、pluginとcoreの間の型付き契約です。このページは、 何をimportするか何を登録できるか のリファレンスです。
ハウツーガイドを探していますか?

Import規約

必ず特定のsubpathからimportしてください。
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
各subpathは、小さく自己完結したmoduleです。これにより起動を高速に保ち、 循環依存の問題を防ぎます。channel固有のentry/build helperには、 openclaw/plugin-sdk/channel-core を優先し、より広いumbrella surfaceと buildChannelConfigSchema のような共有helperには openclaw/plugin-sdk/core を使ってください。 openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp のような provider名付きのconvenience seamや、 channelブランドのhelper seamを追加したり依存したりしてはいけません。bundled pluginは、 自分自身の api.ts または runtime-api.ts barrelの中で汎用 SDK subpathを組み合わせるべきであり、coreは そうしたpluginローカルbarrelを使うか、真にcross-channelな必要がある場合にのみ 狭い汎用SDK契約を追加するべきです。 生成されたexport mapには、依然として少数のbundled-plugin helper seam、たとえば plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup, plugin-sdk/matrix* などが含まれています。これらの subpathはbundled-pluginの保守と互換性のためだけに存在しており、 下の一般テーブルからは意図的に除外されていて、新しいthird-party plugin向けの 推奨import pathではありません。

Subpathリファレンス

最も一般的に使われるsubpathを、用途別に分類しています。完全な 200以上のsubpath一覧は scripts/lib/plugin-sdk-entrypoints.json にあります。 予約済みのbundled-plugin helper subpathも、その生成済み一覧には引き続き現れます。 docページで明示的にpublicとして推奨されていない限り、それらは実装詳細/互換性surfaceとして扱ってください。

Plugin entry

Subpath主なexports
plugin-sdk/plugin-entrydefinePluginEntry
plugin-sdk/coredefineChannelPluginEntry, createChatChannelPlugin, createChannelPluginBase, defineSetupPluginEntry, buildChannelConfigSchema
plugin-sdk/config-schemaOpenClawSchema
plugin-sdk/provider-entrydefineSingleProviderPluginEntry
Subpath主なexports
plugin-sdk/channel-coredefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/config-schemaルート openclaw.json Zod schema export(OpenClawSchema
plugin-sdk/channel-setupcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard、および DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/setup共有setup wizard helper、allowlist prompt、setup status builder
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マルチアカウントconfig/action-gate helper、default-account fallback helper
plugin-sdk/account-idDEFAULT_ACCOUNT_ID、account-id正規化helper
plugin-sdk/account-resolutionAccount lookup + default-fallback helper
plugin-sdk/account-helpers狭いaccount-list/account-action helper
plugin-sdk/channel-pairingcreateChannelPairingController
plugin-sdk/channel-reply-pipelinecreateChannelReplyPipeline
plugin-sdk/channel-config-helperscreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaChannel config schema型
plugin-sdk/telegram-command-configbundled-contract fallback付きのTelegram custom-command正規化/検証helper
plugin-sdk/channel-policyresolveChannelGroupRequireMention
plugin-sdk/channel-lifecyclecreateAccountStatusSink
plugin-sdk/inbound-envelope共有inbound route + envelope builder helper
plugin-sdk/inbound-reply-dispatch共有inbound記録・dispatch helper
plugin-sdk/messaging-targetsTarget parsing/matching helper
plugin-sdk/outbound-media共有outbound media loading helper
plugin-sdk/outbound-runtimeOutbound identity/send delegate helper
plugin-sdk/thread-bindings-runtimeThread-binding lifecycleおよびadapter helper
plugin-sdk/agent-media-payloadレガシーagent media payload builder
plugin-sdk/conversation-runtimeConversation/thread binding、pairing、configured-binding helper
plugin-sdk/runtime-config-snapshotRuntime config snapshot helper
plugin-sdk/runtime-group-policyRuntime group-policy解決helper
plugin-sdk/channel-status共有channel status snapshot/summary helper
plugin-sdk/channel-config-primitives狭いchannel config-schema primitive
plugin-sdk/channel-config-writesChannel config-write authorization helper
plugin-sdk/channel-plugin-common共有channel plugin prelude exports
plugin-sdk/allowlist-config-editAllowlist config edit/read helper
plugin-sdk/group-access共有group-access decision helper
plugin-sdk/direct-dm共有direct-DM auth/guard helper
plugin-sdk/interactive-runtimeInteractive reply payload正規化/縮約helper
plugin-sdk/channel-inboundDebounce、mention matching、envelope helper
plugin-sdk/channel-send-resultReply result型
plugin-sdk/channel-actionscreateMessageToolButtonsSchema, createMessageToolCardSchema
plugin-sdk/channel-targetsTarget parsing/matching helper
plugin-sdk/channel-contractChannel contract型
plugin-sdk/channel-feedbackFeedback/reaction wiring
Subpath主なexports
plugin-sdk/provider-entrydefineSingleProviderPluginEntry
plugin-sdk/provider-setup厳選されたlocal/self-hosted provider setup helper
plugin-sdk/self-hosted-provider-setupOpenAI互換self-hosted provider setupに特化したhelper
plugin-sdk/cli-backendCLI backend default + watchdog定数
plugin-sdk/provider-auth-runtimeprovider plugin向けruntime API-key解決helper
plugin-sdk/provider-auth-api-keyAPI-key onboarding/profile-write helper
plugin-sdk/provider-auth-result標準OAuth auth-result builder
plugin-sdk/provider-auth-loginprovider plugin向け共有interactive login helper
plugin-sdk/provider-env-varsProvider auth env-var lookup helper
plugin-sdk/provider-authcreateProviderApiKeyAuthMethod, ensureApiKeyFromOptionEnvOrPrompt, upsertAuthProfile
plugin-sdk/provider-model-sharedProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, 共有replay-policy builder、provider-endpoint helper、および normalizeNativeXaiModelId のようなmodel-id正規化helper
plugin-sdk/provider-catalog-sharedfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-http汎用provider HTTP/endpoint capability helper
plugin-sdk/provider-web-fetchWeb-fetch provider registration/cache helper
plugin-sdk/provider-web-searchWeb-search provider registration/cache/config helper
plugin-sdk/provider-toolsProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, Gemini schema cleanup + diagnostics、および resolveXaiModelCompatPatch / applyXaiModelCompat のようなxAI compat helper
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 helper
plugin-sdk/provider-onboardOnboarding config patch helper
plugin-sdk/global-singletonProcess-local singleton/map/cache helper
Subpath主なexports
plugin-sdk/command-authresolveControlCommandGate, command registry helper, sender-authorization helper
plugin-sdk/approval-auth-runtimeApprover解決およびsame-chat action-auth helper
plugin-sdk/approval-client-runtimeNative exec approval profile/filter helper
plugin-sdk/approval-delivery-runtimeNative approval capability/delivery adapter
plugin-sdk/approval-native-runtimeNative approval target + account-binding helper
plugin-sdk/approval-reply-runtimeExec/plugin approval reply payload helper
plugin-sdk/command-auth-nativeNative command auth + native session-target helper
plugin-sdk/command-detection共有command detection helper
plugin-sdk/command-surfaceCommand-body正規化およびcommand-surface helper
plugin-sdk/allow-fromformatAllowFromLowercase
plugin-sdk/security-runtime共有trust、DM gating、external-content、secret-collection helper
plugin-sdk/ssrf-policyHost allowlistおよびprivate-network SSRF policy helper
plugin-sdk/ssrf-runtimePinned-dispatcher、SSRF-guarded fetch、およびSSRF policy helper
plugin-sdk/secret-inputSecret input parsing helper
plugin-sdk/webhook-ingressWebhook request/target helper
plugin-sdk/webhook-request-guardsRequest body size/timeout helper
Subpath主なexports
plugin-sdk/runtime広範なruntime/logging/backup/plugin-install helper
plugin-sdk/runtime-env狭いruntime env、logger、timeout、retry、backoff helper
plugin-sdk/runtime-storecreatePluginRuntimeStore
plugin-sdk/plugin-runtime共有plugin command/hook/http/interactive helper
plugin-sdk/hook-runtime共有webhook/internal hook pipeline helper
plugin-sdk/lazy-runtimecreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeSurface などのlazy runtime import/binding helper
plugin-sdk/process-runtimeProcess exec helper
plugin-sdk/cli-runtimeCLI formatting、wait、version helper
plugin-sdk/gateway-runtimeGateway clientおよびchannel-status patch helper
plugin-sdk/config-runtimeConfig load/write helper
plugin-sdk/telegram-command-configbundled Telegram contract surfaceが利用できない場合でも、Telegram command-name/description正規化とduplicate/conflict check
plugin-sdk/approval-runtimeExec/plugin approval helper、approval-capability builder、auth/profile helper、native routing/runtime helper
plugin-sdk/reply-runtime共有inbound/reply runtime helper、chunking、dispatch、heartbeat、reply planner
plugin-sdk/reply-dispatch-runtime狭いreply dispatch/finalize helper
plugin-sdk/reply-historybuildHistoryContext, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled などの共有short-window reply-history helper
plugin-sdk/reply-referencecreateReplyReferencePlanner
plugin-sdk/reply-chunking狭いtext/markdown chunking helper
plugin-sdk/session-store-runtimeSession store path + updated-at helper
plugin-sdk/state-pathsState/OAuth dir path helper
plugin-sdk/routingresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId などのroute/session-key/account binding helper
plugin-sdk/status-helpers共有channel/account status summary helper、runtime-state default、issue metadata helper
plugin-sdk/target-resolver-runtime共有target resolver helper
plugin-sdk/string-normalization-runtimeSlug/string正規化helper
plugin-sdk/request-urlfetch/request類似入力から文字列URLを抽出
plugin-sdk/run-command正規化されたstdout/stderr結果を返すタイムアウト付きcommand runner
plugin-sdk/param-readers共通tool/CLI param reader
plugin-sdk/tool-sendtool argsから正規send target fieldを抽出
plugin-sdk/temp-path共有temp-download path helper
plugin-sdk/logging-coreSubsystem loggerおよび秘匿化helper
plugin-sdk/markdown-table-runtimeMarkdown table mode helper
plugin-sdk/json-store小さなJSON state read/write helper
plugin-sdk/file-lock再入可能file-lock helper
plugin-sdk/persistent-dedupeDisk-backed dedupe cache helper
plugin-sdk/acp-runtimeACP runtime/session helper
plugin-sdk/agent-config-primitives狭いagent runtime config-schema primitive
plugin-sdk/boolean-param緩いboolean param reader
plugin-sdk/dangerous-name-runtimeDangerous-name matching解決helper
plugin-sdk/device-bootstrapDevice bootstrapおよびpairing token helper
plugin-sdk/extension-shared共有passive-channelおよびstatus helper primitive
plugin-sdk/models-provider-runtime/models command/provider reply helper
plugin-sdk/skill-commands-runtimeSkill command listing helper
plugin-sdk/native-command-registryNative command registry/build/serialize helper
plugin-sdk/provider-zai-endpointZ.AI endpoint detection helper
plugin-sdk/infra-runtimeSystem event/heartbeat helper
plugin-sdk/collection-runtime小さな境界付きcache helper
plugin-sdk/diagnostic-runtimeDiagnostic flagおよびevent helper
plugin-sdk/error-runtimeError graph、formatting、共有error classification helper、isApprovalNotFoundError
plugin-sdk/fetch-runtimeWrapped fetch、proxy、およびpinned lookup helper
plugin-sdk/host-runtimeHostnameおよびSCP host正規化helper
plugin-sdk/retry-runtimeRetry configおよびretry runner helper
plugin-sdk/agent-runtimeAgent dir/identity/workspace helper
plugin-sdk/directory-runtimeConfig-backed directory query/dedup
plugin-sdk/keyed-async-queueKeyedAsyncQueue
Subpath主なexports
plugin-sdk/media-runtime共有media fetch/transform/store helperとmedia payload builder
plugin-sdk/media-understandingMedia understanding provider型とprovider向けimage/audio helper export
plugin-sdk/text-runtimeassistant-visible-text stripping、markdown render/chunking/table helper、redaction helper、directive-tag helper、安全なtext utilityなどの共有text/markdown/logging helper
plugin-sdk/text-chunkingOutbound text chunking helper
plugin-sdk/speechSpeech provider型とprovider向けdirective、registry、validation helper
plugin-sdk/speech-core共有speech provider型、registry、directive、normalization helper
plugin-sdk/realtime-transcriptionRealtime transcription provider型とregistry helper
plugin-sdk/realtime-voiceRealtime voice provider型とregistry helper
plugin-sdk/image-generationImage generation provider型
plugin-sdk/image-generation-core共有image-generation型、failover、auth、registry helper
plugin-sdk/video-generationVideo generation provider/request/result型
plugin-sdk/video-generation-core共有video-generation型、failover helper、provider lookup、およびmodel-ref parsing
plugin-sdk/webhook-targetsWebhook target registryおよびroute-install helper
plugin-sdk/webhook-pathWebhook path正規化helper
plugin-sdk/web-media共有remote/local media loading helper
plugin-sdk/zodplugin SDK利用者向けに再exportされた zod
plugin-sdk/testinginstallCommonResolveTargetErrorCases, shouldAckReaction
Subpath主なexports
plugin-sdk/memory-coremanager/config/file/CLI helper向けbundled memory-core helper surface
plugin-sdk/memory-core-engine-runtimeMemory index/search runtime facade
plugin-sdk/memory-core-host-engine-foundationMemory host foundation engine exports
plugin-sdk/memory-core-host-engine-embeddingsMemory host embedding engine exports
plugin-sdk/memory-core-host-engine-qmdMemory host QMD engine exports
plugin-sdk/memory-core-host-engine-storageMemory host storage engine exports
plugin-sdk/memory-core-host-multimodalMemory host multimodal helper
plugin-sdk/memory-core-host-queryMemory host query helper
plugin-sdk/memory-core-host-secretMemory host secret helper
plugin-sdk/memory-core-host-statusMemory host status helper
plugin-sdk/memory-core-host-runtime-cliMemory host CLI runtime helper
plugin-sdk/memory-core-host-runtime-coreMemory host core runtime helper
plugin-sdk/memory-core-host-runtime-filesMemory host file/runtime helper
plugin-sdk/memory-lancedbbundled memory-lancedb helper surface
Family現在のsubpaths想定用途
Browserplugin-sdk/browser-config-support, plugin-sdk/browser-supportbundled browser plugin support helper
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-bindingsbundled Matrix helper/runtime surface
Lineplugin-sdk/line, plugin-sdk/line-core, plugin-sdk/line-runtime, plugin-sdk/line-surfacebundled LINE helper/runtime surface
IRCplugin-sdk/irc, plugin-sdk/irc-surfacebundled IRC helper surface
Channel固有helperplugin-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/twitchbundled channel compatibility/helper seam
Auth/plugin固有helperplugin-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-callbundled feature/plugin helper seam。plugin-sdk/github-copilot-token は現在 DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken, resolveCopilotApiToken をexportします

Registration API

register(api) callbackは、次の methodを持つ OpenClawPluginApi objectを受け取ります。

Capability registration

Method登録するもの
api.registerProvider(...)Text inference(LLM)
api.registerCliBackend(...)Local CLI inference backend
api.registerChannel(...)Messaging channel
api.registerSpeechProvider(...)Text-to-speech / STT synthesis
api.registerRealtimeTranscriptionProvider(...)Streaming realtime transcription
api.registerRealtimeVoiceProvider(...)Duplex realtime voice session
api.registerMediaUnderstandingProvider(...)Image/audio/video analysis
api.registerImageGenerationProvider(...)Image generation
api.registerVideoGenerationProvider(...)Video generation
api.registerWebFetchProvider(...)Web fetch / scrape provider
api.registerWebSearchProvider(...)Web search

Toolsとcommands

Method登録するもの
api.registerTool(tool, opts?)Agent tool(必須または { optional: true }
api.registerCommand(def)Custom command(LLMを経由しない)

Infrastructure

Method登録するもの
api.registerHook(events, handler, opts?)Event hook
api.registerHttpRoute(params)Gateway HTTP endpoint
api.registerGatewayMethod(name, handler)Gateway RPC method
api.registerCli(registrar, opts?)CLI subcommand
api.registerService(service)Background service
api.registerInteractiveHandler(registration)Interactive handler
予約済みのcore admin namespace(config.*, exec.approvals.*, wizard.*, update.*)は、pluginがより狭いgateway method scopeを 割り当てようとしても、常に operator.admin のままです。plugin所有methodには、 plugin固有のprefixを優先してください。

CLI registration metadata

api.registerCli(registrar, opts?) は、2種類のトップレベルmetadataを受け付けます。
  • commands: registrarが所有する明示的なcommand root
  • descriptors: ルートCLI help、 routing、およびlazy plugin CLI registrationに使われるparse時command descriptor
plugin commandを通常のroot CLI pathでlazy-loadedのままにしたいなら、 そのregistrarが公開するすべてのトップレベルcommand rootをカバーする 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,
      },
    ],
  },
);
lazy root CLI registrationが不要な場合にのみ、commands 単独を使ってください。 このeager互換経路は引き続きサポートされますが、parse時lazy loading用の descriptor-backed placeholderはインストールしません。

CLI backend registration

api.registerCliBackend(...) により、pluginが claude-clicodex-cli のようなlocal AI CLI backendのdefault configを所有できます。
  • backendの id は、claude-cli/opus のようなmodel refにおけるprovider prefixになります。
  • backendの configagents.defaults.cliBackends.<id> と同じ形状を使います。
  • user configが優先されます。OpenClawはCLI実行前に plugin defaultの上へ agents.defaults.cliBackends.<id> をマージします。
  • backendがマージ後に互換性のための書き換えを必要とする場合(たとえば 古いflag shapeの正規化)には、normalizeConfig を使ってください。

Exclusive slots

Method登録するもの
api.registerContextEngine(id, factory)Context engine(一度に1つだけアクティブ)
api.registerMemoryPromptSection(builder)Memory prompt section builder
api.registerMemoryFlushPlan(resolver)Memory flush plan resolver
api.registerMemoryRuntime(runtime)Memory runtime adapter

Memory embedding adapters

Method登録するもの
api.registerMemoryEmbeddingProvider(adapter)アクティブplugin用のmemory embedding adapter
  • registerMemoryPromptSection, registerMemoryFlushPlan, および registerMemoryRuntime はmemory plugin専用です。
  • registerMemoryEmbeddingProvider により、アクティブなmemory pluginは 1つ以上のembedding adapter id(例: openai, gemini, またはcustom plugin定義id)を登録できます。
  • agents.defaults.memorySearch.provideragents.defaults.memorySearch.fallback のようなuser configは、 それら登録済みadapter idに対して解決されます。

Eventsとlifecycle

Method動作内容
api.on(hookName, handler, opts?)型付きlifecycle hook
api.onConversationBindingResolved(handler)Conversation binding callback

Hook decision semantics

  • before_tool_call: { block: true } を返すと終端です。いずれかのhandlerがこれを設定した時点で、より低優先度のhandlerはスキップされます。
  • before_tool_call: { block: false } を返すことは、上書きではなく no decision(block を省略したのと同じ)として扱われます。
  • before_install: { block: true } を返すと終端です。いずれかのhandlerがこれを設定した時点で、より低優先度のhandlerはスキップされます。
  • before_install: { block: false } を返すことは、上書きではなく no decision(block を省略したのと同じ)として扱われます。
  • message_sending: { cancel: true } を返すと終端です。いずれかのhandlerがこれを設定した時点で、より低優先度のhandlerはスキップされます。
  • message_sending: { cancel: false } を返すことは、上書きではなく no decision(cancel を省略したのと同じ)として扱われます。

API object fields

FieldType説明
api.idstringPlugin id
api.namestring表示名
api.versionstring?Plugin version(任意)
api.descriptionstring?Plugin description(任意)
api.sourcestringPlugin source path
api.rootDirstring?Plugin root directory(任意)
api.configOpenClawConfig現在のconfig snapshot(利用可能な場合はアクティブなインメモリruntime snapshot)
api.pluginConfigRecord<string, unknown>plugins.entries.<id>.config からのplugin固有config
api.runtimePluginRuntimeRuntime helpers
api.loggerPluginLoggerスコープ付きlogger(debug, info, warn, error
api.registrationModePluginRegistrationMode現在のload mode。"setup-runtime" は軽量なfull-entry前のstartup/setup windowです
api.resolvePath(input)(string) => stringplugin rootからの相対pathを解決

Internal module規約

plugin内部では、内部importにlocal barrel fileを使ってください。
my-plugin/
  api.ts            # 外部consumer向けpublic exports
  runtime-api.ts    # 内部専用runtime exports
  index.ts          # Plugin entry point
  setup-entry.ts    # 軽量なsetup専用entry(任意)
production codeから自分自身のpluginを openclaw/plugin-sdk/<your-plugin> 経由でimportしてはいけません。内部importは ./api.ts または ./runtime-api.ts を通してください。SDK pathは外部契約専用です。
Facade経由で読み込まれるbundled plugin public surface(api.ts, runtime-api.ts, index.ts, setup-entry.ts、および類似のpublic entry file)は、現在 OpenClawがすでに実行中なら、アクティブなruntime config snapshotを優先します。 まだruntime snapshotが存在しない場合は、disk上で解決されたconfig fileへフォールバックします。 provider pluginは、helperが意図的にprovider固有であり、まだ汎用SDK subpathに属さない場合、狭いpluginローカル契約barrelを公開することもできます。現在のbundled例: Anthropic providerは、Anthropic beta-header や service_tier ロジックを汎用 plugin-sdk/* 契約へ昇格させる代わりに、自身のpublic api.ts / contract-api.ts seamに Claude stream helperを保持しています。 その他の現在のbundled例:
  • @openclaw/openai-provider: api.ts はprovider builder、 default-model helper、およびrealtime provider builderをexport
  • @openclaw/openrouter-provider: api.ts はprovider builderと onboarding/config helperをexport
extension production codeも、openclaw/plugin-sdk/<other-plugin> の importを避けるべきです。helperが本当に共有されるべきなら、plugin同士を結合する代わりに、 openclaw/plugin-sdk/speech, .../provider-model-shared、または他の capability指向surfaceのような中立的SDK subpathへ昇格させてください。

関連