المهارات
الإضافات
البدء السريع (جديد في الإضافات؟)
الإضافة هي مجرد وحدة كود صغيرة تمدّد OpenClaw بميزات إضافية (أوامر، أدوات، و Gateway RPC). في معظم الأحيان، ستستخدم الإضافات عندما تريد ميزة غير مدمجة في نواة OpenClaw بعد (أو تريد إبقاء الميزات الاختيارية خارج التثبيت الرئيسي). المسار السريع:
- انظر ما هو محمّل بالفعل:
openclaw plugins list
- ثبّت إضافة رسمية (مثال: Voice Call):
openclaw plugins install @openclaw/voice-call
مواصفات Npm هي للسجل فقط (اسم الحزمة + إصدار محدد اختياري أو dist-tag). المواصفات من نوع Git/URL/ملف ونطاقات semver مرفوضة. المواصفات العارية و @latest تبقى على المسار المستقر. إذا حلّت npm أيًا من ه ذين إلى إصدار ما قبل النشر، يتوقف OpenClaw ويطلب منك الموافقة صراحةً باستخدام علامة ما قبل النشر مثل @beta/@rc أو إصدار محدد ما قبل النشر.
- أعد تشغيل Gateway، ثم قم بالتكوين تحت
plugins.entries..config.
انظر Voice Call لمثال إضافة ملموس. تبحث عن قوائم الطرف الثالث؟ انظر إضافات المجتمع.
الإضافات المتاحة (الرسمية)
- Microsoft Teams أصبحت إضافة فقط اعتبارًا من 2026.1.15؛ ثبّت
@openclaw/msteamsإذا كنت تستخدم Teams. - الذاكرة (النواة) — إضافة بحث الذاكرة المدمجة (مفعّلة افتراضيًا عبر
plugins.slots.memory) - الذاكرة (LanceDB) — إضافة الذاكرة طويلة الأمد المدمجة (استرجاع/التقاط تلقائي؛ عيّن
plugins.slots.memory = "memory-lancedb") - Voice Call —
@openclaw/voice-call - Zalo Personal —
@openclaw/zalouser - Matrix —
@openclaw/matrix - Nostr —
@openclaw/nostr - Zalo —
@openclaw/zalo - Microsoft Teams —
@openclaw/msteams - Google Antigravity OAuth (مصادقة المزود) — مدمجة كـ
google-antigravity-auth(معطّلة افتراضيًا) - Gemini CLI OAuth (مصادقة المزود) — مدمجة كـ
google-gemini-cli-auth(معطّلة افتراضيًا) - Qwen OAuth (مصادقة المزود) — مدمجة كـ
qwen-portal-auth(معطّلة افتراضيًا) - Copilot Proxy (مصادقة المزود) — جسر VS Code Copilot Proxy المحلي؛ متميز عن تسجيل الدخول المدمج
github-copilotللجهاز (مدمج، معطّل افتراضيًا)
إضافات OpenClaw هي وحدات TypeScript تُحمّل في وقت التشغيل عبر jiti. التحقق من صحة التكوين لا ينفّذ كود الإضافة؛ بل يستخدم بيان الإضافة و JSON Schema بدلاً من ذلك. انظر بيان الإضافة. يمكن للإضافات تسجيل:
- طرق Gateway RPC
- مسارات HTTP للـ Gateway
- أدوات الوكيل
- أوامر CLI
- خدمات الخلفية
- محركات السياق
- التحقق الاختياري من صحة التكوين
- المهارات (عن طريق سرد أدلة
skillsفي بيان الإضافة) - أوامر الرد التلقائي (تنفّذ دون استدعاء وكيل الذكاء الاصطناعي)
تعمل الإضافات ضمن العملية مع Gateway، لذا عالجها ككود موثوق. دليل كتابة الأدوات: أدوات وكيل الإضافة.
مساعدات وقت التشغيل
يمكن للإضافات الوصول إلى مساعدات النواة المحددة عبر api.runtime. لتحويل النص إلى كلام للهاتف:
const result = await api.runtime.tts.textToSpeechTelephony({
text: "Hello from OpenClaw",
cfg: api.config,
});
ملاحظات:
- يستخدم تكوين
messages.ttsالأساسي (OpenAI أو ElevenLabs). - يُرجع مخزن مؤقت للصوت PCM + معدل العينة. يجب على الإضافات إعادة العينة/التشفير للمزودين.
- Edge TTS غير مدعوم للهاتف.
لـ STT/النسخ، يمكن للإضافات استدعاء:
const { text } = await api.runtime.stt.transcribeAudioFile({
filePath: "/tmp/inbound-audio.ogg",
cfg: api.config,
// اختياري عندما لا يمكن الاستدلال على MIME بشكل موثوق:
mime: "audio/ogg",
});
ملاحظات:
- يستخدم تكوين الصوت لفهم الوسائط الأساسي (
tools.media.audio) وترتيب التراجع للمزود. - يُرجع
{ text: undefined }عندما لا يتم إنتاج ناتج نسخ (على سبيل المثال، مدخلات تم تخطيها/غير مدعومة).
مسارات HTTP للـ Gateway
يمكن للإضافات كشف نقاط نهاية HTTP مع api.registerHttpRoute(...).
api.registerHttpRoute({
path: "/acme/webhook",
auth: "plugin",
match: "exact",
handler: async (_req, res) => {
res.statusCode = 200;
res.end("ok");
return true;
},
});
حقول المسار:
path: مسار المسار تحت خادم HTTP للـ gateway.auth: مطلوب. استخدم"gateway"لتطلب مصادقة gateway العادية، أو"plugin"للمصادقة المدارة بواسطة الإضافة/التحقق من webhook.match: اختياري."exact"(الافتراضي) أو"prefix".replaceExisting: اختياري. يسمح للإضافة نفسها باستبدال تسجيل مسارها الحالي.handler: أعدtrueعندما يعالج المسار الطلب.
ملاحظات:
api.registerHttpHandler(...)أصبح قديمًا. استخدمapi.registerHttpRoute(...).- يجب على مسارات الإضافة الإعلان عن
authصراحةً. - يتم رفض تعارضات
path + matchالدقيقة ما لم يكنreplaceExisting: true، ولا يمكن لإضافة استبدال مسار إضافة أخرى. - يتم رفض المسارات المتداخلة بمستويات
authمختلفة. حافظ على سلاسل التراجعexact/prefixعلى نفس مستوى المصادقة فقط.
مسارات استيراد SDK للإضافة
استخدم المسارات الفرعية لـ SDK بدلاً من استيراد openclaw/plugin-sdk الأحادي عند كتابة الإضافات:
openclaw/plugin-sdk/coreلواجهات برمجة تطبيقات الإضافة العامة، أنواع مصادقة المزود، والمساعدات المشتركة.openclaw/plugin-sdk/compatلكود الإضافة المدمج/الداخلي الذي يحتاج إلى مساعدات وقت تشغيل مشتركة أوسع منcore.openclaw/plugin-sdk/telegramلإضافات قناة Telegram.openclaw/plugin-sdk/discordلإضافات قناة Discord.openclaw/plugin-sdk/slackلإضافات قناة Slack.openclaw/plugin-sdk/signalلإضافات قناة Signal.openclaw/plugin-sdk/imessageلإضافات قناة iMessage.openclaw/plugin-sdk/whatsappلإضافات قناة WhatsApp.openclaw/plugin-sdk/lineلإضافات قناة LINE.openclaw/plugin-sdk/msteamsلسطح إضافة Microsoft Teams المدمجة.- المسارات الفرعية المحددة للإضافات المدم جة متاحة أيضًا:
openclaw/plugin-sdk/acpx,openclaw/plugin-sdk/bluebubbles,openclaw/plugin-sdk/copilot-proxy,openclaw/plugin-sdk/device-pair,openclaw/plugin-sdk/diagnostics-otel,openclaw/plugin-sdk/diffs,openclaw/plugin-sdk/feishu,openclaw/plugin-sdk/google-gemini-cli-auth,openclaw/plugin-sdk/googlechat,openclaw/plugin-sdk/irc,openclaw/plugin-sdk/llm-task,openclaw/plugin-sdk/lobster,openclaw/plugin-sdk/matrix,openclaw/plugin-sdk/mattermost,openclaw/plugin-sdk/memory-core,openclaw/plugin-sdk/memory-lancedb,openclaw/plugin-sdk/minimax-portal-auth,openclaw/plugin-sdk/nextcloud-talk,openclaw/plugin-sdk/nostr,openclaw/plugin-sdk/open-prose,openclaw/plugin-sdk/phone-control,openclaw/plugin-sdk/qwen-portal-auth,openclaw/plugin-sdk/synology-chat,openclaw/plugin-sdk/talk-voice,openclaw/plugin-sdk/test-utils,openclaw/plugin-sdk/thread-ownership,openclaw/plugin-sdk/tlon,openclaw/plugin-sdk/twitch,openclaw/plugin-sdk/voice-call,openclaw/plugin-sdk/zalo, وopenclaw/plugin-sdk/zalouser.
ملاحظة التوافق:
openclaw/plugin-sdkيبقى مدعومًا للإضافات الخارجية الحالية.- يجب على الإضافات المدمجة الجديدة والمهاجرة استخدام المسارات الفرعية المحددة للقناة أو الامتداد؛ استخدم
coreللأسطح العامة وcompatفقط عندما تكون هناك حاجة إلى مساعدات مشتركة أوسع.