Przejdź do głównej treści

Migracja Plugin SDK

OpenClaw przeszedł od szerokiej warstwy zgodności wstecznej do nowoczesnej architektury wtyczek z ukierunkowanymi, udokumentowanymi importami. Jeśli Twoja wtyczka została zbudowana przed wprowadzeniem nowej architektury, ten przewodnik pomoże Ci przeprowadzić migrację.

Co się zmienia

Stary system wtyczek udostępniał dwie szerokie powierzchnie, które pozwalały wtyczkom importować wszystko, czego potrzebowały, z jednego punktu wejścia:
  • openclaw/plugin-sdk/compat — pojedynczy import, który ponownie eksportował dziesiątki helperów. Został wprowadzony, aby starsze wtyczki oparte na hookach nadal działały podczas budowy nowej architektury wtyczek.
  • openclaw/extension-api — most, który dawał wtyczkom bezpośredni dostęp do helperów po stronie hosta, takich jak osadzony runner agenta.
Obie te powierzchnie są teraz przestarzałe. Nadal działają w środowisku uruchomieniowym, ale nowe wtyczki nie mogą ich używać, a istniejące wtyczki powinny przeprowadzić migrację przed kolejnym dużym wydaniem, w którym zostaną usunięte.
Warstwa zgodności wstecznej zostanie usunięta w przyszłym dużym wydaniu. Wtyczki, które nadal importują z tych powierzchni, przestaną działać, gdy to nastąpi.

Dlaczego to się zmieniło

Stare podejście powodowało problemy:
  • Wolne uruchamianie — import jednego helpera ładował dziesiątki niepowiązanych modułów
  • Zależności cykliczne — szerokie reeksporty ułatwiały tworzenie cykli importów
  • Niejasna powierzchnia API — nie dało się określić, które eksporty są stabilne, a które wewnętrzne
Nowoczesne Plugin SDK rozwiązuje ten problem: każda ścieżka importu (openclaw/plugin-sdk/\<subpath\>) jest małym, samodzielnym modułem o jasno określonym celu i udokumentowanym kontrakcie. Starsze wygodne powierzchnie dostawców dla wbudowanych kanałów również zostały usunięte. Importy takie jak openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp, pomocnicze powierzchnie oznaczone marką kanału oraz openclaw/plugin-sdk/telegram-core były prywatnymi skrótami monorepo, a nie stabilnymi kontraktami wtyczek. Zamiast tego używaj wąskich, ogólnych subścieżek SDK. W obrębie obszaru roboczego wbudowanych wtyczek trzymaj helpery należące do dostawcy we własnym api.ts lub runtime-api.ts tej wtyczki. Aktualne przykłady wbudowanych dostawców:
  • Anthropic trzyma helpery strumieni specyficzne dla Claude we własnej powierzchni api.ts / contract-api.ts
  • OpenAI trzyma konstruktory dostawców, helpery modeli domyślnych oraz konstruktory dostawców realtime we własnym api.ts
  • OpenRouter trzyma konstruktor dostawcy oraz helpery onboardingu/konfiguracji we własnym api.ts

Jak przeprowadzić migrację

1

Sprawdź zachowanie awaryjne wrappera Windows

Jeśli Twoja wtyczka używa openclaw/plugin-sdk/windows-spawn, nierozwiązane wrappery Windows .cmd/.bat teraz domyślnie kończą się błędem, chyba że jawnie przekażesz allowShellFallback: true.
// Przed
const program = applyWindowsSpawnProgramPolicy({ candidate });

// Po
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // Ustaw to tylko dla zaufanych wywołań zgodności, które celowo
  // akceptują fallback pośredniczony przez powłokę.
  allowShellFallback: true,
});
Jeśli Twój kod wywołujący nie opiera się celowo na fallbacku powłoki, nie ustawiaj allowShellFallback i zamiast tego obsłuż zgłoszony błąd.
2

Znajdź przestarzałe importy

Przeszukaj swoją wtyczkę pod kątem importów z dowolnej z dwóch przestarzałych powierzchni:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
3

Zastąp je ukierunkowanymi importami

Każdy eksport ze starej powierzchni odpowiada konkretnej nowoczesnej ścieżce importu:
// Przed (przestarzała warstwa zgodności wstecznej)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// Po (nowoczesne ukierunkowane importy)
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";
W przypadku helperów po stronie hosta użyj wstrzykniętego środowiska uruchomieniowego wtyczki zamiast importować je bezpośrednio:
// Przed (przestarzały most extension-api)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// Po (wstrzyknięte środowisko uruchomieniowe)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
Ten sam wzorzec dotyczy innych starszych helperów mostu:
Stary importNowoczesny odpowiednik
resolveAgentDirapi.runtime.agent.resolveAgentDir
resolveAgentWorkspaceDirapi.runtime.agent.resolveAgentWorkspaceDir
resolveAgentIdentityapi.runtime.agent.resolveAgentIdentity
resolveThinkingDefaultapi.runtime.agent.resolveThinkingDefault
resolveAgentTimeoutMsapi.runtime.agent.resolveAgentTimeoutMs
ensureAgentWorkspaceapi.runtime.agent.ensureAgentWorkspace
helpery magazynu sesjiapi.runtime.agent.session.*
4

Zbuduj i przetestuj

pnpm build
pnpm test -- my-plugin/

Informacje o ścieżkach importu

Ścieżka importuPrzeznaczenieKluczowe eksporty
plugin-sdk/plugin-entryKanoniczny helper punktu wejścia wtyczkidefinePluginEntry
plugin-sdk/coreStarszy zbiorczy reeksport definicji/konstruktorów wejść kanałówdefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaEksport schematu konfiguracji głównejOpenClawSchema
plugin-sdk/provider-entryHelper punktu wejścia pojedynczego dostawcydefineSingleProviderPluginEntry
plugin-sdk/channel-coreUkierunkowane definicje i konstruktory wejść kanałówdefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupWspólne helpery kreatora konfiguracjiPrompty allowlisty, konstruktory statusu konfiguracji
plugin-sdk/setup-runtimeHelpery środowiska uruchomieniowego dla konfiguracjiBezpieczne do importu adaptery łatek konfiguracji, helpery notatek wyszukiwania, promptResolvedAllowFrom, splitSetupEntries, delegowane proxy konfiguracji
plugin-sdk/setup-adapter-runtimeHelpery adapterów konfiguracjicreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsHelpery narzędzi konfiguracjiformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreHelpery wielu kontHelpery list kont/konfiguracji/bramkowania działań
plugin-sdk/account-idHelpery ID kontaDEFAULT_ACCOUNT_ID, normalizacja ID konta
plugin-sdk/account-resolutionHelpery wyszukiwania kontHelpery wyszukiwania konta + fallbacku domyślnego
plugin-sdk/account-helpersWąskie helpery kontHelpery list kont/działań na kontach
plugin-sdk/channel-setupAdaptery kreatora konfiguracjicreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, plus DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingPodstawy parowania DMcreateChannelPairingController
plugin-sdk/channel-reply-pipelineŁączenie prefiksu odpowiedzi i pisaniacreateChannelReplyPipeline
plugin-sdk/channel-config-helpersFabryki adapterów konfiguracjicreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaKonstruktory schematów konfiguracjiTypy schematów konfiguracji kanałów
plugin-sdk/telegram-command-configHelpery konfiguracji poleceń TelegramNormalizacja nazw poleceń, przycinanie opisów, walidacja duplikatów/konfliktów
plugin-sdk/channel-policyRozwiązywanie polityk grup/DMresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleŚledzenie stanu kontcreateAccountStatusSink
plugin-sdk/inbound-envelopeHelpery koperty przychodzącejWspólne helpery tras i konstruktorów kopert
plugin-sdk/inbound-reply-dispatchHelpery odpowiedzi przychodzącychWspólne helpery rejestrowania i wysyłki
plugin-sdk/messaging-targetsParsowanie celów wiadomościHelpery parsowania/dopasowywania celów
plugin-sdk/outbound-mediaHelpery mediów wychodzącychWspólne ładowanie mediów wychodzących
plugin-sdk/outbound-runtimeHelpery środowiska uruchomieniowego dla ruchu wychodzącegoHelpery tożsamości wychodzącej/delegata wysyłki
plugin-sdk/thread-bindings-runtimeHelpery powiązań wątkówHelpery cyklu życia i adapterów powiązań wątków
plugin-sdk/agent-media-payloadStarsze helpery payloadu mediówKonstruktor payloadu mediów agenta dla starszych układów pól
plugin-sdk/channel-runtimePrzestarzały shim zgodnościTylko starsze narzędzia środowiska uruchomieniowego kanałów
plugin-sdk/channel-send-resultTypy wyników wysyłkiTypy wyników odpowiedzi
plugin-sdk/runtime-storeTrwała pamięć wtyczkicreatePluginRuntimeStore
plugin-sdk/runtimeSzerokie helpery środowiska uruchomieniowegoHelpery runtime/logowania/backupu/instalacji wtyczek
plugin-sdk/runtime-envWąskie helpery środowiska runtimeLogger/środowisko runtime, helpery timeoutów, ponawiania i backoffu
plugin-sdk/plugin-runtimeWspólne helpery środowiska uruchomieniowego wtyczekHelpery poleceń/hooków/HTTP/interaktywne dla wtyczek
plugin-sdk/hook-runtimeHelpery pipeline hookówWspólne helpery pipeline webhooków/wewnętrznych hooków
plugin-sdk/lazy-runtimeHelpery leniwego środowiska uruchomieniowegocreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeHelpery procesówWspólne helpery exec
plugin-sdk/cli-runtimeHelpery środowiska uruchomieniowego CLIFormatowanie poleceń, oczekiwania, helpery wersji
plugin-sdk/gateway-runtimeHelpery gatewayKlient gateway i helpery łatek statusu kanałów
plugin-sdk/config-runtimeHelpery konfiguracjiHelpery ładowania/zapisu konfiguracji
plugin-sdk/telegram-command-configHelpery poleceń TelegramStabilne helpery walidacji poleceń Telegram z fallbackiem, gdy powierzchnia kontraktu wbudowanego Telegrama jest niedostępna
plugin-sdk/approval-runtimeHelpery promptów zatwierdzaniaPayloady zatwierdzania exec/wtyczek, helpery możliwości/profilu zatwierdzania, natywne trasowanie/runtime zatwierdzania
plugin-sdk/approval-auth-runtimeHelpery uwierzytelniania zatwierdzaniaRozwiązywanie zatwierdzającego, uwierzytelnianie działań w tym samym czacie
plugin-sdk/approval-client-runtimeHelpery klienta zatwierdzaniaHelpery profilu/filtrowania natywnego zatwierdzania exec
plugin-sdk/approval-delivery-runtimeHelpery dostarczania zatwierdzaniaAdaptery natywnych możliwości/dostarczania zatwierdzania
plugin-sdk/approval-native-runtimeHelpery celu zatwierdzaniaHelpery natywnego celu zatwierdzania/powiązania kont
plugin-sdk/approval-reply-runtimeHelpery odpowiedzi zatwierdzaniaHelpery payloadu odpowiedzi zatwierdzania exec/wtyczek
plugin-sdk/security-runtimeHelpery bezpieczeństwaWspólne helpery zaufania, bramkowania DM, treści zewnętrznych i zbierania sekretów
plugin-sdk/ssrf-policyHelpery polityki SSRFHelpery allowlisty hostów i polityki sieci prywatnych
plugin-sdk/ssrf-runtimeHelpery środowiska uruchomieniowego SSRFPrzypięty dispatcher, guarded fetch, helpery polityki SSRF
plugin-sdk/collection-runtimeHelpery ograniczonego cachepruneMapToMaxSize
plugin-sdk/diagnostic-runtimeHelpery bramkowania diagnostykiisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeHelpery formatowania błędówformatUncaughtError, isApprovalNotFoundError, helpery grafu błędów
plugin-sdk/fetch-runtimeHelpery opakowanego fetch/proxyresolveFetch, helpery proxy
plugin-sdk/host-runtimeHelpery normalizacji hostanormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeHelpery ponawianiaRetryConfig, retryAsync, wykonawcy polityk
plugin-sdk/allow-fromFormatowanie allowlistyformatAllowFromLowercase
plugin-sdk/allowlist-resolutionMapowanie wejść allowlistymapAllowlistResolutionInputs
plugin-sdk/command-authBramkowanie poleceń i helpery powierzchni poleceńresolveControlCommandGate, helpery autoryzacji nadawcy, helpery rejestru poleceń
plugin-sdk/secret-inputParsowanie wejścia sekretówHelpery wejścia sekretów
plugin-sdk/webhook-ingressHelpery żądań webhookówNarzędzia celu webhooka
plugin-sdk/webhook-request-guardsHelpery ochrony żądań webhookówHelpery odczytu/ograniczania treści żądania
plugin-sdk/reply-runtimeWspólne środowisko uruchomieniowe odpowiedziWysyłka przychodząca, heartbeat, planista odpowiedzi, dzielenie na fragmenty
plugin-sdk/reply-dispatch-runtimeWąskie helpery wysyłki odpowiedziHelpery finalizacji i wysyłki do dostawcy
plugin-sdk/reply-historyHelpery historii odpowiedzibuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referencePlanowanie referencji odpowiedzicreateReplyReferencePlanner
plugin-sdk/reply-chunkingHelpery dzielenia odpowiedziHelpery dzielenia tekstu/Markdown
plugin-sdk/session-store-runtimeHelpery magazynu sesjiHelpery ścieżki magazynu i updated-at
plugin-sdk/state-pathsHelpery ścieżek stanuHelpery katalogów stanu i OAuth
plugin-sdk/routingHelpery routingu/klucza sesjiresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, helpery normalizacji klucza sesji
plugin-sdk/status-helpersHelpery statusu kanałówKonstruktory podsumowań statusu kanałów/kont, domyślne stany runtime, helpery metadanych problemów
plugin-sdk/target-resolver-runtimeHelpery rozwiązywania celówWspólne helpery rozwiązywania celów
plugin-sdk/string-normalization-runtimeHelpery normalizacji tekstuHelpery normalizacji slugów/łańcuchów
plugin-sdk/request-urlHelpery URL żądańWyodrębnianie tekstowych URL-i z wejść podobnych do żądań
plugin-sdk/run-commandHelpery poleceń z limitem czasuUruchamianie poleceń z normalizowanym stdout/stderr
plugin-sdk/param-readersOdczyt parametrówWspólne odczyty parametrów narzędzi/CLI
plugin-sdk/tool-sendEkstrakcja wysyłki narzędziaWyodrębnianie kanonicznych pól celu wysyłki z argumentów narzędzia
plugin-sdk/temp-pathHelpery ścieżek tymczasowychWspólne helpery ścieżek tymczasowych pobrań
plugin-sdk/logging-coreHelpery logowaniaLogger podsystemu i helpery redakcji
plugin-sdk/markdown-table-runtimeHelpery tabel MarkdownHelpery trybu tabel Markdown
plugin-sdk/reply-payloadTypy odpowiedzi wiadomościTypy payloadu odpowiedzi
plugin-sdk/provider-setupKuratorowane helpery konfiguracji dostawców lokalnych/self-hostedHelpery wykrywania/konfiguracji dostawców self-hosted
plugin-sdk/self-hosted-provider-setupUkierunkowane helpery konfiguracji dostawców self-hosted zgodnych z OpenAITe same helpery wykrywania/konfiguracji dostawców self-hosted
plugin-sdk/provider-auth-runtimeHelpery uwierzytelniania dostawców w runtimeHelpery rozwiązywania kluczy API w runtime
plugin-sdk/provider-auth-api-keyHelpery konfiguracji kluczy API dostawcówHelpery onboardingu kluczy API/zapisu profilu
plugin-sdk/provider-auth-resultHelpery wyników uwierzytelniania dostawcówStandardowy konstruktor wyniku uwierzytelniania OAuth
plugin-sdk/provider-auth-loginHelpery interaktywnego logowania dostawcówWspólne helpery interaktywnego logowania
plugin-sdk/provider-env-varsHelpery zmiennych środowiskowych dostawcówHelpery wyszukiwania zmiennych środowiskowych uwierzytelniania dostawców
plugin-sdk/provider-model-sharedWspólne helpery modeli/odtwarzania dostawcówProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, wspólne konstruktory polityki odtwarzania, helpery endpointów dostawców oraz normalizacji identyfikatorów modeli
plugin-sdk/provider-catalog-sharedWspólne helpery katalogów dostawcówfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardŁatki onboardingu dostawcówHelpery konfiguracji onboardingu
plugin-sdk/provider-httpHelpery HTTP dostawcówOgólne helpery HTTP/zdolności endpointów dostawców
plugin-sdk/provider-web-fetchHelpery web-fetch dostawcówHelpery rejestracji/cache dostawców web-fetch
plugin-sdk/provider-web-searchHelpery web-search dostawcówHelpery rejestracji/cache/konfiguracji dostawców web-search
plugin-sdk/provider-toolsHelpery zgodności narzędzi/schematów dostawcówProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, czyszczenie schematów Gemini + diagnostyka oraz helpery zgodności xAI, takie jak resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageHelpery zużycia dostawcówfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage i inne helpery zużycia dostawców
plugin-sdk/provider-streamHelpery wrapperów strumieni dostawcówProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, typy wrapperów strumieni oraz wspólne helpery wrapperów Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/keyed-async-queueUporządkowana kolejka asynchronicznaKeyedAsyncQueue
plugin-sdk/media-runtimeWspólne helpery mediówHelpery pobierania/przekształcania/przechowywania mediów oraz konstruktory payloadów mediów
plugin-sdk/media-understandingHelpery rozumienia mediówTypy dostawców rozumienia mediów oraz eksporty helperów obrazów/audio dla dostawców
plugin-sdk/text-runtimeWspólne helpery tekstuUsuwanie tekstu widocznego dla asystenta, renderowanie/dzielenie/tabele Markdown, helpery redakcji, helpery tagów dyrektyw, narzędzia bezpiecznego tekstu oraz powiązane helpery tekstu/logowania
plugin-sdk/text-chunkingHelpery dzielenia tekstuHelper dzielenia tekstu wychodzącego
plugin-sdk/speechHelpery mowyTypy dostawców mowy oraz eksporty helperów dyrektyw, rejestru i walidacji dla dostawców
plugin-sdk/speech-coreWspólny rdzeń mowyTypy dostawców mowy, rejestr, dyrektywy, normalizacja
plugin-sdk/realtime-transcriptionHelpery transkrypcji realtimeTypy dostawców i helpery rejestru
plugin-sdk/realtime-voiceHelpery głosu realtimeTypy dostawców i helpery rejestru
plugin-sdk/image-generation-coreWspólny rdzeń generowania obrazówHelpery typów, failoveru, uwierzytelniania i rejestru generowania obrazów
plugin-sdk/video-generationHelpery generowania wideoTypy dostawców/żądań/wyników generowania wideo
plugin-sdk/video-generation-coreWspólny rdzeń generowania wideoTypy generowania wideo, helpery failoveru, wyszukiwanie dostawców i parsowanie referencji modeli
plugin-sdk/interactive-runtimeHelpery odpowiedzi interaktywnychNormalizacja/redukcja payloadów odpowiedzi interaktywnych
plugin-sdk/channel-config-primitivesPrymitywy konfiguracji kanałówWąskie prymitywy schematu konfiguracji kanałów
plugin-sdk/channel-config-writesHelpery zapisu konfiguracji kanałówHelpery autoryzacji zapisu konfiguracji kanałów
plugin-sdk/channel-plugin-commonWspólne preludium kanałuWspólne eksporty preludium wtyczek kanałów
plugin-sdk/channel-statusHelpery statusu kanałówWspólne helpery snapshotów/podsumowań statusu kanałów
plugin-sdk/allowlist-config-editHelpery konfiguracji allowlistyHelpery edycji/odczytu konfiguracji allowlisty
plugin-sdk/group-accessHelpery dostępu grupowegoWspólne helpery decyzji dostępu grupowego
plugin-sdk/direct-dmHelpery bezpośrednich DMWspólne helpery uwierzytelniania/ochrony bezpośrednich DM
plugin-sdk/extension-sharedWspólne helpery rozszerzeńPrymitywy pomocnicze pasywnych kanałów/statusu
plugin-sdk/webhook-targetsHelpery celów webhookówRejestr celów webhooków i helpery instalacji tras
plugin-sdk/webhook-pathHelpery ścieżek webhookówHelpery normalizacji ścieżek webhooków
plugin-sdk/web-mediaWspólne helpery mediów webowychHelpery ładowania mediów zdalnych/lokalnych
plugin-sdk/zodReeksport ZodReeksportowane zod dla odbiorców Plugin SDK
plugin-sdk/memory-coreWbudowane helpery memory-corePowierzchnia helperów managera/pamięci/pliku/CLI memory-core
plugin-sdk/memory-core-engine-runtimeFasada środowiska uruchomieniowego silnika pamięciFasada runtime indeksowania/wyszukiwania pamięci
plugin-sdk/memory-core-host-engine-foundationPodstawowy silnik hosta pamięciEksporty podstawowego silnika hosta pamięci
plugin-sdk/memory-core-host-engine-embeddingsSilnik embeddingów hosta pamięciEksporty silnika embeddingów hosta pamięci
plugin-sdk/memory-core-host-engine-qmdSilnik QMD hosta pamięciEksporty silnika QMD hosta pamięci
plugin-sdk/memory-core-host-engine-storageSilnik storage hosta pamięciEksporty silnika storage hosta pamięci
plugin-sdk/memory-core-host-multimodalHelpery multimodalne hosta pamięciHelpery multimodalne hosta pamięci
plugin-sdk/memory-core-host-queryHelpery zapytań hosta pamięciHelpery zapytań hosta pamięci
plugin-sdk/memory-core-host-secretHelpery sekretów hosta pamięciHelpery sekretów hosta pamięci
plugin-sdk/memory-core-host-statusHelpery statusu hosta pamięciHelpery statusu hosta pamięci
plugin-sdk/memory-core-host-runtime-cliŚrodowisko uruchomieniowe CLI hosta pamięciHelpery środowiska uruchomieniowego CLI hosta pamięci
plugin-sdk/memory-core-host-runtime-coreGłówne środowisko uruchomieniowe hosta pamięciGłówne helpery środowiska uruchomieniowego hosta pamięci
plugin-sdk/memory-core-host-runtime-filesHelpery plików/runtime hosta pamięciHelpery plików/runtime hosta pamięci
plugin-sdk/memory-lancedbWbudowane helpery memory-lancedbPowierzchnia helperów memory-lancedb
plugin-sdk/testingNarzędzia testoweHelpery testowe i mocki
Ta tabela celowo obejmuje typowy podzbiór migracyjny, a nie pełną powierzchnię SDK. Pełna lista ponad 200 punktów wejścia znajduje się w scripts/lib/plugin-sdk-entrypoints.json. Ta lista nadal zawiera niektóre powierzchnie helperów wbudowanych wtyczek, takie jak plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup i plugin-sdk/matrix*. Nadal są one eksportowane na potrzeby utrzymania wbudowanych wtyczek i zgodności, ale celowo pominięto je w tabeli typowej migracji i nie są zalecanym celem dla nowego kodu wtyczek. Ta sama zasada dotyczy innych rodzin wbudowanych helperów, takich jak:
  • helpery obsługi przeglądarki: plugin-sdk/browser-config-support, plugin-sdk/browser-support
  • Matrix: plugin-sdk/matrix*
  • LINE: plugin-sdk/line*
  • IRC: plugin-sdk/irc*
  • powierzchnie wbudowanych helperów/wtyczek, takie jak 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 i plugin-sdk/voice-call
plugin-sdk/github-copilot-token obecnie udostępnia wąską powierzchnię helperów tokenów DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken i resolveCopilotApiToken. Używaj możliwie najwęższego importu pasującego do zadania. Jeśli nie możesz znaleźć eksportu, sprawdź źródła w src/plugin-sdk/ lub zapytaj na Discord.

Oś czasu usunięcia

KiedyCo się dzieje
TerazPrzestarzałe powierzchnie emitują ostrzeżenia w runtime
Następne duże wydaniePrzestarzałe powierzchnie zostaną usunięte; wtyczki nadal ich używające przestaną działać
Wszystkie główne wtyczki zostały już zmigrowane. Zewnętrzne wtyczki powinny przeprowadzić migrację przed następnym dużym wydaniem.

Tymczasowe wyciszenie ostrzeżeń

Ustaw te zmienne środowiskowe podczas pracy nad migracją:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
To tymczasowa furtka awaryjna, a nie trwałe rozwiązanie.

Powiązane