Це посібник для контриб’юторів для розробників ядра OpenClaw. Якщо ви
створюєте зовнішній plugin, натомість див. Створення plugins.
Докладний архітектурний довідник (модель можливостей, володіння,
конвеєр завантаження, допоміжні засоби середовища виконання) див. у Внутрішній архітектурі Plugin.
- plugin = межа володіння
- можливість = спільний контракт ядра
Коли створювати можливість
Створюйте нову можливість, коли всі ці умови істинні:- Її потенційно може реалізувати більше ніж один постачальник.
- Канали, інструменти або feature plugins мають споживати її, не зважаючи на постачальника.
- Ядро має володіти резервною логікою, політикою, конфігурацією або поведінкою доставки.
Стандартна послідовність
- Визначте типізований контракт ядра.
- Додайте реєстрацію plugin для цього контракту.
- Додайте спільний допоміжний засіб середовища виконання.
- Підключіть один реальний vendor plugin як доказ.
- Переведіть споживачів функцій/каналів на допоміжний засіб середовища виконання.
- Додайте контрактні тести.
- Задокументуйте конфігурацію для оператора й модель володіння.
Що куди належить
Ядро:- Типи запиту/відповіді.
- Реєстр постачальників + розв’язання.
- Резервна поведінка.
- Схема конфігурації з поширеними метаданими документації
title/descriptionна вкладених об’єктах, wildcard, елементах масиву та вузлах композиції. - Поверхня допоміжних засобів середовища виконання.
- Виклики API постачальника.
- Обробка автентифікації постачальника.
- Нормалізація запитів, специфічна для постачальника.
- Реєстрація реалізації можливості.
- Викликає
api.runtime.*або відповідний допоміжний засібplugin-sdk/*-runtime. - Ніколи не викликає реалізацію постачальника напряму.
Межі постачальників і harness
Використовуйте provider hooks, коли поведінка належить до контракту постачальника моделі, а не до загального циклу агента. Приклади включають параметри запиту, специфічні для постачальника, після вибору транспорту, пріоритет auth-profile, накладки prompt і резервну маршрутизацію подальших запитів після failover моделі/профілю. Використовуйте agent harness hooks, коли поведінка належить до середовища виконання, яке виконує turn. Harnesses можуть класифікувати явні результати протоколу, як-от порожній вивід, reasoning без видимого виводу або структурований план без фінальної відповіді, щоб зовнішня політика резервного використання моделі могла ухвалити рішення про повторну спробу. Тримайте обидві межі вузькими:- Ядро володіє політикою повторів/резервного використання.
- Provider plugins володіють підказками щодо запитів/auth/маршрутизації, специфічними для постачальника.
- Harness plugins володіють класифікацією спроб, специфічною для середовища виконання.
- Сторонні plugins повертають підказки, а не прямі мутації стану ядра.
Контрольний список файлів
Для нової можливості очікуйте змін у таких областях:src/<capability>/types.tssrc/<capability>/...registry/runtime.tssrc/plugins/types.tssrc/plugins/registry.tssrc/plugins/captured-registration.tssrc/plugins/contracts/registry.tssrc/plugins/runtime/types-core.tssrc/plugins/runtime/index.tssrc/plugin-sdk/<capability>.tssrc/plugin-sdk/<capability>-runtime.ts- Один або кілька bundled plugin packages.
- Конфігурація, документація, тести.
Опрацьований приклад: генерація зображень
Генерація зображень має стандартну форму:- Ядро визначає
ImageGenerationProvider. - Ядро надає
registerImageGenerationProvider(...). - Ядро надає
runtime.imageGeneration.generate(...). - Plugins
openai,google,falіminimaxреєструють реалізації, підтримувані постачальниками. - Майбутні постачальники реєструють той самий контракт без змін у каналах/інструментах.
agents.defaults.imageModelаналізує зображення.agents.defaults.imageGenerationModelгенерує зображення.
Постачальники embedding
ВикористовуйтеembeddingProviders для reusable vector embedding providers. Цей контракт
навмисно ширший за пам’ять: інструменти, пошук, retrieval, імпортери або
майбутні feature plugins можуть споживати embeddings, не залежачи від рушія пам’яті.
Пошук у пам’яті може споживати загальні embeddingProviders. Старіший
контракт memoryEmbeddingProviders є застарілою сумісністю, доки наявні
постачальники, специфічні для пам’яті, мігрують; нові reusable embedding providers мають використовувати
embeddingProviders.
Контрольний список перевірки
Перед випуском нової можливості перевірте:- Жоден канал/інструмент не імпортує код постачальника напряму.
- Допоміжний засіб середовища виконання є спільним шляхом.
- Принаймні один контрактний тест перевіряє bundled ownership.
- Документація конфігурації називає нову модель/ключ конфігурації.
- Документація Plugin пояснює межу володіння.
Пов’язане
- Внутрішня архітектура Plugin — модель можливостей, володіння, конвеєр завантаження, допоміжні засоби середовища виконання.
- Створення plugins — навчальний посібник для першого plugin.
- Огляд SDK — довідник мапи імпортів і API реєстрації.
- Створення Skills — супровідна поверхня для контриб’юторів.