Ringkasan Plugin SDK
Plugin SDK adalah kontrak bertipe antara plugin dan core. Halaman ini adalah referensi untuk apa yang harus diimpor dan apa yang dapat Anda daftarkan.Konvensi impor
Selalu impor dari subpath tertentu:openclaw/plugin-sdk/channel-core; gunakan openclaw/plugin-sdk/core untuk
permukaan payung yang lebih luas dan helper bersama seperti
buildChannelConfigSchema.
Jangan tambahkan atau bergantung pada seam kemudahan bernama provider seperti
openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord,
openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp, atau
seam helper bermerek channel. Plugin bawaan harus menyusun subpath
SDK generik di dalam barrel api.ts atau runtime-api.ts mereka sendiri, dan core
harus menggunakan barrel lokal plugin tersebut atau menambahkan kontrak SDK generik yang sempit
ketika kebutuhannya benar-benar lintas channel.
Peta ekspor yang dihasilkan masih berisi sejumlah kecil seam helper
plugin bawaan seperti plugin-sdk/feishu, plugin-sdk/feishu-setup,
plugin-sdk/zalo, plugin-sdk/zalo-setup, dan plugin-sdk/matrix*. Subpath tersebut
ada hanya untuk pemeliharaan dan kompatibilitas plugin bawaan; subpath itu
sengaja dihilangkan dari tabel umum di bawah ini dan bukan jalur impor yang
direkomendasikan untuk plugin pihak ketiga yang baru.
Referensi subpath
Subpath yang paling umum digunakan, dikelompokkan berdasarkan tujuan. Daftar lengkap lebih dari 200 subpath yang dihasilkan ada discripts/lib/plugin-sdk-entrypoints.json.
Subpath helper plugin bawaan yang dicadangkan masih muncul di daftar hasil generate tersebut.
Perlakukan itu sebagai detail implementasi/permukaan kompatibilitas kecuali halaman dokumen
secara eksplisit mempromosikannya sebagai publik.
Entri plugin
| Subpath | Ekspor utama |
|---|---|
plugin-sdk/plugin-entry | definePluginEntry |
plugin-sdk/core | defineChannelPluginEntry, createChatChannelPlugin, createChannelPluginBase, defineSetupPluginEntry, buildChannelConfigSchema |
plugin-sdk/config-schema | OpenClawSchema |
plugin-sdk/provider-entry | defineSingleProviderPluginEntry |
Subpath channel
Subpath channel
| Subpath | Ekspor utama |
|---|---|
plugin-sdk/channel-core | defineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase |
plugin-sdk/config-schema | Ekspor skema Zod root openclaw.json (OpenClawSchema) |
plugin-sdk/channel-setup | createOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, ditambah DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries |
plugin-sdk/setup | Helper wizard setup bersama, prompt allowlist, pembuat status setup |
plugin-sdk/setup-runtime | createPatchedAccountSetupAdapter, createEnvPatchedAccountSetupAdapter, createSetupInputPresenceValidator, noteChannelLookupFailure, noteChannelLookupSummary, promptResolvedAllowFrom, splitSetupEntries, createAllowlistSetupWizardProxy, createDelegatedSetupWizardProxy |
plugin-sdk/setup-adapter-runtime | createEnvPatchedAccountSetupAdapter |
plugin-sdk/setup-tools | formatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR |
plugin-sdk/account-core | Helper config multi-akun/action-gate, helper fallback akun default |
plugin-sdk/account-id | DEFAULT_ACCOUNT_ID, helper normalisasi account-id |
plugin-sdk/account-resolution | Pencarian akun + helper fallback default |
plugin-sdk/account-helpers | Helper sempit untuk daftar akun/aksi akun |
plugin-sdk/channel-pairing | createChannelPairingController |
plugin-sdk/channel-reply-pipeline | createChannelReplyPipeline |
plugin-sdk/channel-config-helpers | createHybridChannelConfigAdapter |
plugin-sdk/channel-config-schema | Tipe skema config channel |
plugin-sdk/telegram-command-config | Helper normalisasi/validasi custom-command Telegram dengan fallback kontrak bawaan |
plugin-sdk/channel-policy | resolveChannelGroupRequireMention |
plugin-sdk/channel-lifecycle | createAccountStatusSink |
plugin-sdk/inbound-envelope | Helper bersama untuk route inbound + pembuat envelope |
plugin-sdk/inbound-reply-dispatch | Helper bersama untuk pencatatan dan dispatch inbound |
plugin-sdk/messaging-targets | Helper parsing/pencocokan target |
plugin-sdk/outbound-media | Helper bersama pemuatan media outbound |
plugin-sdk/outbound-runtime | Helper identitas outbound/send delegate |
plugin-sdk/thread-bindings-runtime | Siklus hidup thread-binding dan helper adapter |
plugin-sdk/agent-media-payload | Pembuat payload media agen lama |
plugin-sdk/conversation-runtime | Helper binding percakapan/thread, pairing, dan configured-binding |
plugin-sdk/runtime-config-snapshot | Helper snapshot config runtime |
plugin-sdk/runtime-group-policy | Helper resolusi group-policy runtime |
plugin-sdk/channel-status | Helper snapshot/ringkasan status channel bersama |
plugin-sdk/channel-config-primitives | Primitive sempit skema config channel |
plugin-sdk/channel-config-writes | Helper otorisasi penulisan config channel |
plugin-sdk/channel-plugin-common | Ekspor prelude plugin channel bersama |
plugin-sdk/allowlist-config-edit | Helper edit/baca config allowlist |
plugin-sdk/group-access | Helper keputusan akses grup bersama |
plugin-sdk/direct-dm | Helper auth/guard direct-DM bersama |
plugin-sdk/interactive-runtime | Helper normalisasi/reduksi payload balasan interaktif |
plugin-sdk/channel-inbound | Helper debounce inbound, pencocokan mention, helper mention-policy, dan helper envelope |
plugin-sdk/channel-send-result | Tipe hasil balasan |
plugin-sdk/channel-actions | createMessageToolButtonsSchema, createMessageToolCardSchema |
plugin-sdk/channel-targets | Helper parsing/pencocokan target |
plugin-sdk/channel-contract | Tipe kontrak channel |
plugin-sdk/channel-feedback | Wiring feedback/reaksi |
plugin-sdk/channel-secret-runtime | Helper kontrak rahasia yang sempit seperti collectSimpleChannelFieldAssignments, getChannelSurface, pushAssignment, dan tipe target rahasia |
Subpath provider
Subpath provider
| Subpath | Ekspor utama |
|---|---|
plugin-sdk/provider-entry | defineSingleProviderPluginEntry |
plugin-sdk/provider-setup | Helper setup provider lokal/self-hosted yang dikurasi |
plugin-sdk/self-hosted-provider-setup | Helper setup provider self-hosted yang kompatibel dengan OpenAI dan terfokus |
plugin-sdk/cli-backend | Default backend CLI + konstanta watchdog |
plugin-sdk/provider-auth-runtime | Helper resolusi API key runtime untuk plugin provider |
plugin-sdk/provider-auth-api-key | Helper onboarding/penulisan profil API key seperti upsertApiKeyProfile |
plugin-sdk/provider-auth-result | Pembuat hasil auth OAuth standar |
plugin-sdk/provider-auth-login | Helper login interaktif bersama untuk plugin provider |
plugin-sdk/provider-env-vars | Helper pencarian env var auth provider |
plugin-sdk/provider-auth | createProviderApiKeyAuthMethod, ensureApiKeyFromOptionEnvOrPrompt, upsertAuthProfile, upsertApiKeyProfile, writeOAuthCredentials |
plugin-sdk/provider-model-shared | ProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, pembuat replay-policy bersama, helper endpoint provider, dan helper normalisasi model-id seperti normalizeNativeXaiModelId |
plugin-sdk/provider-catalog-shared | findCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat |
plugin-sdk/provider-http | Helper generic kemampuan HTTP/endpoint provider |
plugin-sdk/provider-web-fetch-contract | Helper kontrak config/seleksi web-fetch yang sempit seperti enablePluginInConfig dan WebFetchProviderPlugin |
plugin-sdk/provider-web-fetch | Helper registrasi/cache provider web-fetch |
plugin-sdk/provider-web-search-contract | Helper kontrak config/kredensial web-search yang sempit seperti enablePluginInConfig, resolveProviderWebSearchPluginConfig, dan setter/getter kredensial terlingkup |
plugin-sdk/provider-web-search | Helper registrasi/cache/runtime provider web-search |
plugin-sdk/provider-tools | ProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, pembersihan skema Gemini + diagnostik, dan helper kompatibilitas xAI seperti resolveXaiModelCompatPatch / applyXaiModelCompat |
plugin-sdk/provider-usage | fetchClaudeUsage dan yang serupa |
plugin-sdk/provider-stream | ProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, tipe wrapper stream, dan helper wrapper bersama Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
plugin-sdk/provider-onboard | Helper patch config onboarding |
plugin-sdk/global-singleton | Helper singleton/map/cache lokal proses |
Subpath auth dan keamanan
Subpath auth dan keamanan
| Subpath | Ekspor utama |
|---|---|
plugin-sdk/command-auth | resolveControlCommandGate, helper registry command, helper otorisasi pengirim |
plugin-sdk/approval-auth-runtime | Helper resolusi approver dan action-auth dalam chat yang sama |
plugin-sdk/approval-client-runtime | Helper profil/filter persetujuan exec native |
plugin-sdk/approval-delivery-runtime | Adapter kemampuan/pengiriman persetujuan native |
plugin-sdk/approval-gateway-runtime | Helper bersama resolusi gateway persetujuan |
plugin-sdk/approval-handler-adapter-runtime | Helper pemuatan adapter persetujuan native yang ringan untuk entrypoint channel panas |
plugin-sdk/approval-handler-runtime | Helper runtime approval handler yang lebih luas; utamakan seam adapter/gateway yang lebih sempit jika sudah cukup |
plugin-sdk/approval-native-runtime | Helper target persetujuan native + account-binding |
plugin-sdk/approval-reply-runtime | Helper payload balasan persetujuan exec/plugin |
plugin-sdk/command-auth-native | Helper auth command native + session-target native |
plugin-sdk/command-detection | Helper deteksi command bersama |
plugin-sdk/command-surface | Normalisasi isi command dan helper permukaan command |
plugin-sdk/allow-from | formatAllowFromLowercase |
plugin-sdk/channel-secret-runtime | Helper pengumpulan kontrak rahasia yang sempit untuk permukaan rahasia channel/plugin |
plugin-sdk/secret-ref-runtime | Helper sempit coerceSecretRef dan pengetikan SecretRef untuk parsing kontrak/config rahasia |
plugin-sdk/security-runtime | Helper bersama untuk trust, gating DM, konten eksternal, dan pengumpulan rahasia |
plugin-sdk/ssrf-policy | Helper allowlist host dan kebijakan SSRF jaringan privat |
plugin-sdk/ssrf-runtime | Helper pinned-dispatcher, fetch dengan penjagaan SSRF, dan kebijakan SSRF |
plugin-sdk/secret-input | Helper parsing input rahasia |
plugin-sdk/webhook-ingress | Helper request/target webhook |
plugin-sdk/webhook-request-guards | Helper ukuran isi request/timeout |
Subpath runtime dan penyimpanan
Subpath runtime dan penyimpanan
| Subpath | Ekspor utama |
|---|---|
plugin-sdk/runtime | Helper runtime/logging/backup/instalasi plugin yang luas |
plugin-sdk/runtime-env | Helper sempit untuk env runtime, logger, timeout, retry, dan backoff |
plugin-sdk/channel-runtime-context | Helper registrasi dan pencarian runtime-context channel generik |
plugin-sdk/runtime-store | createPluginRuntimeStore |
plugin-sdk/plugin-runtime | Helper bersama untuk command/hook/http/interaktif plugin |
plugin-sdk/hook-runtime | Helper pipeline webhook/internal hook bersama |
plugin-sdk/lazy-runtime | Helper impor/binding runtime lazy seperti createLazyRuntimeModule, createLazyRuntimeMethod, dan createLazyRuntimeSurface |
plugin-sdk/process-runtime | Helper process exec |
plugin-sdk/cli-runtime | Helper formatting CLI, wait, dan versi |
plugin-sdk/gateway-runtime | Helper client gateway dan patch status channel |
plugin-sdk/config-runtime | Helper pemuatan/penulisan config |
plugin-sdk/telegram-command-config | Normalisasi nama/deskripsi command Telegram dan pemeriksaan duplikasi/konflik, bahkan ketika permukaan kontrak Telegram bawaan tidak tersedia |
plugin-sdk/approval-runtime | Helper persetujuan exec/plugin, pembuat approval-capability, helper auth/profile, helper routing/runtime native |
plugin-sdk/reply-runtime | Helper runtime inbound/balasan bersama, chunking, dispatch, heartbeat, perencana balasan |
plugin-sdk/reply-dispatch-runtime | Helper sempit untuk dispatch/finalisasi balasan |
plugin-sdk/reply-history | Helper bersama reply-history jendela pendek seperti buildHistoryContext, recordPendingHistoryEntry, dan clearHistoryEntriesIfEnabled |
plugin-sdk/reply-reference | createReplyReferencePlanner |
plugin-sdk/reply-chunking | Helper sempit chunking teks/markdown |
plugin-sdk/session-store-runtime | Helper path session store + updated-at |
plugin-sdk/state-paths | Helper path direktori state/OAuth |
plugin-sdk/routing | Helper binding route/kunci sesi/akun seperti resolveAgentRoute, buildAgentSessionKey, dan resolveDefaultAgentBoundAccountId |
plugin-sdk/status-helpers | Helper bersama ringkasan status channel/akun, default status runtime, dan helper metadata masalah |
plugin-sdk/target-resolver-runtime | Helper target resolver bersama |
plugin-sdk/string-normalization-runtime | Helper normalisasi slug/string |
plugin-sdk/request-url | Ekstrak URL string dari input yang mirip fetch/request |
plugin-sdk/run-command | Runner command bertimer dengan hasil stdout/stderr yang dinormalisasi |
plugin-sdk/param-readers | Pembaca param tool/CLI umum |
plugin-sdk/tool-send | Ekstrak field target pengiriman kanonis dari argumen tool |
plugin-sdk/temp-path | Helper bersama untuk path unduhan sementara |
plugin-sdk/logging-core | Helper logger subsistem dan redaksi |
plugin-sdk/markdown-table-runtime | Helper mode tabel Markdown |
plugin-sdk/json-store | Helper kecil baca/tulis state JSON |
plugin-sdk/file-lock | Helper file-lock re-entrant |
plugin-sdk/persistent-dedupe | Helper cache dedupe berbasis disk |
plugin-sdk/acp-runtime | Helper ACP runtime/sesi dan reply-dispatch |
plugin-sdk/agent-config-primitives | Primitive sempit skema config runtime agen |
plugin-sdk/boolean-param | Pembaca param boolean longgar |
plugin-sdk/dangerous-name-runtime | Helper resolusi pencocokan nama berbahaya |
plugin-sdk/device-bootstrap | Helper bootstrap perangkat dan token pairing |
plugin-sdk/extension-shared | Primitive helper bersama untuk passive-channel, status, dan ambient proxy |
plugin-sdk/models-provider-runtime | Helper balasan command/provider /models |
plugin-sdk/skill-commands-runtime | Helper daftar skill command |
plugin-sdk/native-command-registry | Helper registrasi/build/serialisasi command native |
plugin-sdk/provider-zai-endpoint | Helper deteksi endpoint Z.A.I |
plugin-sdk/infra-runtime | Helper system event/heartbeat |
plugin-sdk/collection-runtime | Helper cache kecil yang dibatasi |
plugin-sdk/diagnostic-runtime | Helper flag dan event diagnostik |
plugin-sdk/error-runtime | Graph error, formatting, helper klasifikasi error bersama, isApprovalNotFoundError |
plugin-sdk/fetch-runtime | Helper fetch terbungkus, proxy, dan pinned lookup |
plugin-sdk/host-runtime | Helper normalisasi hostname dan host SCP |
plugin-sdk/retry-runtime | Helper config retry dan runner retry |
plugin-sdk/agent-runtime | Helper direktori/identitas/workspace agen |
plugin-sdk/directory-runtime | Query/dedup direktori berbasis config |
plugin-sdk/keyed-async-queue | KeyedAsyncQueue |
Subpath capability dan pengujian
Subpath capability dan pengujian
| Subpath | Ekspor utama |
|---|---|
plugin-sdk/media-runtime | Helper bersama fetch/transform/store media plus pembuat payload media |
plugin-sdk/media-generation-runtime | Helper bersama failover pembuatan media, pemilihan kandidat, dan pesan model yang hilang |
plugin-sdk/media-understanding | Tipe provider pemahaman media plus ekspor helper gambar/audio untuk provider |
plugin-sdk/text-runtime | Helper bersama teks/markdown/logging seperti penghapusan teks yang terlihat oleh asisten, helper render/chunking/table markdown, helper redaksi, helper directive-tag, dan utilitas safe-text |
plugin-sdk/text-chunking | Helper chunking teks outbound |
plugin-sdk/speech | Tipe provider ucapan plus helper directive, registry, dan validasi untuk provider |
plugin-sdk/speech-core | Tipe provider ucapan bersama, registry, directive, dan helper normalisasi |
plugin-sdk/realtime-transcription | Tipe provider transkripsi realtime dan helper registry |
plugin-sdk/realtime-voice | Tipe provider suara realtime dan helper registry |
plugin-sdk/image-generation | Tipe provider pembuatan gambar |
plugin-sdk/image-generation-core | Tipe pembuatan gambar bersama, failover, auth, dan helper registry |
plugin-sdk/music-generation | Tipe provider/request/result pembuatan musik |
plugin-sdk/music-generation-core | Tipe pembuatan musik bersama, helper failover, pencarian provider, dan parsing model-ref |
plugin-sdk/video-generation | Tipe provider/request/result pembuatan video |
plugin-sdk/video-generation-core | Tipe pembuatan video bersama, helper failover, pencarian provider, dan parsing model-ref |
plugin-sdk/webhook-targets | Helper registry target webhook dan instalasi route |
plugin-sdk/webhook-path | Helper normalisasi path webhook |
plugin-sdk/web-media | Helper bersama pemuatan media remote/lokal |
plugin-sdk/zod | zod yang diekspor ulang untuk konsumen Plugin SDK |
plugin-sdk/testing | installCommonResolveTargetErrorCases, shouldAckReaction |
Subpath memori
Subpath memori
| Subpath | Ekspor utama |
|---|---|
plugin-sdk/memory-core | Permukaan helper memory-core bawaan untuk helper manager/config/file/CLI |
plugin-sdk/memory-core-engine-runtime | Fasad runtime indeks/pencarian memori |
plugin-sdk/memory-core-host-engine-foundation | Ekspor engine fondasi host memori |
plugin-sdk/memory-core-host-engine-embeddings | Ekspor engine embedding host memori |
plugin-sdk/memory-core-host-engine-qmd | Ekspor engine QMD host memori |
plugin-sdk/memory-core-host-engine-storage | Ekspor engine penyimpanan host memori |
plugin-sdk/memory-core-host-multimodal | Helper multimodal host memori |
plugin-sdk/memory-core-host-query | Helper query host memori |
plugin-sdk/memory-core-host-secret | Helper rahasia host memori |
plugin-sdk/memory-core-host-events | Helper jurnal event host memori |
plugin-sdk/memory-core-host-status | Helper status host memori |
plugin-sdk/memory-core-host-runtime-cli | Helper runtime CLI host memori |
plugin-sdk/memory-core-host-runtime-core | Helper runtime core host memori |
plugin-sdk/memory-core-host-runtime-files | Helper file/runtime host memori |
plugin-sdk/memory-host-core | Alias netral-vendor untuk helper runtime core host memori |
plugin-sdk/memory-host-events | Alias netral-vendor untuk helper jurnal event host memori |
plugin-sdk/memory-host-files | Alias netral-vendor untuk helper file/runtime host memori |
plugin-sdk/memory-host-markdown | Helper managed-markdown bersama untuk plugin yang berdekatan dengan memori |
plugin-sdk/memory-host-search | Fasad runtime memori aktif untuk akses search-manager |
plugin-sdk/memory-host-status | Alias netral-vendor untuk helper status host memori |
plugin-sdk/memory-lancedb | Permukaan helper memory-lancedb bawaan |
Subpath helper bawaan yang dicadangkan
Subpath helper bawaan yang dicadangkan
| Family | Subpath saat ini | Tujuan penggunaan |
|---|---|---|
| Browser | plugin-sdk/browser-cdp, plugin-sdk/browser-config-runtime, plugin-sdk/browser-config-support, plugin-sdk/browser-control-auth, plugin-sdk/browser-node-runtime, plugin-sdk/browser-profiles, plugin-sdk/browser-security-runtime, plugin-sdk/browser-setup-tools, plugin-sdk/browser-support | Helper dukungan plugin browser bawaan (browser-support tetap menjadi compatibility barrel) |
| Matrix | plugin-sdk/matrix, plugin-sdk/matrix-helper, plugin-sdk/matrix-runtime-heavy, plugin-sdk/matrix-runtime-shared, plugin-sdk/matrix-runtime-surface, plugin-sdk/matrix-surface, plugin-sdk/matrix-thread-bindings | Permukaan helper/runtime Matrix bawaan |
| Line | plugin-sdk/line, plugin-sdk/line-core, plugin-sdk/line-runtime, plugin-sdk/line-surface | Permukaan helper/runtime LINE bawaan |
| IRC | plugin-sdk/irc, plugin-sdk/irc-surface | Permukaan helper IRC bawaan |
| Helper khusus channel | plugin-sdk/googlechat, plugin-sdk/zalouser, plugin-sdk/bluebubbles, plugin-sdk/bluebubbles-policy, plugin-sdk/mattermost, plugin-sdk/mattermost-policy, plugin-sdk/feishu-conversation, plugin-sdk/msteams, plugin-sdk/nextcloud-talk, plugin-sdk/nostr, plugin-sdk/tlon, plugin-sdk/twitch | Seam kompatibilitas/helper channel bawaan |
| Helper auth/plugin khusus | plugin-sdk/github-copilot-login, plugin-sdk/github-copilot-token, plugin-sdk/diagnostics-otel, plugin-sdk/diffs, plugin-sdk/llm-task, plugin-sdk/thread-ownership, plugin-sdk/voice-call | Seam helper fitur/plugin bawaan; plugin-sdk/github-copilot-token saat ini mengekspor DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken, dan resolveCopilotApiToken |
API registrasi
Callbackregister(api) menerima objek OpenClawPluginApi dengan metode berikut:
Registrasi capability
| Metode | Yang didaftarkan |
|---|---|
api.registerProvider(...) | Inferensi teks (LLM) |
api.registerCliBackend(...) | Backend inferensi CLI lokal |
api.registerChannel(...) | Channel pesan |
api.registerSpeechProvider(...) | Sintesis text-to-speech / STT |
api.registerRealtimeTranscriptionProvider(...) | Transkripsi realtime streaming |
api.registerRealtimeVoiceProvider(...) | Sesi suara realtime duplex |
api.registerMediaUnderstandingProvider(...) | Analisis gambar/audio/video |
api.registerImageGenerationProvider(...) | Pembuatan gambar |
api.registerMusicGenerationProvider(...) | Pembuatan musik |
api.registerVideoGenerationProvider(...) | Pembuatan video |
api.registerWebFetchProvider(...) | Provider fetch / scrape web |
api.registerWebSearchProvider(...) | Pencarian web |
Tools dan command
| Metode | Yang didaftarkan |
|---|---|
api.registerTool(tool, opts?) | Tool agen (wajib atau { optional: true }) |
api.registerCommand(def) | Command kustom (melewati LLM) |
Infrastruktur
| Metode | Yang didaftarkan |
|---|---|
api.registerHook(events, handler, opts?) | Event hook |
api.registerHttpRoute(params) | Endpoint HTTP gateway |
api.registerGatewayMethod(name, handler) | Metode RPC gateway |
api.registerCli(registrar, opts?) | Subcommand CLI |
api.registerService(service) | Layanan background |
api.registerInteractiveHandler(registration) | Interactive handler |
api.registerMemoryPromptSupplement(builder) | Bagian prompt tambahan yang berdekatan dengan memori |
api.registerMemoryCorpusSupplement(adapter) | Korpus pencarian/baca memori tambahan |
config.*, exec.approvals.*, wizard.*,
update.*) selalu tetap operator.admin, bahkan jika plugin mencoba menetapkan
scope metode gateway yang lebih sempit. Utamakan prefiks khusus plugin untuk
metode milik plugin.
Metadata registrasi CLI
api.registerCli(registrar, opts?) menerima dua jenis metadata tingkat atas:
commands: root command eksplisit yang dimiliki registrardescriptors: descriptor command saat parse yang digunakan untuk bantuan CLI root, routing, dan registrasi CLI plugin lazy
descriptors yang mencakup setiap root command tingkat atas yang diekspos oleh
registrar tersebut.
commands saja hanya ketika Anda tidak memerlukan registrasi CLI root lazy.
Jalur kompatibilitas eager itu tetap didukung, tetapi jalur tersebut tidak memasang
placeholder berbasis descriptor untuk lazy loading saat parse time.
Registrasi backend CLI
api.registerCliBackend(...) memungkinkan plugin memiliki config default untuk
backend CLI AI lokal seperti codex-cli.
idbackend menjadi prefiks provider dalam model ref seperticodex-cli/gpt-5.configbackend menggunakan bentuk yang sama sepertiagents.defaults.cliBackends.<id>.- Config pengguna tetap menang. OpenClaw menggabungkan
agents.defaults.cliBackends.<id>di atas default plugin sebelum menjalankan CLI. - Gunakan
normalizeConfigketika backend membutuhkan penulisan ulang kompatibilitas setelah penggabungan (misalnya menormalkan bentuk flag lama).
Slot eksklusif
| Metode | Yang didaftarkan |
|---|---|
api.registerContextEngine(id, factory) | Context engine (satu aktif pada satu waktu) |
api.registerMemoryCapability(capability) | Capability memori terpadu |
api.registerMemoryPromptSection(builder) | Pembuat bagian prompt memori |
api.registerMemoryFlushPlan(resolver) | Resolver rencana flush memori |
api.registerMemoryRuntime(runtime) | Adapter runtime memori |
Adapter embedding memori
| Metode | Yang didaftarkan |
|---|---|
api.registerMemoryEmbeddingProvider(adapter) | Adapter embedding memori untuk plugin aktif |
registerMemoryCapabilityadalah API plugin memori eksklusif yang diutamakan.registerMemoryCapabilityjuga dapat mengekspospublicArtifacts.listArtifacts(...)sehingga plugin pendamping dapat menggunakan artefak memori yang diekspor melaluiopenclaw/plugin-sdk/memory-host-corealih-alih menjangkau layout privat plugin memori tertentu.registerMemoryPromptSection,registerMemoryFlushPlan, danregisterMemoryRuntimeadalah API plugin memori eksklusif yang kompatibel dengan versi lama.registerMemoryEmbeddingProvidermemungkinkan plugin memori aktif mendaftarkan satu atau lebih id adapter embedding (misalnyaopenai,gemini, atau id khusus yang didefinisikan plugin).- Config pengguna seperti
agents.defaults.memorySearch.providerdanagents.defaults.memorySearch.fallbackdiresolusikan terhadap id adapter terdaftar tersebut.
Event dan siklus hidup
| Metode | Fungsinya |
|---|---|
api.on(hookName, handler, opts?) | Lifecycle hook bertipe |
api.onConversationBindingResolved(handler) | Callback binding percakapan |
Semantik keputusan hook
before_tool_call: mengembalikan{ block: true }bersifat terminal. Setelah ada handler yang menetapkannya, handler prioritas lebih rendah dilewati.before_tool_call: mengembalikan{ block: false }diperlakukan sebagai tidak ada keputusan (sama seperti menghilangkanblock), bukan sebagai override.before_install: mengembalikan{ block: true }bersifat terminal. Setelah ada handler yang menetapkannya, handler prioritas lebih rendah dilewati.before_install: mengembalikan{ block: false }diperlakukan sebagai tidak ada keputusan (sama seperti menghilangkanblock), bukan sebagai override.reply_dispatch: mengembalikan{ handled: true, ... }bersifat terminal. Setelah ada handler yang mengklaim dispatch, handler prioritas lebih rendah dan jalur dispatch model default dilewati.message_sending: mengembalikan{ cancel: true }bersifat terminal. Setelah ada handler yang menetapkannya, handler prioritas lebih rendah dilewati.message_sending: mengembalikan{ cancel: false }diperlakukan sebagai tidak ada keputusan (sama seperti menghilangkancancel), bukan sebagai override.
Field objek API
| Field | Tipe | Deskripsi |
|---|---|---|
api.id | string | Id plugin |
api.name | string | Nama tampilan |
api.version | string? | Versi plugin (opsional) |
api.description | string? | Deskripsi plugin (opsional) |
api.source | string | Path sumber plugin |
api.rootDir | string? | Direktori root plugin (opsional) |
api.config | OpenClawConfig | Snapshot config saat ini (snapshot runtime in-memory aktif jika tersedia) |
api.pluginConfig | Record<string, unknown> | Config khusus plugin dari plugins.entries.<id>.config |
api.runtime | PluginRuntime | Helper runtime |
api.logger | PluginLogger | Logger terlingkup (debug, info, warn, error) |
api.registrationMode | PluginRegistrationMode | Mode pemuatan saat ini; "setup-runtime" adalah jendela startup/setup ringan sebelum full-entry |
api.resolvePath(input) | (string) => string | Menyelesaikan path relatif terhadap root plugin |
Konvensi modul internal
Di dalam plugin Anda, gunakan file barrel lokal untuk impor internal:api.ts, runtime-api.ts,
index.ts, setup-entry.ts, dan file entri publik serupa) kini mengutamakan
snapshot config runtime aktif ketika OpenClaw sudah berjalan. Jika belum ada
snapshot runtime, permukaan tersebut akan kembali ke file config yang telah diresolusikan di disk.
Plugin provider juga dapat mengekspos barrel kontrak lokal plugin yang sempit ketika
helper memang bersifat khusus provider dan belum layak dimasukkan ke subpath SDK generik.
Contoh bawaan saat ini: provider Anthropic menyimpan helper stream Claude
di seam publik api.ts / contract-api.ts miliknya sendiri alih-alih
mendorong logika header beta Anthropic dan service_tier ke kontrak
plugin-sdk/* generik.
Contoh bawaan lain saat ini:
@openclaw/openai-provider:api.tsmengekspor builder provider, helper model default, dan builder provider realtime@openclaw/openrouter-provider:api.tsmengekspor builder provider plus helper onboarding/config
Terkait
- Entry Points — opsi
definePluginEntrydandefineChannelPluginEntry - Runtime Helpers — referensi lengkap namespace
api.runtime - Setup and Config — packaging, manifest, skema config
- Testing — utilitas pengujian dan aturan lint
- SDK Migration — migrasi dari permukaan yang sudah deprecated
- Plugin Internals — arsitektur mendalam dan model capability