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

Огляд Plugin SDK

Plugin SDK — це типізований контракт між плагінами та ядром. Ця сторінка — довідник про що імпортувати і що можна реєструвати.
Шукаєте покроковий посібник?

Правило імпорту

Завжди імпортуйте з конкретного підшляху:
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
Кожен підшлях — це невеликий самодостатній модуль. Це забезпечує швидкий запуск і запобігає проблемам із циклічними залежностями. Для специфічних для каналів допоміжних засобів входу/збирання надавайте перевагу openclaw/plugin-sdk/channel-core; залишайте openclaw/plugin-sdk/core для ширшої узагальнювальної поверхні та спільних допоміжних засобів, таких як buildChannelConfigSchema. Не додавайте і не використовуйте зручні шви з назвами провайдерів, такі як openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp, або допоміжні шви з брендингом каналів. Вбудовані плагіни мають компонувати загальні підшляхи SDK у власних barrel-файлах api.ts або runtime-api.ts, а ядро має або використовувати ці локальні barrel-файли плагіна, або додавати вузький загальний контракт SDK, якщо потреба справді є міжканальною. Згенерована карта експортів усе ще містить невеликий набір допоміжних швів для вбудованих плагінів, таких як plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup і plugin-sdk/matrix*. Ці підшляхи існують лише для підтримки вбудованих плагінів і сумісності; їх навмисно не включено до загальної таблиці нижче, і вони не є рекомендованим шляхом імпорту для нових сторонніх плагінів.

Довідник підшляхів

Найуживаніші підшляхи, згруповані за призначенням. Згенерований повний список із понад 200 підшляхів міститься в scripts/lib/plugin-sdk-entrypoints.json. Зарезервовані допоміжні підшляхи вбудованих плагінів усе ще з’являються в цьому згенерованому списку. Вважайте їх деталями реалізації / поверхнями сумісності, якщо тільки якась сторінка документації явно не просуває один із них як публічний.

Вхід плагіна

ПідшляхКлючові експорти
plugin-sdk/plugin-entrydefinePluginEntry
plugin-sdk/coredefineChannelPluginEntry, createChatChannelPlugin, createChannelPluginBase, defineSetupPluginEntry, buildChannelConfigSchema
plugin-sdk/config-schemaOpenClawSchema
plugin-sdk/provider-entrydefineSingleProviderPluginEntry
ПідшляхКлючові експорти
plugin-sdk/channel-coredefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/config-schemaЕкспорт кореневої Zod-схеми openclaw.json (OpenClawSchema)
plugin-sdk/channel-setupcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, а також DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/setupСпільні допоміжні засоби майстра налаштування, запити списків дозволених джерел, побудова статусу налаштування
plugin-sdk/setup-runtimecreatePatchedAccountSetupAdapter, createEnvPatchedAccountSetupAdapter, createSetupInputPresenceValidator, noteChannelLookupFailure, noteChannelLookupSummary, promptResolvedAllowFrom, splitSetupEntries, createAllowlistSetupWizardProxy, createDelegatedSetupWizardProxy
plugin-sdk/setup-adapter-runtimecreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreДопоміжні засоби для конфігурації/керування шлюзами дій з кількома обліковими записами, допоміжні засоби резервного використання типового облікового запису
plugin-sdk/account-idDEFAULT_ACCOUNT_ID, допоміжні засоби нормалізації account-id
plugin-sdk/account-resolutionПошук облікового запису + допоміжні засоби резервного використання типового значення
plugin-sdk/account-helpersВузькі допоміжні засоби для списків облікових записів / дій над обліковими записами
plugin-sdk/channel-pairingcreateChannelPairingController
plugin-sdk/channel-reply-pipelinecreateChannelReplyPipeline
plugin-sdk/channel-config-helperscreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaТипи схеми конфігурації каналу
plugin-sdk/telegram-command-configДопоміжні засоби нормалізації/валідації користувацьких команд Telegram із резервним вбудованим контрактом
plugin-sdk/channel-policyresolveChannelGroupRequireMention
plugin-sdk/channel-lifecyclecreateAccountStatusSink
plugin-sdk/inbound-envelopeСпільні допоміжні засоби маршрутизації вхідних повідомлень і побудови envelope
plugin-sdk/inbound-reply-dispatchСпільні допоміжні засоби запису та диспетчеризації вхідних повідомлень
plugin-sdk/messaging-targetsДопоміжні засоби розбору/зіставлення цілей
plugin-sdk/outbound-mediaСпільні допоміжні засоби завантаження вихідних медіа
plugin-sdk/outbound-runtimeДопоміжні засоби ідентичності вихідних повідомлень / делегатів надсилання
plugin-sdk/thread-bindings-runtimeЖиттєвий цикл прив’язок потоків і допоміжні засоби адаптерів
plugin-sdk/agent-media-payloadЗастарілий побудовник медіа payload агента
plugin-sdk/conversation-runtimeДопоміжні засоби прив’язки розмов/потоків, pairинг і налаштованих прив’язок
plugin-sdk/runtime-config-snapshotДопоміжний засіб знімка конфігурації під час виконання
plugin-sdk/runtime-group-policyДопоміжні засоби визначення групових політик під час виконання
plugin-sdk/channel-statusСпільні допоміжні засоби знімка/зведення статусу каналу
plugin-sdk/channel-config-primitivesВузькі примітиви схеми конфігурації каналу
plugin-sdk/channel-config-writesДопоміжні засоби авторизації запису конфігурації каналу
plugin-sdk/channel-plugin-commonСпільні преамбулні експорти плагінів каналів
plugin-sdk/allowlist-config-editДопоміжні засоби редагування/читання конфігурації списку дозволених джерел
plugin-sdk/group-accessСпільні допоміжні засоби рішень щодо доступу груп
plugin-sdk/direct-dmСпільні допоміжні засоби автентифікації/захисту прямих DM
plugin-sdk/interactive-runtimeДопоміжні засоби нормалізації/скорочення payload інтерактивних відповідей
plugin-sdk/channel-inboundДопоміжні засоби debounce для вхідних повідомлень, зіставлення згадок, політики згадок і envelope
plugin-sdk/channel-send-resultТипи результатів відповіді
plugin-sdk/channel-actionscreateMessageToolButtonsSchema, createMessageToolCardSchema
plugin-sdk/channel-targetsДопоміжні засоби розбору/зіставлення цілей
plugin-sdk/channel-contractТипи контракту каналу
plugin-sdk/channel-feedbackПідключення відгуків/реакцій
plugin-sdk/channel-secret-runtimeВузькі допоміжні засоби контракту секретів, такі як collectSimpleChannelFieldAssignments, getChannelSurface, pushAssignment, а також типи цілей секретів
ПідшляхКлючові експорти
plugin-sdk/provider-entrydefineSingleProviderPluginEntry
plugin-sdk/provider-setupКураторські допоміжні засоби налаштування локальних/self-hosted провайдерів
plugin-sdk/self-hosted-provider-setupСфокусовані допоміжні засоби налаштування self-hosted провайдерів, сумісних з OpenAI
plugin-sdk/cli-backendТипові значення CLI-бекенду + константи watchdog
plugin-sdk/provider-auth-runtimeДопоміжні засоби визначення API-ключів під час виконання для плагінів провайдерів
plugin-sdk/provider-auth-api-keyДопоміжні засоби онбордингу/запису профілю API-ключа, такі як upsertApiKeyProfile
plugin-sdk/provider-auth-resultСтандартний побудовник результату OAuth-автентифікації
plugin-sdk/provider-auth-loginСпільні інтерактивні допоміжні засоби входу для плагінів провайдерів
plugin-sdk/provider-env-varsДопоміжні засоби пошуку env var для автентифікації провайдерів
plugin-sdk/provider-authcreateProviderApiKeyAuthMethod, ensureApiKeyFromOptionEnvOrPrompt, upsertAuthProfile, upsertApiKeyProfile, writeOAuthCredentials
plugin-sdk/provider-model-sharedProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, спільні побудовники політик replay, допоміжні засоби endpoint провайдерів і нормалізації model-id, такі як normalizeNativeXaiModelId
plugin-sdk/provider-catalog-sharedfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-httpЗагальні допоміжні засоби HTTP/можливостей endpoint провайдерів
plugin-sdk/provider-web-fetch-contractВузькі допоміжні засоби контракту конфігурації/вибору web-fetch, такі як enablePluginInConfig і WebFetchProviderPlugin
plugin-sdk/provider-web-fetchДопоміжні засоби реєстрації/кешу провайдерів web-fetch
plugin-sdk/provider-web-search-config-contractВузькі допоміжні засоби конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення ввімкнення плагіна
plugin-sdk/provider-web-search-contractВузькі допоміжні засоби контракту конфігурації/облікових даних web-search, такі як createWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig і область дії setter/getter для облікових даних
plugin-sdk/provider-web-searchДопоміжні засоби реєстрації/кешу/виконання провайдерів web-search
plugin-sdk/provider-toolsProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, такі як resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usagefetchClaudeUsage та подібні
plugin-sdk/provider-streamProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, типи обгорток потоків і спільні допоміжні засоби обгорток Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/provider-onboardДопоміжні засоби патчів конфігурації онбордингу
plugin-sdk/global-singletonДопоміжні засоби локальних для процесу singleton/map/cache
ПідшляхКлючові експорти
plugin-sdk/command-authresolveControlCommandGate, допоміжні засоби реєстру команд, допоміжні засоби авторизації відправника
plugin-sdk/command-statusПобудовники повідомлень команд/довідки, такі як buildCommandsMessagePaginated і buildHelpMessage
plugin-sdk/approval-auth-runtimeДопоміжні засоби визначення approver і автентифікації дій у межах того самого чату
plugin-sdk/approval-client-runtimeДопоміжні засоби профілів/фільтрів нативного схвалення виконання
plugin-sdk/approval-delivery-runtimeАдаптери нативних можливостей/доставки схвалення
plugin-sdk/approval-gateway-runtimeСпільний допоміжний засіб визначення шлюзу схвалення
plugin-sdk/approval-handler-adapter-runtimeПолегшені допоміжні засоби завантаження нативного адаптера схвалення для гарячих entrypoint каналу
plugin-sdk/approval-handler-runtimeШирші допоміжні засоби runtime-обробника схвалення; надавайте перевагу вужчим швам adapter/gateway, коли їх достатньо
plugin-sdk/approval-native-runtimeДопоміжні засоби нативних цілей схвалення + прив’язки облікових записів
plugin-sdk/approval-reply-runtimeДопоміжні засоби payload відповідей схвалення exec/plugin
plugin-sdk/command-auth-nativeДопоміжні засоби нативної автентифікації команд + нативних цілей сеансу
plugin-sdk/command-detectionСпільні допоміжні засоби виявлення команд
plugin-sdk/command-surfaceДопоміжні засоби нормалізації тіла команди та command-surface
plugin-sdk/allow-fromformatAllowFromLowercase
plugin-sdk/channel-secret-runtimeВузькі допоміжні засоби збирання контракту секретів для поверхонь секретів каналу/плагіна
plugin-sdk/secret-ref-runtimeВузькі допоміжні засоби coerceSecretRef і типізації SecretRef для парсингу контракту секретів/конфігурації
plugin-sdk/security-runtimeСпільні допоміжні засоби довіри, обмеження DM, зовнішнього вмісту та збирання секретів
plugin-sdk/ssrf-policyДопоміжні засоби політики SSRF для списків дозволених хостів і приватних мереж
plugin-sdk/ssrf-runtimeДопоміжні засоби pinned-dispatcher, fetch із захистом SSRF і політики SSRF
plugin-sdk/secret-inputДопоміжні засоби парсингу введення секретів
plugin-sdk/webhook-ingressДопоміжні засоби запиту/цілі webhook
plugin-sdk/webhook-request-guardsДопоміжні засоби розміру тіла запиту / тайм-аутів
ПідшляхКлючові експорти
plugin-sdk/runtimeШирокі допоміжні засоби runtime/логування/резервних копій/встановлення плагінів
plugin-sdk/runtime-envВужчі допоміжні засоби env runtime, логера, тайм-аутів, повторних спроб і backoff
plugin-sdk/channel-runtime-contextЗагальні допоміжні засоби реєстрації та пошуку channel runtime-context
plugin-sdk/runtime-storecreatePluginRuntimeStore
plugin-sdk/plugin-runtimeСпільні допоміжні засоби команд/хуків/http/інтерактивних функцій плагіна
plugin-sdk/hook-runtimeСпільні допоміжні засоби pipeline webhook/внутрішніх хуків
plugin-sdk/lazy-runtimeДопоміжні засоби лінивого імпорту/прив’язки runtime, такі як createLazyRuntimeModule, createLazyRuntimeMethod і createLazyRuntimeSurface
plugin-sdk/process-runtimeДопоміжні засоби виконання процесів
plugin-sdk/cli-runtimeДопоміжні засоби форматування CLI, очікування та версій
plugin-sdk/gateway-runtimeДопоміжні засоби клієнта шлюзу та патчів статусу каналу
plugin-sdk/config-runtimeДопоміжні засоби завантаження/запису конфігурації
plugin-sdk/telegram-command-configНормалізація назв/описів команд Telegram і перевірки дублювань/конфліктів, навіть коли поверхня вбудованого контракту Telegram недоступна
plugin-sdk/approval-runtimeДопоміжні засоби схвалення exec/plugin, побудовники можливостей схвалення, допоміжні засоби auth/profile, нативної маршрутизації/runtime
plugin-sdk/reply-runtimeСпільні допоміжні засоби runtime для вхідних повідомлень/відповідей, chunking, dispatch, heartbeat, planner відповідей
plugin-sdk/reply-dispatch-runtimeВузькі допоміжні засоби dispatch/finalize для відповідей
plugin-sdk/reply-historyСпільні допоміжні засоби історії відповідей для короткого вікна, такі як buildHistoryContext, recordPendingHistoryEntry і clearHistoryEntriesIfEnabled
plugin-sdk/reply-referencecreateReplyReferencePlanner
plugin-sdk/reply-chunkingВузькі допоміжні засоби chunking тексту/markdown
plugin-sdk/session-store-runtimeДопоміжні засоби шляхів до сховища сеансів + updated-at
plugin-sdk/state-pathsДопоміжні засоби шляхів до каталогів state/OAuth
plugin-sdk/routingДопоміжні засоби маршрутів / session-key / прив’язки облікових записів, такі як resolveAgentRoute, buildAgentSessionKey і resolveDefaultAgentBoundAccountId
plugin-sdk/status-helpersСпільні допоміжні засоби зведення статусу каналу/облікового запису, типові значення стану runtime і допоміжні засоби метаданих проблем
plugin-sdk/target-resolver-runtimeСпільні допоміжні засоби визначення цілей
plugin-sdk/string-normalization-runtimeДопоміжні засоби нормалізації slug/рядків
plugin-sdk/request-urlВитягування рядкових URL із fetch/request-подібних входів
plugin-sdk/run-commandВиконавець команд із таймером і нормалізованими результатами stdout/stderr
plugin-sdk/param-readersПоширені читачі параметрів інструментів/CLI
plugin-sdk/tool-payloadВитягування нормалізованих payload із об’єктів результатів інструментів
plugin-sdk/tool-sendВитягування канонічних полів цілі надсилання з аргументів інструменту
plugin-sdk/temp-pathСпільні допоміжні засоби шляхів для тимчасових завантажень
plugin-sdk/logging-coreДопоміжні засоби логера підсистеми та редагування чутливих даних
plugin-sdk/markdown-table-runtimeДопоміжні засоби режиму таблиць Markdown
plugin-sdk/json-storeНевеликі допоміжні засоби читання/запису JSON-стану
plugin-sdk/file-lockРеентерабельні допоміжні засоби file-lock
plugin-sdk/persistent-dedupeДопоміжні засоби кешу дедуплікації на диску
plugin-sdk/acp-runtimeДопоміжні засоби runtime/сеансів ACP і dispatch відповідей
plugin-sdk/agent-config-primitivesВузькі примітиви схеми конфігурації runtime агента
plugin-sdk/boolean-paramЧитач слабко типізованих boolean-параметрів
plugin-sdk/dangerous-name-runtimeДопоміжні засоби визначення зіставлення небезпечних імен
plugin-sdk/device-bootstrapДопоміжні засоби bootstrap пристрою та токенів pairингу
plugin-sdk/extension-sharedСпільні примітиви допоміжних засобів пасивних каналів, статусу та ambient proxy
plugin-sdk/models-provider-runtimeДопоміжні засоби відповідей команди /models / провайдера
plugin-sdk/skill-commands-runtimeДопоміжні засоби переліку команд Skills
plugin-sdk/native-command-registryДопоміжні засоби реєстру/build/serialize нативних команд
plugin-sdk/provider-zai-endpointДопоміжні засоби виявлення endpoint Z.AI
plugin-sdk/infra-runtimeДопоміжні засоби системних подій/heartbeat
plugin-sdk/collection-runtimeНевеликі допоміжні засоби обмеженого кешу
plugin-sdk/diagnostic-runtimeДопоміжні засоби прапорців і подій діагностики
plugin-sdk/error-runtimeДопоміжні засоби графа помилок, форматування, спільної класифікації помилок, isApprovalNotFoundError
plugin-sdk/fetch-runtimeДопоміжні засоби обгорнутого fetch, proxy і pinned lookup
plugin-sdk/host-runtimeДопоміжні засоби нормалізації hostname і SCP host
plugin-sdk/retry-runtimeДопоміжні засоби конфігурації повторних спроб і виконавця повторних спроб
plugin-sdk/agent-runtimeДопоміжні засоби каталогу/ідентичності/робочого простору агента
plugin-sdk/directory-runtimeЗапит/дедуплікація каталогів на основі конфігурації
plugin-sdk/keyed-async-queueKeyedAsyncQueue
ПідшляхКлючові експорти
plugin-sdk/media-runtimeСпільні допоміжні засоби fetch/transform/store для медіа плюс побудовники медіа payload
plugin-sdk/media-generation-runtimeСпільні допоміжні засоби failover для генерації медіа, вибір кандидатів і повідомлення про відсутні моделі
plugin-sdk/media-understandingТипи провайдерів розуміння медіа плюс орієнтовані на провайдерів експорти допоміжних засобів для зображень/аудіо
plugin-sdk/text-runtimeСпільні допоміжні засоби тексту/markdown/логування, такі як вилучення видимого асистенту тексту, render/chunking/table для markdown, редагування чутливих даних, допоміжні засоби тегів директив і утиліти безпечного тексту
plugin-sdk/text-chunkingДопоміжний засіб chunking вихідного тексту
plugin-sdk/speechТипи провайдерів мовлення плюс орієнтовані на провайдерів допоміжні засоби директив, реєстру та валідації
plugin-sdk/speech-coreСпільні типи провайдерів мовлення, допоміжні засоби реєстру, директив і нормалізації
plugin-sdk/realtime-transcriptionТипи провайдерів транскрипції в реальному часі та допоміжні засоби реєстру
plugin-sdk/realtime-voiceТипи провайдерів голосу в реальному часі та допоміжні засоби реєстру
plugin-sdk/image-generationТипи провайдерів генерації зображень
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/webhook-targetsРеєстр цілей webhook і допоміжні засоби встановлення маршрутів
plugin-sdk/webhook-pathДопоміжні засоби нормалізації шляху webhook
plugin-sdk/web-mediaСпільні допоміжні засоби завантаження віддалених/локальних медіа
plugin-sdk/zodПовторно експортований zod для споживачів Plugin SDK
plugin-sdk/testinginstallCommonResolveTargetErrorCases, shouldAckReaction
ПідшляхКлючові експорти
plugin-sdk/memory-coreПоверхня допоміжних засобів вбудованого memory-core для manager/config/file/CLI
plugin-sdk/memory-core-engine-runtimeRuntime facade для індексації/пошуку в пам’яті
plugin-sdk/memory-core-host-engine-foundationЕкспорти foundation engine хоста пам’яті
plugin-sdk/memory-core-host-engine-embeddingsЕкспорти embedding engine хоста пам’яті
plugin-sdk/memory-core-host-engine-qmdЕкспорти QMD engine хоста пам’яті
plugin-sdk/memory-core-host-engine-storageЕкспорти storage engine хоста пам’яті
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-core-host-statusДопоміжні засоби статусу хоста пам’яті
plugin-sdk/memory-core-host-runtime-cliДопоміжні засоби CLI runtime хоста пам’яті
plugin-sdk/memory-core-host-runtime-coreДопоміжні засоби core runtime хоста пам’яті
plugin-sdk/memory-core-host-runtime-filesДопоміжні засоби файлів/runtime хоста пам’яті
plugin-sdk/memory-host-coreНейтральний щодо постачальника псевдонім для допоміжних засобів core runtime хоста пам’яті
plugin-sdk/memory-host-eventsНейтральний щодо постачальника псевдонім для допоміжних засобів журналу подій хоста пам’яті
plugin-sdk/memory-host-filesНейтральний щодо постачальника псевдонім для допоміжних засобів файлів/runtime хоста пам’яті
plugin-sdk/memory-host-markdownСпільні допоміжні засоби managed-markdown для плагінів, суміжних із пам’яттю
plugin-sdk/memory-host-searchActive memory runtime facade для доступу до search-manager
plugin-sdk/memory-host-statusНейтральний щодо постачальника псевдонім для допоміжних засобів статусу хоста пам’яті
plugin-sdk/memory-lancedbПоверхня допоміжних засобів вбудованого memory-lancedb
СімействоПоточні підшляхиПризначення
Browserplugin-sdk/browser-cdp, plugin-sdk/browser-config-runtime, plugin-sdk/browser-config-support, plugin-sdk/browser-control-auth, plugin-sdk/browser-node-runtime, plugin-sdk/browser-profiles, plugin-sdk/browser-security-runtime, plugin-sdk/browser-setup-tools, plugin-sdk/browser-supportДопоміжні засоби підтримки вбудованого browser plugin (browser-support залишається barrel-файлом сумісності)
Matrixplugin-sdk/matrix, plugin-sdk/matrix-helper, plugin-sdk/matrix-runtime-heavy, plugin-sdk/matrix-runtime-shared, plugin-sdk/matrix-runtime-surface, plugin-sdk/matrix-surface, plugin-sdk/matrix-thread-bindingsПоверхня допоміжних засобів/runtime для вбудованого Matrix
Lineplugin-sdk/line, plugin-sdk/line-core, plugin-sdk/line-runtime, plugin-sdk/line-surfaceПоверхня допоміжних засобів/runtime для вбудованого LINE
IRCplugin-sdk/irc, plugin-sdk/irc-surfaceПоверхня допоміжних засобів для вбудованого IRC
Допоміжні засоби, специфічні для каналівplugin-sdk/googlechat, plugin-sdk/zalouser, plugin-sdk/bluebubbles, plugin-sdk/bluebubbles-policy, plugin-sdk/mattermost, plugin-sdk/mattermost-policy, plugin-sdk/feishu-conversation, plugin-sdk/msteams, plugin-sdk/nextcloud-talk, plugin-sdk/nostr, plugin-sdk/tlon, plugin-sdk/twitchШви сумісності / допоміжні засоби для вбудованих каналів
Допоміжні засоби, специфічні для auth/плагіна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

API реєстрації

Колбек register(api) отримує об’єкт OpenClawPluginApi з такими методами:

Реєстрація можливостей

МетодЩо він реєструє
api.registerProvider(...)Текстовий inference (LLM)
api.registerCliBackend(...)Локальний CLI-бекенд inference
api.registerChannel(...)Канал обміну повідомленнями
api.registerSpeechProvider(...)Синтез text-to-speech / STT
api.registerRealtimeTranscriptionProvider(...)Потокова транскрипція в реальному часі
api.registerRealtimeVoiceProvider(...)Дуплексні голосові сеанси в реальному часі
api.registerMediaUnderstandingProvider(...)Аналіз зображень/аудіо/відео
api.registerImageGenerationProvider(...)Генерація зображень
api.registerMusicGenerationProvider(...)Генерація музики
api.registerVideoGenerationProvider(...)Генерація відео
api.registerWebFetchProvider(...)Провайдер web fetch / scrape
api.registerWebSearchProvider(...)Вебпошук

Інструменти та команди

МетодЩо він реєструє
api.registerTool(tool, opts?)Інструмент агента (обов’язковий або { optional: true })
api.registerCommand(def)Користувацька команда (оминає LLM)

Інфраструктура

МетодЩо він реєструє
api.registerHook(events, handler, opts?)Хук події
api.registerHttpRoute(params)HTTP endpoint шлюзу
api.registerGatewayMethod(name, handler)RPC-метод шлюзу
api.registerCli(registrar, opts?)Підкоманда CLI
api.registerService(service)Фоновий сервіс
api.registerInteractiveHandler(registration)Інтерактивний обробник
api.registerMemoryPromptSupplement(builder)Адитивний розділ prompt, суміжний із пам’яттю
api.registerMemoryCorpusSupplement(adapter)Адитивний корпус пошуку/читання пам’яті
Зарезервовані простори імен адміністрування ядра (config.*, exec.approvals.*, wizard.*, update.*) завжди залишаються operator.admin, навіть якщо плагін намагається призначити вужчу область дії методу шлюзу. Для методів, що належать плагіну, надавайте перевагу специфічним для плагіна префіксам.

Метадані реєстрації CLI

api.registerCli(registrar, opts?) приймає два типи метаданих верхнього рівня:
  • commands: явні корені команд, якими володіє registrar
  • descriptors: дескриптори команд часу парсингу, що використовуються для довідки кореневого CLI, маршрутизації та лінивої реєстрації CLI плагіна
Якщо ви хочете, щоб команда плагіна залишалася ліниво завантажуваною в звичайному шляху кореневого CLI, надайте descriptors, які охоплюють кожен корінь команди верхнього рівня, що експонується цим registrar.
api.registerCli(
  async ({ program }) => {
    const { registerMatrixCli } = await import("./src/cli.js");
    registerMatrixCli({ program });
  },
  {
    descriptors: [
      {
        name: "matrix",
        description: "Керування обліковими записами Matrix, верифікацією, пристроями та станом профілю",
        hasSubcommands: true,
      },
    ],
  },
);
Використовуйте лише commands, коли вам не потрібна лінива реєстрація кореневого CLI. Цей eager-шлях сумісності залишається підтримуваним, але він не встановлює placeholder-и на основі дескрипторів для лінивого завантаження під час парсингу.

Реєстрація CLI-бекенду

api.registerCliBackend(...) дає змогу плагіну володіти типовою конфігурацією для локального AI CLI-бекенду, такого як codex-cli.
  • id бекенду стає префіксом провайдера в model ref на кшталт codex-cli/gpt-5.
  • config бекенду використовує ту саму форму, що й agents.defaults.cliBackends.<id>.
  • Конфігурація користувача все одно має пріоритет. OpenClaw зливає agents.defaults.cliBackends.<id> поверх типового значення плагіна перед запуском CLI.
  • Використовуйте normalizeConfig, коли бекенду потрібні переписування сумісності після злиття (наприклад, для нормалізації старих форм прапорців).

Ексклюзивні слоти

МетодЩо він реєструє
api.registerContextEngine(id, factory)Context engine (одночасно активний лише один). Колбек assemble() отримує availableTools і citationsMode, щоб engine міг адаптувати доповнення до prompt.
api.registerMemoryCapability(capability)Уніфіковану можливість пам’яті
api.registerMemoryPromptSection(builder)Побудовник розділу prompt пам’яті
api.registerMemoryFlushPlan(resolver)Resolver плану flush пам’яті
api.registerMemoryRuntime(runtime)Адаптер runtime пам’яті

Адаптери embedding для пам’яті

МетодЩо він реєструє
api.registerMemoryEmbeddingProvider(adapter)Адаптер embedding пам’яті для активного плагіна
  • registerMemoryCapability — рекомендований API ексклюзивного memory-plugin.
  • registerMemoryCapability також може експонувати publicArtifacts.listArtifacts(...), щоб супутні плагіни могли споживати експортовані артефакти пам’яті через openclaw/plugin-sdk/memory-host-core замість звернення до приватного макета конкретного плагіна пам’яті.
  • registerMemoryPromptSection, registerMemoryFlushPlan і registerMemoryRuntime — це застаріло-сумісні API ексклюзивного memory-plugin.
  • registerMemoryEmbeddingProvider дає змогу активному memory-plugin зареєструвати один або кілька id адаптерів embedding (наприклад, openai, gemini або користувацький id, визначений плагіном).
  • Конфігурація користувача, така як agents.defaults.memorySearch.provider і agents.defaults.memorySearch.fallback, визначається відносно цих зареєстрованих id адаптерів.

Події та життєвий цикл

МетодЩо він робить
api.on(hookName, handler, opts?)Типізований хук життєвого циклу
api.onConversationBindingResolved(handler)Колбек визначення прив’язки розмови

Семантика рішень хуків

  • before_tool_call: повернення { block: true } є термінальним. Щойно якийсь обробник встановить його, обробники з нижчим пріоритетом пропускаються.
  • before_tool_call: повернення { block: false } трактується як відсутність рішення (так само, як і пропуск block), а не як перевизначення.
  • before_install: повернення { block: true } є термінальним. Щойно якийсь обробник встановить його, обробники з нижчим пріоритетом пропускаються.
  • before_install: повернення { block: false } трактується як відсутність рішення (так само, як і пропуск block), а не як перевизначення.
  • reply_dispatch: повернення { handled: true, ... } є термінальним. Щойно якийсь обробник візьме dispatch на себе, обробники з нижчим пріоритетом і типовий шлях dispatch моделі пропускаються.
  • message_sending: повернення { cancel: true } є термінальним. Щойно якийсь обробник встановить його, обробники з нижчим пріоритетом пропускаються.
  • message_sending: повернення { cancel: false } трактується як відсутність рішення (так само, як і пропуск cancel), а не як перевизначення.

Поля об’єкта API

ПолеТипОпис
api.idstringID плагіна
api.namestringВідображувана назва
api.versionstring?Версія плагіна (необов’язково)
api.descriptionstring?Опис плагіна (необов’язково)
api.sourcestringШлях до джерела плагіна
api.rootDirstring?Кореневий каталог плагіна (необов’язково)
api.configOpenClawConfigПоточний знімок конфігурації (активний знімок runtime у пам’яті, якщо доступний)
api.pluginConfigRecord<string, unknown>Конфігурація, специфічна для плагіна, з plugins.entries.<id>.config
api.runtimePluginRuntimeДопоміжні засоби runtime
api.loggerPluginLoggerЛогер з областю дії (debug, info, warn, error)
api.registrationModePluginRegistrationModeПоточний режим завантаження; "setup-runtime" — це полегшене вікно запуску/налаштування перед повним entry
api.resolvePath(input)(string) => stringВизначення шляху відносно кореня плагіна

Внутрішнє правило модулів

Усередині вашого плагіна використовуйте локальні barrel-файли для внутрішніх імпортів:
my-plugin/
  api.ts            # Публічні експорти для зовнішніх споживачів
  runtime-api.ts    # Експорти runtime лише для внутрішнього використання
  index.ts          # Точка входу плагіна
  setup-entry.ts    # Полегшений вхід лише для налаштування (необов’язково)
Ніколи не імпортуйте власний плагін через openclaw/plugin-sdk/<your-plugin> у production-коді. Спрямовуйте внутрішні імпорти через ./api.ts або ./runtime-api.ts. Шлях SDK — це лише зовнішній контракт.
Публічні поверхні вбудованих плагінів, що завантажуються через facade (api.ts, runtime-api.ts, index.ts, setup-entry.ts та подібні публічні entry-файли), тепер віддають перевагу активному знімку конфігурації runtime, коли OpenClaw уже запущено. Якщо знімка runtime ще немає, вони переходять до резервного використання визначеного файла конфігурації на диску. Плагіни провайдерів також можуть експонувати вузький локальний barrel-файл контракту плагіна, коли допоміжний засіб навмисно є специфічним для провайдера і ще не належить до загального підшляху SDK. Поточний вбудований приклад: провайдер Anthropic тримає свої допоміжні засоби потоку Claude у власному публічному шві api.ts / contract-api.ts замість просування логіки beta-header Anthropic і service_tier до загального контракту plugin-sdk/*. Інші поточні вбудовані приклади:
  • @openclaw/openai-provider: api.ts експортує побудовники провайдерів, допоміжні засоби типових моделей і побудовники провайдерів realtime
  • @openclaw/openrouter-provider: api.ts експортує побудовник провайдера та допоміжні засоби онбордингу/конфігурації
Production-код розширень також має уникати імпортів openclaw/plugin-sdk/<other-plugin>. Якщо допоміжний засіб справді є спільним, перенесіть його до нейтрального підшляху SDK, такого як openclaw/plugin-sdk/speech, .../provider-model-shared або іншої поверхні, орієнтованої на можливості, замість зв’язування двох плагінів між собою.

Пов’язане

  • Entry Points — параметри definePluginEntry і defineChannelPluginEntry
  • Runtime Helpers — повний довідник простору імен api.runtime
  • Setup and Config — пакування, маніфести, схеми конфігурації
  • Testing — утиліти тестування та правила lint
  • SDK Migration — міграція з застарілих поверхонь
  • Plugin Internals — поглиблена архітектура та модель можливостей