Plugins
توسّع Plugins إمكانات OpenClaw بإضافة قدرات جديدة: القنوات، ومزوّدي النماذج، والأدوات، وSkills، والكلام، والنسخ الحي الفوري، والصوت الحي الفوري، وفهم الوسائط، وتوليد الصور، وتوليد الفيديو، وweb fetch، والبحث على الويب، وغير ذلك. بعض Plugins تكون أساسية (تأتي مع OpenClaw)، وأخرى خارجية (ينشرها المجتمع على npm).بداية سريعة
إذا كنت تفضّل التحكم الأصلي داخل الدردشة، فعّل
commands.plugins: true واستخدم:
clawhub:<pkg> صريح، أو مواصفة حزمة عارية (ClawHub أولًا، ثم fallback إلى npm).
إذا كان config غير صالح، يفشل التثبيت عادةً بشكل مغلق ويوجهك إلى
openclaw doctor --fix. والاستثناء الوحيد للتعافي هو مسار ضيق لإعادة تثبيت
الإضافات المجمعة بالنسبة إلى الإضافات التي تشترك في
openclaw.install.allowInvalidConfigRecovery.
أنواع Plugins
يتعرف OpenClaw على تنسيقين للإضافات:| التنسيق | كيف يعمل | أمثلة |
|---|---|---|
| أصلي | openclaw.plugin.json + وحدة وقت تشغيل؛ يُنفَّذ داخل العملية | الإضافات الرسمية، وحزم npm المجتمعية |
| حزمة | تخطيط متوافق مع Codex/Claude/Cursor؛ يُربط بميزات OpenClaw | .codex-plugin/ و.claude-plugin/ و.cursor-plugin/ |
openclaw plugins list. راجع حِزم Plugins لمعرفة تفاصيل الحِزم.
إذا كنت تكتب إضافة أصلية، فابدأ من بناء Plugins
ونظرة عامة على Plugin SDK.
Plugins الرسمية
قابلة للتثبيت (npm)
| Plugin | الحزمة | المستندات |
|---|---|---|
| Matrix | @openclaw/matrix | Matrix |
| Microsoft Teams | @openclaw/msteams | Microsoft Teams |
| Nostr | @openclaw/nostr | Nostr |
| Voice Call | @openclaw/voice-call | Voice Call |
| Zalo | @openclaw/zalo | Zalo |
| Zalo Personal | @openclaw/zalouser | Zalo Personal |
أساسية (مرفقة مع OpenClaw)
مزوّدو النماذج (مفعّلون افتراضيًا)
مزوّدو النماذج (مفعّلون افتراضيًا)
anthropic وbyteplus وcloudflare-ai-gateway وgithub-copilot وgoogle،
وhuggingface وkilocode وkimi-coding وminimax وmistral وqwen،
وmoonshot وnvidia وopenai وopencode وopencode-go وopenrouter،
وqianfan وsynthetic وtogether وvenice،
وvercel-ai-gateway وvolcengine وxiaomi وzaiإضافات الذاكرة
إضافات الذاكرة
memory-core— بحث الذاكرة المجمّع (الافتراضي عبرplugins.slots.memory)memory-lancedb— ذاكرة طويلة الأمد تُثبَّت عند الطلب مع استدعاء/التقاط تلقائي (اضبطplugins.slots.memory = "memory-lancedb")
مزوّدو الكلام (مفعّلون افتراضيًا)
مزوّدو الكلام (مفعّلون افتراضيًا)
elevenlabs، microsoftأخرى
أخرى
browser— إضافة المتصفح المجمّعة لأداة المتصفح، وCLI openclaw browser، وطريقة البوابةbrowser.request، ووقت تشغيل المتصفح، وخدمة التحكم الافتراضية للمتصفح (مفعّلة افتراضيًا؛ عطّلها قبل استبدالها)copilot-proxy— جسر VS Code Copilot Proxy (معطّل افتراضيًا)
الإعداد
| الحقل | الوصف |
|---|---|
enabled | مفتاح تشغيل عام (الافتراضي: true) |
allow | قائمة سماح للإضافات (اختيارية) |
deny | قائمة منع للإضافات (اختيارية؛ والمنع يتفوق) |
load.paths | ملفات/أدلة إضافات إضافية |
slots | محددات خانات حصرية (مثل memory وcontextEngine) |
entries.\<id\> | مفاتيح تشغيل + config لكل إضافة |
openclaw gateway)،
فعادةً ما تُنفّذ إعادة التشغيل تلك تلقائيًا بعد لحظة من وصول كتابة config.
حالات Plugins: معطلة مقابل مفقودة مقابل غير صالحة
حالات Plugins: معطلة مقابل مفقودة مقابل غير صالحة
- معطلة: الإضافة موجودة لكن قواعد التمكين عطّلتها. ويُحافَظ على config.
- مفقودة: يشير config إلى معرّف إضافة لم يجده الاكتشاف.
- غير صالحة: الإضافة موجودة لكن config الخاص بها لا يطابق schema المعلن.
الاكتشاف والأولوية
يفحص OpenClaw الإضافات بهذا الترتيب (وأول تطابق يفوز):إضافات مساحة العمل
\<workspace\>/.openclaw/<plugin-root>/*.ts و \<workspace\>/.openclaw/<plugin-root>/*/index.ts.قواعد التمكين
plugins.enabled: falseيعطّل جميع Plugins- يفوز
plugins.denyدائمًا على allow plugins.entries.\<id\>.enabled: falseيعطّل تلك الإضافة- إضافات مصدر مساحة العمل تكون معطلة افتراضيًا (ويجب تمكينها صراحةً)
- تتبع الإضافات المجمعة مجموعة التفعيل الافتراضية المضمّنة ما لم يُتجاوز ذلك
- يمكن للخانات الحصرية فرض تفعيل الإضافة المختارة لذلك slot
خانات Plugins (فئات حصرية)
بعض الفئات حصرية (يمكن تنشيط واحدة فقط في كل مرة):| الخانة | ما الذي تتحكم فيه | الافتراضي |
|---|---|---|
memory | إضافة الذاكرة النشطة | memory-core |
contextEngine | محرك السياق النشط | legacy (مضمّن) |
مرجع CLI
openclaw plugins enable <id>.
يقوم --force بالكتابة فوق إضافة أو حزمة hook مثبتة موجودة في مكانها.
وهو غير مدعوم مع --link، الذي يعيد استخدام المسار المصدر بدل
نسخه فوق هدف تثبيت مُدار.
يخص --pin npm فقط. وهو غير مدعوم مع --marketplace، لأن
تثبيتات marketplace تحفظ بيانات مصدر marketplace الوصفية بدل مواصفة npm.
يمثل --dangerously-force-unsafe-install تجاوزًا للطوارئ لحالات الإيجابيات
الكاذبة من الماسح المضمّن للشيفرة الخطرة. فهو يسمح لتثبيتات Plugins وتحديثاتها
بالمتابعة بعد نتائج critical المضمّنة، لكنه مع ذلك
لا يتجاوز حظر سياسة before_install الخاصة بالإضافة أو حظر فشل الفحص.
تنطبق راية CLI هذه على تدفقات تثبيت/تحديث Plugins فقط. أما تثبيتات اعتماديات Skills
المدعومة من Gateway فتستخدم تجاوز الطلب المطابق dangerouslyForceUnsafeInstall بدلًا من ذلك، بينما يبقى openclaw skills install تدفق تنزيل/تثبيت Skills المنفصل من ClawHub.
تشارك الحِزم المتوافقة في التدفق نفسه لـ list/inspect/enable/disable الخاص بالإضافات. ويتضمن دعم وقت التشغيل الحالي Skills الخاصة بالحزم، وClaude command-skills،
وقيم settings.json الافتراضية الخاصة بـ Claude، وقيم .lsp.json و
lspServers المعلنة في manifest الخاصة بـ Claude، وCursor command-skills،
وأدلة hook المتوافقة مع Codex.
كما يبلّغ openclaw plugins inspect <id> أيضًا عن إمكانات الحزمة المكتشفة، بالإضافة إلى إدخالات MCP وLSP server المدعومة أو غير المدعومة للإضافات المدعومة بالحِزم.
يمكن أن تكون مصادر marketplace اسم marketplace معروف لـ Claude من
~/.claude/plugins/known_marketplaces.json، أو جذر marketplace محليًا، أو
مسار marketplace.json، أو صيغة GitHub مختصرة مثل owner/repo، أو URL لمستودع GitHub، أو URL لـ git. وبالنسبة إلى marketplaces البعيدة، يجب أن تبقى إدخالات الإضافة داخل
مستودع marketplace المستنسخ وأن تستخدم مصادر مسارات نسبية فقط.
راجع مرجع CLI openclaw plugins للاطلاع على التفاصيل الكاملة.
نظرة عامة على Plugin API
تُصدِّر Plugins الأصلية كائن إدخال يكشفregister(api). وقد لا تزال
الإضافات الأقدم تستخدم activate(api) كاسم بديل قديم، لكن ينبغي للإضافات الجديدة
أن تستخدم register.
register(api) أثناء تفعيل الإضافة.
ولا يزال المحمّل يعود إلى activate(api) بالنسبة إلى الإضافات الأقدم،
لكن ينبغي للإضافات المجمعة والإضافات الخارجية الجديدة أن تتعامل مع register
باعتباره العقد العام.
طرق التسجيل الشائعة:
| الطريقة | ما الذي تسجله |
|---|---|
registerProvider | مزوّد نموذج (LLM) |
registerChannel | قناة دردشة |
registerTool | أداة وكيل |
registerHook / on(...) | hooks دورة الحياة |
registerSpeechProvider | تحويل النص إلى كلام / STT |
registerRealtimeTranscriptionProvider | STT بالبث |
registerRealtimeVoiceProvider | صوت حي فوري مزدوج |
registerMediaUnderstandingProvider | تحليل الصور/الصوت |
registerImageGenerationProvider | توليد الصور |
registerMusicGenerationProvider | توليد الموسيقى |
registerVideoGenerationProvider | توليد الفيديو |
registerWebFetchProvider | مزوّد web fetch / scrape |
registerWebSearchProvider | بحث على الويب |
registerHttpRoute | نقطة نهاية HTTP |
registerCommand / registerCli | أوامر CLI |
registerContextEngine | محرك السياق |
registerService | خدمة خلفية |
before_tool_call: القيمة{ block: true }نهائية؛ وتُتخطى المعالجات ذات الأولوية الأدنى.before_tool_call: القيمة{ block: false }لا تؤدي إلى شيء ولا تمحو حظرًا سابقًا.before_install: القيمة{ block: true }نهائية؛ وتُتخطى المعالجات ذات الأولوية الأدنى.before_install: القيمة{ block: false }لا تؤدي إلى شيء ولا تمحو حظرًا سابقًا.message_sending: القيمة{ cancel: true }نهائية؛ وتُتخطى المعالجات ذات الأولوية الأدنى.message_sending: القيمة{ cancel: false }لا تؤدي إلى شيء ولا تمحو إلغاءً سابقًا.
ذو صلة
- بناء Plugins — أنشئ الإضافة الخاصة بك
- حِزم Plugins — التوافق مع حِزم Codex/Claude/Cursor
- Plugin Manifest — مخطط manifest
- تسجيل الأدوات — أضف أدوات وكيل داخل إضافة
- الداخليات الخاصة بـ Plugins — نموذج الإمكانات ومسار التحميل
- Plugins المجتمع — قوائم الجهات الخارجية