الانتقال إلى المحتوى الرئيسي

نظرة عامة على Plugin SDK

تُعد Plugin SDK العقد المطبّق بالأنواع بين plugins وcore. وهذه الصفحة هي المرجع الخاص بـ ما الذي يجب استيراده وما الذي يمكنك تسجيله.
هل تبحث عن دليل عملي؟

اصطلاح الاستيراد

استورد دائمًا من مسار فرعي محدد:
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
كل مسار فرعي هو وحدة صغيرة مستقلة ذاتيًا. وهذا يحافظ على سرعة بدء التشغيل ويمنع مشكلات التبعيات الدائرية. بالنسبة إلى مساعدات الإدخال/البناء الخاصة بالقنوات، ففضّل openclaw/plugin-sdk/channel-core؛ واحتفظ بـ openclaw/plugin-sdk/core للواجهة الشاملة الأوسع والمساعدات المشتركة مثل buildChannelConfigSchema. لا تضف أو تعتمد على واجهات تسهيلية مسماة باسم المزوّد مثل openclaw/plugin-sdk/slack أو openclaw/plugin-sdk/discord أو openclaw/plugin-sdk/signal أو openclaw/plugin-sdk/whatsapp، أو واجهات مساعدة تحمل علامة قناة معينة. ينبغي أن تركّب plugins المضمّنة المسارات الفرعية العامة لـ SDK داخل ملفاتها api.ts أو runtime-api.ts، ويجب على core إما استخدام هذه الملفات المحلية الخاصة بالplugin أو إضافة عقد SDK عامًا ضيقًا عندما تكون الحاجة فعلًا عابرة للقنوات. لا تزال خريطة التصدير المُولّدة تحتوي على مجموعة صغيرة من واجهات المساعدة الخاصة بالplugins المضمّنة مثل plugin-sdk/feishu وplugin-sdk/feishu-setup وplugin-sdk/zalo وplugin-sdk/zalo-setup وplugin-sdk/matrix*. توجد هذه المسارات الفرعية لصيانة plugins المضمّنة والتوافق فقط؛ وهي مُستبعدة عن قصد من الجدول الشائع أدناه وليست مسار الاستيراد الموصى به للplugins الجديدة التابعة لجهات خارجية.

مرجع المسارات الفرعية

أكثر المسارات الفرعية استخدامًا، مجمعة حسب الغرض. وتوجد القائمة الكاملة المولّدة التي تضم أكثر من 200 مسار فرعي في scripts/lib/plugin-sdk-entrypoints.json. لا تزال المسارات الفرعية المحجوزة لمساعدات plugins المضمّنة تظهر في تلك القائمة المولّدة. تعامل معها على أنها أسطح تنفيذ/توافق ما لم تروّج صفحة توثيق لها صراحة على أنها عامة.

إدخال plugin

المسار الفرعيالتصديرات الأساسية
plugin-sdk/plugin-entrydefinePluginEntry
plugin-sdk/coredefineChannelPluginEntry, createChatChannelPlugin, createChannelPluginBase, defineSetupPluginEntry, buildChannelConfigSchema
plugin-sdk/config-schemaOpenClawSchema
plugin-sdk/provider-entrydefineSingleProviderPluginEntry
المسار الفرعيالتصديرات الأساسية
plugin-sdk/channel-coredefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/config-schemaتصدير مخطط Zod الجذري لـ openclaw.json ‏(OpenClawSchema)
plugin-sdk/channel-setupcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard، بالإضافة إلى DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/setupمساعدات معالج الإعداد المشتركة، ومطالبات allowlist، وبناة حالة الإعداد
plugin-sdk/setup-runtimecreatePatchedAccountSetupAdapter, createEnvPatchedAccountSetupAdapter, createSetupInputPresenceValidator, noteChannelLookupFailure, noteChannelLookupSummary, promptResolvedAllowFrom, splitSetupEntries, createAllowlistSetupWizardProxy, createDelegatedSetupWizardProxy
plugin-sdk/setup-adapter-runtimecreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreمساعدات إعداد/بوابة إجراءات متعددة الحسابات، ومساعدات الرجوع الاحتياطي للحساب الافتراضي
plugin-sdk/account-idDEFAULT_ACCOUNT_ID، ومساعدات تطبيع معرّف الحساب
plugin-sdk/account-resolutionمساعدات البحث عن الحساب + الرجوع الاحتياطي الافتراضي
plugin-sdk/account-helpersمساعدات ضيقة لقائمة الحسابات/إجراءات الحساب
plugin-sdk/channel-pairingcreateChannelPairingController
plugin-sdk/channel-reply-pipelinecreateChannelReplyPipeline
plugin-sdk/channel-config-helperscreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaأنواع مخطط إعداد القناة
plugin-sdk/telegram-command-configمساعدات تطبيع/تحقق أوامر Telegram المخصصة مع رجوع احتياطي للعقد المضمّن
plugin-sdk/channel-policyresolveChannelGroupRequireMention
plugin-sdk/channel-lifecyclecreateAccountStatusSink
plugin-sdk/inbound-envelopeمساعدات مشتركة لتوجيه الوارد وبناء المغلف
plugin-sdk/inbound-reply-dispatchمساعدات مشتركة لتسجيل الوارد وإرساله
plugin-sdk/messaging-targetsمساعدات تحليل/مطابقة الأهداف
plugin-sdk/outbound-mediaمساعدات مشتركة لتحميل الوسائط الصادرة
plugin-sdk/outbound-runtimeمساعدات هوية/تفويض الإرسال الصادر
plugin-sdk/thread-bindings-runtimeمساعدات دورة حياة ربط الخيوط والمهايئات
plugin-sdk/agent-media-payloadباني حمولة وسائط الوكيل القديم
plugin-sdk/conversation-runtimeمساعدات المحادثة/ربط الخيوط/الاقتران/الربط المهيأ
plugin-sdk/runtime-config-snapshotمساعد إعدادات وقت التشغيل الملتقطة
plugin-sdk/runtime-group-policyمساعدات حل سياسة المجموعات في وقت التشغيل
plugin-sdk/channel-statusمساعدات مشتركة للّقطة/الملخص الخاص بحالة القناة
plugin-sdk/channel-config-primitivesبدائيات ضيقة لمخطط إعداد القناة
plugin-sdk/channel-config-writesمساعدات تفويض كتابة إعداد القناة
plugin-sdk/channel-plugin-commonتصديرات تمهيد مشتركة لـ plugin القناة
plugin-sdk/allowlist-config-editمساعدات تعديل/قراءة إعداد allowlist
plugin-sdk/group-accessمساعدات مشتركة لقرارات الوصول إلى المجموعات
plugin-sdk/direct-dmمساعدات مشتركة لمصادقة/حماية الرسائل الخاصة المباشرة
plugin-sdk/interactive-runtimeمساعدات تطبيع/اختزال حمولات الرد التفاعلي
plugin-sdk/channel-inboundمساعدات إزالة الارتداد للوارد، ومطابقة الإشارات، وسياسة الإشارة، ومساعدات المغلف
plugin-sdk/channel-send-resultأنواع نتائج الرد
plugin-sdk/channel-actionscreateMessageToolButtonsSchema, createMessageToolCardSchema
plugin-sdk/channel-targetsمساعدات تحليل/مطابقة الأهداف
plugin-sdk/channel-contractأنواع عقد القناة
plugin-sdk/channel-feedbackتوصيلات الملاحظات/التفاعلات
plugin-sdk/channel-secret-runtimeمساعدات ضيقة لعقد الأسرار مثل collectSimpleChannelFieldAssignments, getChannelSurface, pushAssignment، وأنواع أهداف الأسرار
المسار الفرعيالتصديرات الأساسية
plugin-sdk/provider-entrydefineSingleProviderPluginEntry
plugin-sdk/provider-setupمساعدات إعداد منسقة للمزوّدات المحلية/المستضافة ذاتيًا
plugin-sdk/self-hosted-provider-setupمساعدات مركّزة لإعداد مزوّدات OpenAI-compatible المستضافة ذاتيًا
plugin-sdk/cli-backendإعدادات CLI الخلفية الافتراضية + ثوابت watchdog
plugin-sdk/provider-auth-runtimeمساعدات حل API-key في وقت التشغيل لمكونات provider plugin
plugin-sdk/provider-auth-api-keyمساعدات onboarding/profile-write الخاصة بـ API-key مثل upsertApiKeyProfile
plugin-sdk/provider-auth-resultباني نتائج مصادقة OAuth القياسي
plugin-sdk/provider-auth-loginمساعدات تسجيل الدخول التفاعلي المشتركة لـ provider plugins
plugin-sdk/provider-env-varsمساعدات البحث عن متغيرات env الخاصة بمصادقة المزوّد
plugin-sdk/provider-authcreateProviderApiKeyAuthMethod, ensureApiKeyFromOptionEnvOrPrompt, upsertAuthProfile, upsertApiKeyProfile, writeOAuthCredentials
plugin-sdk/provider-model-sharedProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat، وبناة replay-policy المشتركون، ومساعدات نقاط نهاية المزوّد، ومساعدات تطبيع معرّف النموذج مثل normalizeNativeXaiModelId
plugin-sdk/provider-catalog-sharedfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-httpمساعدات عامة لقدرات HTTP/نقطة النهاية الخاصة بالمزوّد
plugin-sdk/provider-web-fetch-contractمساعدات ضيقة لعقد إعداد/اختيار web-fetch مثل enablePluginInConfig وWebFetchProviderPlugin
plugin-sdk/provider-web-fetchمساعدات تسجيل/ذاكرة تخزين مؤقت/وقت تشغيل مزوّد web-fetch
plugin-sdk/provider-web-search-config-contractمساعدات ضيقة لإعداد/بيانات اعتماد web-search للمزوّدات التي لا تحتاج إلى توصيل تمكين plugin
plugin-sdk/provider-web-search-contractمساعدات ضيقة لعقد إعداد/بيانات اعتماد web-search مثل createWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig، وضبط/جلب بيانات الاعتماد المقيّدة
plugin-sdk/provider-web-searchمساعدات تسجيل/ذاكرة تخزين مؤقت/وقت تشغيل مزوّد web-search
plugin-sdk/provider-toolsProviderToolCompatFamily, buildProviderToolCompatFamilyHooks، وتنظيف مخطط Gemini + التشخيصات، ومساعدات توافق xAI مثل resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usagefetchClaudeUsage وما شابه
plugin-sdk/provider-streamProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers، وأنواع مغلّفات التدفق، ومساعدات المغلّفات المشتركة لـ Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/provider-onboardمساعدات ترقيع إعداد onboarding
plugin-sdk/global-singletonمساعدات singleton/map/cache المحلية للعملية
المسار الفرعيالتصديرات الأساسية
plugin-sdk/command-authresolveControlCommandGate، ومساعدات سجل الأوامر، ومساعدات تفويض المرسِل
plugin-sdk/command-statusبُناة رسائل الأوامر/المساعدة مثل buildCommandsMessagePaginated وbuildHelpMessage
plugin-sdk/approval-auth-runtimeمساعدات حل المعتمِد ومصادقة الإجراءات داخل الدردشة نفسها
plugin-sdk/approval-client-runtimeمساعدات ملف تعريف/تصفية موافقات exec الأصلية
plugin-sdk/approval-delivery-runtimeمهايئات قدرات/تسليم الموافقات الأصلية
plugin-sdk/approval-gateway-runtimeمساعد حل البوابة المشتركة للموافقات
plugin-sdk/approval-handler-adapter-runtimeمساعدات خفيفة لتحميل مهايئات الموافقة الأصلية لنقاط إدخال القنوات السريعة
plugin-sdk/approval-handler-runtimeمساعدات أوسع لوقت تشغيل معالج الموافقات؛ فضّل الواجهات الأضيق للمهايئ/البوابة عندما تكون كافية
plugin-sdk/approval-native-runtimeمساعدات الأهداف الأصلية للموافقة وربط الحساب
plugin-sdk/approval-reply-runtimeمساعدات حمولة رد الموافقة لـ exec/plugin
plugin-sdk/command-auth-nativeمساعدات مصادقة الأوامر الأصلية وأهداف الجلسات الأصلية
plugin-sdk/command-detectionمساعدات مشتركة لاكتشاف الأوامر
plugin-sdk/command-surfaceتطبيع نص الأمر ومساعدات واجهة الأوامر
plugin-sdk/allow-fromformatAllowFromLowercase
plugin-sdk/channel-secret-runtimeمساعدات ضيقة لجمع عقود الأسرار لأسطح أسرار القناة/الplugin
plugin-sdk/secret-ref-runtimeمساعدات ضيقة لـ coerceSecretRef ومساعدات كتابة الأنواع لـ SecretRef لتحليل عقود الأسرار/الإعداد
plugin-sdk/security-runtimeمساعدات مشتركة للثقة، وتقييد الرسائل الخاصة، والمحتوى الخارجي، وجمع الأسرار
plugin-sdk/ssrf-policyمساعدات allowlist للمضيفين وسياسة SSRF للشبكات الخاصة
plugin-sdk/ssrf-runtimeمساعدات pinned-dispatcher وfetch المحمي من SSRF وسياسة SSRF
plugin-sdk/secret-inputمساعدات تحليل مدخلات الأسرار
plugin-sdk/webhook-ingressمساعدات الطلب/الهدف الخاصة بـ webhook
plugin-sdk/webhook-request-guardsمساعدات حجم/مهلة نص الطلب
المسار الفرعيالتصديرات الأساسية
plugin-sdk/runtimeمساعدات واسعة لوقت التشغيل/التسجيل/النسخ الاحتياطي/تثبيت plugins
plugin-sdk/runtime-envمساعدات ضيقة لبيئة وقت التشغيل، وlogger، والمهلة، وإعادة المحاولة، وbackoff
plugin-sdk/channel-runtime-contextمساعدات عامة لتسجيل والبحث عن سياق وقت تشغيل القناة
plugin-sdk/runtime-storecreatePluginRuntimeStore
plugin-sdk/plugin-runtimeمساعدات مشتركة لأوامر/‏hooks/‏HTTP/‏التفاعل الخاصة بالplugin
plugin-sdk/hook-runtimeمساعدات مشتركة لخط أنابيب webhook/internal hook
plugin-sdk/lazy-runtimeمساعدات الاستيراد/الربط الكسول لوقت التشغيل مثل createLazyRuntimeModule وcreateLazyRuntimeMethod وcreateLazyRuntimeSurface
plugin-sdk/process-runtimeمساعدات تنفيذ العملية
plugin-sdk/cli-runtimeمساعدات تنسيق CLI والانتظار والإصدار
plugin-sdk/gateway-runtimeمساعدات عميل Gateway وترقيع حالة القناة
plugin-sdk/config-runtimeمساعدات تحميل/كتابة الإعداد
plugin-sdk/telegram-command-configتطبيع اسم/وصف أمر Telegram والتحقق من التكرار/التعارض، حتى عند عدم توفر سطح عقد Telegram المضمّن
plugin-sdk/approval-runtimeمساعدات الموافقة لـ exec/plugin، وبناة قدرات الموافقة، ومساعدات المصادقة/الملف التعريفي، ومساعدات التوجيه/وقت التشغيل الأصلية
plugin-sdk/reply-runtimeمساعدات مشتركة لوقت تشغيل الوارد/الرد، والتجزئة، والإرسال، وheartbeat، ومخطط الرد
plugin-sdk/reply-dispatch-runtimeمساعدات ضيقة لإرسال/إنهاء الرد
plugin-sdk/reply-historyمساعدات مشتركة لسجل الردود ضمن نافذة قصيرة مثل buildHistoryContext وrecordPendingHistoryEntry وclearHistoryEntriesIfEnabled
plugin-sdk/reply-referencecreateReplyReferencePlanner
plugin-sdk/reply-chunkingمساعدات ضيقة لتجزئة النص/Markdown
plugin-sdk/session-store-runtimeمساعدات مسار مخزن الجلسة وupdated-at
plugin-sdk/state-pathsمساعدات مسارات دليل الحالة/‏OAuth
plugin-sdk/routingمساعدات التوجيه/مفتاح الجلسة/ربط الحساب مثل resolveAgentRoute وbuildAgentSessionKey وresolveDefaultAgentBoundAccountId
plugin-sdk/status-helpersمساعدات مشتركة لملخصات حالة القناة/الحساب، وافتراضيات حالة وقت التشغيل، ومساعدات بيانات المشكلات الوصفية
plugin-sdk/target-resolver-runtimeمساعدات مشتركة لحل الأهداف
plugin-sdk/string-normalization-runtimeمساعدات تطبيع slug/السلاسل النصية
plugin-sdk/request-urlاستخراج عناوين URL النصية من مدخلات شبيهة بـ fetch/request
plugin-sdk/run-commandمشغّل أوامر موقّت مع نتائج stdout/stderr مطبّعة
plugin-sdk/param-readersقارئات معلمات شائعة للأدوات/CLI
plugin-sdk/tool-payloadاستخراج الحمولات المطبّعة من كائنات نتائج الأدوات
plugin-sdk/tool-sendاستخراج حقول هدف الإرسال القياسية من وسائط الأداة
plugin-sdk/temp-pathمساعدات مشتركة لمسارات التنزيل المؤقت
plugin-sdk/logging-coreمساعدات logger للنظام الفرعي وإخفاء البيانات
plugin-sdk/markdown-table-runtimeمساعدات أوضاع جداول Markdown
plugin-sdk/json-storeمساعدات صغيرة لقراءة/كتابة حالة JSON
plugin-sdk/file-lockمساعدات file-lock قابلة لإعادة الدخول
plugin-sdk/persistent-dedupeمساعدات ذاكرة تخزين مؤقت لإزالة التكرار مدعومة بالقرص
plugin-sdk/acp-runtimeمساعدات وقت تشغيل/جلسة ACP وإرسال الرد
plugin-sdk/agent-config-primitivesبدائيات ضيقة لمخطط إعداد وقت تشغيل الوكيل
plugin-sdk/boolean-paramقارئ مرن للمعلمات المنطقية
plugin-sdk/dangerous-name-runtimeمساعدات حل مطابقة الأسماء الخطرة
plugin-sdk/device-bootstrapمساعدات تهيئة الجهاز ورمز الاقتران
plugin-sdk/extension-sharedبدائيات مساعدة مشتركة للقنوات السلبية والحالة والوكيل المحيطي
plugin-sdk/models-provider-runtimeمساعدات الرد الخاصة بأمر /models/المزوّد
plugin-sdk/skill-commands-runtimeمساعدات سرد أوامر Skills
plugin-sdk/native-command-registryمساعدات بناء/تسلسل/سجل الأوامر الأصلية
plugin-sdk/agent-harnessسطح تجريبي للplugins الموثوقة الخاصة بأحزمة الوكيل منخفضة المستوى: أنواع الحزام، ومساعدات التوجيه/الإلغاء للتشغيلات النشطة، وجسر أدوات OpenClaw، وأدوات نتيجة المحاولة
plugin-sdk/provider-zai-endpointمساعدات اكتشاف نقطة نهاية Z.A.I
plugin-sdk/infra-runtimeمساعدات أحداث النظام/heartbeat
plugin-sdk/collection-runtimeمساعدات صغيرة لذاكرة تخزين مؤقت محدودة
plugin-sdk/diagnostic-runtimeمساعدات أعلام وأحداث التشخيص
plugin-sdk/error-runtimeالرسم البياني للأخطاء، والتنسيق، ومساعدات تصنيف الأخطاء المشتركة، وisApprovalNotFoundError
plugin-sdk/fetch-runtimeمساعدات fetch المغلّف، والوكيل، والبحث المثبّت
plugin-sdk/host-runtimeمساعدات تطبيع اسم المضيف ومضيف SCP
plugin-sdk/retry-runtimeمساعدات إعداد وتشغيل إعادة المحاولة
plugin-sdk/agent-runtimeمساعدات دليل الوكيل/الهوية/مساحة العمل
plugin-sdk/directory-runtimeاستعلام/إزالة تكرار الدلائل المعتمد على الإعداد
plugin-sdk/keyed-async-queueKeyedAsyncQueue
المسار الفرعيالتصديرات الأساسية
plugin-sdk/media-runtimeمساعدات مشتركة لجلب/تحويل/تخزين الوسائط بالإضافة إلى بُناة حمولات الوسائط
plugin-sdk/media-generation-runtimeمساعدات مشتركة للرجوع الاحتياطي في توليد الوسائط، واختيار المرشحين، ورسائل النماذج المفقودة
plugin-sdk/media-understandingأنواع مزوّدات فهم الوسائط بالإضافة إلى تصديرات مساعدات الصور/الصوت الموجهة للمزوّد
plugin-sdk/text-runtimeمساعدات مشتركة للنص/Markdown/التسجيل مثل إزالة النص المرئي للمساعد، ومساعدات عرض/تجزئة/جداول Markdown، ومساعدات إخفاء البيانات، ومساعدات وسوم التوجيه، وأدوات النص الآمن
plugin-sdk/text-chunkingمساعد تجزئة النص الصادر
plugin-sdk/speechأنواع مزوّدات الكلام بالإضافة إلى مساعدات التوجيه والسجل والتحقق الموجهة للمزوّد
plugin-sdk/speech-coreأنواع مزوّدات الكلام المشتركة، والسجل، والتوجيه، ومساعدات التطبيع
plugin-sdk/realtime-transcriptionأنواع مزوّدات النسخ الفوري ومساعدات السجل
plugin-sdk/realtime-voiceأنواع مزوّدات الصوت الفوري ومساعدات السجل
plugin-sdk/image-generationأنواع مزوّدات توليد الصور
plugin-sdk/image-generation-coreأنواع توليد الصور المشتركة، والرجوع الاحتياطي، والمصادقة، ومساعدات السجل
plugin-sdk/music-generationأنواع مزوّدات/طلبات/نتائج توليد الموسيقى
plugin-sdk/music-generation-coreأنواع توليد الموسيقى المشتركة، ومساعدات الرجوع الاحتياطي، والبحث عن المزوّد، وتحليل مراجع النماذج
plugin-sdk/video-generationأنواع مزوّدات/طلبات/نتائج توليد الفيديو
plugin-sdk/video-generation-coreأنواع توليد الفيديو المشتركة، ومساعدات الرجوع الاحتياطي، والبحث عن المزوّد، وتحليل مراجع النماذج
plugin-sdk/webhook-targetsسجل أهداف webhook ومساعدات تثبيت المسارات
plugin-sdk/webhook-pathمساعدات تطبيع مسار webhook
plugin-sdk/web-mediaمساعدات مشتركة لتحميل الوسائط البعيدة/المحلية
plugin-sdk/zodإعادة تصدير zod لمستهلكي Plugin SDK
plugin-sdk/testinginstallCommonResolveTargetErrorCases, shouldAckReaction
المسار الفرعيالتصديرات الأساسية
plugin-sdk/memory-coreسطح مساعد memory-core المضمّن لمساعدات المدير/الإعداد/الملف/CLI
plugin-sdk/memory-core-engine-runtimeواجهة وقت تشغيل فهرسة/بحث الذاكرة
plugin-sdk/memory-core-host-engine-foundationتصديرات محرك الأساس لمضيف الذاكرة
plugin-sdk/memory-core-host-engine-embeddingsتصديرات محرك embeddings لمضيف الذاكرة
plugin-sdk/memory-core-host-engine-qmdتصديرات محرك QMD لمضيف الذاكرة
plugin-sdk/memory-core-host-engine-storageتصديرات محرك التخزين لمضيف الذاكرة
plugin-sdk/memory-core-host-multimodalمساعدات متعددة الوسائط لمضيف الذاكرة
plugin-sdk/memory-core-host-queryمساعدات استعلام لمضيف الذاكرة
plugin-sdk/memory-core-host-secretمساعدات أسرار لمضيف الذاكرة
plugin-sdk/memory-core-host-eventsمساعدات سجل أحداث لمضيف الذاكرة
plugin-sdk/memory-core-host-statusمساعدات حالة لمضيف الذاكرة
plugin-sdk/memory-core-host-runtime-cliمساعدات وقت تشغيل CLI لمضيف الذاكرة
plugin-sdk/memory-core-host-runtime-coreمساعدات وقت التشغيل الأساسية لمضيف الذاكرة
plugin-sdk/memory-core-host-runtime-filesمساعدات الملفات/وقت التشغيل لمضيف الذاكرة
plugin-sdk/memory-host-coreاسم بديل محايد للمورّد لمساعدات وقت التشغيل الأساسية لمضيف الذاكرة
plugin-sdk/memory-host-eventsاسم بديل محايد للمورّد لمساعدات سجل أحداث مضيف الذاكرة
plugin-sdk/memory-host-filesاسم بديل محايد للمورّد لمساعدات ملفات/وقت تشغيل مضيف الذاكرة
plugin-sdk/memory-host-markdownمساعدات managed-markdown مشتركة للplugins المجاورة للذاكرة
plugin-sdk/memory-host-searchواجهة وقت تشغيل الذاكرة النشطة للوصول إلى search-manager
plugin-sdk/memory-host-statusاسم بديل محايد للمورّد لمساعدات حالة مضيف الذاكرة
plugin-sdk/memory-lancedbسطح مساعد memory-lancedb المضمّن
العائلةالمسارات الفرعية الحاليةالاستخدام المقصود
Browserplugin-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مساعدات دعم plugin الـ browser المضمّن (browser-support يبقى حزمة التوافق)
Matrixplugin-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سطح المساعدة/وقت التشغيل المضمّن لـ Matrix
Lineplugin-sdk/line, plugin-sdk/line-core, plugin-sdk/line-runtime, plugin-sdk/line-surfaceسطح المساعدة/وقت التشغيل المضمّن لـ LINE
IRCplugin-sdk/irc, plugin-sdk/irc-surfaceسطح المساعدة المضمّن لـ IRC
مساعدات خاصة بالقنوات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واجهات توافق/مساعدة للقنوات المضمّنة
مساعدات خاصة بالمصادقة/الpluginplugin-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واجهات مساعدة للميزات/الplugins المضمّنة؛ ويصدّر plugin-sdk/github-copilot-token حاليًا DEFAULT_COPILOT_API_BASE_URL وderiveCopilotApiBaseUrlFromToken وresolveCopilotApiToken

API التسجيل

تتلقى دالة الاستدعاء register(api) كائن OpenClawPluginApi بهذه الطرائق:

تسجيل القدرات

الطريقةما الذي تسجله
api.registerProvider(...)الاستدلال النصي (LLM)
api.registerAgentHarness(...)منفّذ وكيل منخفض المستوى تجريبي
api.registerCliBackend(...)خلفية CLI محلية للاستدلال
api.registerChannel(...)قناة مراسلة
api.registerSpeechProvider(...)تحويل النص إلى كلام / توليف STT
api.registerRealtimeTranscriptionProvider(...)نسخ فوري مباشر
api.registerRealtimeVoiceProvider(...)جلسات صوتية فورية ثنائية الاتجاه
api.registerMediaUnderstandingProvider(...)تحليل الصور/الصوت/الفيديو
api.registerImageGenerationProvider(...)توليد الصور
api.registerMusicGenerationProvider(...)توليد الموسيقى
api.registerVideoGenerationProvider(...)توليد الفيديو
api.registerWebFetchProvider(...)مزوّد جلب / كشط الويب
api.registerWebSearchProvider(...)بحث الويب

الأدوات والأوامر

الطريقةما الذي تسجله
api.registerTool(tool, opts?)أداة وكيل (إلزامية أو { optional: true })
api.registerCommand(def)أمر مخصص (يتجاوز LLM)

البنية التحتية

الطريقةما الذي تسجله
api.registerHook(events, handler, opts?)hook حدث
api.registerHttpRoute(params)نقطة نهاية HTTP للـ Gateway
api.registerGatewayMethod(name, handler)طريقة Gateway RPC
api.registerCli(registrar, opts?)أمر فرعي في CLI
api.registerService(service)خدمة في الخلفية
api.registerInteractiveHandler(registration)معالج تفاعلي
api.registerMemoryPromptSupplement(builder)قسم prompt إضافي مجاور للذاكرة
api.registerMemoryCorpusSupplement(adapter)corpus إضافي للبحث/القراءة في الذاكرة
تظل مساحات الأسماء الإدارية المحجوزة في core ‏(config.* وexec.approvals.* وwizard.* و update.*) دائمًا operator.admin، حتى لو حاول plugin تعيين نطاق أضيق لطريقة gateway. ويفضَّل استخدام بادئات خاصة بالplugin للطرائق المملوكة للplugin.

بيانات تسجيل CLI الوصفية

تقبل api.registerCli(registrar, opts?) نوعين من البيانات الوصفية على المستوى الأعلى:
  • commands: جذور أوامر صريحة يملكها المسجّل
  • descriptors: واصفات أوامر في وقت التحليل تُستخدم لمساعدة CLI الجذرية، والتوجيه، وتسجيل CLI الكسول للplugin
إذا كنت تريد أن يظل أمر plugin محمّلًا كسولًا في مسار CLI الجذري المعتاد، فقدّم descriptors تغطي كل جذر أمر على المستوى الأعلى يكشفه ذلك المسجّل.
api.registerCli(
  async ({ program }) => {
    const { registerMatrixCli } = await import("./src/cli.js");
    registerMatrixCli({ program });
  },
  {
    descriptors: [
      {
        name: "matrix",
        description: "إدارة حسابات Matrix، والتحقق، والأجهزة، وحالة الملف التعريفي",
        hasSubcommands: true,
      },
    ],
  },
);
استخدم commands بمفرده فقط عندما لا تحتاج إلى تسجيل CLI جذري كسول. ويظل مسار التوافق المتلهف هذا مدعومًا، لكنه لا يثبت عناصر نائبة مدعومة بـ descriptor من أجل التحميل الكسول في وقت التحليل.

تسجيل خلفية CLI

تتيح api.registerCliBackend(...) لـ plugin امتلاك الإعداد الافتراضي لخلفية CLI محلية للذكاء الاصطناعي مثل codex-cli.
  • يصبح id الخاص بالخلفية بادئة المزوّد في مراجع النماذج مثل codex-cli/gpt-5.
  • يستخدم config الخاص بالخلفية نفس الشكل المستخدم في agents.defaults.cliBackends.<id>.
  • يظل إعداد المستخدم هو الفائز. يدمج OpenClaw قيمة agents.defaults.cliBackends.<id> فوق القيمة الافتراضية للplugin قبل تشغيل CLI.
  • استخدم normalizeConfig عندما تحتاج الخلفية إلى إعادة كتابة توافق بعد الدمج (على سبيل المثال تطبيع أشكال الأعلام القديمة).

الفتحات الحصرية

الطريقةما الذي تسجله
api.registerContextEngine(id, factory)محرك سياق (واحد فقط نشط في كل مرة). يتلقى رد النداء assemble() كلاً من availableTools وcitationsMode حتى يتمكن المحرك من تخصيص إضافات prompt.
api.registerMemoryCapability(capability)قدرة ذاكرة موحدة
api.registerMemoryPromptSection(builder)باني قسم prompt للذاكرة
api.registerMemoryFlushPlan(resolver)محلّل خطة تفريغ الذاكرة
api.registerMemoryRuntime(runtime)مهايئ وقت تشغيل الذاكرة

مهايئات تضمين الذاكرة

الطريقةما الذي تسجله
api.registerMemoryEmbeddingProvider(adapter)مهايئ تضمين الذاكرة للplugin النشط
  • تُعد registerMemoryCapability هي API المفضلة والحصرية الخاصة بـ plugin الذاكرة.
  • قد تكشف registerMemoryCapability أيضًا عن publicArtifacts.listArtifacts(...) بحيث تتمكن plugins المرافقة من استهلاك عناصر الذاكرة المصدّرة عبر openclaw/plugin-sdk/memory-host-core بدلًا من الوصول إلى التخطيط الخاص الداخلي لـ plugin ذاكرة معيّن.
  • تُعد registerMemoryPromptSection وregisterMemoryFlushPlan و registerMemoryRuntime واجهات API قديمة متوافقة وحصرية لـ plugin الذاكرة.
  • تتيح registerMemoryEmbeddingProvider لـ plugin الذاكرة النشط تسجيل معرّف مهايئ تضمين واحد أو أكثر (مثل openai أو gemini أو معرّف مخصص يعرّفه plugin).
  • تُحل إعدادات المستخدم مثل agents.defaults.memorySearch.provider و agents.defaults.memorySearch.fallback مقابل معرّفات المهايئات المسجلة هذه.

الأحداث ودورة الحياة

الطريقةما الذي تفعله
api.on(hookName, handler, opts?)hook دورة حياة مطبّق بالأنواع
api.onConversationBindingResolved(handler)رد نداء ربط المحادثة

دلالات قرار الـ hook

  • before_tool_call: يكون الإرجاع { block: true } نهائيًا. وبمجرد أن يضبطه أي معالج، يتم تخطي المعالجات ذات الأولوية الأقل.
  • before_tool_call: يُعامل الإرجاع { block: false } على أنه بلا قرار (مثل حذف block) وليس كتجاوز.
  • before_install: يكون الإرجاع { block: true } نهائيًا. وبمجرد أن يضبطه أي معالج، يتم تخطي المعالجات ذات الأولوية الأقل.
  • before_install: يُعامل الإرجاع { block: false } على أنه بلا قرار (مثل حذف block) وليس كتجاوز.
  • reply_dispatch: يكون الإرجاع { handled: true, ... } نهائيًا. وبمجرد أن يدّعي أي معالج مسؤولية الإرسال، يتم تخطي المعالجات ذات الأولوية الأقل ومسار إرسال النموذج الافتراضي.
  • message_sending: يكون الإرجاع { cancel: true } نهائيًا. وبمجرد أن يضبطه أي معالج، يتم تخطي المعالجات ذات الأولوية الأقل.
  • message_sending: يُعامل الإرجاع { cancel: false } على أنه بلا قرار (مثل حذف cancel) وليس كتجاوز.

حقول كائن API

الحقلالنوعالوصف
api.idstringمعرّف plugin
api.namestringاسم العرض
api.versionstring?إصدار plugin ‏(اختياري)
api.descriptionstring?وصف plugin ‏(اختياري)
api.sourcestringمسار مصدر plugin
api.rootDirstring?الدليل الجذري لـ plugin ‏(اختياري)
api.configOpenClawConfigلقطة الإعداد الحالية (لقطة وقت التشغيل النشطة داخل الذاكرة عند توفرها)
api.pluginConfigRecord<string, unknown>الإعداد الخاص بالplugin من plugins.entries.<id>.config
api.runtimePluginRuntimeمساعدات وقت التشغيل
api.loggerPluginLoggerlogger مقيّد النطاق (debug وinfo وwarn وerror)
api.registrationModePluginRegistrationModeوضع التحميل الحالي؛ تمثل "setup-runtime" نافذة البدء/الإعداد الخفيفة قبل الإدخال الكامل
api.resolvePath(input)(string) => stringحل المسار نسبةً إلى جذر plugin

اصطلاح الوحدات الداخلية

داخل plugin الخاص بك، استخدم ملفات barrel محلية للاستيرادات الداخلية:
my-plugin/
  api.ts            # تصديرات عامة للمستهلكين الخارجيين
  runtime-api.ts    # تصديرات داخلية فقط لوقت التشغيل
  index.ts          # نقطة إدخال plugin
  setup-entry.ts    # إدخال خفيف للإعداد فقط (اختياري)
لا تستورد plugin الخاص بك مطلقًا عبر openclaw/plugin-sdk/<your-plugin> من كود الإنتاج. وجّه الاستيرادات الداخلية عبر ./api.ts أو ./runtime-api.ts. فمسار SDK هو العقد الخارجي فقط.
تُفضّل الآن الأسطح العامة للplugin المضمّن المحمّلة عبر الواجهة (api.ts وruntime-api.ts، وindex.ts، وsetup-entry.ts، وملفات الإدخال العامة المشابهة) استخدام لقطة إعداد وقت التشغيل النشطة عندما يكون OpenClaw قيد التشغيل بالفعل. وإذا لم توجد لقطة وقت تشغيل بعد، فإنها تعود إلى ملف الإعداد المحلول على القرص. يمكن لـ provider plugins أيضًا كشف barrel محلي ضيق خاص بالplugin عندما يكون أحد المساعدات خاصًا عمدًا بالمزوّد ولا ينتمي بعد إلى مسار فرعي عام في SDK. والمثال المضمّن الحالي: يحتفظ مزوّد Anthropic بمساعدات Claude stream الخاصة به داخل واجهته العامة api.ts / contract-api.ts بدلًا من ترقية منطق رؤوس Anthropic التجريبية وservice_tier إلى عقد عام plugin-sdk/*. أمثلة مضمّنة حالية أخرى:
  • @openclaw/openai-provider: يصدّر api.ts بُناة المزوّد، ومساعدات النموذج الافتراضي، وبُناة مزوّدات الوقت الفعلي
  • @openclaw/openrouter-provider: يصدّر api.ts باني المزوّد بالإضافة إلى مساعدات onboarding/config
يجب أن يتجنب كود إنتاج extension أيضًا استيراد openclaw/plugin-sdk/<other-plugin>. إذا كان أحد المساعدات مشتركًا فعلًا، فارفعه إلى مسار فرعي محايد في SDK مثل openclaw/plugin-sdk/speech أو .../provider-model-shared أو سطح آخر موجّه حسب القدرة بدلًا من ربط pluginين معًا.

ذو صلة