Реєстр сумісності
Контракти сумісності плагінів відстежуються в основному реєстрі за адресоюsrc/plugins/compat/registry.ts. Кожен запис містить:
- стабільний код сумісності
- статус:
active,deprecated,removal-pendingабоremoved - власника:
sdk,config,setup,channel,provider,plugin-execution,agent-runtimeабоcore - дати впровадження та застарівання, якщо застосовно
- рекомендації щодо заміни
- документацію, діагностику й тести, що охоплюють стару та нову поведінку
src/commands/doctor/shared/deprecation-compat.ts. Ці записи охоплюють старі
форми конфігурації, структури журналу встановлень і проміжні адаптери
виправлення, які може знадобитися залишити доступними після видалення шляху
сумісності середовища виконання.
Під час перевірок випуску слід перевіряти обидва реєстри. Не видаляйте
міграцію Doctor лише тому, що термін дії відповідного запису сумісності
середовища виконання або конфігурації минув; спочатку переконайтеся, що немає
підтримуваного шляху оновлення, якому все ще потрібне це виправлення. Також
повторно перевіряйте кожну анотацію заміни під час планування випуску,
оскільки належність плагінів і обсяг конфігурації можуть змінюватися в міру
винесення провайдерів і каналів з ядра.
Політика застарівання
OpenClaw не повинен видаляти документований контракт плагіна в тому самому випуску, у якому впроваджується його заміна. Послідовність міграції:- Додайте новий контракт.
- Збережіть стару поведінку через іменований адаптер сумісності.
- Виводьте діагностичні повідомлення або попередження, коли автори плагінів можуть вжити заходів.
- Задокументуйте заміну та часові межі.
- Тестуйте як старий, так і новий шляхи.
- Дочекайтеся завершення оголошеного періоду міграції.
- Видаляйте лише з явним схваленням випуску з несумісними змінами.
active.
Поточні сфери сумісності
Наразі реєстр відстежує близько 70 кодів сумісності в наведених нижче сферах. Новий код плагіна має використовувати заміну в кожній сфері та у відповідному посібнику з міграції; наявні плагіни можуть продовжувати використовувати шлях сумісності, доки документація, діагностичні повідомлення та примітки до випуску не оголосять період видалення.- застарілі широкі імпорти SDK, як-от
openclaw/plugin-sdk/compat - застарілі форми плагінів лише з перехоплювачами та
before_agent_start - застарілі назви перехоплювачів очищення
api.on("deactivate", ...), поки плагіни переходять наgateway_stop - застарілі точки входу плагінів
activate(api), поки плагіни переходять наregister(api) - застарілі псевдоніми SDK, як-от
openclaw/extension-api,openclaw/plugin-sdk/channel-runtime, побудовники стануopenclaw/plugin-sdk/command-auth,openclaw/plugin-sdk/test-utils(замінено спеціалізованими тестовими підшляхамиopenclaw/plugin-sdk/*), а також псевдоніми типівClawdbotConfig/OpenClawSchemaType - список дозволених вбудованих плагінів і поведінка їх увімкнення
- застарілі метадані маніфесту змінних середовища провайдера/каналу
- застарілі перехоплювачі плагінів провайдерів і псевдоніми типів, поки провайдери переходять на явні перехоплювачі каталогу, автентифікації, міркування, повторного відтворення та транспорту
- застарілі псевдоніми середовища виконання, як-от
api.runtime.taskFlow,api.runtime.subagent.getSession,api.runtime.stt, і застаріліapi.runtime.config.loadConfig()/api.runtime.config.writeConfigFile(...) - плоскі поля зворотного виклику WhatsApp
WebInboundMessage(див. нижче) - поля допуску верхнього рівня WhatsApp
WebInboundMessage(див. нижче) - застаріла розділена реєстрація плагінів пам’яті, поки плагіни пам’яті
переходять на
registerMemoryCapability - застаріла реєстрація провайдера вбудовувань, специфічна для пам’яті, поки
провайдери вбудовувань переходять на
api.registerEmbeddingProvider(...)іcontracts.embeddingProviders - застарілі допоміжні засоби SDK каналів для нативних схем повідомлень, фільтрації згадок, форматування вхідних конвертів і вкладення можливостей схвалення
- застарілі псевдоніми ключа маршруту каналу та допоміжного засобу
порівняння цілей, поки плагіни переходять на
openclaw/plugin-sdk/channel-route - підказки активації, які замінюються належністю внесків маніфесту
- резервний шлях середовища виконання
setup-api, поки дескриптори налаштування переходять на статичні метаданіsetup.requiresRuntime: false - перехоплювачі
discoveryпровайдера, поки перехоплювачі каталогу провайдера переходять наcatalog.run(...) - метадані каналів
showConfigured/showInSetup, поки пакети каналів переходять наopenclaw.channel.exposure - застарілі ключі конфігурації політики середовища виконання, поки Doctor
переводить операторів на
agentRuntime - резервні згенеровані метадані конфігурації вбудованих каналів, поки
впроваджуються метадані
channelConfigs, що насамперед використовують реєстр - змінні середовища для вимкнення збереженого реєстру плагінів і міграції
встановлень, поки процеси виправлення переводять операторів на
openclaw plugins registry --refreshіopenclaw doctor --fix - застарілі шляхи конфігурації вебпошуку, отримання вебресурсів і x_search,
що належать плагінам, поки Doctor переносить їх до
plugins.entries.<plugin>.config - застаріла авторська конфігурація
plugins.installsі псевдоніми шляхів завантаження вбудованих плагінів, поки метадані встановлення переносяться до керованого станом журналу плагінів
Плоскі псевдоніми вхідних зворотних викликів WhatsApp
Зворотні виклики середовища виконання WhatsApp передаютьWebInboundMessage: канонічні вкладені контексти event, payload,
quote, group і platform, а також застарілі плоскі псевдоніми для
випущених полів зворотного виклику. Новий код зворотного виклику має читати
вкладені контексти. Код, який створює чисті вкладені повідомлення зворотного
виклику, може використовувати WebInboundCallbackMessage; слухачі
сумісності, які все ще додають старі плоскі тестові або плагінні
повідомлення, мають використовувати LegacyFlatWebInboundMessage або
WebInboundMessageInput.
Плоскі псевдоніми залишаються доступними до 2026-08-30; цей період
стосується лише доступу через плоскі псевдоніми, а не вкладеної форми, яка є
канонічним контрактом середовища виконання. Анотація TypeScript
@deprecated кожного плоского псевдоніма вказує його точну вкладену заміну.
Поширені приклади:
id,timestampтаisBatchedпереміщуються доevent.body,mediaPath,mediaType,mediaFileName,mediaUrl,locationтаuntrustedStructuredContextпереміщуються доpayload.to,chatId, поля відправника/власного користувача,sendComposing,reply(...)іsendMedia(...)переміщуються доplatform.- поля
replyTo*переміщуються доquote; поля теми групи/учасника/згадки переміщуються доgroup.
payload.untrustedStructuredContext видобувається з вхідних даних
провайдера. Плагіни мають перевіряти label, source і type, перш ніж
вважати його payload авторитетним джерелом.
Поля допуску вхідних повідомлень WhatsApp
Прийняті повідомлення зворотного виклику WhatsApp містятьadmission —
безпечний для публічного доступу конверт рішення контролю доступу, за яким
повідомлення було допущено. Новий код зворотного виклику має читати факти
допуску з msg.admission замість старіших полів допуску верхнього рівня.
Поля верхнього рівня залишаються доступними до 2026-08-30. Анотація
TypeScript @deprecated кожного поля вказує його заміну:
fromіconversationIdпереміщуються доadmission.conversation.id.accountIdпереміщується доadmission.accountId.accessControlPassedє похідним поданням сумісності дляadmission.ingress.decision === "allow"; у повідомленнях, які вже містятьadmission, запис застарілого логічного значення не переписує граф вхідного допуску.chatTypeпереміщується доadmission.conversation.kind.
Пакет інспектора плагінів
Інспектор плагінів має розміщуватися поза основним репозиторієм OpenClaw як окремий пакет/репозиторій, що спирається на версіоновані контракти сумісності та маніфесту. Початковий CLI має виглядати так:--json для стабільного
машиночитаного виводу в анотаціях CI. Ядро OpenClaw має надавати контракти
та фікстури, які може використовувати інспектор, але не повинно публікувати
двійковий файл інспектора з основного пакета openclaw.
Приймальний контур для супроводжувачів
Використовуйте Blacksmith Testbox на базі Crabbox для приймального контуру встановлюваного пакета під час перевірки зовнішнього інспектора на пакетах плагінів OpenClaw. Запускайте його з чистої робочої копії OpenClaw після збирання пакета:Примітки до випуску
Примітки до випуску мають містити майбутні застарівання плагінів із цільовими датами й посиланнями на документацію з міграції до того, як шлях сумісності перейде до стануremoval-pending або removed.