Перейти до основного вмісту

Міграція Plugin SDK

OpenClaw перейшов від широкого шару зворотної сумісності до сучасної архітектури plugin-ів із цілеспрямованими, задокументованими імпортами. Якщо ваш plugin було створено до появи нової архітектури, цей посібник допоможе вам виконати міграцію.

Що змінюється

Стара система plugin-ів надавала дві широко відкриті поверхні, які дозволяли plugin-ам імпортувати все необхідне з однієї точки входу:
  • openclaw/plugin-sdk/compat — один імпорт, який повторно експортував десятки допоміжних функцій. Його було запроваджено, щоб старіші hook-орієнтовані plugin-и продовжували працювати під час розробки нової архітектури plugin-ів.
  • openclaw/extension-api — міст, який надавав plugin-ам прямий доступ до допоміжних засобів на боці хоста, наприклад до вбудованого засобу запуску агента.
Обидві поверхні тепер застарілі. Вони все ще працюють під час виконання, але нові plugin-и не повинні їх використовувати, а наявні plugin-и слід мігрувати до того, як наступний мажорний випуск їх вилучить.
Шар зворотної сумісності буде вилучено в одному з майбутніх мажорних випусків. Plugin-и, які й надалі імпортують із цих поверхонь, перестануть працювати, коли це станеться.

Чому це змінилося

Старий підхід спричиняв проблеми:
  • Повільний запуск — імпорт однієї допоміжної функції завантажував десятки не пов’язаних між собою модулів
  • Циклічні залежності — широкі повторні експорти спрощували створення циклів імпорту
  • Неочевидна поверхня API — не було способу визначити, які експорти є стабільними, а які — внутрішніми
Сучасний Plugin SDK це виправляє: кожен шлях імпорту (openclaw/plugin-sdk/\<subpath\>) є невеликим, самодостатнім модулем із чітким призначенням і задокументованим контрактом. Застарілі зручні шви провайдерів для вбудованих каналів також зникли. Імпорти на кшталт openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp, допоміжні шви з брендуванням каналів і openclaw/plugin-sdk/telegram-core були приватними скороченнями монорепозиторію, а не стабільними контрактами plugin-ів. Натомість використовуйте вузькі узагальнені підшляхи SDK. Усередині робочого простору вбудованого plugin-а зберігайте допоміжні засоби, що належать провайдеру, у власному api.ts або runtime-api.ts цього plugin-а. Поточні приклади вбудованих провайдерів:
  • Anthropic зберігає допоміжні засоби потокової обробки, специфічні для Claude, у власному шві api.ts / contract-api.ts
  • OpenAI зберігає конструктори провайдерів, допоміжні засоби для моделей за замовчуванням і конструктори realtime-провайдерів у власному api.ts
  • OpenRouter зберігає конструктор провайдера та допоміжні засоби для онбордингу/конфігурації у власному api.ts

Як виконати міграцію

1

Перенесіть approval-native обробники на факти можливостей

Channel plugin-и з підтримкою approval тепер надають нативну поведінку approval через approvalCapability.nativeRuntime разом зі спільним реєстром контексту середовища виконання.Основні зміни:
  • Замініть approvalCapability.handler.loadRuntime(...) на approvalCapability.nativeRuntime
  • Перенесіть auth/delivery, специфічні для approval, із застарілого зв’язування plugin.auth / plugin.approvals до approvalCapability
  • ChannelPlugin.approvals вилучено з публічного контракту channel plugin-а; перенесіть поля delivery/native/render до approvalCapability
  • plugin.auth залишається лише для потоків входу/виходу з каналу; approval auth hooks там більше не зчитуються ядром
  • Реєструйте об’єкти середовища виконання, що належать каналу, як-от клієнти, токени або Bolt apps, через openclaw/plugin-sdk/channel-runtime-context
  • Не надсилайте сповіщення про перенаправлення, що належать plugin-у, з нативних approval-обробників; тепер ядро саме відповідає за routed-elsewhere сповіщення на основі фактичних результатів delivery
  • Коли передаєте channelRuntime до createChannelManager(...), надавайте реальну поверхню createPluginRuntime().channel. Часткові заглушки відхиляються.
Див. /plugins/sdk-channel-plugins, щоб переглянути поточну структуру можливостей approval.
2

Перевірте резервну поведінку Windows wrapper

Якщо ваш plugin використовує openclaw/plugin-sdk/windows-spawn, нерозв’язані Windows wrappers .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,
});
Якщо ваш виклик не покладається навмисно на резервний перехід через shell, не встановлюйте allowShellFallback і натомість обробляйте згенеровану помилку.
3

Знайдіть застарілі імпорти

Знайдіть у своєму plugin-і імпорти з будь-якої застарілої поверхні:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
4

Замініть їх на цілеспрямовані імпорти

Кожен експорт зі старої поверхні відповідає певному сучасному шляху імпорту:
// 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
session store helpersapi.runtime.agent.session.*
5

Зберіть і протестуйте

pnpm build
pnpm test -- my-plugin/

Довідник шляхів імпорту

Import pathПризначенняКлючові експорти
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Спільні допоміжні засоби майстра налаштуванняЗапити allowlist, конструктори стану налаштування
plugin-sdk/setup-runtimeДопоміжні засоби середовища виконання під час налаштуванняБезпечні для імпорту адаптери патчів налаштування, допоміжні засоби для приміток пошуку, promptResolvedAllowFrom, splitSetupEntries, делеговані проксі налаштування
plugin-sdk/setup-adapter-runtimeДопоміжні засоби адаптера налаштуванняcreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsДопоміжні засоби інструментів налаштуванняformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreДопоміжні засоби для кількох облікових записівДопоміжні засоби списку/конфігурації/гейтів дій облікових записів
plugin-sdk/account-idДопоміжні засоби account-idDEFAULT_ACCOUNT_ID, нормалізація account-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-pairingПримітиви pairing для DMcreateChannelPairingController
plugin-sdk/channel-reply-pipelineПрефікс reply + wiring індикатора наборуcreateChannelReplyPipeline
plugin-sdk/channel-config-helpersФабрики адаптерів конфігураціїcreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaКонструктори схем конфігураціїТипи схем конфігурації каналу
plugin-sdk/telegram-command-configДопоміжні засоби конфігурації команд TelegramНормалізація імен команд, обрізання описів, перевірка дублікатів/конфліктів
plugin-sdk/channel-policyВизначення політик груп/DMresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleВідстеження стану облікового записуcreateAccountStatusSink
plugin-sdk/inbound-envelopeДопоміжні засоби вхідних envelopeСпільні допоміжні засоби маршрутизації + побудови envelope
plugin-sdk/inbound-reply-dispatchДопоміжні засоби вхідних replyСпільні допоміжні засоби запису та dispatch
plugin-sdk/messaging-targetsРозбір цілей повідомленьДопоміжні засоби розбору/зіставлення цілей
plugin-sdk/outbound-mediaДопоміжні засоби вихідних медіаСпільне завантаження вихідних медіа
plugin-sdk/outbound-runtimeДопоміжні засоби вихідного середовища виконанняДопоміжні засоби outbound identity/send delegate і планування payload
plugin-sdk/thread-bindings-runtimeДопоміжні засоби прив’язок threadДопоміжні засоби життєвого циклу й адаптера прив’язок thread
plugin-sdk/agent-media-payloadЗастарілі допоміжні засоби media payloadКонструктор media payload агента для застарілих макетів полів
plugin-sdk/channel-runtimeЗастарілий шім сумісностіЛише застарілі утиліти середовища виконання каналу
plugin-sdk/channel-send-resultТипи результатів sendТипи результатів reply
plugin-sdk/runtime-storeПостійне сховище plugin-аcreatePluginRuntimeStore
plugin-sdk/runtimeШирокі допоміжні засоби середовища виконанняДопоміжні засоби runtime/logging/backup/встановлення plugin-ів
plugin-sdk/runtime-envВузькі допоміжні засоби runtime envLogger/runtime env, timeout, retry та допоміжні засоби backoff
plugin-sdk/plugin-runtimeСпільні допоміжні засоби середовища виконання plugin-аДопоміжні засоби команд/hooks/http/interactive plugin-а
plugin-sdk/hook-runtimeДопоміжні засоби конвеєра hookСпільні допоміжні засоби конвеєра Webhook/внутрішніх hook
plugin-sdk/lazy-runtimeДопоміжні засоби lazy runtimecreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeДопоміжні засоби processСпільні допоміжні засоби exec
plugin-sdk/cli-runtimeДопоміжні засоби середовища виконання CLIФорматування команд, очікування, допоміжні засоби версій
plugin-sdk/gateway-runtimeДопоміжні засоби GatewayДопоміжні засоби клієнта Gateway та патчів стану каналу
plugin-sdk/config-runtimeДопоміжні засоби конфігураціїДопоміжні засоби завантаження/запису конфігурації
plugin-sdk/telegram-command-configДопоміжні засоби команд TelegramСтабільні при fallback допоміжні засоби перевірки команд Telegram, коли поверхня контракту вбудованого Telegram недоступна
plugin-sdk/approval-runtimeДопоміжні засоби prompt approvalДопоміжні засоби payload exec/plugin approval, capability/profile approval, маршрутизації/середовища виконання native approval
plugin-sdk/approval-auth-runtimeДопоміжні засоби auth для approvalВизначення approver, auth дій у тому самому чаті
plugin-sdk/approval-client-runtimeДопоміжні засоби клієнта approvalДопоміжні засоби profile/filter native exec approval
plugin-sdk/approval-delivery-runtimeДопоміжні засоби delivery для approvalАдаптери capability/delivery native approval
plugin-sdk/approval-gateway-runtimeДопоміжні засоби Gateway для approvalСпільний допоміжний засіб визначення Gateway для approval
plugin-sdk/approval-handler-adapter-runtimeДопоміжні засоби адаптера approvalПолегшені допоміжні засоби завантаження адаптера native approval для гарячих точок входу каналу
plugin-sdk/approval-handler-runtimeДопоміжні засоби обробника approvalШирші допоміжні засоби середовища виконання обробника approval; віддавайте перевагу вужчим швам adapter/gateway, якщо їх достатньо
plugin-sdk/approval-native-runtimeДопоміжні засоби цілей approvalДопоміжні засоби прив’язки цілі/облікового запису native approval
plugin-sdk/approval-reply-runtimeДопоміжні засоби reply для approvalДопоміжні засоби payload reply exec/plugin approval
plugin-sdk/channel-runtime-contextДопоміжні засоби runtime-context каналуУзагальнені допоміжні засоби register/get/watch для runtime-context каналу
plugin-sdk/security-runtimeДопоміжні засоби безпекиСпільні допоміжні засоби trust, DM gating, external-content і збирання секретів
plugin-sdk/ssrf-policyДопоміжні засоби політики SSRFДопоміжні засоби allowlist хостів і політики приватної мережі
plugin-sdk/ssrf-runtimeДопоміжні засоби середовища виконання SSRFДопоміжні засоби pinned-dispatcher, guarded fetch, політики SSRF
plugin-sdk/collection-runtimeДопоміжні засоби обмеженого кешуpruneMapToMaxSize
plugin-sdk/diagnostic-runtimeДопоміжні засоби діагностичного gatingisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeДопоміжні засоби форматування помилокformatUncaughtError, isApprovalNotFoundError, допоміжні засоби графа помилок
plugin-sdk/fetch-runtimeДопоміжні засоби обгорнутого fetch/proxyresolveFetch, допоміжні засоби proxy
plugin-sdk/host-runtimeДопоміжні засоби нормалізації хостаnormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeДопоміжні засоби retryRetryConfig, retryAsync, виконавці політик
plugin-sdk/allow-fromФорматування allowlistformatAllowFromLowercase
plugin-sdk/allowlist-resolutionВідображення вхідних даних allowlistmapAllowlistResolutionInputs
plugin-sdk/command-authДопоміжні засоби gating команд і поверхні командresolveControlCommandGate, допоміжні засоби авторизації відправника, допоміжні засоби реєстру команд
plugin-sdk/command-statusВізуалізатори статусу/довідки командbuildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage
plugin-sdk/secret-inputРозбір секретного вводуДопоміжні засоби секретного вводу
plugin-sdk/webhook-ingressДопоміжні засоби запитів WebhookУтиліти цілей Webhook
plugin-sdk/webhook-request-guardsДопоміжні засоби guard для тіла запиту WebhookДопоміжні засоби читання/обмеження тіла запиту
plugin-sdk/reply-runtimeСпільне середовище виконання replyInbound dispatch, Heartbeat, планувальник reply, chunking
plugin-sdk/reply-dispatch-runtimeВузькі допоміжні засоби dispatch replyДопоміжні засоби finalize + dispatch провайдера
plugin-sdk/reply-historyДопоміжні засоби історії replybuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referenceПланування посилань replycreateReplyReferencePlanner
plugin-sdk/reply-chunkingДопоміжні засоби chunk для replyДопоміжні засоби chunking тексту/markdown
plugin-sdk/session-store-runtimeДопоміжні засоби сховища сесійДопоміжні засоби шляху сховища + updated-at
plugin-sdk/state-pathsДопоміжні засоби шляхів стануДопоміжні засоби каталогів стану та OAuth
plugin-sdk/routingДопоміжні засоби маршрутизації/session-keyresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, допоміжні засоби нормалізації session-key
plugin-sdk/status-helpersДопоміжні засоби стану каналуКонструктори зведення стану каналу/облікового запису, значення стану runtime за замовчуванням, допоміжні засоби метаданих issue
plugin-sdk/target-resolver-runtimeДопоміжні засоби визначення цілейСпільні допоміжні засоби target resolver
plugin-sdk/string-normalization-runtimeДопоміжні засоби нормалізації рядківДопоміжні засоби нормалізації slug/рядків
plugin-sdk/request-urlДопоміжні засоби URL запитуВитягування рядкових URL із вхідних даних, подібних до request
plugin-sdk/run-commandДопоміжні засоби команд із часовими обмеженнямиЗапускач команд із нормалізованими stdout/stderr
plugin-sdk/param-readersЧитачі параметрівЗагальні читачі параметрів tool/CLI
plugin-sdk/tool-payloadВитягування payload toolВитягування нормалізованих payload з об’єктів результатів tool
plugin-sdk/tool-sendВитягування send toolВитягування канонічних полів цілі send з аргументів tool
plugin-sdk/temp-pathДопоміжні засоби тимчасових шляхівСпільні допоміжні засоби шляхів тимчасового завантаження
plugin-sdk/logging-coreДопоміжні засоби логуванняДопоміжні засоби logger підсистеми та редагування
plugin-sdk/markdown-table-runtimeДопоміжні засоби markdown-таблицьДопоміжні засоби режиму markdown-таблиць
plugin-sdk/reply-payloadТипи reply повідомленьТипи payload reply
plugin-sdk/provider-setupКураторські допоміжні засоби налаштування локальних/self-hosted провайдерівДопоміжні засоби виявлення/конфігурації self-hosted провайдерів
plugin-sdk/self-hosted-provider-setupЦілеспрямовані допоміжні засоби налаштування OpenAI-сумісних self-hosted провайдерівТі самі допоміжні засоби виявлення/конфігурації self-hosted провайдерів
plugin-sdk/provider-auth-runtimeДопоміжні засоби auth середовища виконання провайдераДопоміжні засоби визначення API-ключа під час виконання
plugin-sdk/provider-auth-api-keyДопоміжні засоби налаштування API-ключа провайдераДопоміжні засоби онбордингу/запису профілю API-ключа
plugin-sdk/provider-auth-resultДопоміжні засоби результату auth провайдераСтандартний конструктор результату auth OAuth
plugin-sdk/provider-auth-loginДопоміжні засоби інтерактивного входу провайдераСпільні допоміжні засоби інтерактивного входу
plugin-sdk/provider-env-varsДопоміжні засоби env var провайдераДопоміжні засоби пошуку env var auth провайдера
plugin-sdk/provider-model-sharedСпільні допоміжні засоби моделей/replay провайдераProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, спільні конструктори політики replay, допоміжні засоби endpoint провайдера та нормалізації model-id
plugin-sdk/provider-catalog-sharedСпільні допоміжні засоби каталогу провайдераfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardПатчі онбордингу провайдераДопоміжні засоби конфігурації онбордингу
plugin-sdk/provider-httpДопоміжні засоби HTTP провайдераУзагальнені допоміжні засоби HTTP/можливостей endpoint провайдера
plugin-sdk/provider-web-fetchДопоміжні засоби web-fetch провайдераДопоміжні засоби реєстрації/кешу web-fetch провайдера
plugin-sdk/provider-web-search-config-contractДопоміжні засоби конфігурації web-search провайдераВузькі допоміжні засоби конфігурації/облікових даних web-search для провайдерів, яким не потрібне зв’язування ввімкнення plugin-а
plugin-sdk/provider-web-search-contractДопоміжні засоби контракту web-search провайдераВузькі допоміжні засоби контракту конфігурації/облікових даних web-search, як-от createWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig і scoped setters/getters облікових даних
plugin-sdk/provider-web-searchДопоміжні засоби web-search провайдераДопоміжні засоби реєстрації/кешу/runtime web-search провайдера
plugin-sdk/provider-toolsДопоміжні засоби compat для tool/schema провайдераProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, очищення схеми Gemini + diagnostics, а також допоміжні засоби compat для xAI, такі як resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageДопоміжні засоби usage провайдераfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage та інші допоміжні засоби usage провайдера
plugin-sdk/provider-streamДопоміжні засоби обгорток stream провайдераProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, типи обгорток stream і спільні допоміжні засоби обгорток Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/provider-transport-runtimeДопоміжні засоби транспорту провайдераНативні допоміжні засоби транспорту провайдера, як-от guarded fetch, перетворення transport message і writable transport event streams
plugin-sdk/keyed-async-queueУпорядкована async-чергаKeyedAsyncQueue
plugin-sdk/media-runtimeСпільні допоміжні засоби медіаДопоміжні засоби fetch/transform/store медіа, а також конструктори media payload
plugin-sdk/media-generation-runtimeСпільні допоміжні засоби генерації медіаСпільні допоміжні засоби failover, вибору candidate та повідомлень про відсутню модель для генерації зображень/відео/музики
plugin-sdk/media-understandingДопоміжні засоби media-understandingТипи провайдера media understanding, а також експорти допоміжних засобів зображень/аудіо для провайдерів
plugin-sdk/text-runtimeСпільні допоміжні засоби текстуВидалення тексту, видимого асистенту, допоміжні засоби render/chunking/table для markdown, допоміжні засоби редагування, допоміжні засоби тегів директив, утиліти безпечного тексту та пов’язані допоміжні засоби тексту/логування
plugin-sdk/text-chunkingДопоміжні засоби chunking текстуДопоміжний засіб chunking вихідного тексту
plugin-sdk/speechДопоміжні засоби мовленняТипи провайдера мовлення, а також допоміжні засоби директив, реєстру й валідації для провайдерів
plugin-sdk/speech-coreСпільне ядро мовленняТипи провайдера мовлення, реєстр, директиви, нормалізація
plugin-sdk/realtime-transcriptionДопоміжні засоби realtime-транскрипціїТипи провайдера та допоміжні засоби реєстру
plugin-sdk/realtime-voiceДопоміжні засоби realtime-голосуТипи провайдера та допоміжні засоби реєстру
plugin-sdk/image-generation-coreСпільне ядро генерації зображеньТипи генерації зображень, failover, auth і допоміжні засоби реєстру
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/interactive-runtimeДопоміжні засоби інтерактивних replyНормалізація/редукція payload інтерактивних reply
plugin-sdk/channel-config-primitivesПримітиви конфігурації каналуВузькі примітиви config-schema каналу
plugin-sdk/channel-config-writesДопоміжні засоби запису конфігурації каналуДопоміжні засоби авторизації запису конфігурації каналу
plugin-sdk/channel-plugin-commonСпільний prelude каналуЕкспорти спільного prelude channel plugin-а
plugin-sdk/channel-statusДопоміжні засоби стану каналуСпільні допоміжні засоби snapshot/summary стану каналу
plugin-sdk/allowlist-config-editДопоміжні засоби конфігурації allowlistДопоміжні засоби редагування/читання конфігурації allowlist
plugin-sdk/group-accessДопоміжні засоби доступу до групСпільні допоміжні засоби рішень щодо group-access
plugin-sdk/direct-dmДопоміжні засоби прямого DMСпільні допоміжні засоби auth/guard для прямого DM
plugin-sdk/extension-sharedСпільні допоміжні засоби extensionПримітиви допоміжних засобів passive-channel/status і ambient proxy
plugin-sdk/webhook-targetsДопоміжні засоби цілей WebhookДопоміжні засоби реєстру цілей Webhook та встановлення маршрутів
plugin-sdk/webhook-pathДопоміжні засоби шляхів WebhookДопоміжні засоби нормалізації шляхів Webhook
plugin-sdk/web-mediaСпільні допоміжні засоби web mediaДопоміжні засоби завантаження віддалених/локальних медіа
plugin-sdk/zodПовторний експорт ZodПовторно експортований zod для споживачів Plugin SDK
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Рушій embedding хоста пам’ятіКонтракти embedding пам’яті, доступ до реєстру, локальний провайдер і узагальнені допоміжні засоби batch/remote; конкретні віддалені провайдери розміщуються у plugin-ах, яким вони належать
plugin-sdk/memory-core-host-engine-qmdРушій QMD хоста пам’ятіЕкспорти рушія QMD хоста пам’яті
plugin-sdk/memory-core-host-engine-storageРушій сховища хоста пам’ятіЕкспорти рушія сховища хоста пам’яті
plugin-sdk/memory-core-host-multimodalДопоміжні засоби multimodal хоста пам’ятіДопоміжні засоби multimodal хоста пам’яті
plugin-sdk/memory-core-host-queryДопоміжні засоби query хоста пам’ятіДопоміжні засоби query хоста пам’яті
plugin-sdk/memory-core-host-secretДопоміжні засоби секретів хоста пам’ятіДопоміжні засоби секретів хоста пам’яті
plugin-sdk/memory-core-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Допоміжні засоби файлів/runtime хоста пам’ятіДопоміжні засоби файлів/runtime хоста пам’яті
plugin-sdk/memory-host-coreПсевдонім основного середовища виконання хоста пам’ятіНезалежний від постачальника псевдонім для основних допоміжних засобів середовища виконання хоста пам’яті
plugin-sdk/memory-host-eventsПсевдонім журналу подій хоста пам’ятіНезалежний від постачальника псевдонім для допоміжних засобів журналу подій хоста пам’яті
plugin-sdk/memory-host-filesПсевдонім файлів/runtime хоста пам’ятіНезалежний від постачальника псевдонім для допоміжних засобів файлів/runtime хоста пам’яті
plugin-sdk/memory-host-markdownДопоміжні засоби керованого markdownСпільні допоміжні засоби керованого markdown для plugin-ів, суміжних із пам’яттю
plugin-sdk/memory-host-searchФасад пошуку Active MemoryЛінивий фасад середовища виконання менеджера пошуку active-memory
plugin-sdk/memory-host-statusПсевдонім стану хоста пам’ятіНезалежний від постачальника псевдонім для допоміжних засобів стану хоста пам’яті
plugin-sdk/memory-lancedbДопоміжні засоби вбудованого memory-lancedbПоверхня допоміжних засобів memory-lancedb
plugin-sdk/testingУтиліти тестуванняДопоміжні засоби тестування та mocks
Ця таблиця навмисно є поширеною підмножиною для міграції, а не повною поверхнею SDK. Повний список із понад 200 точок входу міститься в scripts/lib/plugin-sdk-entrypoints.json. Цей список усе ще містить деякі шви допоміжних засобів вбудованих plugin-ів, як-от plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup і plugin-sdk/matrix*. Вони й надалі експортуються для підтримки та сумісності вбудованих plugin-ів, але навмисно не включені до поширеної таблиці міграції й не є рекомендованою ціллю для нового коду plugin-ів. Те саме правило застосовується до інших сімейств допоміжних засобів вбудованих plugin-ів, таких як:
  • допоміжні засоби підтримки браузера: 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*
  • поверхні вбудованих допоміжних засобів/plugin-ів, як-от 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 і plugin-sdk/voice-call
plugin-sdk/github-copilot-token наразі надає вузьку поверхню допоміжних засобів токена: DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken і resolveCopilotApiToken. Використовуйте найвужчий імпорт, який відповідає завданню. Якщо ви не можете знайти експорт, перевірте код у src/plugin-sdk/ або запитайте в Discord.

Графік вилучення

КолиЩо відбувається
ЗаразЗастарілі поверхні генерують попередження під час виконання
Наступний мажорний випускЗастарілі поверхні буде вилучено; plugin-и, які досі їх використовують, перестануть працювати
Усі основні plugin-и вже мігровано. Зовнішнім plugin-ам слід виконати міграцію до наступного мажорного випуску.

Тимчасове приглушення попереджень

Встановіть ці змінні середовища, поки працюєте над міграцією:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
Це тимчасовий запасний варіант, а не постійне рішення.

Пов’язане