Ana içeriğe atla

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

OpenClaw, geniş bir geriye dönük uyumluluk katmanından odaklı, belgelenmiş import’lara sahip modern bir plugin mimarisine geçti. Plugin’iniz yeni mimariden önce oluşturulduysa bu kılavuz geçiş yapmanıza yardımcı olur.

Neler değişiyor

Eski plugin sistemi, plugin’lerin ihtiyaç duydukları her şeyi tek bir giriş noktasından import etmesine olanak tanıyan iki çok geniş yüzey sağlıyordu:
  • openclaw/plugin-sdk/compat - düzinelerce yardımcıyı yeniden dışa aktaran tek bir import. Yeni plugin mimarisi geliştirilirken eski hook tabanlı plugin’lerin çalışmaya devam etmesini sağlamak için kullanıma sunulmuştu.
  • openclaw/plugin-sdk/infra-runtime - sistem olaylarını, Heartbeat durumunu, teslimat kuyruklarını, fetch/proxy yardımcılarını, dosya yardımcılarını, onay türlerini ve ilgisiz yardımcıları karıştıran geniş bir runtime yardımcı barrel’ı.
  • openclaw/plugin-sdk/config-runtime - geçiş penceresi sırasında hâlâ kullanımdan kaldırılmış doğrudan load/write yardımcılarını taşıyan geniş bir yapılandırma uyumluluğu barrel’ı.
  • openclaw/extension-api - plugin’lere gömülü agent runner gibi host tarafı yardımcılara doğrudan erişim veren bir köprü.
  • api.registerEmbeddedExtensionFactory(...) - tool_result gibi gömülü-runner olaylarını gözlemleyebilen, kaldırılmış Pi’ye özel paketli extension hook’u.
Geniş import yüzeyleri artık kullanımdan kaldırıldı. Runtime’da hâlâ çalışırlar, ancak yeni plugin’ler bunları kullanmamalıdır ve mevcut plugin’ler bunları kaldıracak sonraki major sürümden önce geçiş yapmalıdır. Pi’ye özel gömülü extension factory kayıt API’si kaldırıldı; bunun yerine tool-result middleware kullanın. OpenClaw, yerine geçecek bir şeyi tanıtan aynı değişiklikte belgelenmiş plugin davranışını kaldırmaz veya yeniden yorumlamaz. Sözleşmeyi bozan değişiklikler önce bir uyumluluk adapter’ından, diagnostics’ten, dokümantasyondan ve bir kullanımdan kaldırma penceresinden geçmelidir. Bu SDK import’ları, manifest alanları, kurulum API’leri, hook’lar ve runtime kayıt davranışı için geçerlidir.
Geriye dönük uyumluluk katmanı gelecekteki bir major sürümde kaldırılacaktır. Hâlâ bu yüzeylerden import eden plugin’ler bu gerçekleştiğinde bozulacaktır. Pi’ye özel gömülü extension factory kayıtları artık zaten yüklenmiyor.

Bu neden değişti

Eski yaklaşım sorunlara neden oldu:
  • Yavaş başlangıç - tek bir yardımcıyı import etmek düzinelerce ilgisiz modülü yüklüyordu
  • Döngüsel bağımlılıklar - geniş yeniden dışa aktarımlar import döngüleri oluşturmayı kolaylaştırıyordu
  • Belirsiz API yüzeyi - hangi dışa aktarımların kararlı, hangilerinin internal olduğunu anlamanın yolu yoktu
Modern plugin SDK bunu düzeltir: her import yolu (openclaw/plugin-sdk/\<subpath\>) net bir amaca ve belgelenmiş bir sözleşmeye sahip küçük, kendi kendine yeterli bir modüldür. Paketli kanallar için legacy sağlayıcı kolaylık seams’leri de kaldırıldı. Kanal markalı yardımcı seams’ler kararlı plugin sözleşmeleri değil, özel mono-repo kısayollarıydı. Bunun yerine dar generic SDK alt yollarını kullanın. Paketli plugin çalışma alanı içinde, sağlayıcıya ait yardımcıları ilgili plugin’in kendi api.ts veya runtime-api.ts dosyasında tutun. Mevcut paketli sağlayıcı örnekleri:
  • Anthropic, Claude’a özgü stream yardımcılarını kendi api.ts / contract-api.ts seam’inde tutar
  • OpenAI, sağlayıcı builder’larını, varsayılan-model yardımcılarını ve realtime sağlayıcı builder’larını kendi api.ts dosyasında tutar
  • OpenRouter, sağlayıcı builder’ını ve onboarding/config yardımcılarını kendi api.ts dosyasında tutar

Talk ve realtime ses geçiş planı

Realtime ses, telefoni, toplantı ve tarayıcı Talk kodu, yüzey-yerel turn kayıt tutmadan openclaw/plugin-sdk/realtime-voice tarafından dışa aktarılan paylaşılan bir Talk oturum denetleyicisine taşınıyor. Yeni denetleyici ortak Talk olay zarfını, aktif turn durumunu, capture durumunu, çıkış-ses durumunu, yakın olay geçmişini ve eski-turn reddini yönetir. Sağlayıcı plugin’ler vendor’a özgü realtime oturumları yönetmeye devam etmelidir; yüzey plugin’leri capture, playback, telefoni ve toplantı özelliklerini yönetmeye devam etmelidir. Bu Talk geçişi kasıtlı olarak temiz şekilde breaking’dir:
  1. Paylaşılan controller/runtime primitive’lerini plugin-sdk/realtime-voice içinde tutun.
  2. Paketli yüzeyleri paylaşılan denetleyiciye taşıyın: browser relay, managed-room handoff, voice-call realtime, voice-call streaming STT, Google Meet realtime ve native push-to-talk.
  3. Eski Talk RPC ailelerini nihai talk.session.* ve talk.client.* API’siyle değiştirin.
  4. Gateway hello-ok.features.events içinde tek bir canlı Talk olay kanalını duyurun: talk.event.
  5. Eski realtime HTTP endpoint’ini ve request-time instruction override yolunu silin.
Yeni kod, düşük seviyeli bir adapter veya test fixture uygulamıyorsa createTalkEventSequencer(...) öğesini doğrudan çağırmamalıdır. Paylaşılan denetleyiciyi tercih edin; böylece turn kapsamlı olaylar turn id olmadan yayımlanamaz, eski turnEnd / turnCancel çağrıları daha yeni bir aktif turn’ü temizleyemez ve output-audio yaşam döngüsü olayları telefoni, toplantılar, browser relay, managed-room handoff ve native Talk istemcileri arasında tutarlı kalır. Hedef genel API şekli şöyledir:
// Gateway-owned Talk session API.
await gateway.request("talk.session.create", {
  mode: "realtime",
  transport: "gateway-relay",
  brain: "agent-consult",
  sessionKey: "main",
});
await gateway.request("talk.session.appendAudio", { sessionId, audioBase64 });
await gateway.request("talk.session.cancelOutput", { sessionId, reason: "barge-in" });
await gateway.request("talk.session.submitToolResult", {
  sessionId,
  callId,
  result: { status: "working" },
  options: { willContinue: true },
});
await gateway.request("talk.session.submitToolResult", {
  sessionId,
  callId,
  result: { status: "already_delivered" },
  options: { suppressResponse: true },
});
await gateway.request("talk.session.submitToolResult", { sessionId, callId, result });
await gateway.request("talk.session.close", { sessionId });

// Client-owned provider session API.
await gateway.request("talk.client.create", {
  mode: "realtime",
  transport: "webrtc",
  brain: "agent-consult",
  sessionKey: "main",
});
await gateway.request("talk.client.toolCall", { sessionKey, callId, name, args });
Tarayıcıya ait WebRTC/provider-websocket oturumları talk.client.create kullanır, çünkü tarayıcı sağlayıcı negotiation ve media transport’u yönetirken Gateway kimlik bilgilerini, talimatları ve tool politikasını yönetir. talk.session.*, gateway-relay realtime, gateway-relay transcription ve managed-room native STT/TTS oturumları için ortak Gateway tarafından yönetilen yüzeydir. Realtime seçicileri talk.provider / talk.providers yanına koyan legacy config’ler openclaw doctor --fix ile onarılmalıdır; runtime Talk speech/TTS sağlayıcı config’ini realtime sağlayıcı config’i olarak yeniden yorumlamaz. Desteklenen talk.session.create kombinasyonları kasıtlı olarak azdır:
ModTransportBrainSahipNotlar
realtimegateway-relayagent-consultGatewayGateway üzerinden köprülenen full-duplex sağlayıcı sesi; tool çağrıları agent-consult tool’u üzerinden yönlendirilir.
transcriptiongateway-relaynoneGatewayYalnızca streaming STT; çağıranlar input audio gönderir ve transcript olayları alır.
stt-ttsmanaged-roomagent-consultNative/client roomİstemcinin capture/playback’i yönettiği ve Gateway’in turn durumunu yönettiği push-to-talk ve walkie-talkie tarzı odalar.
stt-ttsmanaged-roomdirect-toolsNative/client roomGateway tool action’larını doğrudan yürüten güvenilir first-party yüzeyler için admin’e özel oda modu.
Kaldırılan method haritası:
EskiYeni
talk.realtime.sessiontalk.client.create
talk.realtime.toolCalltalk.client.toolCall
talk.realtime.relayAudiotalk.session.appendAudio
talk.realtime.relayCanceltalk.session.cancelOutput veya talk.session.cancelTurn
talk.realtime.relayToolResulttalk.session.submitToolResult
talk.realtime.relayStoptalk.session.close
talk.transcription.sessiontalk.session.create({ mode: "transcription" })
talk.transcription.relayAudiotalk.session.appendAudio
talk.transcription.relayCanceltalk.session.cancelTurn
talk.transcription.relayStoptalk.session.close
talk.handoff.createtalk.session.create({ transport: "managed-room" })
talk.handoff.jointalk.session.join
talk.handoff.revoketalk.session.close
Birleşik kontrol söz varlığı da bilinçli olarak dardır:
MethodŞunlara uygulanırSözleşme
talk.session.appendAudiorealtime/gateway-relay, transcription/gateway-relayAynı Gateway bağlantısının sahip olduğu sağlayıcı oturumuna base64 PCM audio chunk ekler.
talk.session.startTurnstt-tts/managed-roomBir managed-room kullanıcı turn’ü başlatır.
talk.session.endTurnstt-tts/managed-roomEski-turn doğrulamasından sonra aktif turn’ü sonlandırır.
talk.session.cancelTurntüm Gateway’e ait oturumlarBir turn için aktif capture/provider/agent/TTS işini iptal eder.
talk.session.cancelOutputrealtime/gateway-relayKullanıcı turn’ünü mutlaka sonlandırmadan assistant audio output’u durdurur.
talk.session.submitToolResultrealtime/gateway-relayRelay tarafından yayımlanan sağlayıcı tool çağrısını tamamlar; ara çıktı için options.willContinue veya başka bir assistant yanıtı olmadan çağrıyı karşılamak için options.suppressResponse geçirin.
talk.session.closetüm birleşik oturumlarRelay oturumlarını durdurur veya managed-room durumunu iptal eder, ardından birleşik session id’yi unutur.
Bunu çalıştırmak için core içine provider veya platforma özel durumlar eklemeyin. Core, Talk oturumu semantiğinin sahibidir. Provider Plugin’leri, satıcı oturumu kurulumunun sahibidir. Sesli arama ve Google Meet, telefon/Toplantı bağdaştırıcılarının sahibidir. Tarayıcı ve yerel uygulamalar, cihaz yakalama/oynatma UX’inin sahibidir.

Uyumluluk ilkesi

Harici Plugin’ler için uyumluluk çalışması şu sırayı izler:
  1. yeni sözleşmeyi ekleyin
  2. eski davranışı bir uyumluluk bağdaştırıcısı üzerinden bağlı tutun
  3. eski yolu ve yerine kullanılacak seçeneği adlandıran bir tanılama veya uyarı yayınlayın
  4. testlerde her iki yolu da kapsayın
  5. kullanımdan kaldırmayı ve geçiş yolunu belgeleyin
  6. yalnızca duyurulan geçiş penceresinden sonra kaldırın; bu genellikle büyük bir sürümdedir
Maintainer’lar mevcut geçiş kuyruğunu pnpm plugins:boundary-report ile denetleyebilir. Kompakt sayımlar için pnpm plugins:boundary-report:summary, tek bir Plugin veya uyumluluk sahibi için --owner <id>, bir CI kapısının zamanı gelmiş uyumluluk kayıtları, sahipler arası ayrılmış SDK içe aktarımları veya kullanılmayan ayrılmış SDK alt yolları nedeniyle başarısız olması gerektiğinde pnpm plugins:boundary-report:ci kullanın. Rapor, kullanımdan kaldırılmış uyumluluk kayıtlarını kaldırma tarihine göre gruplar, yerel kod/belge referanslarını sayar, sahipler arası ayrılmış SDK içe aktarımlarını ortaya çıkarır ve özel memory-host SDK köprüsünü özetler; böylece uyumluluk temizliği geçici aramalara dayanmak yerine açık kalır. Ayrılmış SDK alt yollarında takip edilen sahip kullanımı bulunmalıdır; kullanılmayan ayrılmış yardımcı dışa aktarımları public SDK’dan kaldırılmalıdır. Bir manifest alanı hâlâ kabul ediliyorsa, Plugin yazarları belgeler ve tanılamalar aksini söyleyene kadar onu kullanmaya devam edebilir. Yeni kod, belgelenen yerine kullanılacak seçeneği tercih etmelidir; ancak mevcut Plugin’ler olağan minor sürümler sırasında bozulmamalıdır.

Nasıl geçiş yapılır

1

Çalışma zamanı yapılandırma yükleme/yazma yardımcılarını geçirin

Paketlenmiş Plugin’ler doğrudan api.runtime.config.loadConfig() ve api.runtime.config.writeConfigFile(...) çağırmayı bırakmalıdır. Aktif çağrı yoluna zaten geçirilmiş olan yapılandırmayı tercih edin. Geçerli süreç anlık görüntüsüne ihtiyaç duyan uzun ömürlü işleyiciler api.runtime.config.current() kullanabilir. Uzun ömürlü agent araçları, bir yapılandırma yazma işleminden önce oluşturulan bir aracın hâlâ yenilenmiş çalışma zamanı yapılandırmasını görmesi için execute içinde araç bağlamının ctx.getRuntimeConfig() yöntemini kullanmalıdır.Yapılandırma yazmaları işlem temelli yardımcılar üzerinden geçmeli ve bir yazma sonrası ilkesi seçmelidir:
await api.runtime.config.mutateConfigFile({
  afterWrite: { mode: "auto" },
  mutate(draft) {
    draft.plugins ??= {};
  },
});
Çağıran taraf değişikliğin temiz bir gateway restart gerektirdiğini bildiğinde afterWrite: { mode: "restart", reason: "..." }, yalnızca çağıran taraf devam işinin sahibi olduğunda ve reload planner’ı bilinçli olarak bastırmak istediğinde afterWrite: { mode: "none", reason: "..." } kullanın. Mutation sonuçları testler ve logging için türlendirilmiş bir followUp özeti içerir; Gateway, restart’ı uygulama veya zamanlama sorumluluğunu korur. loadConfig ve writeConfigFile, geçiş penceresi sırasında harici Plugin’ler için kullanımdan kaldırılmış uyumluluk yardımcıları olarak kalır ve runtime-config-load-write uyumluluk koduyla bir kez uyarır. Paketlenmiş Plugin’ler ve repo çalışma zamanı kodu, pnpm check:deprecated-api-usage ve pnpm check:no-runtime-action-load-config içinde tarayıcı korumalarıyla korunur: yeni production Plugin kullanımı doğrudan başarısız olur, doğrudan yapılandırma yazmaları başarısız olur, Gateway server yöntemleri istek çalışma zamanı anlık görüntüsünü kullanmalıdır, çalışma zamanı kanal gönderme/action/client yardımcıları yapılandırmayı kendi sınırlarından almalıdır ve uzun ömürlü çalışma zamanı modüllerinde izin verilen ortam loadConfig() çağrısı sıfırdır.Yeni Plugin kodu ayrıca geniş openclaw/plugin-sdk/config-runtime uyumluluk barrel’ını içe aktarmaktan kaçınmalıdır. İşe uyan dar SDK alt yolunu kullanın:
İhtiyaçİçe aktarma
OpenClawConfig gibi yapılandırma türleriopenclaw/plugin-sdk/config-contracts
Zaten yüklenmiş yapılandırma doğrulamaları ve Plugin-entry yapılandırma aramasıopenclaw/plugin-sdk/plugin-config-runtime
Geçerli çalışma zamanı anlık görüntüsü okumalarıopenclaw/plugin-sdk/runtime-config-snapshot
Yapılandırma yazmalarıopenclaw/plugin-sdk/config-mutation
Oturum deposu yardımcılarıopenclaw/plugin-sdk/session-store-runtime
Markdown tablo yapılandırmasıopenclaw/plugin-sdk/markdown-table-runtime
Grup ilkesi çalışma zamanı yardımcılarıopenclaw/plugin-sdk/runtime-group-policy
Secret input çözümlemeopenclaw/plugin-sdk/secret-input-runtime
Model/oturum geçersiz kılmalarıopenclaw/plugin-sdk/model-session-runtime
Paketlenmiş Plugin’ler ve testleri geniş barrel’a karşı tarayıcı korumalıdır; böylece içe aktarımlar ve mock’lar ihtiyaç duydukları davranışa yerel kalır. Geniş barrel harici uyumluluk için hâlâ vardır, ancak yeni kod ona bağımlı olmamalıdır.
2

Pi araç sonucu uzantılarını middleware'e geçirin

Paketlenmiş Plugin’ler, yalnızca Pi’ye özgü api.registerEmbeddedExtensionFactory(...) araç sonucu işleyicilerini çalışma zamanından bağımsız middleware ile değiştirmelidir.
// Pi and Codex runtime dynamic tools
api.registerAgentToolResultMiddleware(async (event) => {
  return compactToolResult(event);
}, {
  runtimes: ["pi", "codex"],
});
Plugin manifest’ini aynı anda güncelleyin:
{
  "contracts": {
    "agentToolResultMiddleware": ["pi", "codex"]
  }
}
Harici Plugin’ler araç sonucu middleware’i kaydedemez çünkü model görmeden önce yüksek güvenilirlikli araç çıktısını yeniden yazabilir.
3

Onay yerel işleyicilerini capability facts'e geçirin

Onay destekli kanal Plugin’leri artık yerel onay davranışını approvalCapability.nativeRuntime ve paylaşılan çalışma zamanı bağlamı kayıt defteri üzerinden sunar.Temel değişiklikler:
  • approvalCapability.handler.loadRuntime(...) yerine approvalCapability.nativeRuntime kullanın
  • Onaya özgü kimlik doğrulama/teslimatı eski plugin.auth / plugin.approvals bağlantısından çıkarıp approvalCapability üzerine taşıyın
  • ChannelPlugin.approvals public channel-plugin sözleşmesinden kaldırıldı; delivery/native/render alanlarını approvalCapability üzerine taşıyın
  • plugin.auth yalnızca kanal login/logout akışları için kalır; buradaki onay kimlik doğrulama hook’ları artık core tarafından okunmaz
  • Client’lar, token’lar veya Bolt uygulamaları gibi kanala ait çalışma zamanı nesnelerini openclaw/plugin-sdk/channel-runtime-context üzerinden kaydedin
  • Yerel onay işleyicilerinden Plugin’e ait yeniden yönlendirme bildirimleri göndermeyin; core artık gerçek teslimat sonuçlarından gelen başka yere yönlendirildi bildirimlerinin sahibidir
  • channelRuntime öğesini createChannelManager(...) içine geçirirken gerçek bir createPluginRuntime().channel yüzeyi sağlayın. Kısmi stub’lar reddedilir.
Geçerli onay capability düzeni için /plugins/sdk-channel-plugins bölümüne bakın.
4

Windows wrapper fallback davranışını denetleyin

Plugin’iniz openclaw/plugin-sdk/windows-spawn kullanıyorsa, çözümlenmeyen Windows .cmd/.bat wrapper’ları artık açıkça allowShellFallback: true geçmediğiniz sürece kapalı şekilde başarısız olur.
// Before
const program = applyWindowsSpawnProgramPolicy({ candidate });

// After
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // Only set this for trusted compatibility callers that intentionally
  // accept shell-mediated fallback.
  allowShellFallback: true,
});
Çağıran tarafınız bilinçli olarak shell fallback’e dayanmıyorsa, allowShellFallback ayarlamayın ve bunun yerine fırlatılan hatayı işleyin.
5

Kullanımdan kaldırılmış içe aktarımları bulun

Plugin’inizde kullanımdan kaldırılmış iki yüzeyden herhangi birinden yapılan içe aktarımları arayın:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "plugin-sdk/infra-runtime" my-plugin/
grep -r "plugin-sdk/config-runtime" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
6

Odaklanmış içe aktarımlarla değiştirin

Eski yüzeydeki her dışa aktarım belirli bir modern içe aktarma yoluna eşlenir:
// Before (deprecated backwards-compatibility layer)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// After (modern focused imports)
import { createChannelReplyPipeline } from "openclaw/plugin-sdk/channel-reply-pipeline";
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
Host tarafı yardımcıları için doğrudan içe aktarmak yerine enjekte edilen Plugin çalışma zamanını kullanın:
// Before (deprecated extension-api bridge)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// After (injected runtime)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
Aynı desen diğer eski köprü yardımcıları için de geçerlidir:
Eski içe aktarmaModern eşdeğer
resolveAgentDirapi.runtime.agent.resolveAgentDir
resolveAgentWorkspaceDirapi.runtime.agent.resolveAgentWorkspaceDir
resolveAgentIdentityapi.runtime.agent.resolveAgentIdentity
resolveThinkingDefaultapi.runtime.agent.resolveThinkingDefault
resolveAgentTimeoutMsapi.runtime.agent.resolveAgentTimeoutMs
ensureAgentWorkspaceapi.runtime.agent.ensureAgentWorkspace
oturum deposu yardımcılarıapi.runtime.agent.session.*
7

Geniş infra-runtime içe aktarımlarını değiştirin

openclaw/plugin-sdk/infra-runtime harici uyumluluk için hâlâ vardır, ancak yeni kod gerçekten ihtiyaç duyduğu odaklanmış yardımcı yüzeyi içe aktarmalıdır:
İhtiyaçİçe aktarma
Sistem olay kuyruğu yardımcılarıopenclaw/plugin-sdk/system-event-runtime
Heartbeat uyandırma, olay ve görünürlük yardımcılarıopenclaw/plugin-sdk/heartbeat-runtime
Bekleyen teslimat kuyruğu boşaltmaopenclaw/plugin-sdk/delivery-queue-runtime
Kanal etkinliği telemetrisiopenclaw/plugin-sdk/channel-activity-runtime
Bellek içi tekilleştirme önbellekleriopenclaw/plugin-sdk/dedupe-runtime
Güvenli yerel dosya/medya yolu yardımcılarıopenclaw/plugin-sdk/file-access-runtime
Dispatcher farkındalıklı fetchopenclaw/plugin-sdk/runtime-fetch
Proxy ve korumalı fetch yardımcılarıopenclaw/plugin-sdk/fetch-runtime
SSRF dispatcher ilkesi türleriopenclaw/plugin-sdk/ssrf-dispatcher
Onay isteği/çözümleme türleriopenclaw/plugin-sdk/approval-runtime
Onay yanıt payload ve komut yardımcılarıopenclaw/plugin-sdk/approval-reply-runtime
Hata biçimlendirme yardımcılarıopenclaw/plugin-sdk/error-runtime
Transport hazır olma beklemeleriopenclaw/plugin-sdk/transport-ready-runtime
Güvenli token yardımcılarıopenclaw/plugin-sdk/secure-random-runtime
Sınırlı asenkron görev eşzamanlılığıopenclaw/plugin-sdk/concurrency-runtime
Sayısal coercionopenclaw/plugin-sdk/number-runtime
Süreç yerel asenkron kilitopenclaw/plugin-sdk/async-lock-runtime
Dosya kilitleriopenclaw/plugin-sdk/file-lock
Paketlenmiş Plugin’ler infra-runtime’a karşı tarayıcı korumalıdır; böylece repo kodu geniş barrel’a geri dönemez.
8

Kanal route yardımcılarını geçirin

Yeni kanal route kodu openclaw/plugin-sdk/channel-route kullanmalıdır. Eski route-key ve comparable-target adları geçiş penceresi sırasında uyumluluk alias’ları olarak kalır, ancak yeni Plugin’ler davranışı doğrudan açıklayan route adlarını kullanmalıdır:
Eski yardımcıModern yardımcı
channelRouteIdentityKey(...)channelRouteDedupeKey(...)
channelRouteKey(...)channelRouteCompactKey(...)
ComparableChannelTargetChannelRouteParsedTarget
resolveComparableTargetForChannel(...)resolveRouteTargetForChannel(...)
resolveComparableTargetForLoadedChannel(...)resolveRouteTargetForLoadedChannel(...)
comparableChannelTargetsMatch(...)channelRouteTargetsMatchExact(...)
comparableChannelTargetsShareRoute(...)channelRouteTargetsShareConversation(...)
Modern route yardımcıları, { channel, to, accountId, threadId } değerlerini yerel onaylar, yanıt bastırma, gelen tekilleştirme, Cron teslimi ve oturum yönlendirme genelinde tutarlı şekilde normalleştirir. Plugin’iniz özel hedef gramerine sahipse, bu ayrıştırıcıyı aynı route hedef sözleşmesine uyarlamak için resolveChannelRouteTargetWithParser(...) kullanın.
9

Derle ve test et

pnpm build
pnpm test -- my-plugin/

İçe aktarma yolu başvurusu

İçe aktarma yoluAmaçTemel dışa aktarımlar
plugin-sdk/plugin-entryStandart Plugin giriş yardımcısıdefinePluginEntry
plugin-sdk/coreKanal girişi tanımları/oluşturucuları için eski şemsiye yeniden dışa aktarımdefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaKök yapılandırma şeması dışa aktarımıOpenClawSchema
plugin-sdk/provider-entryTek sağlayıcılı giriş yardımcısıdefineSingleProviderPluginEntry
plugin-sdk/channel-coreOdaklanmış kanal girişi tanımları ve oluşturucularıdefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupPaylaşılan kurulum sihirbazı yardımcılarıİzin listesi istemleri, kurulum durumu oluşturucuları
plugin-sdk/setup-runtimeKurulum zamanı çalışma zamanı yardımcılarıİçe aktarma açısından güvenli kurulum yama bağdaştırıcıları, arama notu yardımcıları, promptResolvedAllowFrom, splitSetupEntries, devredilmiş kurulum proxy’leri
plugin-sdk/setup-adapter-runtimeKullanımdan kaldırılmış kurulum bağdaştırıcısı takma adıplugin-sdk/setup-runtime kullanın
plugin-sdk/setup-toolsKurulum araçları yardımcılarıformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreÇok hesaplı yardımcılarHesap listesi/yapılandırması/eylem geçidi yardımcıları
plugin-sdk/account-idHesap kimliği yardımcılarıDEFAULT_ACCOUNT_ID, hesap kimliği normalleştirme
plugin-sdk/account-resolutionHesap arama yardımcılarıHesap arama + varsayılan yedeğe dönme yardımcıları
plugin-sdk/account-helpersDar kapsamlı hesap yardımcılarıHesap listesi/hesap eylemi yardımcıları
plugin-sdk/channel-setupKurulum sihirbazı bağdaştırıcılarıcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, ayrıca DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingDM eşleştirme temel öğelericreateChannelPairingController
plugin-sdk/channel-reply-pipelineYanıt öneki, yazıyor göstergesi ve kaynak teslimatı bağlantılarıcreateChannelReplyPipeline, resolveChannelSourceReplyDeliveryMode
plugin-sdk/channel-config-helpersYapılandırma bağdaştırıcısı fabrikaları ve DM erişim yardımcılarıcreateHybridChannelConfigAdapter, resolveChannelDmAccess, resolveChannelDmAllowFrom, resolveChannelDmPolicy, normalizeChannelDmPolicy, normalizeLegacyDmAliases
plugin-sdk/channel-config-schemaYapılandırma şeması oluşturucularıYalnızca paylaşılan kanal yapılandırma şeması temel öğeleri ve genel oluşturucu
plugin-sdk/bundled-channel-config-schemaPaketli yapılandırma şemalarıYalnızca OpenClaw tarafından bakımı yapılan paketli Plugin’ler; yeni Plugin’ler Plugin yerel şemalar tanımlamalıdır
plugin-sdk/channel-config-schema-legacyKullanımdan kaldırılmış paketli yapılandırma şemalarıYalnızca uyumluluk takma adı; bakımı yapılan paketli Plugin’ler için plugin-sdk/bundled-channel-config-schema kullanın
plugin-sdk/telegram-command-configTelegram komut yapılandırması yardımcılarıKomut adı normalleştirme, açıklama kırpma, yinelenen/çakışan doğrulama
plugin-sdk/channel-policyGrup/DM ilkesi çözümlemeresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleHesap durumu ve taslak akış yaşam döngüsü yardımcılarıcreateAccountStatusSink, taslak önizleme sonlandırma yardımcıları
plugin-sdk/inbound-envelopeGelen zarf yardımcılarıPaylaşılan rota + zarf oluşturucu yardımcıları
plugin-sdk/inbound-reply-dispatchGelen yanıt yardımcılarıPaylaşılan kaydet ve gönder yardımcıları
plugin-sdk/messaging-targetsMesajlaşma hedefi ayrıştırmaHedef ayrıştırma/eşleştirme yardımcıları
plugin-sdk/outbound-mediaGiden medya yardımcılarıPaylaşılan giden medya yükleme
plugin-sdk/outbound-send-depsGiden gönderme bağımlılığı yardımcılarıTam giden çalışma zamanını içe aktarmadan hafif resolveOutboundSendDep araması
plugin-sdk/outbound-runtimeGiden çalışma zamanı yardımcılarıGiden teslimat, kimlik/gönderme temsilcisi, oturum, biçimlendirme ve yük planlama yardımcıları
plugin-sdk/thread-bindings-runtimeKonu bağlama yardımcılarıKonu bağlama yaşam döngüsü ve bağdaştırıcı yardımcıları
plugin-sdk/agent-media-payloadEski medya yükü yardımcılarıEski alan düzenleri için aracı medya yükü oluşturucusu
plugin-sdk/channel-runtimeKullanımdan kaldırılmış uyumluluk şimiYalnızca eski kanal çalışma zamanı yardımcı programları
plugin-sdk/channel-send-resultGönderme sonucu türleriYanıt sonucu türleri
plugin-sdk/runtime-storeKalıcı Plugin depolamacreatePluginRuntimeStore
plugin-sdk/runtimeGeniş kapsamlı çalışma zamanı yardımcılarıÇalışma zamanı/günlükleme/yedekleme/Plugin kurulum yardımcıları
plugin-sdk/runtime-envDar kapsamlı çalışma zamanı ortam yardımcılarıGünlükleyici/çalışma zamanı ortamı, zaman aşımı, yeniden deneme ve geri çekilme yardımcıları
plugin-sdk/plugin-runtimePaylaşılan Plugin çalışma zamanı yardımcılarıPlugin komutları/kancaları/http/etkileşimli yardımcıları
plugin-sdk/hook-runtimeKanca işlem hattı yardımcılarıPaylaşılan Webhook/dahili kanca işlem hattı yardımcıları
plugin-sdk/lazy-runtimeTembel çalışma zamanı yardımcılarıcreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeSüreç yardımcılarıPaylaşılan exec yardımcıları
plugin-sdk/cli-runtimeCLI çalışma zamanı yardımcılarıKomut biçimlendirme, beklemeler, sürüm yardımcıları
plugin-sdk/gateway-runtimeGateway yardımcılarıGateway istemcisi, olay döngüsüne hazır başlatma yardımcısı ve kanal durumu yama yardımcıları
plugin-sdk/config-runtimeKullanımdan kaldırılmış yapılandırma uyumluluğu şimiconfig-contracts, plugin-config-runtime, runtime-config-snapshot ve config-mutation tercih edin
plugin-sdk/telegram-command-configTelegram komut yardımcılarıPaketli Telegram sözleşme yüzeyi kullanılamadığında yedeğe geçişte kararlı Telegram komut doğrulama yardımcıları
plugin-sdk/approval-runtimeOnay istemi yardımcılarıExec/Plugin onay yükü, onay yeteneği/profil yardımcıları, yerel onay yönlendirme/çalışma zamanı yardımcıları ve yapılandırılmış onay görüntüleme yolu biçimlendirme
plugin-sdk/approval-auth-runtimeOnay kimlik doğrulama yardımcılarıOnaylayan çözümleme, aynı sohbet eylemi kimlik doğrulaması
plugin-sdk/approval-client-runtimeOnay istemcisi yardımcılarıYerel exec onay profili/filtre yardımcıları
plugin-sdk/approval-delivery-runtimeOnay teslimatı yardımcılarıYerel onay yeteneği/teslimat bağdaştırıcıları
plugin-sdk/approval-gateway-runtimeOnay Gateway yardımcılarıPaylaşılan onay Gateway çözümleme yardımcısı
plugin-sdk/approval-handler-adapter-runtimeOnay bağdaştırıcısı yardımcılarıSıcak kanal giriş noktaları için hafif yerel onay bağdaştırıcısı yükleme yardımcıları
plugin-sdk/approval-handler-runtimeOnay işleyicisi yardımcılarıDaha geniş onay işleyicisi çalışma zamanı yardımcıları; yeterli olduklarında daha dar bağdaştırıcı/Gateway yüzeylerini tercih edin
plugin-sdk/approval-native-runtimeOnay hedefi yardımcılarıYerel onay hedefi/hesap bağlama yardımcıları
plugin-sdk/approval-reply-runtimeOnay yanıtı yardımcılarıExec/Plugin onay yanıtı yükü yardımcıları
plugin-sdk/channel-runtime-contextKanal çalışma zamanı bağlamı yardımcılarıGenel kanal çalışma zamanı bağlamı kaydet/getir/izle yardımcıları
plugin-sdk/security-runtimeGüvenlik yardımcılarıPaylaşılan güven, DM geçitleme, kök sınırlı dosya/yol yardımcıları, dış içerik ve gizli bilgi toplama yardımcıları
plugin-sdk/ssrf-policySSRF ilkesi yardımcılarıAna makine izin listesi ve özel ağ ilkesi yardımcıları
plugin-sdk/ssrf-runtimeSSRF çalışma zamanı yardımcılarıSabitlenmiş gönderici, korumalı fetch, SSRF ilkesi yardımcıları
plugin-sdk/system-event-runtimeSistem olayı yardımcılarıenqueueSystemEvent, peekSystemEventEntries
plugin-sdk/heartbeat-runtimeHeartbeat yardımcılarıHeartbeat uyandırma, olay ve görünürlük yardımcıları
plugin-sdk/delivery-queue-runtimeTeslimat kuyruğu yardımcılarıdrainPendingDeliveries
plugin-sdk/channel-activity-runtimeKanal etkinliği yardımcılarırecordChannelActivity
plugin-sdk/dedupe-runtimeTekilleştirme yardımcılarıBellek içi tekilleştirme önbellekleri
plugin-sdk/file-access-runtimeDosya erişimi yardımcılarıGüvenli yerel dosya/medya yolu yardımcıları
plugin-sdk/transport-ready-runtimeAktarım hazır olma yardımcılarıwaitForTransportReady
plugin-sdk/collection-runtimeSınırlı önbellek yardımcılarıpruneMapToMaxSize
plugin-sdk/diagnostic-runtimeTanılama geçitleme yardımcılarıisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeHata biçimlendirme yardımcılarıformatUncaughtError, isApprovalNotFoundError, hata grafiği yardımcıları
plugin-sdk/fetch-runtimeSarılmış fetch/proxy yardımcılarıresolveFetch, proxy yardımcıları, EnvHttpProxyAgent seçenek yardımcıları
plugin-sdk/host-runtimeAna makine normalleştirme yardımcılarınormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeYeniden deneme yardımcılarıRetryConfig, retryAsync, ilke çalıştırıcıları
plugin-sdk/allow-fromİzin listesi biçimlendirmeformatAllowFromLowercase
plugin-sdk/allowlist-resolutionİzin listesi girdisi eşlememapAllowlistResolutionInputs
plugin-sdk/command-authKomut geçitleme ve komut yüzeyi yardımcılarıresolveControlCommandGate, gönderen yetkilendirme yardımcıları, dinamik bağımsız değişken menüsü biçimlendirme dahil komut kayıt yardımcıları
plugin-sdk/command-statusKomut durumu/yardım işleyicileribuildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage
plugin-sdk/secret-inputGizli bilgi girdisi ayrıştırmaGizli bilgi girdisi yardımcıları
plugin-sdk/webhook-ingressWebhook isteği yardımcılarıWebhook hedef yardımcı programları
plugin-sdk/webhook-request-guardsWebhook gövde koruması yardımcılarıİstek gövdesi okuma/sınır yardımcıları
plugin-sdk/reply-runtimePaylaşılan yanıt çalışma zamanıGelen gönderim, Heartbeat, yanıt planlayıcı, parçalama
plugin-sdk/reply-dispatch-runtimeDar kapsamlı yanıt gönderim yardımcılarıSonlandırma, sağlayıcı gönderimi ve konuşma etiketi yardımcıları
plugin-sdk/reply-historyYanıt geçmişi yardımcılarıbuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referenceYanıt başvurusu planlamacreateReplyReferencePlanner
plugin-sdk/reply-chunkingYanıt parçası yardımcılarıMetin/markdown parçalama yardımcıları
plugin-sdk/session-store-runtimeOturum deposu yardımcılarıDepo yolu + güncellenme zamanı yardımcıları
plugin-sdk/state-pathsDurum yolu yardımcılarıDurum ve OAuth dizini yardımcıları
plugin-sdk/routingYönlendirme/oturum anahtarı yardımcılarıresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, oturum anahtarı normalleştirme yardımcıları
plugin-sdk/status-helpersKanal durumu yardımcılarıKanal/hesap durumu özeti oluşturucuları, çalışma zamanı durumu varsayılanları, sorun meta verisi yardımcıları
plugin-sdk/target-resolver-runtimeHedef çözümleyici yardımcılarıPaylaşılan hedef çözümleyici yardımcıları
plugin-sdk/string-normalization-runtimeDize normalleştirme yardımcılarıSlug/dize normalleştirme yardımcıları
plugin-sdk/request-urlİstek URL’si yardımcılarıİstek benzeri girdilerden dize URL’leri çıkarın
plugin-sdk/run-commandZamanlanmış komut yardımcılarıNormalleştirilmiş stdout/stderr ile zamanlanmış komut çalıştırıcı
plugin-sdk/param-readersParametre okuyucularıOrtak araç/CLI parametre okuyucuları
plugin-sdk/tool-payloadAraç yükü çıkarmaAraç sonuç nesnelerinden normalleştirilmiş yükleri çıkarır
plugin-sdk/tool-sendAraç gönderim çıkarmaAraç argümanlarından kurallı gönderim hedefi alanlarını çıkarır
plugin-sdk/temp-pathGeçici yol yardımcılarıPaylaşılan geçici indirme yolu yardımcıları
plugin-sdk/logging-coreGünlükleme yardımcılarıAlt sistem günlükleyici ve gizleme yardımcıları
plugin-sdk/markdown-table-runtimeMarkdown tablo yardımcılarıMarkdown tablo modu yardımcıları
plugin-sdk/reply-payloadMesaj yanıt türleriYanıt yükü türleri
plugin-sdk/provider-setupSeçilmiş yerel/kendi kendine barındırılan sağlayıcı kurulum yardımcılarıKendi kendine barındırılan sağlayıcı keşif/yapılandırma yardımcıları
plugin-sdk/self-hosted-provider-setupOdaklanmış OpenAI uyumlu kendi kendine barındırılan sağlayıcı kurulum yardımcılarıAynı kendi kendine barındırılan sağlayıcı keşif/yapılandırma yardımcıları
plugin-sdk/provider-auth-runtimeSağlayıcı çalışma zamanı kimlik doğrulama yardımcılarıÇalışma zamanı API anahtarı çözümleme yardımcıları
plugin-sdk/provider-auth-api-keySağlayıcı API anahtarı kurulum yardımcılarıAPI anahtarı ilk kullanım/profil yazma yardımcıları
plugin-sdk/provider-auth-resultSağlayıcı kimlik doğrulama sonucu yardımcılarıStandart OAuth kimlik doğrulama sonucu oluşturucu
plugin-sdk/provider-selection-runtimeSağlayıcı seçimi yardımcılarıYapılandırılmış veya otomatik sağlayıcı seçimi ve ham sağlayıcı yapılandırması birleştirme
plugin-sdk/provider-env-varsSağlayıcı ortam değişkeni yardımcılarıSağlayıcı kimlik doğrulama ortam değişkeni arama yardımcıları
plugin-sdk/provider-model-sharedPaylaşılan sağlayıcı model/yeniden oynatma yardımcılarıProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, paylaşılan yeniden oynatma politikası oluşturucuları, sağlayıcı uç noktası yardımcıları ve model kimliği normalleştirme yardımcıları
plugin-sdk/provider-catalog-sharedPaylaşılan sağlayıcı katalog yardımcılarıfindCatalogTemplate, buildSingleProviderApiKeyCatalog, buildManifestModelProviderConfig, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardSağlayıcı ilk kullanım yamalarıİlk kullanım yapılandırma yardımcıları
plugin-sdk/provider-httpSağlayıcı HTTP yardımcılarıSes yazıya dökme çok parçalı form yardımcıları dahil genel sağlayıcı HTTP/uç nokta yetenek yardımcıları
plugin-sdk/provider-web-fetchSağlayıcı web-fetch yardımcılarıWeb-fetch sağlayıcı kayıt/önbellek yardımcıları
plugin-sdk/provider-web-search-config-contractSağlayıcı web-search yapılandırma yardımcılarıPlugin etkinleştirme bağlantısına ihtiyaç duymayan sağlayıcılar için dar kapsamlı web-search yapılandırma/kimlik bilgisi yardımcıları
plugin-sdk/provider-web-search-contractSağlayıcı web-search sözleşme yardımcılarıcreateWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig ve kapsamlı kimlik bilgisi ayarlayıcıları/alıcıları gibi dar kapsamlı web-search yapılandırma/kimlik bilgisi sözleşme yardımcıları
plugin-sdk/provider-web-searchSağlayıcı web-search yardımcılarıWeb-search sağlayıcı kayıt/önbellek/çalışma zamanı yardımcıları
plugin-sdk/provider-toolsSağlayıcı araç/şema uyumluluk yardımcılarıProviderToolCompatFamily, buildProviderToolCompatFamilyHooks ve Gemini şema temizleme + tanılama
plugin-sdk/provider-usageSağlayıcı kullanım yardımcılarıfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage ve diğer sağlayıcı kullanım yardımcıları
plugin-sdk/provider-streamSağlayıcı akış sarmalayıcı yardımcılarıProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, akış sarmalayıcı türleri ve paylaşılan Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot sarmalayıcı yardımcıları
plugin-sdk/provider-transport-runtimeSağlayıcı taşıma yardımcılarıKorumalı fetch, taşıma mesajı dönüşümleri ve yazılabilir taşıma olay akışları gibi yerel sağlayıcı taşıma yardımcıları
plugin-sdk/keyed-async-queueSıralı zaman uyumsuz kuyrukKeyedAsyncQueue
plugin-sdk/media-runtimePaylaşılan medya yardımcılarıMedya getirme/dönüştürme/depolama yardımcıları, ffprobe destekli video boyutu yoklama ve medya yükü oluşturucuları
plugin-sdk/media-generation-runtimePaylaşılan medya üretimi yardımcılarıGörsel/video/müzik üretimi için paylaşılan yük devretme yardımcıları, aday seçimi ve eksik model mesajlaşması
plugin-sdk/media-understandingMedya anlama yardımcılarıMedya anlama sağlayıcı türleri ve sağlayıcıya yönelik görsel/ses yardımcı dışa aktarımları
plugin-sdk/text-runtimeKullanımdan kaldırılmış geniş metin uyumluluğu dışa aktarımıstring-coerce-runtime, text-chunking, text-utility-runtime ve logging-core kullanın
plugin-sdk/text-chunkingMetin parçalama yardımcılarıGiden metin parçalama yardımcısı
plugin-sdk/speechKonuşma yardımcılarıKonuşma sağlayıcı türleri ve sağlayıcıya yönelik yönerge, kayıt defteri, doğrulama yardımcıları ve OpenAI uyumlu TTS oluşturucu
plugin-sdk/speech-corePaylaşılan konuşma çekirdeğiKonuşma sağlayıcı türleri, kayıt defteri, yönergeler, normalleştirme
plugin-sdk/realtime-transcriptionGerçek zamanlı yazıya dökme yardımcılarıSağlayıcı türleri, kayıt defteri yardımcıları ve paylaşılan WebSocket oturum yardımcısı
plugin-sdk/realtime-voiceGerçek zamanlı ses yardımcılarıSağlayıcı türleri, kayıt defteri/çözümleme yardımcıları, köprü oturum yardımcıları, paylaşılan ajan geri konuşma kuyrukları, transkript/olay sağlığı, yankı bastırma ve hızlı bağlam danışma yardımcıları
plugin-sdk/image-generationGörsel üretimi yardımcılarıGörsel üretimi sağlayıcı türleri ve görsel varlık/veri URL yardımcıları ile OpenAI uyumlu görsel sağlayıcı oluşturucu
plugin-sdk/image-generation-corePaylaşılan görsel üretimi çekirdeğiGörsel üretimi türleri, yük devretme, kimlik doğrulama ve kayıt defteri yardımcıları
plugin-sdk/music-generationMüzik üretimi yardımcılarıMüzik üretimi sağlayıcı/istek/sonuç türleri
plugin-sdk/music-generation-corePaylaşılan müzik üretimi çekirdeğiMüzik üretimi türleri, yük devretme yardımcıları, sağlayıcı arama ve model referansı ayrıştırma
plugin-sdk/video-generationVideo üretimi yardımcılarıVideo üretimi sağlayıcı/istek/sonuç türleri
plugin-sdk/video-generation-corePaylaşılan video üretimi çekirdeğiVideo üretimi türleri, yük devretme yardımcıları, sağlayıcı arama ve model referansı ayrıştırma
plugin-sdk/interactive-runtimeEtkileşimli yanıt yardımcılarıEtkileşimli yanıt yükü normalleştirme/indirgeme
plugin-sdk/channel-config-primitivesKanal yapılandırma temel öğeleriDar kapsamlı kanal yapılandırma şeması temel öğeleri
plugin-sdk/channel-config-writesKanal yapılandırma yazma yardımcılarıKanal yapılandırma yazma yetkilendirme yardımcıları
plugin-sdk/channel-plugin-commonPaylaşılan kanal başlangıcıPaylaşılan kanal plugin başlangıç dışa aktarımları
plugin-sdk/channel-statusKanal durumu yardımcılarıPaylaşılan kanal durumu anlık görüntü/özet yardımcıları
plugin-sdk/allowlist-config-editİzin listesi yapılandırma yardımcılarıİzin listesi yapılandırma düzenleme/okuma yardımcıları
plugin-sdk/group-accessGrup erişimi yardımcılarıPaylaşılan grup erişimi karar yardımcıları
plugin-sdk/direct-dmDoğrudan DM yardımcılarıPaylaşılan doğrudan DM kimlik doğrulama/koruma yardımcıları
plugin-sdk/extension-sharedPaylaşılan eklenti yardımcılarıPasif kanal/durum ve ortam proxy yardımcı temel öğeleri
plugin-sdk/webhook-targetsWebhook hedef yardımcılarıWebhook hedef kayıt defteri ve rota kurulum yardımcıları
plugin-sdk/webhook-pathKullanımdan kaldırılmış webhook yolu takma adıplugin-sdk/webhook-ingress kullanın
plugin-sdk/web-mediaPaylaşılan web medya yardımcılarıUzak/yerel medya yükleme yardımcıları
plugin-sdk/zodKullanımdan kaldırılmış Zod uyumluluğu yeniden dışa aktarımızod öğesini doğrudan zod paketinden içe aktarın
plugin-sdk/memory-corePaketlenmiş memory-core yardımcılarıBellek yöneticisi/yapılandırma/dosya/CLI yardımcı yüzeyi
plugin-sdk/memory-core-engine-runtimeBellek motoru çalışma zamanı cephesiBellek dizin/arama çalışma zamanı cephesi
plugin-sdk/memory-core-host-engine-foundationBellek ana makine temel motoruBellek ana makine temel motoru dışa aktarımları
plugin-sdk/memory-core-host-engine-embeddingsBellek ana makine embedding motoruBellek embedding sözleşmeleri, kayıt defteri erişimi, yerel sağlayıcı ve genel toplu/uzak yardımcılar; somut uzak sağlayıcılar kendi sahibi olan pluginlerde bulunur
plugin-sdk/memory-core-host-engine-qmdBellek ana makine QMD motoruBellek ana makine QMD motoru dışa aktarımları
plugin-sdk/memory-core-host-engine-storageBellek ana makine depolama motoruBellek ana makine depolama motoru dışa aktarımları
plugin-sdk/memory-core-host-multimodalBellek ana makine çok modlu yardımcılarıBellek ana makine çok modlu yardımcıları
plugin-sdk/memory-core-host-queryBellek ana makine sorgu yardımcılarıBellek ana makine sorgu yardımcıları
plugin-sdk/memory-core-host-secretBellek ana makine gizli bilgi yardımcılarıBellek ana makine gizli bilgi yardımcıları
plugin-sdk/memory-core-host-eventsKullanımdan kaldırılmış bellek olay takma adıplugin-sdk/memory-host-events kullanın
plugin-sdk/memory-core-host-statusBellek ana makine durum yardımcılarıBellek ana makine durum yardımcıları
plugin-sdk/memory-core-host-runtime-cliBellek ana makine CLI çalışma zamanıBellek ana makine CLI çalışma zamanı yardımcıları
plugin-sdk/memory-core-host-runtime-coreBellek ana makine çekirdek çalışma zamanıBellek ana makine çekirdek çalışma zamanı yardımcıları
plugin-sdk/memory-core-host-runtime-filesBellek ana makine dosya/çalışma zamanı yardımcılarıBellek ana makine dosya/çalışma zamanı yardımcıları
plugin-sdk/memory-host-coreBellek ana makine çekirdek çalışma zamanı takma adıBellek ana makine çekirdek çalışma zamanı yardımcıları için satıcıdan bağımsız takma ad
plugin-sdk/memory-host-eventsBellek ana makine olay günlüğü takma adıBellek ana makine olay günlüğü yardımcıları için satıcıdan bağımsız takma ad
plugin-sdk/memory-host-filesKullanımdan kaldırılmış bellek dosya/çalışma zamanı takma adıplugin-sdk/memory-core-host-runtime-files kullanın
plugin-sdk/memory-host-markdownYönetilen markdown yardımcılarıBelleğe komşu pluginler için paylaşılan yönetilen markdown yardımcıları
plugin-sdk/memory-host-searchActive memory arama cephesiTembel active-memory arama yöneticisi çalışma zamanı cephesi
plugin-sdk/memory-host-statusKullanımdan kaldırılmış bellek ana makine durum takma adıplugin-sdk/memory-core-host-status kullanın
plugin-sdk/testingTest yardımcı programlarıRepo yerelinde kullanımdan kaldırılmış uyumluluk barrel’ı; plugin-sdk/plugin-test-runtime, plugin-sdk/channel-test-helpers, plugin-sdk/channel-target-testing, plugin-sdk/test-env ve plugin-sdk/test-fixtures gibi odaklanmış repo yerel test alt yollarını kullanın
Bu tablo kasıtlı olarak tam SDK yüzeyi değil, ortak geçiş alt kümesidir. Derleyici giriş noktası envanteri scripts/lib/plugin-sdk-entrypoints.json içinde bulunur; paket dışa aktarımları herkese açık alt kümeden oluşturulur. Açıkça belgelenmiş uyumluluk cepheleri, örneğin yayımlanmış @openclaw/discord@2026.3.13 paketi için korunan kullanım dışı plugin-sdk/discord shim’i dışında, ayrılmış yerleşik Plugin yardımcı birleşim noktaları herkese açık SDK dışa aktarım haritasından emekliye ayrıldı. Sahibe özgü yardımcılar, sahibi olan Plugin paketinin içinde yaşar; paylaşılan host davranışı plugin-sdk/gateway-runtime, plugin-sdk/security-runtime ve plugin-sdk/plugin-config-runtime gibi genel SDK sözleşmeleri üzerinden ilerlemelidir. İşe uyan en dar import’u kullanın. Bir dışa aktarım bulamıyorsanız src/plugin-sdk/ içindeki kaynağı kontrol edin veya sürdürücülere hangi genel sözleşmenin buna sahip olması gerektiğini sorun.

Aktif kullanım dışı bırakmalar

Plugin SDK, sağlayıcı sözleşmesi, runtime yüzeyi ve manifest genelinde geçerli olan daha dar kullanım dışı bırakmalar. Her biri bugün hâlâ çalışır, ancak gelecekteki bir major sürümde kaldırılacaktır. Her öğenin altındaki giriş, eski API’yi kanonik yerine eşler.
Eski (openclaw/plugin-sdk/command-auth): buildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage.Yeni (openclaw/plugin-sdk/command-status): aynı imzalar, aynı dışa aktarımlar - yalnızca daha dar alt yoldan import edilir. command-auth bunları uyumluluk stub’ları olarak yeniden dışa aktarır.
// Before
import { buildHelpMessage } from "openclaw/plugin-sdk/command-auth";

// After
import { buildHelpMessage } from "openclaw/plugin-sdk/command-status";
Eski: openclaw/plugin-sdk/channel-inbound veya openclaw/plugin-sdk/channel-mention-gating içinden resolveInboundMentionRequirement({ facts, policy }) ve shouldDropInboundForMention(...).Yeni: resolveInboundMentionDecision({ facts, policy }) - iki ayrı çağrı yerine tek bir karar nesnesi döndürür.Aşağı yöndeki kanal Plugin’leri (Slack, Discord, Matrix, MS Teams) zaten geçiş yaptı.
openclaw/plugin-sdk/channel-runtime, eski kanal Plugin’leri için bir uyumluluk shim’idir. Yeni koddan import etmeyin; runtime nesnelerini kaydetmek için openclaw/plugin-sdk/channel-runtime-context kullanın.openclaw/plugin-sdk/channel-actions içindeki channelActions* yardımcıları, ham “actions” kanal dışa aktarımlarıyla birlikte kullanım dışıdır. Yetenekleri bunun yerine anlamsal presentation yüzeyi üzerinden açığa çıkarın - kanal Plugin’leri kabul ettikleri ham eylem adları yerine ne render ettiklerini (kartlar, düğmeler, seçimler) bildirir.
Eski: openclaw/plugin-sdk/provider-web-search içinden tool() fabrikası.Yeni: createTool(...) öğesini doğrudan sağlayıcı Plugin üzerinde uygulayın. OpenClaw artık araç sarmalayıcısını kaydetmek için SDK yardımcısına ihtiyaç duymaz.
Eski: gelen kanal mesajlarından düz bir düz metin prompt zarfı oluşturmak için formatInboundEnvelope(...) (ve ChannelMessageForAgent.channelEnvelope).Yeni: BodyForAgent artı yapılandırılmış kullanıcı bağlamı blokları. Kanal Plugin’leri yönlendirme metadatasını (thread, konu, reply-to, reactions) bir prompt string’ine birleştirmek yerine typed alanlar olarak ekler. formatAgentEnvelope(...) yardımcısı, sentezlenmiş asistana yönelik zarflar için hâlâ desteklenir, ancak gelen düz metin zarfları kaldırılma yolundadır.Etkilenen alanlar: inbound_claim, message_received ve channelEnvelope metnini sonradan işleyen tüm özel kanal Plugin’leri.
Dört keşif türü alias’ı artık katalog dönemi türleri üzerinde ince sarmalayıcılardır:
Eski aliasYeni tür
ProviderDiscoveryOrderProviderCatalogOrder
ProviderDiscoveryContextProviderCatalogContext
ProviderDiscoveryResultProviderCatalogResult
ProviderPluginDiscoveryProviderPluginCatalog
Ayrıca eski ProviderCapabilities statik torbası - sağlayıcı Plugin’leri statik bir nesne yerine buildReplayPolicy, normalizeToolSchemas ve wrapStreamFn gibi açık sağlayıcı hook’larını kullanmalıdır.
Eski (ProviderThinkingPolicy üzerinde üç ayrı hook): isBinaryThinking(ctx), supportsXHighThinking(ctx) ve resolveDefaultThinkingLevel(ctx).Yeni: kanonik id, isteğe bağlı label ve sıralanmış seviye listesiyle bir ProviderThinkingProfile döndüren tek bir resolveThinkingProfile(ctx). OpenClaw, eskimiş saklanan değerleri profil sırasına göre otomatik olarak düşürür.Üç yerine bir hook uygulayın. Eski hook’lar kullanım dışı bırakma penceresi boyunca çalışmaya devam eder, ancak profil sonucuyla birleştirilmez.
Eski: sağlayıcıyı Plugin manifest’inde bildirmeden resolveExternalOAuthProfiles(...) uygulamak.Yeni: Plugin manifest’inde contracts.externalAuthProviders bildirin ve resolveExternalAuthProfiles(...) uygulayın. Eski “auth fallback” yolu runtime’da bir uyarı yayar ve kaldırılacaktır.
{
  "contracts": {
    "externalAuthProviders": ["anthropic", "openai"]
  }
}
Eski manifest alanı: providerAuthEnvVars: { anthropic: ["ANTHROPIC_API_KEY"] }.Yeni: aynı env-var aramasını manifest üzerindeki setup.providers[].envVars içine yansıtın. Bu, setup/status env metadatasını tek bir yerde birleştirir ve env-var aramalarını yanıtlamak için Plugin runtime’ını başlatma ihtiyacını ortadan kaldırır.providerAuthEnvVars, kullanım dışı bırakma penceresi kapanana kadar bir uyumluluk adaptörü üzerinden desteklenmeye devam eder.
Eski: üç ayrı çağrı - api.registerMemoryPromptSection(...), api.registerMemoryFlushPlan(...), api.registerMemoryRuntime(...).Yeni: memory-state API üzerinde tek çağrı - registerMemoryCapability(pluginId, { promptBuilder, flushPlanResolver, runtime }).Aynı slot’lar, tek kayıt çağrısı. Eklemeli bellek yardımcıları (registerMemoryPromptSupplement, registerMemoryCorpusSupplement, registerMemoryEmbeddingProvider) etkilenmez.
src/plugins/runtime/types.ts içinden hâlâ dışa aktarılan iki eski tür alias’ı:
EskiYeni
SubagentReadSessionParamsSubagentGetSessionMessagesParams
SubagentReadSessionResultSubagentGetSessionMessagesResult
Runtime yöntemi readSession, getSessionMessages lehine kullanım dışıdır. Aynı imza; eski yöntem yeni yönteme çağrı geçirir.
Eski: runtime.tasks.flow (tekil), canlı bir görev akışı erişimcisi döndürürdü.Yeni: runtime.tasks.managedFlows, bir akıştan alt görevler oluşturan, güncelleyen, iptal eden veya çalıştıran Plugin’ler için yönetilen TaskFlow mutasyon runtime’ını tutar. Plugin yalnızca DTO tabanlı okumalar gerektiriyorsa runtime.tasks.flows kullanın.
// Before
const flow = api.runtime.tasks.flow.fromToolContext(ctx);
// After
const flow = api.runtime.tasks.managedFlows.fromToolContext(ctx);
Yukarıdaki “Nasıl geçilir → Pi araç sonucu extension’larını middleware’e geçirme” bölümünde ele alındı. Tamlık için burada da yer alır: kaldırılan yalnızca Pi’ye özgü api.registerEmbeddedExtensionFactory(...) yolu, contracts.agentToolResultMiddleware içinde açık bir runtime listesiyle api.registerAgentToolResultMiddleware(...) tarafından değiştirilir.
openclaw/plugin-sdk içinden yeniden dışa aktarılan OpenClawSchemaType artık OpenClawConfig için tek satırlık bir alias’tır. Kanonik adı tercih edin.
// Before
import type { OpenClawSchemaType } from "openclaw/plugin-sdk";
// After
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-schema";
Extension düzeyindeki kullanım dışı bırakmalar (extensions/ altındaki yerleşik kanal/sağlayıcı Plugin’lerinin içinde), kendi api.ts ve runtime-api.ts barrel’ları içinde izlenir. Üçüncü taraf Plugin sözleşmelerini etkilemez ve burada listelenmez. Bir yerleşik Plugin’in yerel barrel’ını doğrudan tüketiyorsanız yükseltmeden önce o barrel’daki kullanım dışı bırakma yorumlarını okuyun.

Kaldırma zaman çizelgesi

Ne zamanNe olur
ŞimdiKullanım dışı yüzeyler runtime uyarıları yayar
Sonraki major sürümKullanım dışı yüzeyler kaldırılacak; hâlâ bunları kullanan Plugin’ler başarısız olacak
Tüm core Plugin’ler zaten geçirildi. Harici Plugin’ler sonraki major sürümden önce geçiş yapmalıdır.

Uyarıları geçici olarak bastırma

Geçiş üzerinde çalışırken bu ortam değişkenlerini ayarlayın:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
Bu geçici bir kaçış kapağıdır, kalıcı bir çözüm değildir.

İlgili