Plugin maintainer reference
Plugin uyumluluğu
OpenClaw, eski Plugin sözleşmelerini kaldırmadan önce adlandırılmış uyumluluk adaptörleri üzerinden bağlı tutar. Bu, SDK, manifest, kurulum, yapılandırma ve ajan çalışma zamanı sözleşmeleri gelişirken mevcut paketlenmiş ve harici Plugin'leri korur.
Uyumluluk kayıt defteri
Plugin uyumluluk sözleşmeleri, src/plugins/compat/registry.ts konumundaki
çekirdek kayıt defterinde izlenir. Her kayıt şunları içerir:
- kararlı bir uyumluluk kodu
- durum:
active,deprecated,removal-pendingveyaremoved - sahip:
sdk,config,setup,channel,provider,plugin-execution,agent-runtimeveyacore - geçerli olduğunda kullanıma sunma ve kullanımdan kaldırma tarihleri
- yerine kullanılacak çözüme ilişkin yönlendirme
- eski ve yeni davranışı kapsayan belgeler, tanılamalar ve testler
Kayıt defteri, bakım sorumlularının planlaması ve gelecekteki Plugin denetleyicisi kontrolleri için kaynaktır. Plugin'lere yönelik bir davranış değişirse adaptörü ekleyen değişiklikle birlikte uyumluluk kaydını da ekleyin veya güncelleyin.
Doctor onarım ve geçiş uyumluluğu,
src/commands/doctor/shared/deprecation-compat.ts konumunda ayrı olarak
izlenir. Bu kayıtlar, çalışma zamanı uyumluluk yolu kaldırıldıktan sonra da
kullanılabilir kalması gerekebilecek eski yapılandırma biçimlerini, kurulum
kayıt defteri düzenlerini ve onarım uyumluluk katmanlarını kapsar.
Sürüm taramalarında her iki kayıt defteri de kontrol edilmelidir. Eşleşen çalışma zamanı veya yapılandırma uyumluluk kaydının süresi doldu diye bir Doctor geçişini silmeyin; önce onarıma hâlâ ihtiyaç duyan desteklenen bir yükseltme yolu bulunmadığını doğrulayın. Sağlayıcılar ve kanallar çekirdekten çıkarıldıkça Plugin sahipliği ile yapılandırma kapsamı değişebileceğinden, sürüm planlaması sırasında her yerine geçme açıklamasını da yeniden doğrulayın.
Kullanımdan kaldırma politikası
OpenClaw, belgelenmiş bir Plugin sözleşmesini yerine geçecek sözleşmenin sunulduğu sürümde kaldırmamalıdır. Geçiş sırası:
- Yeni sözleşmeyi ekleyin.
- Eski davranışı adlandırılmış bir uyumluluk adaptörü üzerinden bağlı tutun.
- Plugin yazarları işlem yapabildiğinde tanılama iletileri veya uyarılar yayınlayın.
- Yerine kullanılacak çözümü ve zaman çizelgesini belgeleyin.
- Hem eski hem de yeni yolları test edin.
- Duyurulan geçiş süresi boyunca bekleyin.
- Yalnızca uyumluluğu bozan sürüm için açık onay alındığında kaldırın.
Kullanımdan kaldırılmış kayıtlar bir uyarı başlangıç tarihi, yerine kullanılacak
çözüm, belge bağlantısı ve uyarının başlamasından en fazla üç ay sonrasına
ait nihai kaldırma tarihi içermelidir. Bakım sorumluları bunun kalıcı uyumluluk
olduğuna açıkça karar verip kaydı bunun yerine active olarak işaretlemedikçe,
ucu açık bir kaldırma süresine sahip kullanımdan kaldırılmış bir uyumluluk yolu
eklemeyin.
Güncel uyumluluk alanları
Kayıt defteri şu anda bu alanlarda yaklaşık 70 uyumluluk kodunu izler. Yeni Plugin kodu, her alanda ve ilgili geçiş kılavuzunda belirtilen yerine geçecek çözümü kullanmalıdır; mevcut Plugin'ler, belgeler, tanılamalar ve sürüm notları bir kaldırma süresi duyurana kadar bir uyumluluk yolunu kullanmayı sürdürebilir.
openclaw/plugin-sdk/compatgibi eski kapsamlı SDK içe aktarımları- eski yalnızca kanca içeren Plugin biçimleri ve
before_agent_start - Plugin'ler
gateway_stopkullanımına geçerken eskiapi.on("deactivate", ...)temizleme kancası adları - Plugin'ler
register(api)kullanımına geçerken eskiactivate(api)Plugin giriş noktaları openclaw/extension-api,openclaw/plugin-sdk/channel-runtime,openclaw/plugin-sdk/command-authdurum oluşturucuları,openclaw/plugin-sdk/test-utils(yerini odaklanmışopenclaw/plugin-sdk/*test alt yolları almıştır) veClawdbotConfig/OpenClawSchemaTypetür takma adları gibi eski SDK takma adları- paketlenmiş Plugin izin listesi ve etkinleştirme davranışı
- eski sağlayıcı/kanal ortam değişkeni manifest meta verileri
- sağlayıcılar açık katalog, kimlik doğrulama, düşünme, yeniden oynatma ve taşıma kancalarına geçerken eski sağlayıcı Plugin kancaları ve tür takma adları
api.runtime.taskFlow,api.runtime.subagent.getSession,api.runtime.sttgibi eski çalışma zamanı takma adları ve kullanımdan kaldırılmışapi.runtime.config.loadConfig()/api.runtime.config.writeConfigFile(...)- WhatsApp
WebInboundMessagedüz geri çağırma alanları (aşağıya bakın) - WhatsApp
WebInboundMessageüst düzey kabul alanları (aşağıya bakın) - bellek Plugin'leri
registerMemoryCapabilitykullanımına geçerken eski bölünmüş bellek Plugin'i kaydı - gömme sağlayıcıları
api.registerEmbeddingProvider(...)vecontracts.embeddingProviderskullanımına geçerken eski belleğe özgü gömme sağlayıcısı kaydı - yerel ileti şemaları, bahsetme denetimi, gelen zarf biçimlendirmesi ve onay yeteneği iç içe yerleşimi için eski kanal SDK yardımcıları
- Plugin'ler
openclaw/plugin-sdk/channel-routekullanımına geçerken eski kanal rota anahtarı ve karşılaştırılabilir hedef yardımcısı takma adları - manifest katkısı sahipliğiyle değiştirilen etkinleştirme ipuçları
- kurulum tanımlayıcıları soğuk
setup.requiresRuntime: falsemeta verilerine geçerkensetup-apiçalışma zamanı geri dönüşü - sağlayıcı katalog kancaları
catalog.run(...)kullanımına geçerken sağlayıcıdiscoverykancaları - kanal paketleri
openclaw.channel.exposurekullanımına geçerken kanalshowConfigured/showInSetupmeta verileri - Doctor, operatörleri
agentRuntimekullanımına geçirirken eski çalışma zamanı politikası yapılandırma anahtarları - kayıt defteri öncelikli
channelConfigsmeta verileri kullanıma sunulurken, oluşturulmuş paketlenmiş kanal yapılandırma meta verileri geri dönüşü - onarım akışları operatörleri
openclaw plugins registry --refreshveopenclaw doctor --fixkullanımına geçirirken kalıcı Plugin kayıt defteri devre dışı bırakma ve kurulum geçişi ortam bayrakları - Doctor bunları
plugins.entries.<plugin>.configkonumuna geçirirken eski Plugin sahipli web arama, web getirme ve x_search yapılandırma yolları - kurulum meta verileri durum tarafından yönetilen Plugin kayıt defterine
taşınırken eski kullanıcı tarafından yazılmış
plugins.installsyapılandırması ve paketlenmiş Plugin yükleme yolu takma adları
WhatsApp gelen geri çağırma düz takma adları
WhatsApp çalışma zamanı geri çağırmaları WebInboundMessage iletir: standart
iç içe event, payload, quote, group ve platform bağlamlarının yanı sıra
yayınlanmış geri çağırma alanları için kullanımdan kaldırılmış düz takma adlar.
Yeni geri çağırma kodu iç içe bağlamları okumalıdır. Temiz, iç içe geri çağırma
iletileri oluşturan kod WebInboundCallbackMessage kullanabilir; hâlâ eski düz
test veya Plugin iletileri ekleyen uyumluluk dinleyicileri
LegacyFlatWebInboundMessage ya da WebInboundMessageInput kullanmalıdır.
Düz takma adlar 2026-08-30 tarihine kadar kullanılabilir kalacaktır; bu süre,
standart çalışma zamanı sözleşmesi olan iç içe biçime değil, yalnızca düz takma
ad erişimine uygulanır. Her düz takma adın TypeScript @deprecated açıklaması,
tam olarak karşılık gelen iç içe alanı belirtir. Yaygın örnekler:
id,timestampveisBatched,eventaltına taşınır.body,mediaPath,mediaType,mediaFileName,mediaUrl,locationveuntrustedStructuredContext,payloadaltına taşınır.to,chatId, gönderen/kendi alanları,sendComposing,reply(...)vesendMedia(...),platformaltına taşınır.replyTo*alanlarıquotealtına; grup konusu/katılımcı/bahsetme alanları isegroupaltına taşınır.
payload.untrustedStructuredContext, gelen sağlayıcı yüklerinden ayıklanır.
Plugin'ler bunun payload değerini güvenilir kabul etmeden önce label,
source ve type alanlarını incelemelidir.
WhatsApp gelen ileti kabul alanları
Kabul edilen WhatsApp geri çağırma iletileri, iletiyi kabul eden erişim denetimi
kararının herkese açık olarak paylaşılması güvenli zarfı olan admission
alanını taşır. Yeni geri çağırma kodu, kabul bilgilerini eski üst düzey kabul
alanları yerine msg.admission üzerinden okumalıdır.
Üst düzey alanlar 2026-08-30 tarihine kadar kullanılabilir kalacaktır. Her
alanın TypeScript @deprecated açıklaması, yerine kullanılacak alanı belirtir:
fromveconversationId,admission.conversation.idalanına taşınır.accountId,admission.accountIdalanına taşınır.accessControlPassed,admission.ingress.decision === "allow"ifadesinin türetilmiş bir uyumluluk görünümüdür; zatenadmissiontaşıyan iletilerde eski Boolean değerini yazmak giriş grafiğini yeniden yazmaz.chatType,admission.conversation.kindalanına taşınır.
Plugin denetleyicisi paketi
Plugin denetleyicisi, sürümlenmiş uyumluluk ve manifest sözleşmeleriyle desteklenen ayrı bir paket/depo olarak çekirdek OpenClaw deposunun dışında bulunmalıdır. İlk günkü CLI şu olmalıdır:
openclaw-plugin-inspector ./my-pluginManifest/şema doğrulaması, denetlenen sözleşme uyumluluk sürümü,
kurulum/kaynak meta verisi kontrolleri, soğuk yol içe aktarma kontrolleri ve
kullanımdan kaldırma/uyumluluk uyarıları üretmelidir. CI açıklamalarında kararlı,
makine tarafından okunabilir çıktı için --json kullanın. OpenClaw çekirdeği,
denetleyicinin kullanabileceği sözleşmeleri ve test verilerini sunmalı; ancak
denetleyici ikili dosyasını ana openclaw paketinden yayımlamamalıdır.
Bakım sorumlusu kabul hattı
Harici denetleyiciyi OpenClaw Plugin paketleriyle doğrularken kurulabilir paket kabul hattı için Crabbox destekli Blacksmith Testbox kullanın. Paket oluşturulduktan sonra bunu temiz bir OpenClaw çalışma kopyasından çalıştırın:
pnpm crabbox:run -- --provider blacksmith-testbox --timing-json --shell -- "pnpm install && pnpm build && npm exec --yes @openclaw/plugin-inspector@0.1.0 -- ./extensions/telegram --json"pnpm crabbox:run -- --provider blacksmith-testbox --timing-json --shell -- "npm exec --yes @openclaw/plugin-inspector@0.1.0 -- ./extensions/discord --json"pnpm crabbox:run -- --provider blacksmith-testbox --timing-json --shell -- "npm exec --yes @openclaw/plugin-inspector@0.1.0 -- <clawhub-plugin-dir> --json"Bu hat harici bir npm paketi kurduğundan ve depo dışına klonlanmış Plugin paketlerini inceleyebileceğinden, bakım sorumluları için isteğe bağlı tutun. Yerel depo korumaları SDK dışa aktarma eşlemesini, uyumluluk kayıt defteri meta verilerini, kullanımdan kaldırılmış SDK içe aktarımlarının azaltılmasını ve paketlenmiş eklenti içe aktarma sınırlarını kapsar; Testbox denetleyici kanıtı ise paketi harici Plugin yazarlarının kullandığı biçimiyle kapsar.
Sürüm notları
Sürüm notları, bir uyumluluk yolu removal-pending veya removed durumuna
geçmeden önce hedef tarihleri ve geçiş belgelerinin bağlantılarıyla birlikte
yaklaşan Plugin kullanımdan kaldırmalarını içermelidir.