Plugin Giriş Noktaları
Her plugin varsayılan bir giriş nesnesi dışa aktarır. SDK bunları oluşturmak için üç yardımcı sağlar.definePluginEntry
İçe aktarma: openclaw/plugin-sdk/plugin-entry
Provider plugin’leri, araç plugin’leri, hook plugin’leri ve mesajlaşma kanalı
olmayan her şey için.
| Alan | Tür | Gerekli | Varsayılan |
|---|---|---|---|
id | string | Evet | — |
name | string | Evet | — |
description | string | Evet | — |
kind | string | Hayır | — |
configSchema | OpenClawPluginConfigSchema | () => OpenClawPluginConfigSchema | Hayır | Boş nesne şeması |
register | (api: OpenClawPluginApi) => void | Evet | — |
id,openclaw.plugin.jsonmanifest dosyanızla eşleşmelidir.kind, ayrıcalıklı slot’lar içindir:"memory"veya"context-engine".configSchema, gecikmeli değerlendirme için bir işlev olabilir.- OpenClaw bu şemayı ilk erişimde çözer ve belleğe alır; böylece maliyetli şema oluşturucular yalnızca bir kez çalışır.
defineChannelPluginEntry
İçe aktarma: openclaw/plugin-sdk/channel-core
Kanal-özel bağlamayla definePluginEntry’yi sarar. Otomatik olarak
api.registerChannel({ plugin }) çağırır, isteğe bağlı bir kök yardım CLI meta
verisi yüzeyi sunar ve registerFull işlemini kayıt moduna göre sınırlar.
| Alan | Tür | Gerekli | Varsayılan |
|---|---|---|---|
id | string | Evet | — |
name | string | Evet | — |
description | string | Evet | — |
plugin | ChannelPlugin | Evet | — |
configSchema | OpenClawPluginConfigSchema | () => OpenClawPluginConfigSchema | Hayır | Boş nesne şeması |
setRuntime | (runtime: PluginRuntime) => void | Hayır | — |
registerCliMetadata | (api: OpenClawPluginApi) => void | Hayır | — |
registerFull | (api: OpenClawPluginApi) => void | Hayır | — |
setRuntime, çalışma zamanı başvurusunu saklayabilmeniz için kayıt sırasında çağrılır (genelliklecreatePluginRuntimeStoreile). CLI meta verisi yakalama sırasında atlanır.registerCliMetadata, hemapi.registrationMode === "cli-metadata"hem deapi.registrationMode === "full"sırasında çalışır. Bunu, kök yardımın etkinleştirme yapmamasını sağlarken normal CLI komut kaydının tam plugin yüklemeleriyle uyumlu kalması için kanalın sahip olduğu CLI tanımlayıcılarının standart yeri olarak kullanın.registerFull, yalnızcaapi.registrationMode === "full"olduğunda çalışır. Yalnızca kurulum yüklemesi sırasında atlanır.definePluginEntrygibiconfigSchemada gecikmeli bir fabrika olabilir ve OpenClaw çözülen şemayı ilk erişimde belleğe alır.- Plugin’e ait kök CLI komutları için, komutun kök CLI ayrıştırma ağacından
kaybolmadan gecikmeli yüklenmesini istediğinizde
api.registerCli(..., { descriptors: [...] })tercih edin. Kanal plugin’leri için bu tanımlayıcılarıregisterCliMetadata(...)içinden kaydetmeyi tercih edin veregisterFull(...)işlemini yalnızca çalışma zamanı işlerine odaklı tutun. registerFull(...)ayrıca gateway RPC yöntemleri de kaydediyorsa bunları plugin’e özgü bir önek üzerinde tutun. Ayrılmış çekirdek yönetici ad alanları (config.*,exec.approvals.*,wizard.*,update.*) her zamanoperator.adminolarak zorlanır.
defineSetupPluginEntry
İçe aktarma: openclaw/plugin-sdk/channel-core
Hafif setup-entry.ts dosyası için. Çalışma zamanı veya CLI bağlaması olmadan
yalnızca { plugin } döndürür.
defineSetupPluginEntry(...) ile dar kurulum yardımcı ailelerini eşleyin:
openclaw/plugin-sdk/setup-runtime: içe aktarma açısından güvenli kurulum yama bağdaştırıcıları, lookup-note çıktısı,promptResolvedAllowFrom,splitSetupEntriesve devredilmiş kurulum proxy’leri gibi çalışma zamanı açısından güvenli kurulum yardımcıları içinopenclaw/plugin-sdk/channel-setup: isteğe bağlı yükleme kurulum yüzeyleri içinopenclaw/plugin-sdk/setup-tools: kurulum/yükleme CLI/arşiv/belge yardımcıları için
Kayıt modu
api.registrationMode, plugin’inize nasıl yüklendiğini söyler:
| Mod | Ne zaman | Ne kaydedilmeli |
|---|---|---|
"full" | Normal gateway başlangıcı | Her şey |
"setup-only" | Devre dışı/yapılandırılmamış kanal | Yalnızca kanal kaydı |
"setup-runtime" | Çalışma zamanı mevcut kurulum akışı | Kanal kaydı artı tam giriş yüklenmeden önce gereken yalnızca hafif çalışma zamanı |
"cli-metadata" | Kök yardım / CLI meta verisi yakalama | Yalnızca CLI tanımlayıcıları |
defineChannelPluginEntry bu ayrımı otomatik olarak yönetir. Bir kanal için
doğrudan definePluginEntry kullanıyorsanız modu kendiniz denetleyin:
"setup-runtime" durumunu, tam paketlenmiş kanal çalışma zamanına yeniden
girmeden yalnızca kurulum başlangıç yüzeylerinin var olması gereken pencere
olarak değerlendirin. Uygun örnekler arasında kanal kaydı, kurulum açısından güvenli
HTTP rotaları, kurulum açısından güvenli gateway yöntemleri ve devredilmiş
kurulum yardımcıları bulunur. Ağır arka plan hizmetleri, CLI kaydedicileri ve
provider/client SDK önyüklemeleri yine "full" moduna aittir.
Özellikle CLI kaydedicileri için:
- Kaydedici bir veya daha fazla kök komutun sahibiyse ve OpenClaw’un ilk çağrıda
gerçek CLI modülünü gecikmeli yüklemesini istiyorsanız
descriptorskullanın - Bu tanımlayıcıların, kaydedici tarafından açığa çıkarılan her üst düzey komut kökünü kapsadığından emin olun
- Açgözlü uyumluluk yolları için yalnızca
commandskullanın
Plugin şekilleri
OpenClaw, yüklü plugin’leri kayıt davranışlarına göre sınıflandırır:| Şekil | Açıklama |
|---|---|
| plain-capability | Tek yetenek türü (ör. yalnızca provider) |
| hybrid-capability | Birden çok yetenek türü (ör. provider + speech) |
| hook-only | Yetenek yok, yalnızca hook’lar |
| non-capability | Araçlar/komutlar/hizmetler var ama yetenek yok |
openclaw plugins inspect <id> kullanın.
İlgili
- SDK Genel Bakış — kayıt API’si ve alt yol başvurusu
- Çalışma Zamanı Yardımcıları —
api.runtimevecreatePluginRuntimeStore - Kurulum ve Yapılandırma — manifest, kurulum girişi, ertelenmiş yükleme
- Channel Plugins —
ChannelPluginnesnesini oluşturma - Provider Plugins — provider kaydı ve hook’lar