Langsung ke konten utama

Migrasi Plugin SDK

OpenClaw telah beralih dari lapisan kompatibilitas mundur yang luas ke arsitektur plugin modern dengan import yang terfokus dan terdokumentasi. Jika plugin Anda dibuat sebelum arsitektur baru, panduan ini membantu Anda bermigrasi.

Apa yang berubah

Sistem plugin lama menyediakan dua permukaan terbuka lebar yang memungkinkan plugin mengimpor apa pun yang mereka butuhkan dari satu entry point:
  • openclaw/plugin-sdk/compat — satu import yang mengekspor ulang puluhan helper. Ini diperkenalkan untuk menjaga plugin berbasis hook lama tetap berfungsi sementara arsitektur plugin baru sedang dibangun.
  • openclaw/extension-api — jembatan yang memberi plugin akses langsung ke helper sisi host seperti embedded agent runner.
Kedua permukaan kini deprecated. Keduanya masih berfungsi saat runtime, tetapi plugin baru tidak boleh menggunakannya, dan plugin yang ada harus bermigrasi sebelum rilis mayor berikutnya menghapusnya.
Lapisan kompatibilitas mundur akan dihapus pada rilis mayor mendatang. Plugin yang masih mengimpor dari permukaan ini akan rusak saat itu terjadi.

Mengapa ini berubah

Pendekatan lama menimbulkan masalah:
  • Startup lambat — mengimpor satu helper memuat puluhan modul yang tidak terkait
  • Dependensi sirkular — ekspor ulang yang luas memudahkan terciptanya siklus import
  • Permukaan API tidak jelas — tidak ada cara untuk mengetahui ekspor mana yang stabil vs internal
Plugin SDK modern memperbaiki hal ini: setiap path import (openclaw/plugin-sdk/\<subpath\>) adalah modul kecil yang berdiri sendiri dengan tujuan yang jelas dan kontrak yang terdokumentasi. Seam kenyamanan provider lama untuk channel bawaan juga telah dihapus. Import seperti openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp, seam helper berlabel channel, dan openclaw/plugin-sdk/telegram-core adalah shortcut mono-repo privat, bukan kontrak plugin yang stabil. Gunakan subpath SDK generik yang sempit sebagai gantinya. Di dalam workspace plugin bawaan, simpan helper milik provider dalam api.ts atau runtime-api.ts milik plugin itu sendiri. Contoh provider bawaan saat ini:
  • Anthropic menyimpan helper stream khusus Claude di seam api.ts / contract-api.ts miliknya sendiri
  • OpenAI menyimpan builder provider, helper model default, dan builder provider realtime di api.ts miliknya sendiri
  • OpenRouter menyimpan builder provider dan helper onboarding/config di api.ts miliknya sendiri

Cara bermigrasi

1

Migrasikan handler native approval ke fakta kapabilitas

Plugin channel yang mendukung approval kini mengekspos perilaku approval native melalui approvalCapability.nativeRuntime serta registry konteks runtime bersama.Perubahan utama:
  • Ganti approvalCapability.handler.loadRuntime(...) dengan approvalCapability.nativeRuntime
  • Pindahkan auth/pengiriman khusus approval dari wiring lama plugin.auth / plugin.approvals ke approvalCapability
  • ChannelPlugin.approvals telah dihapus dari kontrak publik plugin channel; pindahkan field delivery/native/render ke approvalCapability
  • plugin.auth tetap ada hanya untuk alur login/logout channel; hook auth approval di sana tidak lagi dibaca oleh core
  • Daftarkan objek runtime milik channel seperti klien, token, atau aplikasi Bolt melalui openclaw/plugin-sdk/channel-runtime-context
  • Jangan kirim pemberitahuan reroute milik plugin dari handler approval native; core kini memiliki notifikasi diarahkan-ke-tempat-lain dari hasil pengiriman yang sebenarnya
  • Saat meneruskan channelRuntime ke createChannelManager(...), sediakan permukaan createPluginRuntime().channel yang nyata. Stub parsial akan ditolak.
Lihat /plugins/sdk-channel-plugins untuk tata letak kapabilitas approval saat ini.
2

Audit perilaku fallback wrapper Windows

Jika plugin Anda menggunakan openclaw/plugin-sdk/windows-spawn, wrapper Windows .cmd/.bat yang tidak ter-resolve kini gagal tertutup kecuali Anda secara eksplisit meneruskan allowShellFallback: true.
// Sebelumnya
const program = applyWindowsSpawnProgramPolicy({ candidate });

// Sesudahnya
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // Setel ini hanya untuk pemanggil kompatibilitas tepercaya yang memang
  // menerima fallback yang dimediasi shell.
  allowShellFallback: true,
});
Jika pemanggil Anda tidak sengaja bergantung pada fallback shell, jangan setel allowShellFallback dan tangani error yang dilempar sebagai gantinya.
3

Temukan import yang deprecated

Cari dalam plugin Anda import dari salah satu permukaan deprecated:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
4

Ganti dengan import yang terfokus

Setiap ekspor dari permukaan lama dipetakan ke path import modern tertentu:
// Sebelumnya (lapisan kompatibilitas mundur yang deprecated)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// Sesudahnya (import modern yang terfokus)
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";
Untuk helper sisi host, gunakan runtime plugin yang diinjeksi alih-alih mengimpor secara langsung:
// Sebelumnya (jembatan extension-api yang deprecated)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// Sesudahnya (runtime yang diinjeksi)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
Pola yang sama berlaku untuk helper jembatan lama lainnya:
Import lamaPadanan modern
resolveAgentDirapi.runtime.agent.resolveAgentDir
resolveAgentWorkspaceDirapi.runtime.agent.resolveAgentWorkspaceDir
resolveAgentIdentityapi.runtime.agent.resolveAgentIdentity
resolveThinkingDefaultapi.runtime.agent.resolveThinkingDefault
resolveAgentTimeoutMsapi.runtime.agent.resolveAgentTimeoutMs
ensureAgentWorkspaceapi.runtime.agent.ensureAgentWorkspace
helper penyimpanan sesiapi.runtime.agent.session.*
5

Build dan uji

pnpm build
pnpm test -- my-plugin/

Referensi path import

Path importTujuanEkspor utama
plugin-sdk/plugin-entryHelper entri plugin kanonisdefinePluginEntry
plugin-sdk/coreEkspor ulang umbrella lama untuk definisi/builder entri channeldefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaEkspor skema konfigurasi rootOpenClawSchema
plugin-sdk/provider-entryHelper entri provider tunggaldefineSingleProviderPluginEntry
plugin-sdk/channel-coreDefinisi dan builder entri channel yang terfokusdefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupHelper wizard setup bersamaPrompt allowlist, builder status setup
plugin-sdk/setup-runtimeHelper runtime saat setupAdaptor patch setup yang aman untuk import, helper catatan lookup, promptResolvedAllowFrom, splitSetupEntries, proxy setup terdelegasi
plugin-sdk/setup-adapter-runtimeHelper adaptor setupcreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsHelper tooling setupformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreHelper multi-akunHelper daftar akun/konfigurasi/action-gate
plugin-sdk/account-idHelper account-idDEFAULT_ACCOUNT_ID, normalisasi account-id
plugin-sdk/account-resolutionHelper lookup akunHelper lookup akun + fallback default
plugin-sdk/account-helpersHelper akun sempitHelper daftar akun/aksi akun
plugin-sdk/channel-setupAdaptor wizard setupcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, plus DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingPrimitive pairing DMcreateChannelPairingController
plugin-sdk/channel-reply-pipelineWiring prefiks balasan + typingcreateChannelReplyPipeline
plugin-sdk/channel-config-helpersFactory adaptor konfigurasicreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaBuilder skema konfigurasiTipe skema konfigurasi channel
plugin-sdk/telegram-command-configHelper konfigurasi perintah TelegramNormalisasi nama perintah, pemangkasan deskripsi, validasi duplikat/konflik
plugin-sdk/channel-policyResolusi kebijakan grup/DMresolveChannelGroupRequireMention
plugin-sdk/channel-lifecyclePelacakan status akuncreateAccountStatusSink
plugin-sdk/inbound-envelopeHelper inbound envelopeRoute bersama + helper builder envelope
plugin-sdk/inbound-reply-dispatchHelper balasan inboundHelper record-and-dispatch bersama
plugin-sdk/messaging-targetsParsing target pesanHelper parsing/pencocokan target
plugin-sdk/outbound-mediaHelper media outboundPemuatan media outbound bersama
plugin-sdk/outbound-runtimeHelper runtime outboundHelper identitas outbound/delegasi pengiriman
plugin-sdk/thread-bindings-runtimeHelper binding threadSiklus hidup thread-binding dan helper adaptor
plugin-sdk/agent-media-payloadHelper payload media lamaBuilder payload media agen untuk tata letak field lama
plugin-sdk/channel-runtimeShim kompatibilitas deprecatedHanya utilitas runtime channel lama
plugin-sdk/channel-send-resultTipe hasil pengirimanTipe hasil balasan
plugin-sdk/runtime-storePenyimpanan plugin persistencreatePluginRuntimeStore
plugin-sdk/runtimeHelper runtime yang luasHelper runtime/logging/backup/instalasi plugin
plugin-sdk/runtime-envHelper env runtime sempitLogger/runtime env, timeout, retry, dan helper backoff
plugin-sdk/plugin-runtimeHelper runtime plugin bersamaHelper plugin command/hook/http/interaktif
plugin-sdk/hook-runtimeHelper pipeline hookHelper pipeline webhook/internal hook bersama
plugin-sdk/lazy-runtimeHelper runtime lazycreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeHelper prosesHelper exec bersama
plugin-sdk/cli-runtimeHelper runtime CLIPemformatan perintah, wait, helper versi
plugin-sdk/gateway-runtimeHelper gatewayKlien gateway dan helper patch status channel
plugin-sdk/config-runtimeHelper konfigurasiHelper muat/tulis konfigurasi
plugin-sdk/telegram-command-configHelper perintah TelegramHelper validasi perintah Telegram yang stabil sebagai fallback saat permukaan kontrak Telegram bawaan tidak tersedia
plugin-sdk/approval-runtimeHelper prompt approvalPayload approval exec/plugin, helper kapabilitas/profil approval, helper routing/runtime approval native
plugin-sdk/approval-auth-runtimeHelper auth approvalResolusi approver, auth aksi obrolan yang sama
plugin-sdk/approval-client-runtimeHelper klien approvalHelper profil/filter approval exec native
plugin-sdk/approval-delivery-runtimeHelper pengiriman approvalAdaptor pengiriman/kapabilitas approval native
plugin-sdk/approval-gateway-runtimeHelper gateway approvalHelper resolusi gateway approval bersama
plugin-sdk/approval-handler-adapter-runtimeHelper adaptor approvalHelper pemuatan adaptor approval native yang ringan untuk hot channel entrypoint
plugin-sdk/approval-handler-runtimeHelper handler approvalHelper runtime handler approval yang lebih luas; pilih seam adaptor/gateway yang lebih sempit jika sudah cukup
plugin-sdk/approval-native-runtimeHelper target approvalHelper binding target/akun approval native
plugin-sdk/approval-reply-runtimeHelper balasan approvalHelper payload balasan approval exec/plugin
plugin-sdk/channel-runtime-contextHelper konteks runtime channelHelper register/get/watch konteks runtime channel generik
plugin-sdk/security-runtimeHelper keamananHelper trust, gating DM, konten eksternal, dan pengumpulan secret bersama
plugin-sdk/ssrf-policyHelper kebijakan SSRFHelper allowlist host dan kebijakan jaringan privat
plugin-sdk/ssrf-runtimeHelper runtime SSRFPinned-dispatcher, fetch terlindungi, helper kebijakan SSRF
plugin-sdk/collection-runtimeHelper cache terbataspruneMapToMaxSize
plugin-sdk/diagnostic-runtimeHelper gating diagnostikisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeHelper pemformatan errorformatUncaughtError, isApprovalNotFoundError, helper graph error
plugin-sdk/fetch-runtimeHelper fetch/proxy terbungkusresolveFetch, helper proxy
plugin-sdk/host-runtimeHelper normalisasi hostnormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeHelper retryRetryConfig, retryAsync, runner kebijakan
plugin-sdk/allow-fromPemformatan allowlistformatAllowFromLowercase
plugin-sdk/allowlist-resolutionPemetaan input allowlistmapAllowlistResolutionInputs
plugin-sdk/command-authHelper gating perintah dan permukaan perintahresolveControlCommandGate, helper otorisasi pengirim, helper registry perintah
plugin-sdk/secret-inputParsing input secretHelper input secret
plugin-sdk/webhook-ingressHelper permintaan webhookUtilitas target webhook
plugin-sdk/webhook-request-guardsHelper guard body webhookHelper baca/batas body permintaan
plugin-sdk/reply-runtimeRuntime balasan bersamaInbound dispatch, heartbeat, perencana balasan, chunking
plugin-sdk/reply-dispatch-runtimeHelper dispatch balasan sempitHelper finalisasi + dispatch provider
plugin-sdk/reply-historyHelper riwayat balasanbuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referencePerencanaan referensi balasancreateReplyReferencePlanner
plugin-sdk/reply-chunkingHelper chunk balasanHelper chunking teks/markdown
plugin-sdk/session-store-runtimeHelper penyimpanan sesiHelper path store + updated-at
plugin-sdk/state-pathsHelper path statusHelper status dan direktori OAuth
plugin-sdk/routingHelper routing/session-keyresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, helper normalisasi session-key
plugin-sdk/status-helpersHelper status channelBuilder ringkasan/snapshot status channel/akun, default status runtime, helper metadata isu
plugin-sdk/target-resolver-runtimeHelper target resolverHelper target resolver bersama
plugin-sdk/string-normalization-runtimeHelper normalisasi stringHelper normalisasi slug/string
plugin-sdk/request-urlHelper URL permintaanMengekstrak URL string dari input mirip-request
plugin-sdk/run-commandHelper perintah berjangka waktuRunner perintah berjangka waktu dengan stdout/stderr yang dinormalisasi
plugin-sdk/param-readersPembaca parameterPembaca parameter tool/CLI umum
plugin-sdk/tool-sendEkstraksi pengiriman toolMengekstrak field target pengiriman kanonis dari argumen tool
plugin-sdk/temp-pathHelper path sementaraHelper path unduhan sementara bersama
plugin-sdk/logging-coreHelper loggingLogger subsistem dan helper redaksi
plugin-sdk/markdown-table-runtimeHelper tabel MarkdownHelper mode tabel Markdown
plugin-sdk/reply-payloadTipe balasan pesanTipe payload balasan
plugin-sdk/provider-setupHelper setup provider lokal/self-hosted yang dikurasiHelper penemuan/konfigurasi provider self-hosted
plugin-sdk/self-hosted-provider-setupHelper setup provider self-hosted yang kompatibel dengan OpenAI dan terfokusHelper penemuan/konfigurasi provider self-hosted yang sama
plugin-sdk/provider-auth-runtimeHelper auth runtime providerHelper resolusi API key runtime
plugin-sdk/provider-auth-api-keyHelper setup API key providerHelper onboarding/penulisan profil API key
plugin-sdk/provider-auth-resultHelper hasil auth providerBuilder hasil auth OAuth standar
plugin-sdk/provider-auth-loginHelper login interaktif providerHelper login interaktif bersama
plugin-sdk/provider-env-varsHelper env-var providerHelper lookup env-var auth provider
plugin-sdk/provider-model-sharedHelper model/replay provider bersamaProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, builder kebijakan replay bersama, helper endpoint provider, dan helper normalisasi model-id
plugin-sdk/provider-catalog-sharedHelper katalog provider bersamafindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardPatch onboarding providerHelper konfigurasi onboarding
plugin-sdk/provider-httpHelper HTTP providerHelper kemampuan HTTP/endpoint provider generik
plugin-sdk/provider-web-fetchHelper web-fetch providerHelper registrasi/cache provider web-fetch
plugin-sdk/provider-web-search-contractHelper kontrak web-search providerHelper kontrak konfigurasi/kredensial web-search yang sempit seperti enablePluginInConfig, resolveProviderWebSearchPluginConfig, dan setter/getter kredensial dengan cakupan tertentu
plugin-sdk/provider-web-searchHelper web-search providerHelper registrasi/cache/runtime provider web-search
plugin-sdk/provider-toolsHelper kompatibilitas tool/skema providerProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, pembersihan skema Gemini + diagnostik, dan helper kompatibilitas xAI seperti resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageHelper penggunaan providerfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage, dan helper penggunaan provider lainnya
plugin-sdk/provider-streamHelper wrapper stream providerProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, tipe wrapper stream, dan helper wrapper bersama Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/keyed-async-queueAntrean async berurutanKeyedAsyncQueue
plugin-sdk/media-runtimeHelper media bersamaHelper fetch/transform/store media serta builder payload media
plugin-sdk/media-generation-runtimeHelper media-generation bersamaHelper failover bersama, pemilihan kandidat, dan pesan model hilang untuk pembuatan gambar/video/musik
plugin-sdk/media-understandingHelper media-understandingTipe provider media understanding serta ekspor helper gambar/audio yang menghadap provider
plugin-sdk/text-runtimeHelper teks bersamaPenghapusan teks yang terlihat oleh asisten, helper render/chunking/tabel markdown, helper redaksi, helper tag direktif, utilitas teks aman, serta helper teks/logging terkait
plugin-sdk/text-chunkingHelper chunking teksHelper chunking teks outbound
plugin-sdk/speechHelper speechTipe provider speech serta helper direktif, registry, dan validasi yang menghadap provider
plugin-sdk/speech-coreCore speech bersamaTipe provider speech, registry, direktif, normalisasi
plugin-sdk/realtime-transcriptionHelper transkripsi realtimeTipe provider dan helper registry
plugin-sdk/realtime-voiceHelper suara realtimeTipe provider dan helper registry
plugin-sdk/image-generation-coreCore image-generation bersamaTipe image-generation, failover, auth, dan helper registry
plugin-sdk/music-generationHelper music-generationTipe provider/permintaan/hasil music-generation
plugin-sdk/music-generation-coreCore music-generation bersamaTipe music-generation, helper failover, lookup provider, dan parsing model-ref
plugin-sdk/video-generationHelper video-generationTipe provider/permintaan/hasil video-generation
plugin-sdk/video-generation-coreCore video-generation bersamaTipe video-generation, helper failover, lookup provider, dan parsing model-ref
plugin-sdk/interactive-runtimeHelper balasan interaktifNormalisasi/reduksi payload balasan interaktif
plugin-sdk/channel-config-primitivesPrimitive konfigurasi channelPrimitive config-schema channel yang sempit
plugin-sdk/channel-config-writesHelper penulisan konfigurasi channelHelper otorisasi penulisan konfigurasi channel
plugin-sdk/channel-plugin-commonPrelude channel bersamaEkspor prelude plugin channel bersama
plugin-sdk/channel-statusHelper status channelHelper snapshot/ringkasan status channel bersama
plugin-sdk/allowlist-config-editHelper konfigurasi allowlistHelper edit/baca konfigurasi allowlist
plugin-sdk/group-accessHelper akses grupHelper keputusan akses grup bersama
plugin-sdk/direct-dmHelper direct-DMHelper auth/guard direct-DM bersama
plugin-sdk/extension-sharedHelper extension bersamaPrimitive channel/status pasif dan ambient proxy helper
plugin-sdk/webhook-targetsHelper target webhookRegistry target webhook dan helper instalasi route
plugin-sdk/webhook-pathHelper path webhookHelper normalisasi path webhook
plugin-sdk/web-mediaHelper media web bersamaHelper pemuatan media remote/lokal
plugin-sdk/zodEkspor ulang Zodzod yang diekspor ulang untuk konsumen plugin SDK
plugin-sdk/memory-coreHelper memory-core bawaanPermukaan helper memory manager/config/file/CLI
plugin-sdk/memory-core-engine-runtimeFasad runtime engine memoriFasad runtime indeks/pencarian memori
plugin-sdk/memory-core-host-engine-foundationEngine fondasi host memoriEkspor engine fondasi host memori
plugin-sdk/memory-core-host-engine-embeddingsEngine embedding host memoriEkspor engine embedding host memori
plugin-sdk/memory-core-host-engine-qmdEngine QMD host memoriEkspor engine QMD host memori
plugin-sdk/memory-core-host-engine-storageEngine penyimpanan host memoriEkspor engine penyimpanan host memori
plugin-sdk/memory-core-host-multimodalHelper multimodal host memoriHelper multimodal host memori
plugin-sdk/memory-core-host-queryHelper kueri host memoriHelper kueri host memori
plugin-sdk/memory-core-host-secretHelper secret host memoriHelper secret host memori
plugin-sdk/memory-core-host-eventsHelper jurnal event host memoriHelper jurnal event host memori
plugin-sdk/memory-core-host-statusHelper status host memoriHelper status host memori
plugin-sdk/memory-core-host-runtime-cliRuntime CLI host memoriHelper runtime CLI host memori
plugin-sdk/memory-core-host-runtime-coreRuntime core host memoriHelper runtime core host memori
plugin-sdk/memory-core-host-runtime-filesHelper file/runtime host memoriHelper file/runtime host memori
plugin-sdk/memory-host-coreAlias runtime core host memoriAlias netral-vendor untuk helper runtime core host memori
plugin-sdk/memory-host-eventsAlias jurnal event host memoriAlias netral-vendor untuk helper jurnal event host memori
plugin-sdk/memory-host-filesAlias file/runtime host memoriAlias netral-vendor untuk helper file/runtime host memori
plugin-sdk/memory-host-markdownHelper markdown terkelolaHelper managed-markdown bersama untuk plugin yang berdekatan dengan memori
plugin-sdk/memory-host-searchFasad pencarian memori aktifFasad runtime lazy active-memory search-manager
plugin-sdk/memory-host-statusAlias status host memoriAlias netral-vendor untuk helper status host memori
plugin-sdk/memory-lancedbHelper memory-lancedb bawaanPermukaan helper memory-lancedb
plugin-sdk/testingUtilitas pengujianHelper dan mock pengujian
Tabel ini sengaja merupakan subset migrasi umum, bukan permukaan SDK penuh. Daftar lengkap 200+ entrypoint ada di scripts/lib/plugin-sdk-entrypoints.json. Daftar itu masih mencakup beberapa seam helper bundled-plugin seperti plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup, dan plugin-sdk/matrix*. Itu tetap diekspor untuk pemeliharaan bundled-plugin dan kompatibilitas, tetapi sengaja dihilangkan dari tabel migrasi umum dan bukan target yang direkomendasikan untuk kode plugin baru. Aturan yang sama berlaku untuk keluarga helper bawaan lainnya seperti:
  • helper dukungan browser: plugin-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
  • Matrix: plugin-sdk/matrix*
  • LINE: plugin-sdk/line*
  • IRC: plugin-sdk/irc*
  • permukaan helper/plugin bawaan seperti plugin-sdk/googlechat, plugin-sdk/zalouser, plugin-sdk/bluebubbles*, plugin-sdk/mattermost*, 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, dan plugin-sdk/voice-call
plugin-sdk/github-copilot-token saat ini mengekspos permukaan helper token yang sempit DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken, dan resolveCopilotApiToken. Gunakan import yang paling sempit yang sesuai dengan pekerjaan tersebut. Jika Anda tidak dapat menemukan ekspor, periksa sumber di src/plugin-sdk/ atau tanyakan di Discord.

Linimasa penghapusan

KapanApa yang terjadi
SekarangPermukaan deprecated memunculkan peringatan runtime
Rilis mayor berikutnyaPermukaan deprecated akan dihapus; plugin yang masih menggunakannya akan gagal
Semua plugin core sudah dimigrasikan. Plugin eksternal harus bermigrasi sebelum rilis mayor berikutnya.

Menyembunyikan peringatan untuk sementara

Setel variabel environment ini saat Anda sedang mengerjakan migrasi:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
Ini adalah jalur keluar sementara, bukan solusi permanen.

Terkait