Перейти до основного вмісту
OpenClaw зберігає підключення старіших контрактів Plugin через іменовані адаптери сумісності перед їх видаленням. Це захищає наявні вбудовані та зовнішні Plugin, поки розвиваються контракти SDK, маніфесту, налаштування, config і runtime агента.

Реєстр сумісності

Контракти сумісності Plugin відстежуються в основному реєстрі за адресою src/plugins/compat/registry.ts. Кожен запис має:
  • стабільний код сумісності
  • статус: active, deprecated, removal-pending або removed
  • власника: SDK, config, setup, channel, provider, виконання Plugin, runtime агента або core
  • дати запровадження та застарівання, якщо застосовно
  • рекомендації щодо заміни
  • docs, diagnostics і tests, що охоплюють стару й нову поведінку
Реєстр є джерелом для планування супровідниками та майбутніх перевірок інспектора Plugin. Якщо змінюється поведінка, видима для Plugin, додайте або оновіть запис сумісності в тій самій зміні, яка додає адаптер.

Пакет інспектора Plugin

Інспектор Plugin має розміщуватися поза основним репозиторієм OpenClaw як окремий пакет/репозиторій, що спирається на версіоновані контракти сумісності та маніфесту. CLI першого дня має бути таким:
openclaw-plugin-inspector ./my-plugin
Він має виводити:
  • перевірку маніфесту/схеми
  • версію контракту сумісності, яка перевіряється
  • перевірки метаданих встановлення/джерела
  • перевірки імпорту cold-path
  • попередження про застарівання та сумісність
Використовуйте --json для стабільного машинозчитуваного виводу в анотаціях CI. Core OpenClaw має надавати контракти та фікстури, які інспектор може споживати, але не має публікувати двійковий файл інспектора з основного пакета openclaw.

Політика застарівання

OpenClaw не має видаляти задокументований контракт Plugin у тому самому релізі, у якому вводиться його заміна. Послідовність міграції така:
  1. Додайте новий контракт.
  2. Збережіть стару поведінку підключеною через іменований адаптер сумісності.
  3. Виводьте diagnostics або warnings, коли автори Plugin можуть виконати дії.
  4. Задокументуйте заміну та часову шкалу.
  5. Протестуйте і старий, і новий шляхи.
  6. Дочекайтеся завершення оголошеного вікна міграції.
  7. Видаляйте лише з явним схваленням для релізу з несумісними змінами.
Застарілі записи мають містити дату початку попередження, заміну, посилання на docs і цільову дату видалення, якщо вона відома.

Поточні області сумісності

Поточні записи сумісності включають:
  • застарілі широкі імпорти SDK, як-от openclaw/plugin-sdk/compat
  • застарілі форми Plugin лише з hook і before_agent_start
  • поведінку allowlist і ввімкнення вбудованих Plugin
  • застарілі метадані маніфесту env-var для provider/channel
  • підказки активації, які замінюються володінням внесками маніфесту
  • псевдоніми назв embeddedHarness і agent-harness, поки публічні назви переходять до agentRuntime
  • резервні згенеровані метадані config вбудованих каналів, поки з’являються metadata channelConfigs, орієнтовані спочатку на registry
Новий код Plugin має віддавати перевагу заміні, указаній у реєстрі та в конкретному посібнику з міграції. Наявні Plugin можуть і далі використовувати шлях сумісності, доки docs, diagnostics і release notes не оголосять вікно видалення.

Примітки до випуску

Примітки до випуску мають включати майбутні застарівання Plugin із цільовими датами та посиланнями на docs міграції. Таке попередження має з’явитися до того, як шлях сумісності перейде до removal-pending або removed.