From 07d2ddabf6076022db8edd91e5880c058cc036ad Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Fri, 24 Apr 2026 15:24:02 +0000 Subject: [PATCH] chore(i18n): refresh ar translations --- docs/ar/cli/plugins.md | 247 +++++++--------- docs/ar/concepts/model-providers.md | 426 +++++++++++++--------------- docs/ar/pi.md | 333 +++++++++++----------- docs/ar/providers/deepseek.md | 52 ++-- docs/ar/tools/plugin.md | 368 +++++++++++++----------- 5 files changed, 695 insertions(+), 731 deletions(-) diff --git a/docs/ar/cli/plugins.md b/docs/ar/cli/plugins.md index 0ed45058e..e49e021cd 100644 --- a/docs/ar/cli/plugins.md +++ b/docs/ar/cli/plugins.md @@ -1,28 +1,28 @@ --- read_when: - - تريد تثبيت Plugins الخاصة بـ Gateway أو إدارتها أو الحزم المتوافقة - - تريد تصحيح حالات فشل تحميل Plugin -summary: مرجع CLI لـ `openclaw plugins` (list وinstall وmarketplace وuninstall وenable/disable وdoctor) -title: Plugins + - تريد تثبيت أو إدارة مكونات Gateway الإضافية أو الحِزم المتوافقة + - تريد تصحيح أخطاء فشل تحميل المكونات الإضافية +summary: مرجع CLI لـ `openclaw plugins` (`list`، `install`، `marketplace`، `uninstall`، `enable`/`disable`، `doctor`) +title: المكونات الإضافية x-i18n: - generated_at: "2026-04-24T07:35:44Z" + generated_at: "2026-04-24T15:22:05Z" model: gpt-5.4 provider: openai - source_hash: 35ef8f54c64ea52d7618a0ef8b90d3d75841a27ae4cd689b4ca8e0cfdcddc408 + source_hash: bc693d5e3bc49057e1a108ba65a4dcb3bb662c00229e6fa38a0335afba8240e5 source_path: cli/plugins.md workflow: 15 --- # `openclaw plugins` -إدارة Plugins الخاصة بـ Gateway، وحزم hooks، والحزم المتوافقة. +إدارة مكونات Gateway الإضافية، وحِزم الخطافات، والحِزم المتوافقة. ذو صلة: -- نظام Plugin: [Plugins](/ar/tools/plugin) -- توافق الحزم: [حزم Plugin](/ar/plugins/bundles) +- نظام Plugin: [المكونات الإضافية](/ar/tools/plugin) +- توافق الحِزم: [حِزم Plugin](/ar/plugins/bundles) - بيان Plugin + المخطط: [بيان Plugin](/ar/plugins/manifest) -- التقوية الأمنية: [الأمان](/ar/gateway/security) +- تعزيز الأمان: [الأمان](/ar/gateway/security) ## الأوامر @@ -46,16 +46,11 @@ openclaw plugins marketplace list openclaw plugins marketplace list --json ``` -تأتي Plugins المضمنة مع OpenClaw. وبعضها مفعّل افتراضيًا (على سبيل المثال -مزوّدو النماذج المضمنون، ومزوّدو الكلام المضمنون، وPlugin -المتصفح المضمن)؛ بينما يتطلب البعض الآخر الأمر `plugins enable`. +تأتي المكونات الإضافية المضمّنة مع OpenClaw. ويكون بعضُها مفعّلًا افتراضيًا (على سبيل المثال، موفرو النماذج المضمّنون، وموفرو الكلام المضمّنون، وPlugin المتصفح المضمّن)؛ بينما يتطلب بعضها الآخر `plugins enable`. -يجب أن تأتي Plugins الأصلية الخاصة بـ OpenClaw مع `openclaw.plugin.json` ومعها -JSON Schema مضمن (`configSchema`، حتى لو كان فارغًا). أما الحزم المتوافقة -فتستخدم بيانات الحزمة الخاصة بها بدلًا من ذلك. +يجب أن توفّر مكونات OpenClaw الإضافية الأصلية الملف `openclaw.plugin.json` مع JSON Schema مضمن (`configSchema`، حتى إن كان فارغًا). أمّا الحِزم المتوافقة فتستخدم بيانات الحِزم الخاصة بها بدلًا من ذلك. -يعرض `plugins list` القيمة `Format: openclaw` أو `Format: bundle`. كما تعرض -مخرجات list/info المفصلة أيضًا النوع الفرعي للحزمة (`codex` أو `claude` أو `cursor`) بالإضافة إلى إمكانات الحزمة المكتشفة. +يعرض `plugins list` القيمة `Format: openclaw` أو `Format: bundle`. كما يعرض خرج `list/info` المفصل أيضًا النوع الفرعي للحزمة (`codex` أو `claude` أو `cursor`) بالإضافة إلى قدرات الحزمة المكتشفة. ### التثبيت @@ -71,82 +66,50 @@ openclaw plugins install --marketplace # marketplace (صريح) openclaw plugins install --marketplace https://github.com// ``` -يتم التحقق من أسماء الحزم المجردة مقابل ClawHub أولًا، ثم npm. ملاحظة أمنية: -تعامل مع تثبيت Plugins كما لو كنت تشغّل شيفرة. ويفضَّل استخدام الإصدارات المثبتة. +تُفحَص أسماء الحِزم المجرّدة في ClawHub أولًا، ثم npm. ملاحظة أمنية: تعامل مع تثبيت المكونات الإضافية كما لو أنك تشغّل شيفرة. ويُفضّل استخدام إصدارات مثبّتة. -إذا كان قسم `plugins` لديك مدعومًا بملف `$include` أحادي، فإن `plugins install/update/enable/disable/uninstall` يكتب مباشرة إلى ذلك الملف المضمَّن ويترك `openclaw.json` دون تغيير. أما التضمينات الجذرية، ومصفوفات include، والتضمينات ذات التجاوزات الشقيقة فتفشل في وضع الإغلاق الآمن بدلًا من التسطيح. راجع [تضمينات الإعدادات](/ar/gateway/configuration) للاطلاع على الأشكال المدعومة. +إذا كان قسم `plugins` لديك يعتمد على `$include` لملف واحد، فإن `plugins install/update/enable/disable/uninstall` يكتب مباشرة إلى ذلك الملف المضمَّن ويترك `openclaw.json` دون تغيير. أمّا التضمينات الجذرية، ومصفوفات التضمين، والتضمينات التي تحتوي على تجاوزات شقيقة، فتفشل بشكل مغلق بدلًا من التسطيح. راجع [تضمينات الإعداد](/ar/gateway/configuration) لمعرفة الأشكال المدعومة. -إذا كانت الإعدادات غير صالحة، فإن `plugins install` يفشل عادةً في وضع الإغلاق الآمن ويطلب منك -تشغيل `openclaw doctor --fix` أولًا. والاستثناء الموثق الوحيد هو مسار -استرداد ضيق خاص بـ Plugin مضمن بالنسبة إلى Plugins التي تختار صراحةً -`openclaw.install.allowInvalidConfigRecovery`. +إذا كان الإعداد غير صالح، فإن `plugins install` يفشل بشكل مغلق عادةً ويطلب منك تشغيل `openclaw doctor --fix` أولًا. والاستثناء الوحيد الموثق هو مسار استرداد ضيق خاص بالمكونات الإضافية المضمّنة للمكونات التي تُعلن صراحةً عن `openclaw.install.allowInvalidConfigRecovery`. -يعيد `--force` استخدام هدف التثبيت الحالي ويكتب فوق Plugin أو حزمة hook مثبّتة -مسبقًا في مكانها. استخدمه عندما تكون تعيد عمدًا تثبيت -المعرّف نفسه من مسار محلي جديد أو أرشيف أو حزمة ClawHub أو عنصر npm. -أما في الترقيات الروتينية لـ Plugin npm متتبّع بالفعل، ففضّل -`openclaw plugins update `. +يعيد `--force` استخدام هدف التثبيت الحالي ويكتب فوق Plugin أو حزمة الخطافات المثبّتة بالفعل في مكانها. استخدمه عندما تكون بصدد إعادة تثبيت المعرّف نفسه عمدًا من مسار محلي جديد، أو أرشيف، أو حزمة ClawHub، أو عنصر npm. أمّا للترقيات الروتينية لـ Plugin npm متعقَّب بالفعل، فافضّل استخدام `openclaw plugins update `. -إذا شغّلت `plugins install` لمعرّف Plugin مثبّت بالفعل، فسيتوقف OpenClaw -ويوجهك إلى `plugins update ` للترقية العادية، -أو إلى `plugins install --force` عندما تريد فعلًا الكتابة فوق -التثبيت الحالي من مصدر مختلف. +إذا شغّلت `plugins install` لمعرّف Plugin مثبّت بالفعل، فسيتوقف OpenClaw ويوجهك إلى `plugins update ` للترقية العادية، أو إلى `plugins install --force` عندما تريد فعلًا الكتابة فوق التثبيت الحالي من مصدر مختلف. -ينطبق `--pin` على تثبيتات npm فقط. وهو غير مدعوم مع `--marketplace`, -لأن تثبيتات marketplace تحفظ بيانات مصدر marketplace بدلًا من -مواصفة npm. +ينطبق `--pin` على عمليات تثبيت npm فقط. وهو غير مدعوم مع `--marketplace`، لأن عمليات التثبيت من marketplace تحفظ بيانات مصدر marketplace بدلًا من مواصفة npm. -إن `--dangerously-force-unsafe-install` هو خيار طوارئ لحالات الإيجابيات الكاذبة -في ماسح الشيفرة الخطرة المضمن. فهو يسمح بمتابعة التثبيت حتى -عندما يبلغ الماسح المضمن عن نتائج `critical`، لكنه **لا** -يتجاوز كتل سياسة hook ‏`before_install` الخاصة بـ Plugin، كما أنه **لا** -يتجاوز حالات فشل الفحص. +يُعد `--dangerously-force-unsafe-install` خيارًا للطوارئ في حالات الإيجابيات الكاذبة ضمن ماسح الشيفرة الخطرة المدمج. فهو يسمح بمتابعة التثبيت حتى عندما يبلغ الماسح المدمج عن نتائج `critical`، لكنه **لا** يتجاوز حظر سياسة الخطاف `before_install` الخاص بالمكون الإضافي، كما أنه **لا** يتجاوز حالات فشل الفحص. -ينطبق هذا الخيار في CLI على تدفقات تثبيت/تحديث Plugin. أما تثبيتات تبعيات Skills -المدعومة من Gateway فتستخدم التجاوز الموافق للطلب `dangerouslyForceUnsafeInstall`، بينما يبقى `openclaw skills install` تدفق تنزيل/تثبيت Skills منفصلًا من ClawHub. +ينطبق هذا العلم في CLI على تدفقات تثبيت/تحديث Plugin. أمّا عمليات تثبيت تبعيات Skills المعتمدة على Gateway فتستخدم تجاوز الطلب المطابق `dangerouslyForceUnsafeInstall`، بينما يظل `openclaw skills install` تدفق تنزيل/تثبيت Skills مستقلًا من ClawHub. -يُعد `plugins install` أيضًا سطح التثبيت لحزم hooks التي تكشف -`openclaw.hooks` في `package.json`. استخدم `openclaw hooks` لعرض hooks -المصفّى وتفعيل كل hook على حدة، وليس لتثبيت الحزم. +يُعد `plugins install` أيضًا واجهة التثبيت لحِزم الخطافات التي تعرض `openclaw.hooks` في `package.json`. استخدم `openclaw hooks` للحصول على عرض مفلتر للخطافات وتمكين كل خطاف على حدة، وليس لتثبيت الحزمة. -تكون مواصفات npm **للسجل فقط** (اسم الحزمة مع **إصدار مطابق تمامًا** اختياري أو -**dist-tag**). وتُرفض مواصفات Git/URL/file ونطاقات semver. وتعمل تثبيتات -التبعيات مع `--ignore-scripts` لأسباب الأمان. +مواصفات npm هي **للسجل فقط** (اسم الحزمة مع **إصدار مطابق تمامًا** اختياري أو **dist-tag**). تُرفض مواصفات Git/URL/file ونطاقات semver. وتُشغَّل عمليات تثبيت التبعيات مع `--ignore-scripts` من أجل الأمان. -تبقى المواصفات المجردة و`@latest` على المسار المستقر. وإذا حلّ npm أيًا -منهما إلى إصدار prerelease، فسيتوقف OpenClaw ويطلب منك الاشتراك صراحةً -باستخدام علامة prerelease مثل `@beta`/`@rc` أو إصدار prerelease دقيق مثل -`@1.2.3-beta.4`. +تظل المواصفات المجرّدة و`@latest` على المسار المستقر. وإذا قام npm بحل أيٍّ منهما إلى إصدار تجريبي مسبق، فسيتوقف OpenClaw ويطلب منك الاشتراك صراحةً باستخدام وسم prerelease مثل `@beta`/`@rc` أو إصدار prerelease مطابق تمامًا مثل `@1.2.3-beta.4`. -إذا طابقت مواصفة تثبيت مجردة معرّف Plugin مضمنًا (مثل `diffs`)، فسيثبّت OpenClaw -الـ Plugin المضمن مباشرةً. ولتثبيت حزمة npm بالاسم نفسه، استخدم مواصفة -محددة النطاق صريحة (مثل `@scope/diffs`). +إذا طابقت مواصفة تثبيت مجرّدة معرّف Plugin مضمّنًا (مثل `diffs`)، فسيثبّت OpenClaw Plugin المضمّن مباشرةً. ولتثبيت حزمة npm تحمل الاسم نفسه، استخدم مواصفة نطاق صريحة (مثل `@scope/diffs`). -الأرشيفات المدعومة: `.zip`, `.tgz`, `.tar.gz`, `.tar`. +الأرشيفات المدعومة: `.zip` و`.tgz` و`.tar.gz` و`.tar`. -كما أن تثبيتات Claude marketplace مدعومة أيضًا. +كما أن عمليات التثبيت من Claude marketplace مدعومة أيضًا. -تستخدم تثبيتات ClawHub محددًا صريحًا `clawhub:`: +تستخدم عمليات التثبيت من ClawHub محددًا صريحًا على هيئة `clawhub:`: ```bash openclaw plugins install clawhub:openclaw-codex-app-server openclaw plugins install clawhub:openclaw-codex-app-server@1.2.3 ``` -يفضّل OpenClaw الآن أيضًا ClawHub لمواصفات Plugin المجردة الآمنة لـ npm. ولا -يعود إلى npm إلا إذا لم يكن ClawHub يحتوي على تلك الحزمة أو الإصدار: +يفضّل OpenClaw الآن أيضًا ClawHub عند استخدام مواصفات Plugin المجرّدة الآمنة لـ npm. ولا يعود إلى npm إلا إذا لم يكن ذلك package أو الإصدار موجودًا في ClawHub: ```bash openclaw plugins install openclaw-codex-app-server ``` -يقوم OpenClaw بتنزيل أرشيف الحزمة من ClawHub، ويتحقق من -توافق Plugin API / الحد الأدنى المعلن لـ Gateway، ثم يثبته عبر -مسار الأرشيف العادي. وتحتفظ التثبيتات المسجلة ببيانات مصدر ClawHub -الوصفيّة لاستخدامها لاحقًا في التحديثات. +يقوم OpenClaw بتنزيل أرشيف الحزمة من ClawHub، ويتحقق من توافق Plugin API المعلَن / الحد الأدنى لتوافق Gateway، ثم يثبّته عبر مسار الأرشيف العادي. وتحتفظ عمليات التثبيت المسجّلة ببيانات مصدر ClawHub الوصفية من أجل التحديثات اللاحقة. -استخدم الصيغة المختصرة `plugin@marketplace` عندما يكون اسم marketplace موجودًا في -ذاكرة السجل المحلية لـ Claude في `~/.claude/plugins/known_marketplaces.json`: +استخدم الصيغة المختصرة `plugin@marketplace` عندما يكون اسم marketplace موجودًا في ذاكرة التخزين المحلية لسجل Claude في `~/.claude/plugins/known_marketplaces.json`: ```bash openclaw plugins marketplace list @@ -164,32 +127,24 @@ openclaw plugins install --marketplace ./my-marketplace يمكن أن تكون مصادر marketplace: -- اسم marketplace معروف لدى Claude من `~/.claude/plugins/known_marketplaces.json` -- جذر marketplace محلي أو مسار `marketplace.json` -- صيغة مختصرة لمستودع GitHub مثل `owner/repo` +- اسم marketplace معروفًا لدى Claude من `~/.claude/plugins/known_marketplaces.json` +- جذر marketplace محليًا أو مسار `marketplace.json` +- اختصار مستودع GitHub مثل `owner/repo` - عنوان URL لمستودع GitHub مثل `https://github.com/owner/repo` -- عنوان git URL +- عنوان URL لـ git -بالنسبة إلى marketplaces البعيدة المحمّلة من GitHub أو git، يجب أن تبقى إدخالات Plugin -داخل مستودع marketplace المستنسخ. ويقبل OpenClaw مصادر المسارات النسبية من -ذلك المستودع ويرفض مصادر Plugin من HTTP(S) والمسارات المطلقة وgit وGitHub -وغيرها من المصادر غير المسارية من البيانات الوصفية البعيدة. +بالنسبة إلى marketplaces البعيدة المحمّلة من GitHub أو git، يجب أن تبقى إدخالات Plugin داخل مستودع marketplace المستنسخ. يقبل OpenClaw مصادر المسارات النسبية من ذلك المستودع ويرفض مصادر Plugin من النوع HTTP(S) أو المسار المطلق أو git أو GitHub أو غيرها من المصادر غير المسارية القادمة من البيانات البعيدة. -بالنسبة إلى المسارات والأرشيفات المحلية، يكتشف OpenClaw تلقائيًا: +بالنسبة إلى المسارات المحلية والأرشيفات، يكتشف OpenClaw تلقائيًا: -- Plugins OpenClaw الأصلية (`openclaw.plugin.json`) -- الحزم المتوافقة مع Codex (`.codex-plugin/plugin.json`) -- الحزم المتوافقة مع Claude (`.claude-plugin/plugin.json` أو تخطيط - مكونات Claude الافتراضي) -- الحزم المتوافقة مع Cursor (`.cursor-plugin/plugin.json`) +- مكونات OpenClaw الإضافية الأصلية (`openclaw.plugin.json`) +- الحِزم المتوافقة مع Codex (`.codex-plugin/plugin.json`) +- الحِزم المتوافقة مع Claude (`.claude-plugin/plugin.json` أو تخطيط مكونات Claude الافتراضي) +- الحِزم المتوافقة مع Cursor (`.cursor-plugin/plugin.json`) -يتم تثبيت الحزم المتوافقة داخل جذر Plugin العادي وتشارك في -التدفق نفسه لـ list/info/enable/disable. ويدعم النظام اليوم bundle Skills وClaude -command-skills وقيَم Claude الافتراضية في `settings.json` وقيَم Claude الافتراضية في `.lsp.json` / -`lspServers` المعلنة في البيان، وCursor command-skills، وأدلة hooks -المتوافقة مع Codex؛ أما إمكانات الحزم المكتشفة الأخرى فتظهر في التشخيصات/info لكنها غير موصولة بعد بتنفيذ وقت التشغيل. +تُثبَّت الحِزم المتوافقة داخل جذر Plugin العادي وتشارك في تدفق `list/info/enable/disable` نفسه. حاليًا، تُدعَم Skills الخاصة بالحِزم، وClaude command-skills، والقيم الافتراضية لـ Claude `settings.json`، والقيم الافتراضية لـ Claude `.lsp.json` / `lspServers` المعلنة في البيان، وCursor command-skills، وأدلة خطافات Codex المتوافقة؛ أمّا قدرات الحِزم المكتشفة الأخرى فتُعرض في التشخيصات/المعلومات لكنها ليست موصولة بعد بتنفيذ وقت التشغيل. -### List +### القائمة ```bash openclaw plugins list @@ -198,22 +153,25 @@ openclaw plugins list --verbose openclaw plugins list --json ``` -استخدم `--enabled` لإظهار Plugins المحمّلة فقط. واستخدم `--verbose` للانتقال من -عرض الجدول إلى أسطر تفاصيل لكل Plugin مع بيانات المصدر/المنشأ/الإصدار/التفعيل -الوصفيّة. واستخدم `--json` للحصول على جرد قابل للقراءة الآلية بالإضافة إلى -تشخيصات السجل. +استخدم `--enabled` لعرض المكونات الإضافية المحمّلة فقط. واستخدم `--verbose` للانتقال من عرض الجدول إلى أسطر تفاصيل لكل Plugin تتضمن بيانات المصدر/المنشأ/الإصدار/التفعيل. واستخدم `--json` للحصول على جرد قابل للقراءة الآلية بالإضافة إلى تشخيصات السجل. -استخدم `--link` لتجنب نسخ دليل محلي (ويضيف المسار إلى `plugins.load.paths`): +ينفّذ `plugins list` الاكتشاف من بيئة CLI والإعداد الحاليين. وهو مفيد للتحقق مما إذا كان Plugin ممكّنًا/قابلًا للتحميل، لكنه ليس فحصًا حيًا لوقت التشغيل لعملية Gateway قيد التشغيل بالفعل. بعد تغيير شيفرة Plugin أو حالة التمكين أو سياسة الخطافات أو `plugins.load.paths`، أعد تشغيل Gateway الذي يخدم القناة قبل توقع تشغيل شيفرة `register(api)` الجديدة أو الخطافات. وبالنسبة إلى عمليات النشر البعيدة/داخل الحاويات، تحقّق من أنك تعيد تشغيل العملية الفرعية الفعلية لـ `openclaw gateway run`، وليس مجرد عملية غلاف. + +لتصحيح أخطاء الخطافات في وقت التشغيل: + +- يعرض `openclaw plugins inspect --json` الخطافات المسجّلة والتشخيصات من تمريرة فحص مع تحميل الوحدة. +- يؤكد `openclaw gateway status --deep --require-rpc` Gateway القابل للوصول، وتلميحات الخدمة/العملية، ومسار الإعداد، وصحة RPC. +- تتطلب خطافات المحادثة غير المضمّنة (`llm_input` و`llm_output` و`agent_end`) القيمة `plugins.entries..hooks.allowConversationAccess=true`. + +استخدم `--link` لتجنب نسخ دليل محلي (يضيف إلى `plugins.load.paths`): ```bash openclaw plugins install -l ./my-plugin ``` -لا يكون `--force` مدعومًا مع `--link` لأن التثبيتات المرتبطة تعيد استخدام -المسار المصدري بدلًا من النسخ فوق هدف تثبيت مُدار. +لا يُدعَم `--force` مع `--link` لأن عمليات التثبيت المرتبطة تعيد استخدام مسار المصدر بدلًا من النسخ فوق هدف تثبيت مُدار. -استخدم `--pin` في تثبيتات npm لحفظ المواصفة الدقيقة المحلَّلة (`name@version`) في -`plugins.installs` مع إبقاء السلوك الافتراضي غير مثبت. +استخدم `--pin` في عمليات تثبيت npm لحفظ المواصفة الدقيقة المحلولة (`name@version`) في `plugins.installs` مع الإبقاء على السلوك الافتراضي غير المثبّت. ### إلغاء التثبيت @@ -223,17 +181,13 @@ openclaw plugins uninstall --dry-run openclaw plugins uninstall --keep-files ``` -يزيل `uninstall` سجلات Plugin من `plugins.entries` و`plugins.installs`، -وقائمة السماح الخاصة بالـ Plugin، وإدخالات `plugins.load.paths` المرتبطة عند الاقتضاء. -وبالنسبة إلى Plugins الخاصة بالذاكرة النشطة، تتم إعادة تعيين خانة الذاكرة إلى `memory-core`. +يقوم `uninstall` بإزالة سجلات Plugin من `plugins.entries` و`plugins.installs` وقائمة السماح الخاصة بالمكونات الإضافية وإدخالات `plugins.load.paths` المرتبطة عند الاقتضاء. وبالنسبة إلى مكونات الذاكرة Active Memory الإضافية، تعود خانة الذاكرة إلى `memory-core`. -افتراضيًا، يؤدي إلغاء التثبيت أيضًا إلى إزالة دليل تثبيت Plugin من -جذر Plugin في state-dir النشط. استخدم -`--keep-files` للاحتفاظ بالملفات على القرص. +افتراضيًا، يزيل إلغاء التثبيت أيضًا دليل تثبيت Plugin ضمن جذر Plugin الخاص بدليل الحالة النشط. استخدم `--keep-files` للاحتفاظ بالملفات على القرص. -ويُدعم `--keep-config` كاسم بديل قديم لـ `--keep-files`. +الوسيطة `--keep-config` مدعومة باعتبارها اسمًا مستعارًا مهملًا لـ `--keep-files`. -### Update +### التحديث ```bash openclaw plugins update @@ -243,67 +197,56 @@ openclaw plugins update @openclaw/voice-call@beta openclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-install ``` -تنطبق التحديثات على التثبيتات المتتبعة في `plugins.installs` وعلى -تثبيتات حزم hooks المتتبعة في `hooks.internal.installs`. +تُطبَّق التحديثات على عمليات التثبيت المتعقبة في `plugins.installs` وعلى عمليات تثبيت حِزم الخطافات المتعقبة في `hooks.internal.installs`. -عندما تمرر معرّف Plugin، يعيد OpenClaw استخدام مواصفة التثبيت المسجلة لذلك -الـ Plugin. وهذا يعني أن dist-tags المخزنة مسبقًا مثل `@beta` والإصدارات الدقيقة المثبتة -تستمر في الاستخدام في تشغيلات `update ` اللاحقة. +عند تمرير معرّف Plugin، يعيد OpenClaw استخدام مواصفة التثبيت المسجّلة لذلك Plugin. وهذا يعني أن وسوم dist-tags المخزنة سابقًا مثل `@beta` والإصدارات الدقيقة المثبّتة تستمر في الاستخدام في عمليات `update ` اللاحقة. -بالنسبة إلى تثبيتات npm، يمكنك أيضًا تمرير مواصفة حزمة npm صريحة مع dist-tag -أو إصدار دقيق. ويحلّل OpenClaw اسم تلك الحزمة مرة أخرى إلى سجل Plugin المتتبع، -ويحدّث Plugin المثبّت، ويسجّل مواصفة npm الجديدة لتحديثات -المعرّفات المستقبلية. +في عمليات تثبيت npm، يمكنك أيضًا تمرير مواصفة حزمة npm صريحة مع dist-tag أو إصدار مطابق تمامًا. يحل OpenClaw اسم تلك الحزمة مرة أخرى إلى سجل Plugin المتعقَّب، ويحدّث ذلك Plugin المثبّت، ويسجّل مواصفة npm الجديدة من أجل التحديثات المستقبلية المعتمدة على المعرّف. -كما أن تمرير اسم حزمة npm من دون إصدار أو علامة يُحلّ أيضًا مرة أخرى إلى -سجل Plugin المتتبع. استخدم هذا عندما يكون Plugin مثبتًا على إصدار دقيق وتريد -إعادته إلى خط الإصدار الافتراضي للسجل. +كما أن تمرير اسم حزمة npm من دون إصدار أو وسم يعيد أيضًا الحل إلى سجل Plugin المتعقَّب. استخدم ذلك عندما يكون Plugin مثبّتًا على إصدار دقيق وتريد إعادته إلى خط الإصدار الافتراضي في السجل. -قبل أي تحديث npm مباشر، يتحقق OpenClaw من إصدار الحزمة المثبتة مقابل بيانات -npm registry الوصفية. وإذا كان الإصدار المثبّت وهوية العنصر المسجلين -يطابقان بالفعل الهدف المحلَّل، فيتم تخطي التحديث من دون -تنزيل أو إعادة تثبيت أو إعادة كتابة `openclaw.json`. +قبل تحديث npm فعليًا، يتحقق OpenClaw من إصدار الحزمة المثبّتة مقارنةً ببيانات npm الوصفية في السجل. وإذا كان إصدار الحزمة المثبّتة وهوية العنصر المسجّلة يطابقان الهدف المحلول بالفعل، فيُتخطّى التحديث من دون تنزيل أو إعادة تثبيت أو إعادة كتابة `openclaw.json`. -عندما توجد قيمة تجزئة integrity مخزنة ويتغير تجزئة العنصر الذي تم جلبه، -يتعامل OpenClaw مع ذلك على أنه انجراف في عنصر npm. ويطبع الأمر التفاعلي -`openclaw plugins update` قيم التجزئة المتوقعة والفعلية ويطلب -تأكيدًا قبل المتابعة. أما مساعدات التحديث غير التفاعلية فتفشل في وضع الإغلاق الآمن +عند وجود قيمة hash للتكامل محفوظة وتغيّر hash للعنصر الذي تم جلبه، +يعامل OpenClaw ذلك على أنه انجراف في عنصر npm. يطبع الأمر التفاعلي +`openclaw plugins update` قيمتَي hash المتوقعة والفعلية ويطلب +التأكيد قبل المتابعة. أمّا أدوات التحديث غير التفاعلية فتفشل بشكل مغلق ما لم يوفّر المستدعي سياسة متابعة صريحة. -يتوفر `--dangerously-force-unsafe-install` أيضًا في `plugins update` كتجاوز -طوارئ للإيجابيات الكاذبة في فحص الشيفرة الخطرة المضمن أثناء -تحديثات Plugin. لكنه ما يزال لا يتجاوز كتل سياسة `before_install` -الخاصة بـ Plugin أو حجب حالات فشل الفحص، كما أنه ينطبق على تحديثات Plugin فقط، -وليس على تحديثات حزم hooks. +يتوفر `--dangerously-force-unsafe-install` أيضًا مع `plugins update` بوصفه +تجاوزًا للطوارئ في حالات الإيجابيات الكاذبة ضمن فحص الشيفرة الخطرة المدمج أثناء +تحديثات Plugin. ومع ذلك، فهو لا يتجاوز حظر سياسة `before_install` الخاصة بـ Plugin +ولا حظر فشل الفحص، كما أنه ينطبق فقط على تحديثات Plugin، وليس على تحديثات +حِزم الخطافات. -### Inspect +### الفحص ```bash openclaw plugins inspect openclaw plugins inspect --json ``` -فحص عميق لـ Plugin واحد. ويعرض الهوية، وحالة التحميل، والمصدر، -والإمكانات المسجلة، وhooks، والأدوات، والأوامر، والخدمات، وطرق Gateway، -ومسارات HTTP، وأعلام السياسة، والتشخيصات، وبيانات التثبيت الوصفية، وإمكانات الحزمة، +فحص عميق لمكون إضافي واحد. يعرض الهوية، وحالة التحميل، والمصدر، +والقدرات المسجّلة، والخطافات، والأدوات، والأوامر، والخدمات، وطرائق Gateway، +ومسارات HTTP، وأعلام السياسة، والتشخيصات، وبيانات التثبيت الوصفية، وقدرات الحِزم، وأي دعم مكتشف لخوادم MCP أو LSP. -يتم تصنيف كل Plugin بحسب ما يسجله فعليًا في وقت التشغيل: +يُصنَّف كل Plugin بحسب ما يسجّله فعليًا في وقت التشغيل: -- **plain-capability** — نوع إمكانية واحد (مثل Plugin خاص بمزوّد فقط) -- **hybrid-capability** — أنواع إمكانات متعددة (مثل النص + الكلام + الصور) -- **hook-only** — hooks فقط، من دون إمكانات أو أسطح -- **non-capability** — أدوات/أوامر/خدمات ولكن من دون إمكانات +- **plain-capability** — نوع قدرة واحد (مثل Plugin خاص بموفر فقط) +- **hybrid-capability** — أنواع قدرات متعددة (مثل النص + الكلام + الصور) +- **hook-only** — خطافات فقط، من دون قدرات أو واجهات +- **non-capability** — أدوات/أوامر/خدمات لكن من دون قدرات -راجع [أشكال Plugin](/ar/plugins/architecture#plugin-shapes) للمزيد حول نموذج الإمكانات. +راجع [أشكال Plugin](/ar/plugins/architecture#plugin-shapes) لمزيد من المعلومات حول نموذج القدرات. -يُخرج العلم `--json` تقريرًا قابلاً للقراءة الآلية ومناسبًا للبرمجة النصية +تُخرج الوسيطة `--json` تقريرًا قابلًا للقراءة الآلية ومناسبًا للبرمجة النصية والتدقيق. -يعرض `inspect --all` جدولًا على مستوى الأسطول مع أعمدة للشكل، وأنواع الإمكانات، -وإشعارات التوافق، وإمكانات الحزمة، وملخص hooks. +يعرض `inspect --all` جدولًا على مستوى الأسطول يتضمن أعمدة للشكل، وأنواع القدرات، +وملاحظات التوافق، وقدرات الحِزم، وملخص الخطافات. -إن `info` هو اسم بديل لـ `inspect`. +`info` هو اسم مستعار لـ `inspect`. ### Doctor @@ -311,12 +254,12 @@ openclaw plugins inspect --json openclaw plugins doctor ``` -يعرض `doctor` أخطاء تحميل Plugin، وتشخيصات البيان/الاكتشاف، -وإشعارات التوافق. وعندما يكون كل شيء سليمًا، يطبع `No plugin issues +يعرض `doctor` أخطاء تحميل Plugin، وتشخيصات البيان/الاكتشاف، وملاحظات +التوافق. وعندما يكون كل شيء سليمًا يطبع `No plugin issues detected.` -بالنسبة إلى حالات فشل شكل الوحدة مثل غياب الصادرات `register`/`activate`، أعد التشغيل -مع `OPENCLAW_PLUGIN_LOAD_DEBUG=1` لتضمين ملخص مضغوط لشكل الصادرات ضمن +في حالات فشل شكل الوحدة، مثل غياب الصادرات `register`/`activate`، أعد التشغيل +مع `OPENCLAW_PLUGIN_LOAD_DEBUG=1` لتضمين ملخص مضغوط لشكل الصادرات في المخرجات التشخيصية. ### Marketplace @@ -327,12 +270,12 @@ openclaw plugins marketplace list --json ``` يقبل عرض marketplace مسار marketplace محليًا، أو مسار `marketplace.json`، أو -صيغة GitHub مختصرة مثل `owner/repo`، أو عنوان URL لمستودع GitHub، أو git URL. وتقوم `--json` -بطباعة تسمية المصدر المحلَّلة بالإضافة إلى بيان marketplace المحلَّل +اختصار GitHub مثل `owner/repo`، أو عنوان URL لمستودع GitHub، أو عنوان URL لـ git. تقوم `--json` +بطباعة تسمية المصدر المحلولة بالإضافة إلى بيان marketplace المحلَّل وإدخالات Plugin. ## ذو صلة - [مرجع CLI](/ar/cli) -- [بناء Plugins](/ar/plugins/building-plugins) -- [Plugins المجتمع](/ar/plugins/community) +- [بناء المكونات الإضافية](/ar/plugins/building-plugins) +- [المكونات الإضافية المجتمعية](/ar/plugins/community) diff --git a/docs/ar/concepts/model-providers.md b/docs/ar/concepts/model-providers.md index 664cb1052..a472a5e62 100644 --- a/docs/ar/concepts/model-providers.md +++ b/docs/ar/concepts/model-providers.md @@ -1,91 +1,77 @@ --- read_when: - - تحتاج إلى مرجع إعداد نماذج حسب كل موفر على حدة - - تريد أمثلة على الإعدادات أو أوامر onboarding في CLI لموفري النماذج -summary: نظرة عامة على موفري النماذج مع أمثلة على الإعدادات وتدفقات CLI -title: موفرو النماذج + - أنت بحاجة إلى مرجع لإعداد النماذج لكل موفّر على حدة + - أنت تريد أمثلة على الإعدادات أو أوامر التهيئة عبر CLI لموفّري النماذج +summary: نظرة عامة على موفّر النموذج مع أمثلة على الإعدادات + تدفقات CLI +title: موفّرو النماذج x-i18n: - generated_at: "2026-04-24T07:38:08Z" + generated_at: "2026-04-24T15:22:01Z" model: gpt-5.4 provider: openai - source_hash: ac9bf48897446576d8bc339b340295691741a589863bb57b379c17a5519bffd7 + source_hash: 79258cb26fae7926c65b6fe0db938c7b5736a540b33bc24c1fad5ad706ac8204 source_path: concepts/model-providers.md workflow: 15 --- -تغطي هذه الصفحة **موفري LLM/النماذج** (وليس قنوات الدردشة مثل WhatsApp/Telegram). +تغطي هذه الصفحة **موفّري LLM/النماذج** (وليس قنوات الدردشة مثل WhatsApp/Telegram). للاطلاع على قواعد اختيار النموذج، راجع [/concepts/models](/ar/concepts/models). ## قواعد سريعة -- تستخدم مراجع النماذج الصيغة `provider/model` ‏(مثال: `opencode/claude-opus-4-6`). -- تعمل `agents.defaults.models` كـ allowlist عند تعيينها. -- مساعدات CLI: ‏`openclaw onboard` و`openclaw models list` و`openclaw models set `. -- `models.providers.*.models[].contextWindow` هي بيانات وصفية أصلية للنموذج؛ أما `contextTokens` فهي الحد الفعلي لوقت التشغيل. -- قواعد الرجوع الاحتياطي، وفحوصات cooldown، واستمرارية تجاوزات الجلسة: [Model failover](/ar/concepts/model-failover). -- تكون مسارات عائلة OpenAI خاصة بالبادئة: يستخدم `openai/` - موفر مفتاح OpenAI API المباشر في PI، ويستخدم `openai-codex/` مصادقة Codex OAuth في PI، - ويستخدم `openai/` مع `agents.defaults.embeddedHarness.runtime: "codex"` - harness خادم تطبيق Codex الأصلي. راجع [OpenAI](/ar/providers/openai) - و[Codex harness](/ar/plugins/codex-harness). -- يتبع التمكين التلقائي لـ Plugin هذا الحد نفسه: ينتمي `openai-codex/` - إلى Plugin الخاص بـ OpenAI، بينما يتم تمكين Plugin الخاص بـ Codex بواسطة - `embeddedHarness.runtime: "codex"` أو مراجع `codex/` القديمة. -- يتوفر GPT-5.5 حاليًا عبر مسارات الاشتراك/OAuth: - `openai-codex/gpt-5.5` في PI أو `openai/gpt-5.5` مع Codex app-server - harness. ويدعم المسار المباشر لمفتاح API لـ `openai/gpt-5.5` - بمجرد أن تُمكّن OpenAI النموذج GPT-5.5 على واجهة API العامة؛ وحتى ذلك الحين استخدم - النماذج المفعلة عبر API مثل `openai/gpt-5.4` لإعدادات `OPENAI_API_KEY`. +- تستخدم مراجع النماذج التنسيق `provider/model` (مثال: `opencode/claude-opus-4-6`). +- تعمل `agents.defaults.models` كقائمة سماح عند تعيينها. +- مساعدات CLI: ‏`openclaw onboard`، ‏`openclaw models list`، ‏`openclaw models set `. +- تمثل `models.providers.*.models[].contextWindow` بيانات تعريف أصلية للنموذج؛ أما `contextTokens` فهو الحد الفعّال وقت التشغيل. +- قواعد التبديل الاحتياطي، وفحوصات فترة التهدئة، واستمرارية تجاوز الجلسة: [تجاوز فشل النموذج](/ar/concepts/model-failover). +- تكون مسارات عائلة OpenAI خاصة بالبادئة: يستخدم `openai/` موفّر مفتاح API المباشر لـ OpenAI في PI، ويستخدم `openai-codex/` مصادقة Codex عبر OAuth في PI، بينما يستخدم `openai/` مع `agents.defaults.embeddedHarness.runtime: "codex"` حزام Codex الأصلي لخادم التطبيق. راجع [OpenAI](/ar/providers/openai) و[حزام Codex](/ar/plugins/codex-harness). +- يتبع التفعيل التلقائي لـ Plugin الحد نفسه: ينتمي `openai-codex/` إلى Plugin الخاص بـ OpenAI، بينما يتم تفعيل Plugin الخاص بـ Codex بواسطة `embeddedHarness.runtime: "codex"` أو مراجع `codex/` القديمة. +- يتوفر GPT-5.5 حاليًا عبر مسارات الاشتراك/OAuth: ‏`openai-codex/gpt-5.5` في PI أو `openai/gpt-5.5` مع حزام خادم تطبيق Codex. يُدعَم المسار المباشر بمفتاح API لـ `openai/gpt-5.5` بمجرد أن تفعّل OpenAI نموذج GPT-5.5 على واجهة API العامة؛ وحتى ذلك الحين استخدم النماذج المفعّلة عبر API مثل `openai/gpt-5.4` لإعدادات `OPENAI_API_KEY`. -## السلوك المملوك لـ Plugin الخاص بالموفر +## سلوك الموفّر المملوك لـ Plugin -توجد معظم المنطقات الخاصة بكل موفر في Plugins الموفرين (`registerProvider(...)`) بينما يحتفظ OpenClaw بحلقة الاستدلال العامة. تمتلك Plugins أعمال onboarding، وفهارس النماذج، وربط env vars للمصادقة، وتطبيع النقل/الإعدادات، وتنظيف مخطط الأدوات، وتصنيف failover، وتحديث OAuth، وتقارير الاستخدام، وملفات التفكير/الاستدلال، وغير ذلك. +يعيش معظم المنطق الخاص بكل موفّر داخل Plugins الخاصة بالموفّرين (`registerProvider(...)`) بينما يحتفظ OpenClaw بحلقة الاستدلال العامة. تتولى Plugins التهيئة، وكتالوجات النماذج، وربط متغيرات بيئة المصادقة، وتطبيع النقل/الإعدادات، وتنظيف مخطط الأدوات، وتصنيف التبديل الاحتياطي، وتحديث OAuth، وتقارير الاستخدام، وملفات تعريف التفكير/الاستدلال، وغير ذلك. -توجد القائمة الكاملة لخطافات provider-SDK وأمثلة Plugins المجمعة في [Plugins الموفرين](/ar/plugins/sdk-provider-plugins). أما الموفر الذي يحتاج إلى منفّذ طلبات مخصص بالكامل فهو سطح امتداد منفصل وأعمق. +توجد القائمة الكاملة لخطافات SDK الخاصة بالموفّر وأمثلة Plugins المضمّنة في [Plugins الموفّر](/ar/plugins/sdk-provider-plugins). أما الموفّر الذي يحتاج إلى منفّذ طلبات مخصص بالكامل فيُعد سطح توسعة منفصلًا وأعمق. -إن `capabilities` الخاصة بوقت تشغيل الموفر هي بيانات وصفية مشتركة للمشغّل (عائلة الموفر، وخصائص transcript/tooling، وتلميحات النقل/الذاكرة المؤقتة). وهي ليست الشيء نفسه مثل [نموذج القدرات العام](/ar/plugins/architecture#public-capability-model)، الذي يصف ما الذي يسجله Plugin ‏(الاستدلال النصي، والكلام، وما إلى ذلك). +تمثل `capabilities` في وقت تشغيل الموفّر بيانات وصفية مشتركة للمشغّل (عائلة الموفّر، وخصائص السجل/الأدوات، وتلميحات النقل/الذاكرة المؤقتة). وهي ليست نفسها [نموذج القدرات العام](/ar/plugins/architecture#public-capability-model)، الذي يصف ما الذي يسجله Plugin (استدلال نصي، كلام، إلخ). ## تدوير مفاتيح API -- يدعم تدوير الموفر العام لموفرين محددين. +- يدعم تدويرًا عامًا لمفاتيح الموفّر لدى موفّرين محددين. - اضبط عدة مفاتيح عبر: - - `OPENCLAW_LIVE__KEY` ‏(تجاوز حي واحد، أعلى أولوية) - - `_API_KEYS` ‏(قائمة مفصولة بفواصل أو فاصلة منقوطة) - - `_API_KEY` ‏(المفتاح الأساسي) - - `_API_KEY_*` ‏(قائمة مرقمة، مثل `_API_KEY_1`) -- بالنسبة إلى موفري Google، يتم أيضًا تضمين `GOOGLE_API_KEY` كرجوع احتياطي. -- يحافظ ترتيب اختيار المفاتيح على الأولوية ويزيل القيم المكررة. -- تُعاد محاولة الطلبات باستخدام المفتاح التالي فقط عند استجابات حد المعدل (على - سبيل المثال `429` أو `rate_limit` أو `quota` أو `resource exhausted` أو `Too many -concurrent requests` أو `ThrottlingException` أو `concurrency limit reached`، - أو `workers_ai ... quota limit exceeded`، أو رسائل حدود الاستخدام الدورية). -- تفشل الأعطال غير المتعلقة بحد المعدل فورًا؛ ولا تتم محاولة تدوير المفاتيح. -- عندما تفشل جميع المفاتيح المرشحة، يتم إرجاع الخطأ النهائي من آخر محاولة. + - `OPENCLAW_LIVE__KEY` (تجاوز مباشر واحد، أعلى أولوية) + - `_API_KEYS` (قائمة مفصولة بفواصل أو فاصلة منقوطة) + - `_API_KEY` (المفتاح الأساسي) + - `_API_KEY_*` (قائمة مرقمة، مثل `_API_KEY_1`) +- بالنسبة إلى موفّري Google، يتم تضمين `GOOGLE_API_KEY` أيضًا كخيار احتياطي. +- يحافظ ترتيب اختيار المفاتيح على الأولوية مع إزالة القيم المكررة. +- لا تُعاد محاولة الطلبات باستخدام المفتاح التالي إلا عند استجابات تجاوز المعدل (مثل `429` أو `rate_limit` أو `quota` أو `resource exhausted` أو `Too many concurrent requests` أو `ThrottlingException` أو `concurrency limit reached` أو `workers_ai ... quota limit exceeded` أو رسائل حدود الاستخدام الدورية). +- تفشل الأخطاء غير المرتبطة بتجاوز المعدل مباشرة؛ ولا تجري أي محاولة لتدوير المفتاح. +- عند فشل جميع المفاتيح المرشحة، يُعاد الخطأ النهائي من آخر محاولة. -## الموفرون المدمجون (فهرس pi-ai) +## الموفّرون المدمجون (كتالوج pi-ai) -يأتي OpenClaw مع فهرس pi‑ai. لا تتطلب هذه الموفرات أي إعداد -`models.providers`؛ فقط اضبط المصادقة + اختر نموذجًا. +يأتي OpenClaw مع كتالوج pi‑ai. لا تتطلب هذه الموفّرات أي إعداد `models.providers`؛ فقط اضبط المصادقة واختر نموذجًا. ### OpenAI -- الموفر: `openai` +- الموفّر: `openai` - المصادقة: `OPENAI_API_KEY` -- التدوير الاختياري: `OPENAI_API_KEYS` و`OPENAI_API_KEY_1` و`OPENAI_API_KEY_2`، بالإضافة إلى `OPENCLAW_LIVE_OPENAI_KEY` ‏(تجاوز واحد) -- أمثلة على النماذج: `openai/gpt-5.4` و`openai/gpt-5.4-mini` -- دعم GPT-5.5 المباشر عبر API جاهز هنا للمستقبل بمجرد أن تكشف OpenAI عن GPT-5.5 على واجهة API +- التدوير الاختياري: `OPENAI_API_KEYS` و`OPENAI_API_KEY_1` و`OPENAI_API_KEY_2` بالإضافة إلى `OPENCLAW_LIVE_OPENAI_KEY` (تجاوز فردي) +- أمثلة النماذج: `openai/gpt-5.4`، ‏`openai/gpt-5.4-mini` +- دعم GPT-5.5 المباشر عبر API جاهز هنا للمستقبل بمجرد أن تتيح OpenAI نموذج GPT-5.5 على API - CLI: ‏`openclaw onboard --auth-choice openai-api-key` -- النقل الافتراضي هو `auto` ‏(WebSocket أولًا، ثم SSE كرجوع احتياطي) +- النقل الافتراضي هو `auto` (WebSocket أولًا، ثم SSE احتياطيًا) - تجاوز لكل نموذج عبر `agents.defaults.models["openai/"].params.transport` ‏(`"sse"` أو `"websocket"` أو `"auto"`) -- يتم تمكين warm-up الخاص بـ OpenAI Responses WebSocket افتراضيًا عبر `params.openaiWsWarmup` ‏(`true`/`false`) -- يمكن تمكين المعالجة ذات الأولوية في OpenAI عبر `agents.defaults.models["openai/"].params.serviceTier` -- تقوم `/fast` و`params.fastMode` بربط طلبات `openai/*` Responses المباشرة بالقيمة `service_tier=priority` على `api.openai.com` -- استخدم `params.serviceTier` عندما تريد طبقة صريحة بدلًا من مفتاح `/fast` المشترك -- تُطبق ترويسات الإسناد المخفية الخاصة بـ OpenClaw ‏(`originator` و`version` و`User-Agent`) فقط على حركة OpenAI الأصلية إلى `api.openai.com`، وليس على الوكلاء العامّين المتوافقين مع OpenAI -- تحتفظ مسارات OpenAI الأصلية أيضًا بالقيم Responses `store`، وتلميحات prompt-cache، وتشكيل حمولة الاستدلال المتوافق مع OpenAI؛ أما مسارات الوكيل فلا تفعل ذلك -- يتم إخفاء `openai/gpt-5.3-codex-spark` عمدًا في OpenClaw لأن طلبات OpenAI API الحية ترفضه ولأن فهرس Codex الحالي لا يكشفه +- يكون الإحماء المسبق لـ OpenAI Responses WebSocket مفعّلًا افتراضيًا عبر `params.openaiWsWarmup` ‏(`true`/`false`) +- يمكن تفعيل المعالجة ذات الأولوية في OpenAI عبر `agents.defaults.models["openai/"].params.serviceTier` +- يربط `/fast` و`params.fastMode` طلبات Responses المباشرة من `openai/*` إلى `service_tier=priority` على `api.openai.com` +- استخدم `params.serviceTier` عندما تريد مستوى صريحًا بدلًا من مفتاح `/fast` المشترك +- تنطبق رؤوس الإسناد المخفية الخاصة بـ OpenClaw (`originator` و`version` و`User-Agent`) فقط على حركة OpenAI الأصلية إلى `api.openai.com`، وليس على الوكلاء العامّين المتوافقين مع OpenAI +- تحتفظ مسارات OpenAI الأصلية أيضًا بقيمة `store` الخاصة بـ Responses، وتلميحات ذاكرة التخزين المؤقت للمطالبات، وتشكيل الحمولة المتوافق مع استدلال OpenAI؛ بينما لا تفعل مسارات الوكيل ذلك +- يتم إخفاء `openai/gpt-5.3-codex-spark` عمدًا في OpenClaw لأن طلبات OpenAI API الحية ترفضه، كما أن كتالوج Codex الحالي لا يعرِضه ```json5 { @@ -95,14 +81,14 @@ concurrent requests` أو `ThrottlingException` أو `concurrency limit reached` ### Anthropic -- الموفر: `anthropic` +- الموفّر: `anthropic` - المصادقة: `ANTHROPIC_API_KEY` -- التدوير الاختياري: `ANTHROPIC_API_KEYS` و`ANTHROPIC_API_KEY_1` و`ANTHROPIC_API_KEY_2`، بالإضافة إلى `OPENCLAW_LIVE_ANTHROPIC_KEY` ‏(تجاوز واحد) -- مثال على النموذج: `anthropic/claude-opus-4-6` +- التدوير الاختياري: `ANTHROPIC_API_KEYS` و`ANTHROPIC_API_KEY_1` و`ANTHROPIC_API_KEY_2` بالإضافة إلى `OPENCLAW_LIVE_ANTHROPIC_KEY` (تجاوز فردي) +- مثال نموذج: `anthropic/claude-opus-4-6` - CLI: ‏`openclaw onboard --auth-choice apiKey` -- تدعم طلبات Anthropic العامة المباشرة مفتاح `/fast` المشترك و`params.fastMode`، بما في ذلك الحركة الموثقة عبر API key وOAuth المرسلة إلى `api.anthropic.com`؛ ويقوم OpenClaw بربط ذلك إلى `service_tier` الخاص بـ Anthropic ‏(`auto` مقابل `standard_only`) -- ملاحظة Anthropic: أخبرنا موظفو Anthropic بأن إعادة استخدام Claude CLI على نمط OpenClaw مسموحة مرة أخرى، لذلك يتعامل OpenClaw مع إعادة استخدام Claude CLI واستخدام `claude -p` على أنها مسموح بها لهذا التكامل ما لم تنشر Anthropic سياسة جديدة. -- لا يزال setup-token الخاص بـ Anthropic متاحًا كمسار رمز مدعوم في OpenClaw، لكن OpenClaw يفضّل الآن إعادة استخدام Claude CLI و`claude -p` عند توفرهما. +- تدعم طلبات Anthropic العامة المباشرة مفتاح `/fast` المشترك و`params.fastMode`، بما في ذلك الحركة المرسلة بمصادقة مفتاح API وOAuth إلى `api.anthropic.com`؛ ويقوم OpenClaw بربط ذلك بـ Anthropic `service_tier` ‏(`auto` مقابل `standard_only`) +- ملاحظة Anthropic: أخبرنا موظفو Anthropic أن استخدام Claude CLI بأسلوب OpenClaw مسموح به مجددًا، لذلك يتعامل OpenClaw مع إعادة استخدام Claude CLI واستخدام `claude -p` على أنهما معتمدان لهذا التكامل ما لم تنشر Anthropic سياسة جديدة. +- ما يزال رمز إعداد Anthropic متاحًا كمسار رمز مدعوم في OpenClaw، لكن OpenClaw يفضّل الآن إعادة استخدام Claude CLI و`claude -p` عند توفرهما. ```json5 { @@ -112,21 +98,21 @@ concurrent requests` أو `ThrottlingException` أو `concurrency limit reached` ### OpenAI Codex OAuth -- الموفر: `openai-codex` +- الموفّر: `openai-codex` - المصادقة: OAuth ‏(ChatGPT) - مرجع نموذج PI: ‏`openai-codex/gpt-5.5` -- مرجع harness خادم تطبيق Codex الأصلي: ‏`openai/gpt-5.5` مع `agents.defaults.embeddedHarness.runtime: "codex"` +- مرجع حزام خادم تطبيق Codex الأصلي: ‏`openai/gpt-5.5` مع `agents.defaults.embeddedHarness.runtime: "codex"` - مراجع النماذج القديمة: `codex/gpt-*` -- حد Plugin: يقوم `openai-codex/*` بتحميل Plugin الخاص بـ OpenAI؛ بينما يتم اختيار Plugin خادم تطبيق Codex الأصلي فقط بواسطة وقت تشغيل Codex harness أو مراجع `codex/*` القديمة. +- حد Plugin: يقوم `openai-codex/*` بتحميل Plugin الخاص بـ OpenAI؛ بينما لا يُختار Plugin الأصلي لخادم تطبيق Codex إلا عبر وقت تشغيل حزام Codex أو مراجع `codex/*` القديمة. - CLI: ‏`openclaw onboard --auth-choice openai-codex` أو `openclaw models auth login --provider openai-codex` -- النقل الافتراضي هو `auto` ‏(WebSocket أولًا، ثم SSE كرجوع احتياطي) +- النقل الافتراضي هو `auto` (WebSocket أولًا، ثم SSE احتياطيًا) - تجاوز لكل نموذج PI عبر `agents.defaults.models["openai-codex/"].params.transport` ‏(`"sse"` أو `"websocket"` أو `"auto"`) -- يتم أيضًا تمرير `params.serviceTier` على طلبات Codex Responses الأصلية (`chatgpt.com/backend-api`) -- تُرفق ترويسات الإسناد المخفية الخاصة بـ OpenClaw ‏(`originator` و`version` و`User-Agent`) فقط على حركة Codex الأصلية إلى `chatgpt.com/backend-api`، وليس على الوكلاء العامّين المتوافقين مع OpenAI -- يشارك مفتاح `/fast` نفسه وإعداد `params.fastMode` كما في `openai/*` المباشر؛ ويقوم OpenClaw بربط ذلك إلى `service_tier=priority` -- يحتفظ `openai-codex/gpt-5.5` بالقيمة الأصلية `contextWindow = 1000000` وبقيمة وقت تشغيل افتراضية `contextTokens = 272000`؛ ويمكنك تجاوز حد وقت التشغيل عبر `models.providers.openai-codex.models[].contextTokens` -- ملاحظة السياسة: يتم دعم OpenAI Codex OAuth صراحةً للأدوات/سير العمل الخارجية مثل OpenClaw. -- يتم الوصول الحالي إلى GPT-5.5 عبر مسار OAuth/الاشتراك هذا إلى أن تمكّن OpenAI GPT-5.5 على واجهة API العامة. +- يتم أيضًا تمرير `params.serviceTier` في طلبات Codex Responses الأصلية (`chatgpt.com/backend-api`) +- لا تُرفق رؤوس الإسناد المخفية الخاصة بـ OpenClaw (`originator` و`version` و`User-Agent`) إلا على حركة Codex الأصلية إلى `chatgpt.com/backend-api`، وليس على الوكلاء العامّين المتوافقين مع OpenAI +- يشترك مع `openai/*` المباشر في مفتاح `/fast` وتهيئة `params.fastMode` نفسها؛ ويقوم OpenClaw بربط ذلك إلى `service_tier=priority` +- يحتفظ `openai-codex/gpt-5.5` بالقيمة الأصلية `contextWindow = 1000000` وبالحد الافتراضي وقت التشغيل `contextTokens = 272000`؛ ويمكنك تجاوز حد وقت التشغيل عبر `models.providers.openai-codex.models[].contextTokens` +- ملاحظة السياسة: مصادقة OpenAI Codex عبر OAuth مدعومة صراحةً للأدوات/سير العمل الخارجية مثل OpenClaw. +- يستخدم الوصول الحالي إلى GPT-5.5 هذا المسار القائم على OAuth/الاشتراك حتى تفعّل OpenAI نموذج GPT-5.5 على واجهة API العامة. ```json5 { @@ -146,18 +132,18 @@ concurrent requests` أو `ThrottlingException` أو `concurrency limit reached` } ``` -### خيارات مستضافة أخرى بنمط الاشتراك +### خيارات أخرى مستضافة على نمط الاشتراك -- [Qwen Cloud](/ar/providers/qwen): سطح موفر Qwen Cloud بالإضافة إلى ربط نقاط النهاية Alibaba DashScope وCoding Plan -- [MiniMax](/ar/providers/minimax): وصول MiniMax Coding Plan عبر OAuth أو API key +- [Qwen Cloud](/ar/providers/qwen): سطح موفّر Qwen Cloud بالإضافة إلى ربط نقاط نهاية Alibaba DashScope وCoding Plan +- [MiniMax](/ar/providers/minimax): وصول MiniMax Coding Plan عبر OAuth أو مفتاح API - [GLM Models](/ar/providers/glm): نقاط نهاية Z.AI Coding Plan أو واجهات API العامة ### OpenCode -- المصادقة: `OPENCODE_API_KEY` ‏(أو `OPENCODE_ZEN_API_KEY`) -- موفر وقت تشغيل Zen: ‏`opencode` -- موفر وقت تشغيل Go: ‏`opencode-go` -- أمثلة على النماذج: `opencode/claude-opus-4-6` و`opencode-go/kimi-k2.5` +- المصادقة: `OPENCODE_API_KEY` (أو `OPENCODE_ZEN_API_KEY`) +- موفّر وقت تشغيل Zen: ‏`opencode` +- موفّر وقت تشغيل Go: ‏`opencode-go` +- أمثلة النماذج: `opencode/claude-opus-4-6`، ‏`opencode-go/kimi-k2.5` - CLI: ‏`openclaw onboard --auth-choice opencode-zen` أو `openclaw onboard --auth-choice opencode-go` ```json5 @@ -168,118 +154,116 @@ concurrent requests` أو `ThrottlingException` أو `concurrency limit reached` ### Google Gemini (مفتاح API) -- الموفر: `google` +- الموفّر: `google` - المصادقة: `GEMINI_API_KEY` -- التدوير الاختياري: `GEMINI_API_KEYS` و`GEMINI_API_KEY_1` و`GEMINI_API_KEY_2`، والرجوع الاحتياطي `GOOGLE_API_KEY`، و`OPENCLAW_LIVE_GEMINI_KEY` ‏(تجاوز واحد) -- أمثلة على النماذج: `google/gemini-3.1-pro-preview` و`google/gemini-3-flash-preview` -- التوافق: يتم تطبيع إعداد OpenClaw القديم الذي يستخدم `google/gemini-3.1-flash-preview` إلى `google/gemini-3-flash-preview` +- التدوير الاختياري: `GEMINI_API_KEYS` و`GEMINI_API_KEY_1` و`GEMINI_API_KEY_2` وخيار `GOOGLE_API_KEY` الاحتياطي و`OPENCLAW_LIVE_GEMINI_KEY` (تجاوز فردي) +- أمثلة النماذج: `google/gemini-3.1-pro-preview`، ‏`google/gemini-3-flash-preview` +- التوافق: تُطبَّع إعدادات OpenClaw القديمة التي تستخدم `google/gemini-3.1-flash-preview` إلى `google/gemini-3-flash-preview` - CLI: ‏`openclaw onboard --auth-choice gemini-api-key` -- تقبل تشغيلات Gemini المباشرة أيضًا `agents.defaults.models["google/"].params.cachedContent` - (أو `cached_content` القديم) من أجل تمرير مقبض - `cachedContents/...` أصلي خاص بالموفر؛ وتظهر إصابات الذاكرة المؤقتة في Gemini على شكل `cacheRead` في OpenClaw +- تقبل تشغيلات Gemini المباشرة أيضًا `agents.defaults.models["google/"].params.cachedContent` (أو `cached_content` القديم) لتمرير معرّف `cachedContents/...` الأصلي للموفّر؛ وتظهر إصابات ذاكرة Gemini المؤقتة في OpenClaw كـ `cacheRead` ### Google Vertex وGemini CLI -- الموفرون: `google-vertex` و`google-gemini-cli` -- المصادقة: يستخدم Vertex قيمة gcloud ADC؛ ويستخدم Gemini CLI تدفق OAuth الخاص به -- تحذير: تكامل Gemini CLI OAuth في OpenClaw تكامل غير رسمي. وقد أبلغ بعض المستخدمين عن قيود على حسابات Google بعد استخدام عملاء تابعين لجهات خارجية. راجع شروط Google واستخدم حسابًا غير حرج إذا اخترت المتابعة. -- يتم شحن Gemini CLI OAuth كجزء من Plugin المجمّع `google`. +- الموفّرون: `google-vertex`، ‏`google-gemini-cli` +- المصادقة: يستخدم Vertex ‏gcloud ADC؛ ويستخدم Gemini CLI تدفق OAuth الخاص به +- تحذير: تكامل OAuth الخاص بـ Gemini CLI في OpenClaw تكامل غير رسمي. أبلغ بعض المستخدمين عن قيود على حسابات Google بعد استخدام عملاء من أطراف خارجية. راجع شروط Google واستخدم حسابًا غير حرج إذا اخترت المتابعة. +- يُشحن Gemini CLI OAuth كجزء من Plugin `google` المضمّن. - ثبّت Gemini CLI أولًا: - `brew install gemini-cli` - أو `npm install -g @google/gemini-cli` - - التمكين: `openclaw plugins enable google` + - التفعيل: `openclaw plugins enable google` - تسجيل الدخول: `openclaw models auth login --provider google-gemini-cli --set-default` - النموذج الافتراضي: `google-gemini-cli/gemini-3-flash-preview` - - ملاحظة: لا تقوم **بإلصاق** client id أو secret في `openclaw.json`. إذ يخزّن تدفق تسجيل الدخول في CLI - الرموز داخل ملفات تعريف المصادقة على مضيف gateway. - - إذا فشلت الطلبات بعد تسجيل الدخول، فاضبط `GOOGLE_CLOUD_PROJECT` أو `GOOGLE_CLOUD_PROJECT_ID` على مضيف gateway. - - يتم تحليل ردود JSON الخاصة بـ Gemini CLI من `response`؛ ويعود الاستخدام احتياطيًا إلى - `stats`، مع تطبيع `stats.cached` إلى `cacheRead` في OpenClaw. + - ملاحظة: **لا** تلصق معرّف عميل أو سرًا في `openclaw.json`. يخزن تدفق تسجيل الدخول عبر CLI + الرموز المميزة في ملفات تعريف المصادقة على مضيف Gateway. + - إذا فشلت الطلبات بعد تسجيل الدخول، فاضبط `GOOGLE_CLOUD_PROJECT` أو `GOOGLE_CLOUD_PROJECT_ID` على مضيف Gateway. + - تُحلَّل ردود JSON من Gemini CLI من `response`، بينما يعود الاستخدام إلى `stats`، مع تطبيع `stats.cached` إلى `cacheRead` في OpenClaw. -### Z.AI ‏(GLM) +### Z.AI (GLM) -- الموفر: `zai` +- الموفّر: `zai` - المصادقة: `ZAI_API_KEY` -- مثال على النموذج: `zai/glm-5.1` +- مثال نموذج: `zai/glm-5.1` - CLI: ‏`openclaw onboard --auth-choice zai-api-key` - - الأسماء المستعارة: يتم تطبيع `z.ai/*` و`z-ai/*` إلى `zai/*` - - يقوم `zai-api-key` باكتشاف نقطة نهاية Z.AI المطابقة تلقائيًا؛ بينما تقوم `zai-coding-global` و`zai-coding-cn` و`zai-global` و`zai-cn` بفرض سطح معيّن + - الأسماء البديلة: يتم تطبيع `z.ai/*` و`z-ai/*` إلى `zai/*` + - يقوم `zai-api-key` بالكشف التلقائي عن نقطة نهاية Z.AI المطابقة؛ بينما يفرض `zai-coding-global` و`zai-coding-cn` و`zai-global` و`zai-cn` سطحًا محددًا ### Vercel AI Gateway -- الموفر: `vercel-ai-gateway` +- الموفّر: `vercel-ai-gateway` - المصادقة: `AI_GATEWAY_API_KEY` -- أمثلة على النماذج: `vercel-ai-gateway/anthropic/claude-opus-4.6`، - و`vercel-ai-gateway/moonshotai/kimi-k2.6` +- أمثلة النماذج: `vercel-ai-gateway/anthropic/claude-opus-4.6`، + `vercel-ai-gateway/moonshotai/kimi-k2.6` - CLI: ‏`openclaw onboard --auth-choice ai-gateway-api-key` ### Kilo Gateway -- الموفر: `kilocode` +- الموفّر: `kilocode` - المصادقة: `KILOCODE_API_KEY` -- مثال على النموذج: `kilocode/kilo/auto` +- مثال نموذج: `kilocode/kilo/auto` - CLI: ‏`openclaw onboard --auth-choice kilocode-api-key` -- Base URL: ‏`https://api.kilo.ai/api/gateway/` -- يتم شحن فهرس رجوع احتياطي ثابت يتضمن `kilocode/kilo/auto`؛ ويمكن لاكتشاف - `https://api.kilo.ai/api/gateway/models` الحي توسيع فهرس وقت التشغيل أكثر. -- إن التوجيه الدقيق في المنبع خلف `kilocode/kilo/auto` مملوك لـ Kilo Gateway، - وليس مُرمّزًا بشكل ثابت داخل OpenClaw. +- عنوان URL الأساسي: `https://api.kilo.ai/api/gateway/` +- يشحن كتالوج احتياطي ثابت `kilocode/kilo/auto`؛ ويمكن لاكتشاف `https://api.kilo.ai/api/gateway/models` الحي + أن يوسّع كتالوج وقت التشغيل أكثر. +- تملك Kilo Gateway التوجيه الفعلي في المنبع خلف `kilocode/kilo/auto`، + وهو غير مضمّن بشكل ثابت في OpenClaw. راجع [/providers/kilocode](/ar/providers/kilocode) للحصول على تفاصيل الإعداد. -### Plugins موفري الخدمة المجمعة الأخرى +### Plugins أخرى مدمجة للموفّرين -| الموفّر | المعرّف | متغير بيئة المصادقة | نموذج مثال | -| ----------------------- | -------------------------------- | ----------------------------------------------------------- | ----------------------------------------------- | -| BytePlus | `byteplus` / `byteplus-plan` | `BYTEPLUS_API_KEY` | `byteplus-plan/ark-code-latest` | -| Cerebras | `cerebras` | `CEREBRAS_API_KEY` | `cerebras/zai-glm-4.7` | -| Cloudflare AI Gateway | `cloudflare-ai-gateway` | `CLOUDFLARE_AI_GATEWAY_API_KEY` | — | -| GitHub Copilot | `github-copilot` | `COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN` | — | -| Groq | `groq` | `GROQ_API_KEY` | — | -| Hugging Face Inference | `huggingface` | `HUGGINGFACE_HUB_TOKEN` أو `HF_TOKEN` | `huggingface/deepseek-ai/DeepSeek-R1` | -| Kilo Gateway | `kilocode` | `KILOCODE_API_KEY` | `kilocode/kilo/auto` | -| Kimi Coding | `kimi` | `KIMI_API_KEY` أو `KIMICODE_API_KEY` | `kimi/kimi-code` | -| MiniMax | `minimax` / `minimax-portal` | `MINIMAX_API_KEY` / `MINIMAX_OAUTH_TOKEN` | `minimax/MiniMax-M2.7` | -| Mistral | `mistral` | `MISTRAL_API_KEY` | `mistral/mistral-large-latest` | -| Moonshot | `moonshot` | `MOONSHOT_API_KEY` | `moonshot/kimi-k2.6` | -| NVIDIA | `nvidia` | `NVIDIA_API_KEY` | `nvidia/nvidia/llama-3.1-nemotron-70b-instruct` | -| OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | `openrouter/auto` | -| Qianfan | `qianfan` | `QIANFAN_API_KEY` | `qianfan/deepseek-v3.2` | -| Qwen Cloud | `qwen` | `QWEN_API_KEY` / `MODELSTUDIO_API_KEY` / `DASHSCOPE_API_KEY` | `qwen/qwen3.5-plus` | -| StepFun | `stepfun` / `stepfun-plan` | `STEPFUN_API_KEY` | `stepfun/step-3.5-flash` | -| Together | `together` | `TOGETHER_API_KEY` | `together/moonshotai/Kimi-K2.5` | -| Venice | `venice` | `VENICE_API_KEY` | — | -| Vercel AI Gateway | `vercel-ai-gateway` | `AI_GATEWAY_API_KEY` | `vercel-ai-gateway/anthropic/claude-opus-4.6` | -| Volcano Engine (Doubao) | `volcengine` / `volcengine-plan` | `VOLCANO_ENGINE_API_KEY` | `volcengine-plan/ark-code-latest` | -| xAI | `xai` | `XAI_API_KEY` | `xai/grok-4` | -| Xiaomi | `xiaomi` | `XIAOMI_API_KEY` | `xiaomi/mimo-v2-flash` | +| الموفّر | المعرّف | متغيرات بيئة المصادقة | مثال على نموذج | +| ---------------------- | ------------------------------------ | ------------------------------------------------------------ | ----------------------------------------------- | +| BytePlus | `byteplus` / `byteplus-plan` | `BYTEPLUS_API_KEY` | `byteplus-plan/ark-code-latest` | +| Cerebras | `cerebras` | `CEREBRAS_API_KEY` | `cerebras/zai-glm-4.7` | +| Cloudflare AI Gateway | `cloudflare-ai-gateway` | `CLOUDFLARE_AI_GATEWAY_API_KEY` | — | +| DeepSeek | `deepseek` | `DEEPSEEK_API_KEY` | `deepseek/deepseek-v4-flash` | +| GitHub Copilot | `github-copilot` | `COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN` | — | +| Groq | `groq` | `GROQ_API_KEY` | — | +| Hugging Face Inference | `huggingface` | `HUGGINGFACE_HUB_TOKEN` أو `HF_TOKEN` | `huggingface/deepseek-ai/DeepSeek-R1` | +| Kilo Gateway | `kilocode` | `KILOCODE_API_KEY` | `kilocode/kilo/auto` | +| Kimi Coding | `kimi` | `KIMI_API_KEY` أو `KIMICODE_API_KEY` | `kimi/kimi-code` | +| MiniMax | `minimax` / `minimax-portal` | `MINIMAX_API_KEY` / `MINIMAX_OAUTH_TOKEN` | `minimax/MiniMax-M2.7` | +| Mistral | `mistral` | `MISTRAL_API_KEY` | `mistral/mistral-large-latest` | +| Moonshot | `moonshot` | `MOONSHOT_API_KEY` | `moonshot/kimi-k2.6` | +| NVIDIA | `nvidia` | `NVIDIA_API_KEY` | `nvidia/nvidia/llama-3.1-nemotron-70b-instruct` | +| OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | `openrouter/auto` | +| Qianfan | `qianfan` | `QIANFAN_API_KEY` | `qianfan/deepseek-v3.2` | +| Qwen Cloud | `qwen` | `QWEN_API_KEY` / `MODELSTUDIO_API_KEY` / `DASHSCOPE_API_KEY` | `qwen/qwen3.5-plus` | +| StepFun | `stepfun` / `stepfun-plan` | `STEPFUN_API_KEY` | `stepfun/step-3.5-flash` | +| Together | `together` | `TOGETHER_API_KEY` | `together/moonshotai/Kimi-K2.5` | +| Venice | `venice` | `VENICE_API_KEY` | — | +| Vercel AI Gateway | `vercel-ai-gateway` | `AI_GATEWAY_API_KEY` | `vercel-ai-gateway/anthropic/claude-opus-4.6` | +| Volcano Engine (Doubao) | `volcengine` / `volcengine-plan` | `VOLCANO_ENGINE_API_KEY` | `volcengine-plan/ark-code-latest` | +| xAI | `xai` | `XAI_API_KEY` | `xai/grok-4` | +| Xiaomi | `xiaomi` | `XIAOMI_API_KEY` | `xiaomi/mimo-v2-flash` | -خصائص مهمة ينبغي معرفتها: +خصائص مهمة تستحق المعرفة: -- **OpenRouter** يطبق ترويسات إسناد التطبيق وعلامات `cache_control` الخاصة بـ Anthropic فقط على المسارات المتحقق منها لـ `openrouter.ai`. وباعتباره مسارًا وكيلًا متوافقًا مع OpenAI، فإنه يتجاوز التشكيل الخاص بـ OpenAI الأصلي فقط (`serviceTier`، و`store` في Responses، وتلميحات prompt-cache، والتوافق الاستدلالي الخاص بـ OpenAI). وتحتفظ المراجع المدعومة بـ Gemini فقط بتنقية توقيع التفكير الخاصة بـ Gemini عبر الوكيل. -- **Kilo Gateway** تتبع المراجع المدعومة بـ Gemini فيه مسار التنقية نفسه الخاص بـ Gemini عبر الوكيل؛ أما `kilocode/kilo/auto` والمراجع الأخرى التي لا تدعم الاستدلال عبر الوكيل فتتجاوز حقن الاستدلال عبر الوكيل. -- **MiniMax** يقوم onboarding باستخدام API key بكتابة تعريفات صريحة لنماذج M2.7 مع `input: ["text", "image"]`؛ بينما يحتفظ الفهرس المجمّع بمراجع الدردشة كنص فقط إلى أن يتم إنشاء هذا الإعداد. -- **xAI** يستخدم مسار xAI Responses. وتعيد `/fast` أو `params.fastMode: true` كتابة `grok-3` و`grok-3-mini` و`grok-4` و`grok-4-0709` إلى متغيراتها `*-fast`. ويكون `tool_stream` مفعّلًا افتراضيًا؛ عطّله عبر `agents.defaults.models["xai/"].params.tool_stream=false`. -- **Cerebras** تستخدم نماذج GLM القيم `zai-glm-4.7` / `zai-glm-4.6`؛ ويكون Base URL المتوافق مع OpenAI هو `https://api.cerebras.ai/v1`. +- **OpenRouter** يطبّق رؤوس إسناد التطبيق وعلامات `cache_control` الخاصة بـ Anthropic فقط على المسارات المتحقق منها في `openrouter.ai`. وباعتباره مسارًا وكيليًا متوافقًا مع OpenAI، فإنه يتجاوز التشكيل الخاص بـ OpenAI الأصلي فقط (`serviceTier`، و`store` الخاص بـ Responses، وتلميحات ذاكرة التخزين المؤقت للمطالبات، والتوافق مع استدلال OpenAI). تحتفظ المراجع المدعومة بـ Gemini فقط بتنقية توقيع التفكير الخاصة بـ Gemini الوكيل. +- **Kilo Gateway** تتبع المراجع المدعومة بـ Gemini فيه مسار تنقية Gemini الوكيل نفسه؛ بينما يتجاوز `kilocode/kilo/auto` وغيره من المراجع الوكيلة التي لا تدعم الاستدلال حقن الاستدلال الوكيلي. +- **MiniMax** تكتب التهيئة بمفتاح API تعريفات صريحة لنماذج M2.7 مع `input: ["text", "image"]`؛ بينما يُبقي الكتالوج المضمّن مراجع الدردشة نصية فقط إلى أن تتحقق هذه الإعدادات. +- **xAI** يستخدم مسار xAI Responses. يعيد `/fast` أو `params.fastMode: true` كتابة `grok-3` و`grok-3-mini` و`grok-4` و`grok-4-0709` إلى متغيراتها `*-fast`. يكون `tool_stream` مفعّلًا افتراضيًا؛ ويمكن تعطيله عبر `agents.defaults.models["xai/"].params.tool_stream=false`. +- **Cerebras** تستخدم نماذج GLM القيمتين `zai-glm-4.7` و`zai-glm-4.6`؛ أما عنوان URL الأساسي المتوافق مع OpenAI فهو `https://api.cerebras.ai/v1`. -## الموفّرون عبر `models.providers` ‏(مخصص/Base URL) +## الموفّرون عبر `models.providers` ‏(مخصص/عنوان URL أساسي) -استخدم `models.providers` ‏(أو `models.json`) لإضافة **موفّرين مخصصين** أو +استخدم `models.providers` (أو `models.json`) لإضافة **موفّرين مخصصين** أو وكلاء متوافقين مع OpenAI/Anthropic. -تنشر العديد من Plugins المجمعة لموفري الخدمة أدناه بالفعل فهرسًا افتراضيًا. +تنشر كثير من Plugins الموفّرين المضمّنة أدناه كتالوجًا افتراضيًا بالفعل. استخدم إدخالات `models.providers.` الصريحة فقط عندما تريد تجاوز -Base URL الافتراضي، أو الترويسات، أو قائمة النماذج. +عنوان URL الأساسي الافتراضي، أو الرؤوس، أو قائمة النماذج. -### Moonshot AI ‏(Kimi) +### Moonshot AI (Kimi) -يأتي Moonshot كـ Plugin موفّر مدمج. استخدم الموفّر المدمج افتراضيًا، -ولا تضف إدخال `models.providers.moonshot` صريحًا إلا عندما -تحتاج إلى تجاوز Base URL أو بيانات وصفية للنموذج: +يُشحن Moonshot كـ Plugin موفّر مضمّن. استخدم الموفّر المدمج +افتراضيًا، وأضف إدخال `models.providers.moonshot` صريحًا فقط عندما +تحتاج إلى تجاوز عنوان URL الأساسي أو بيانات تعريف النموذج: - الموفّر: `moonshot` - المصادقة: `MOONSHOT_API_KEY` -- نموذج مثال: `moonshot/kimi-k2.6` +- مثال نموذج: `moonshot/kimi-k2.6` - CLI: ‏`openclaw onboard --auth-choice moonshot-api-key` أو `openclaw onboard --auth-choice moonshot-api-key-cn` معرّفات نماذج Kimi K2: @@ -319,7 +303,7 @@ Base URL الافتراضي، أو الترويسات، أو قائمة النم - الموفّر: `kimi` - المصادقة: `KIMI_API_KEY` -- نموذج مثال: `kimi/kimi-code` +- مثال نموذج: `kimi/kimi-code` ```json5 { @@ -332,13 +316,13 @@ Base URL الافتراضي، أو الترويسات، أو قائمة النم لا يزال `kimi/k2p5` القديم مقبولًا كمعرّف نموذج للتوافق. -### Volcano Engine ‏(Doubao) +### Volcano Engine (Doubao) -يوفر Volcano Engine ‏(火山引擎) الوصول إلى Doubao ونماذج أخرى في الصين. +يوفّر Volcano Engine (火山引擎) الوصول إلى Doubao ونماذج أخرى في الصين. -- الموفّر: `volcengine` ‏(البرمجة: `volcengine-plan`) +- الموفّر: `volcengine` (الترميز: `volcengine-plan`) - المصادقة: `VOLCANO_ENGINE_API_KEY` -- نموذج مثال: `volcengine-plan/ark-code-latest` +- مثال نموذج: `volcengine-plan/ark-code-latest` - CLI: ‏`openclaw onboard --auth-choice volcengine-api-key` ```json5 @@ -349,13 +333,13 @@ Base URL الافتراضي، أو الترويسات، أو قائمة النم } ``` -يستخدم onboarding سطح البرمجة افتراضيًا، لكن فهرس `volcengine/*` +تستخدم التهيئة سطح الترميز افتراضيًا، لكن كتالوج `volcengine/*` العام يُسجَّل في الوقت نفسه. -في ملتقطات اختيار النموذج في onboarding/configure، يفضل خيار مصادقة Volcengine -كلًا من الصفوف `volcengine/*` و`volcengine-plan/*`. وإذا لم تكن هذه النماذج -محملة بعد، فإن OpenClaw يعود إلى الفهرس غير المصفّى بدلًا من إظهار -ملتقط فارغ خاص بالموفّر. +في أدوات اختيار النماذج أثناء التهيئة/الضبط، يفضّل خيار مصادقة Volcengine +كلًا من صفوف `volcengine/*` و`volcengine-plan/*`. وإذا لم تكن هذه النماذج +محمّلة بعد، يعود OpenClaw إلى الكتالوج غير المفلتر بدلًا من إظهار أداة +اختيار فارغة مقيّدة بالموفّر. النماذج المتاحة: @@ -365,7 +349,7 @@ Base URL الافتراضي، أو الترويسات، أو قائمة النم - `volcengine/glm-4-7-251222` ‏(GLM 4.7) - `volcengine/deepseek-v3-2-251201` ‏(DeepSeek V3.2 128K) -نماذج البرمجة (`volcengine-plan`): +نماذج الترميز (`volcengine-plan`): - `volcengine-plan/ark-code-latest` - `volcengine-plan/doubao-seed-code` @@ -373,13 +357,13 @@ Base URL الافتراضي، أو الترويسات، أو قائمة النم - `volcengine-plan/kimi-k2-thinking` - `volcengine-plan/glm-4.7` -### BytePlus (دولي) +### BytePlus (الدولي) -يوفّر BytePlus ARK الوصول إلى النماذج نفسها الموجودة في Volcano Engine للمستخدمين الدوليين. +يوفّر BytePlus ARK الوصول إلى النماذج نفسها التي يوفّرها Volcano Engine للمستخدمين الدوليين. -- الموفّر: `byteplus` ‏(البرمجة: `byteplus-plan`) +- الموفّر: `byteplus` (الترميز: `byteplus-plan`) - المصادقة: `BYTEPLUS_API_KEY` -- نموذج مثال: `byteplus-plan/ark-code-latest` +- مثال نموذج: `byteplus-plan/ark-code-latest` - CLI: ‏`openclaw onboard --auth-choice byteplus-api-key` ```json5 @@ -390,13 +374,13 @@ Base URL الافتراضي، أو الترويسات، أو قائمة النم } ``` -يستخدم onboarding سطح البرمجة افتراضيًا، لكن فهرس `byteplus/*` +تستخدم التهيئة سطح الترميز افتراضيًا، لكن كتالوج `byteplus/*` العام يُسجَّل في الوقت نفسه. -في ملتقطات اختيار النموذج في onboarding/configure، يفضّل خيار مصادقة BytePlus -كلًا من الصفوف `byteplus/*` و`byteplus-plan/*`. وإذا لم تكن تلك النماذج -محملة بعد، فإن OpenClaw يعود إلى الفهرس غير المصفّى بدلًا من إظهار -ملتقط فارغ خاص بالموفّر. +في أدوات اختيار النماذج أثناء التهيئة/الضبط، يفضّل خيار مصادقة BytePlus +كلًا من صفوف `byteplus/*` و`byteplus-plan/*`. وإذا لم تكن هذه النماذج +محمّلة بعد، يعود OpenClaw إلى الكتالوج غير المفلتر بدلًا من إظهار أداة +اختيار فارغة مقيّدة بالموفّر. النماذج المتاحة: @@ -404,7 +388,7 @@ Base URL الافتراضي، أو الترويسات، أو قائمة النم - `byteplus/kimi-k2-5-260127` ‏(Kimi K2.5) - `byteplus/glm-4-7-251222` ‏(GLM 4.7) -نماذج البرمجة (`byteplus-plan`): +نماذج الترميز (`byteplus-plan`): - `byteplus-plan/ark-code-latest` - `byteplus-plan/doubao-seed-code` @@ -418,7 +402,7 @@ Base URL الافتراضي، أو الترويسات، أو قائمة النم - الموفّر: `synthetic` - المصادقة: `SYNTHETIC_API_KEY` -- نموذج مثال: `synthetic/hf:MiniMaxAI/MiniMax-M2.5` +- مثال نموذج: `synthetic/hf:MiniMaxAI/MiniMax-M2.5` - CLI: ‏`openclaw onboard --auth-choice synthetic-api-key` ```json5 @@ -442,37 +426,37 @@ Base URL الافتراضي، أو الترويسات، أو قائمة النم ### MiniMax -يتم إعداد MiniMax عبر `models.providers` لأنه يستخدم نقاط نهاية مخصصة: +يُضبط MiniMax عبر `models.providers` لأنه يستخدم نقاط نهاية مخصصة: -- MiniMax OAuth ‏(عالمي): `--auth-choice minimax-global-oauth` -- MiniMax OAuth ‏(الصين): `--auth-choice minimax-cn-oauth` -- MiniMax API key ‏(عالمي): `--auth-choice minimax-global-api` -- MiniMax API key ‏(الصين): `--auth-choice minimax-cn-api` -- المصادقة: `MINIMAX_API_KEY` من أجل `minimax`؛ و`MINIMAX_OAUTH_TOKEN` أو - `MINIMAX_API_KEY` من أجل `minimax-portal` +- MiniMax OAuth (عالمي): `--auth-choice minimax-global-oauth` +- MiniMax OAuth (الصين): `--auth-choice minimax-cn-oauth` +- مفتاح API لـ MiniMax (عالمي): `--auth-choice minimax-global-api` +- مفتاح API لـ MiniMax (الصين): `--auth-choice minimax-cn-api` +- المصادقة: `MINIMAX_API_KEY` لـ `minimax`؛ و`MINIMAX_OAUTH_TOKEN` أو + `MINIMAX_API_KEY` لـ `minimax-portal` -راجع [/providers/minimax](/ar/providers/minimax) للحصول على تفاصيل الإعداد، وخيارات النماذج، ومقتطفات الإعدادات. +راجع [/providers/minimax](/ar/providers/minimax) لمعرفة تفاصيل الإعداد وخيارات النماذج ومقتطفات الإعدادات. -على مسار البث المتوافق مع Anthropic الخاص بـ MiniMax، يقوم OpenClaw بتعطيل التفكير -افتراضيًا ما لم تقم بتعيينه صراحةً، وتقوم `/fast on` بإعادة كتابة +في مسار البث المتوافق مع Anthropic في MiniMax، يعطّل OpenClaw التفكير +افتراضيًا ما لم تضبطه صراحةً، ويعيد `/fast on` كتابة `MiniMax-M2.7` إلى `MiniMax-M2.7-highspeed`. تقسيم القدرات المملوك لـ Plugin: -- تبقى القيم الافتراضية للنص/الدردشة على `minimax/MiniMax-M2.7` -- يكون توليد الصور هو `minimax/image-01` أو `minimax-portal/image-01` -- يكون فهم الصور هو `MiniMax-VL-01` المملوك لـ Plugin على كلا مساري مصادقة MiniMax +- تبقى إعدادات النص/الدردشة الافتراضية على `minimax/MiniMax-M2.7` +- يكون توليد الصور على `minimax/image-01` أو `minimax-portal/image-01` +- يكون فهم الصور على `MiniMax-VL-01` المملوك لـ Plugin على مساري مصادقة MiniMax كليهما - يبقى البحث على الويب على معرّف الموفّر `minimax` ### LM Studio -يأتي LM Studio كـ Plugin موفّر مدمج يستخدم API الأصلية: +يُشحن LM Studio كـ Plugin موفّر مضمّن يستخدم API الأصلي: - الموفّر: `lmstudio` - المصادقة: `LM_API_TOKEN` -- Base URL الافتراضي للاستدلال: `http://localhost:1234/v1` +- عنوان URL الأساسي الافتراضي للاستدلال: `http://localhost:1234/v1` -ثم اضبط نموذجًا (استبدله بأحد المعرّفات المعادة من `http://localhost:1234/api/v1/models`): +ثم اضبط نموذجًا (استبدله بأحد المعرّفات التي يُرجعها `http://localhost:1234/api/v1/models`): ```json5 { @@ -482,17 +466,17 @@ Base URL الافتراضي، أو الترويسات، أو قائمة النم } ``` -يستخدم OpenClaw المسارين الأصليين لـ LM Studio وهما `/api/v1/models` و`/api/v1/models/load` +يستخدم OpenClaw المسارين الأصليين لـ LM Studio ‏`/api/v1/models` و`/api/v1/models/load` للاكتشاف + التحميل التلقائي، مع استخدام `/v1/chat/completions` للاستدلال افتراضيًا. -راجع [/providers/lmstudio](/ar/providers/lmstudio) للإعداد واستكشاف الأخطاء وإصلاحها. +راجع [/providers/lmstudio](/ar/providers/lmstudio) لمعرفة الإعداد واستكشاف الأخطاء وإصلاحها. ### Ollama -يأتي Ollama كـ Plugin موفّر مدمج ويستخدم API الأصلية الخاصة بـ Ollama: +يُشحن Ollama كـ Plugin موفّر مضمّن ويستخدم API الأصلي الخاص بـ Ollama: - الموفّر: `ollama` -- المصادقة: لا يلزم شيء (خادم محلي) -- نموذج مثال: `ollama/llama3.3` +- المصادقة: لا شيء مطلوب (خادم محلي) +- مثال نموذج: `ollama/llama3.3` - التثبيت: [https://ollama.com/download](https://ollama.com/download) ```bash @@ -508,27 +492,27 @@ ollama pull llama3.3 } ``` -يتم اكتشاف Ollama محليًا على `http://127.0.0.1:11434` عندما تشترك باستخدام -`OLLAMA_API_KEY`، ويضيف Plugin الموفّر المجمّع Ollama مباشرةً إلى -`openclaw onboard` وملتقط النماذج. راجع [/providers/ollama](/ar/providers/ollama) -للاطلاع على onboarding، ووضع السحابة/الوضع المحلي، والإعدادات المخصصة. +يتم اكتشاف Ollama محليًا على `http://127.0.0.1:11434` عندما تختار الاشتراك باستخدام +`OLLAMA_API_KEY`، ويضيف Plugin الموفّر المضمّن Ollama مباشرةً إلى +`openclaw onboard` وأداة اختيار النموذج. راجع [/providers/ollama](/ar/providers/ollama) +للاطلاع على التهيئة، ووضع السحابة/الوضع المحلي، والإعدادات المخصصة. ### vLLM -يأتي vLLM كـ Plugin موفّر مدمج للخوادم المحلية/المستضافة ذاتيًا -المتوافقة مع OpenAI: +يُشحن vLLM كـ Plugin موفّر مضمّن لخوادم +OpenAI-compatible المحلية/المستضافة ذاتيًا: - الموفّر: `vllm` - المصادقة: اختيارية (بحسب خادمك) -- Base URL الافتراضي: `http://127.0.0.1:8000/v1` +- عنوان URL الأساسي الافتراضي: `http://127.0.0.1:8000/v1` -للاشتراك في الاكتشاف التلقائي محليًا (أي قيمة تعمل إذا لم يكن خادمك يفرض المصادقة): +للاشتراك في الاكتشاف التلقائي محليًا (أي قيمة تعمل إذا كان خادمك لا يفرض المصادقة): ```bash export VLLM_API_KEY="vllm-local" ``` -ثم اضبط نموذجًا (استبدله بأحد المعرّفات المعادة من `/v1/models`): +ثم اضبط نموذجًا (استبدله بأحد المعرّفات التي يُرجعها `/v1/models`): ```json5 { @@ -542,21 +526,21 @@ export VLLM_API_KEY="vllm-local" ### SGLang -يأتي SGLang كـ Plugin موفّر مدمج للخوادم السريعة المستضافة ذاتيًا -المتوافقة مع OpenAI: +يُشحن SGLang كـ Plugin موفّر مضمّن لخوادم +OpenAI-compatible السريعة المستضافة ذاتيًا: - الموفّر: `sglang` - المصادقة: اختيارية (بحسب خادمك) -- Base URL الافتراضي: `http://127.0.0.1:30000/v1` +- عنوان URL الأساسي الافتراضي: `http://127.0.0.1:30000/v1` -للاشتراك في الاكتشاف التلقائي محليًا (أي قيمة تعمل إذا لم يكن خادمك +للاشتراك في الاكتشاف التلقائي محليًا (أي قيمة تعمل إذا كان خادمك لا يفرض المصادقة): ```bash export SGLANG_API_KEY="sglang-local" ``` -ثم اضبط نموذجًا (استبدله بأحد المعرّفات المعادة من `/v1/models`): +ثم اضبط نموذجًا (استبدله بأحد المعرّفات التي يُرجعها `/v1/models`): ```json5 { @@ -568,7 +552,7 @@ export SGLANG_API_KEY="sglang-local" راجع [/providers/sglang](/ar/providers/sglang) للتفاصيل. -### الوكلاء المحليون (LM Studio وvLLM وLiteLLM وغيرها) +### الوكلاء المحليون (LM Studio وvLLM وLiteLLM وما إلى ذلك) مثال (متوافق مع OpenAI): @@ -606,20 +590,18 @@ export SGLANG_API_KEY="sglang-local" ملاحظات: - بالنسبة إلى الموفّرين المخصصين، تكون `reasoning` و`input` و`cost` و`contextWindow` و`maxTokens` اختيارية. - وعند حذفها، يستخدم OpenClaw القيم الافتراضية التالية: + عند حذفها، يستخدم OpenClaw القيم الافتراضية التالية: - `reasoning: false` - `input: ["text"]` - `cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }` - `contextWindow: 200000` - `maxTokens: 8192` -- الموصى به: تعيين قيم صريحة تطابق حدود الوكيل/النموذج لديك. -- بالنسبة إلى `api: "openai-completions"` على نقاط النهاية غير الأصلية (أي `baseUrl` غير فارغ لا يكون مضيفه `api.openai.com`)، يفرض OpenClaw القيمة `compat.supportsDeveloperRole: false` لتجنب أخطاء الموفر 400 الخاصة بأدوار `developer` غير المدعومة. -- كما أن المسارات المتوافقة مع OpenAI بنمط الوكيل تتجاوز أيضًا تشكيل الطلبات الخاص بـ OpenAI الأصلي فقط: - لا `service_tier`، ولا `store` في Responses، ولا تلميحات prompt-cache، ولا - تشكيل حمولة توافق الاستدلال الخاصة بـ OpenAI، ولا ترويسات الإسناد - المخفية الخاصة بـ OpenClaw. -- إذا كانت `baseUrl` فارغة/محذوفة، يحتفظ OpenClaw بسلوك OpenAI الافتراضي (الذي يُحل إلى `api.openai.com`). -- ولأسباب تتعلق بالسلامة، فإن القيمة الصريحة `compat.supportsDeveloperRole: true` تظل مُتجاوَزة على نقاط النهاية غير الأصلية `openai-completions`. +- الموصى به: اضبط قيمًا صريحة تطابق حدود الوكيل/النموذج لديك. +- بالنسبة إلى `api: "openai-completions"` على نقاط نهاية غير أصلية (أي `baseUrl` غير فارغ يكون مضيفه غير `api.openai.com`)، يفرض OpenClaw القيمة `compat.supportsDeveloperRole: false` لتجنب أخطاء الموفّر 400 للأدوار `developer` غير المدعومة. +- تتجاوز أيضًا المسارات الوكيلة المتوافقة مع OpenAI التشكيل الخاص بـ OpenAI الأصلي فقط: + لا يوجد `service_tier`، ولا `store` الخاص بـ Responses، ولا تلميحات لذاكرة التخزين المؤقت للمطالبات، ولا تشكيل حمولة متوافق مع استدلال OpenAI، ولا رؤوس إسناد مخفية خاصة بـ OpenClaw. +- إذا كان `baseUrl` فارغًا/غير مذكور، يحتفظ OpenClaw بسلوك OpenAI الافتراضي (الذي يُحل إلى `api.openai.com`). +- حرصًا على السلامة، ما يزال يتم تجاوز `compat.supportsDeveloperRole: true` الصريح على نقاط نهاية `openai-completions` غير الأصلية. ## أمثلة CLI @@ -634,6 +616,6 @@ openclaw models list ## ذو صلة - [النماذج](/ar/concepts/models) — إعدادات النماذج والأسماء المستعارة -- [Model Failover](/ar/concepts/model-failover) — سلاسل الرجوع الاحتياطي وسلوك إعادة المحاولة -- [مرجع الإعدادات](/ar/gateway/config-agents#agent-defaults) — مفاتيح إعدادات النماذج -- [الموفّرون](/ar/providers) — أدلة إعداد لكل موفّر +- [تجاوز فشل النموذج](/ar/concepts/model-failover) — سلاسل التبديل الاحتياطي وسلوك إعادة المحاولة +- [مرجع الإعدادات](/ar/gateway/config-agents#agent-defaults) — مفاتيح إعدادات النموذج +- [الموفّرون](/ar/providers) — أدلة إعداد كل موفّر على حدة diff --git a/docs/ar/pi.md b/docs/ar/pi.md index 70cceffb3..640a178b8 100644 --- a/docs/ar/pi.md +++ b/docs/ar/pi.md @@ -1,126 +1,126 @@ --- read_when: - فهم تصميم تكامل Pi SDK في OpenClaw - - تعديل دورة حياة جلسة الوكيل، أو الأدوات، أو ربط provider لـ Pi -summary: معمارية تكامل وكيل Pi المضمن في OpenClaw ودورة حياة الجلسة -title: معمارية تكامل Pi + - تعديل دورة حياة جلسة الوكيل، والأدوات، أو توصيل المزوّد لـ Pi +summary: بنية تكامل وكيل Pi المضمّن في OpenClaw ودورة حياة الجلسة +title: بنية تكامل Pi x-i18n: - generated_at: "2026-04-24T07:51:14Z" + generated_at: "2026-04-24T15:21:58Z" model: gpt-5.4 provider: openai - source_hash: 3c0c490cad121a65d557a72887ea619a7d0cff34a62220752214185c9148dc0b + source_hash: 0c0b019ff6d35f6fdcd57b56edd1945e62a96bb4b34e312d7fb0c627f01287f1 source_path: pi.md workflow: 15 --- -تصف هذه الوثيقة كيف يدمج OpenClaw مع [pi-coding-agent](https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent) والحزم الشقيقة له (`pi-ai` و`pi-agent-core` و`pi-tui`) لتشغيل قدرات وكيل الذكاء الاصطناعي الخاصة به. +تصف هذه الوثيقة كيف يدمج OpenClaw مع [pi-coding-agent](https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent) والحزم الشقيقة له (`pi-ai` و`pi-agent-core` و`pi-tui`) لتشغيل قدرات وكيل الذكاء الاصطناعي لديه. ## نظرة عامة -يستخدم OpenClaw مجموعة تطوير Pi لتضمين وكيل برمجة بالذكاء الاصطناعي داخل معمارية بوابة المراسلة الخاصة به. وبدلًا من تشغيل pi كعملية فرعية أو استخدام وضع RPC، يقوم OpenClaw مباشرةً باستيراد `AgentSession` الخاص بـ pi وإنشائه عبر `createAgentSession()`. يوفّر هذا النهج المضمّن ما يلي: +يستخدم OpenClaw حزمة pi SDK لتضمين وكيل برمجة بالذكاء الاصطناعي داخل بنية Gateway الخاصة بالمراسلة. بدلًا من تشغيل pi كعملية فرعية أو استخدام وضع RPC، يستورد OpenClaw مباشرة `AgentSession` الخاصة بـ pi وينشئها عبر `createAgentSession()`. يوفّر هذا النهج المضمّن ما يلي: -- تحكمًا كاملًا في دورة حياة الجلسة ومعالجة الأحداث -- حقن أدوات مخصصة (المراسلة، وsandbox، والإجراءات الخاصة بكل قناة) -- تخصيص system prompt لكل قناة/سياق -- استمرارية الجلسة مع دعم التفريع/Compaction -- تدوير ملفات تعريف المصادقة متعددة الحسابات مع failover -- تبديل النماذج بشكل مستقل عن provider +- تحكم كامل في دورة حياة الجلسة ومعالجة الأحداث +- حقن أدوات مخصّصة (المراسلة، وsandbox، والإجراءات الخاصة بكل قناة) +- تخصيص موجّه النظام لكل قناة/سياق +- استمرارية الجلسة مع دعم التفرّع وCompaction +- تدوير ملفات تعريف المصادقة متعددة الحسابات مع تجاوز الفشل +- تبديل النماذج بشكل مستقل عن المزوّد ## تبعيات الحزم ```json { - "@mariozechner/pi-agent-core": "0.68.1", - "@mariozechner/pi-ai": "0.68.1", - "@mariozechner/pi-coding-agent": "0.68.1", - "@mariozechner/pi-tui": "0.68.1" + "@mariozechner/pi-agent-core": "0.70.2", + "@mariozechner/pi-ai": "0.70.2", + "@mariozechner/pi-coding-agent": "0.70.2", + "@mariozechner/pi-tui": "0.70.2" } ``` -| الحزمة | الغرض | -| ------ | ----- | -| `pi-ai` | تجريدات LLM الأساسية: `Model`، و`streamSimple`، وأنواع الرسائل، وواجهات provider | -| `pi-agent-core` | حلقة الوكيل، وتنفيذ الأدوات، وأنواع `AgentMessage` | -| `pi-coding-agent` | SDK عالي المستوى: `createAgentSession`، و`SessionManager`، و`AuthStorage`، و`ModelRegistry`، والأدوات المضمنة | -| `pi-tui` | مكونات واجهة الطرفية (تُستخدم في وضع TUI المحلي في OpenClaw) | +| الحزمة | الغرض | +| ----------------- | ------------------------------------------------------------------------------------------------------ | +| `pi-ai` | تجريدات LLM الأساسية: `Model` و`streamSimple` وأنواع الرسائل وواجهات برمجة المزوّدين | +| `pi-agent-core` | حلقة الوكيل، وتنفيذ الأدوات، وأنواع `AgentMessage` | +| `pi-coding-agent` | حزمة SDK عالية المستوى: `createAgentSession` و`SessionManager` و`AuthStorage` و`ModelRegistry` والأدوات المضمّنة | +| `pi-tui` | مكوّنات واجهة الطرفية (تُستخدم في وضع TUI المحلي في OpenClaw) | ## بنية الملفات ``` src/agents/ -├── pi-embedded-runner.ts # Re-exports from pi-embedded-runner/ +├── pi-embedded-runner.ts # إعادة تصدير من pi-embedded-runner/ ├── pi-embedded-runner/ -│ ├── run.ts # Main entry: runEmbeddedPiAgent() +│ ├── run.ts # نقطة الدخول الرئيسية: runEmbeddedPiAgent() │ ├── run/ -│ │ ├── attempt.ts # Single attempt logic with session setup -│ │ ├── params.ts # RunEmbeddedPiAgentParams type -│ │ ├── payloads.ts # Build response payloads from run results -│ │ ├── images.ts # Vision model image injection +│ │ ├── attempt.ts # منطق المحاولة الواحدة مع إعداد الجلسة +│ │ ├── params.ts # نوع RunEmbeddedPiAgentParams +│ │ ├── payloads.ts # بناء حمولات الاستجابة من نتائج التشغيل +│ │ ├── images.ts # حقن صور نموذج الرؤية │ │ └── types.ts # EmbeddedRunAttemptResult -│ ├── abort.ts # Abort error detection -│ ├── cache-ttl.ts # Cache TTL tracking for context pruning -│ ├── compact.ts # Manual/auto compaction logic -│ ├── extensions.ts # Load pi extensions for embedded runs -│ ├── extra-params.ts # Provider-specific stream params -│ ├── google.ts # Google/Gemini turn ordering fixes -│ ├── history.ts # History limiting (DM vs group) -│ ├── lanes.ts # Session/global command lanes -│ ├── logger.ts # Subsystem logger -│ ├── model.ts # Model resolution via ModelRegistry -│ ├── runs.ts # Active run tracking, abort, queue -│ ├── sandbox-info.ts # Sandbox info for system prompt -│ ├── session-manager-cache.ts # SessionManager instance caching -│ ├── session-manager-init.ts # Session file initialization -│ ├── system-prompt.ts # System prompt builder -│ ├── tool-split.ts # Split tools into builtIn vs custom -│ ├── types.ts # EmbeddedPiAgentMeta, EmbeddedPiRunResult -│ └── utils.ts # ThinkLevel mapping, error description -├── pi-embedded-subscribe.ts # Session event subscription/dispatch +│ ├── abort.ts # اكتشاف أخطاء الإلغاء +│ ├── cache-ttl.ts # تتبّع Cache TTL لتقليم السياق +│ ├── compact.ts # منطق Compaction اليدوي/التلقائي +│ ├── extensions.ts # تحميل امتدادات pi لعمليات التشغيل المضمّنة +│ ├── extra-params.ts # معاملات تدفق خاصة بالمزوّد +│ ├── google.ts # إصلاحات ترتيب الأدوار لـ Google/Gemini +│ ├── history.ts # تحديد السجل (رسائل مباشرة مقابل مجموعة) +│ ├── lanes.ts # مسارات أوامر الجلسة/العالمية +│ ├── logger.ts # مسجل النظام الفرعي +│ ├── model.ts # حلّ النموذج عبر ModelRegistry +│ ├── runs.ts # تتبّع العمليات النشطة، والإلغاء، والطابور +│ ├── sandbox-info.ts # معلومات sandbox لموجّه النظام +│ ├── session-manager-cache.ts # التخزين المؤقت لمثيلات SessionManager +│ ├── session-manager-init.ts # تهيئة ملف الجلسة +│ ├── system-prompt.ts # باني موجّه النظام +│ ├── tool-split.ts # تقسيم الأدوات إلى builtIn وcustom +│ ├── types.ts # EmbeddedPiAgentMeta وEmbeddedPiRunResult +│ └── utils.ts # تعيين ThinkLevel ووصف الخطأ +├── pi-embedded-subscribe.ts # الاشتراك/التوزيع لأحداث الجلسة ├── pi-embedded-subscribe.types.ts # SubscribeEmbeddedPiSessionParams -├── pi-embedded-subscribe.handlers.ts # Event handler factory +├── pi-embedded-subscribe.handlers.ts # مصنع معالجات الأحداث ├── pi-embedded-subscribe.handlers.lifecycle.ts ├── pi-embedded-subscribe.handlers.types.ts -├── pi-embedded-block-chunker.ts # Streaming block reply chunking -├── pi-embedded-messaging.ts # Messaging tool sent tracking -├── pi-embedded-helpers.ts # Error classification, turn validation -├── pi-embedded-helpers/ # Helper modules -├── pi-embedded-utils.ts # Formatting utilities +├── pi-embedded-block-chunker.ts # تجزئة ردود الكتل المتدفقة +├── pi-embedded-messaging.ts # تتبّع الإرسال لأداة المراسلة +├── pi-embedded-helpers.ts # تصنيف الأخطاء والتحقق من الأدوار +├── pi-embedded-helpers/ # وحدات مساعدة +├── pi-embedded-utils.ts # أدوات تنسيق ├── pi-tools.ts # createOpenClawCodingTools() -├── pi-tools.abort.ts # AbortSignal wrapping for tools -├── pi-tools.policy.ts # Tool allowlist/denylist policy -├── pi-tools.read.ts # Read tool customizations -├── pi-tools.schema.ts # Tool schema normalization -├── pi-tools.types.ts # AnyAgentTool type alias -├── pi-tool-definition-adapter.ts # AgentTool -> ToolDefinition adapter -├── pi-settings.ts # Settings overrides -├── pi-hooks/ # Custom pi hooks -│ ├── compaction-safeguard.ts # Safeguard extension +├── pi-tools.abort.ts # تغليف AbortSignal للأدوات +├── pi-tools.policy.ts # سياسة قائمة السماح/المنع للأدوات +├── pi-tools.read.ts # تخصيصات أداة القراءة +├── pi-tools.schema.ts # توحيد مخطط الأدوات +├── pi-tools.types.ts # الاسم المستعار للنوع AnyAgentTool +├── pi-tool-definition-adapter.ts # موائم AgentTool -> ToolDefinition +├── pi-settings.ts # تجاوزات الإعدادات +├── pi-hooks/ # خطافات pi مخصّصة +│ ├── compaction-safeguard.ts # امتداد الحماية │ ├── compaction-safeguard-runtime.ts -│ ├── context-pruning.ts # Cache-TTL context pruning extension +│ ├── context-pruning.ts # امتداد تقليم السياق لـ Cache-TTL │ └── context-pruning/ -├── model-auth.ts # Auth profile resolution -├── auth-profiles.ts # Profile store, cooldown, failover -├── model-selection.ts # Default model resolution -├── models-config.ts # models.json generation -├── model-catalog.ts # Model catalog cache -├── context-window-guard.ts # Context window validation -├── failover-error.ts # FailoverError class -├── defaults.ts # DEFAULT_PROVIDER, DEFAULT_MODEL +├── model-auth.ts # حلّ ملف تعريف المصادقة +├── auth-profiles.ts # مخزن الملفات الشخصية، والتهدئة، وتجاوز الفشل +├── model-selection.ts # حلّ النموذج الافتراضي +├── models-config.ts # توليد models.json +├── model-catalog.ts # ذاكرة التخزين المؤقتة لفهرس النماذج +├── context-window-guard.ts # التحقق من نافذة السياق +├── failover-error.ts # الصنف FailoverError +├── defaults.ts # DEFAULT_PROVIDER وDEFAULT_MODEL ├── system-prompt.ts # buildAgentSystemPrompt() -├── system-prompt-params.ts # System prompt parameter resolution -├── system-prompt-report.ts # Debug report generation -├── tool-summaries.ts # Tool description summaries -├── tool-policy.ts # Tool policy resolution -├── transcript-policy.ts # Transcript validation policy -├── skills.ts # Skill snapshot/prompt building -├── skills/ # Skill subsystem -├── sandbox.ts # Sandbox context resolution -├── sandbox/ # Sandbox subsystem -├── channel-tools.ts # Channel-specific tool injection -├── openclaw-tools.ts # OpenClaw-specific tools -├── bash-tools.ts # exec/process tools -├── apply-patch.ts # apply_patch tool (OpenAI) -├── tools/ # Individual tool implementations +├── system-prompt-params.ts # حلّ معاملات موجّه النظام +├── system-prompt-report.ts # توليد تقرير التصحيح +├── tool-summaries.ts # ملخصات وصف الأدوات +├── tool-policy.ts # حلّ سياسة الأدوات +├── transcript-policy.ts # سياسة التحقق من النص الحواري +├── skills.ts # بناء لقطة Skills/الموجّه +├── skills/ # النظام الفرعي لـ Skills +├── sandbox.ts # حلّ سياق sandbox +├── sandbox/ # النظام الفرعي لـ sandbox +├── channel-tools.ts # حقن أدوات خاصة بالقنوات +├── openclaw-tools.ts # أدوات خاصة بـ OpenClaw +├── bash-tools.ts # أدوات exec/process +├── apply-patch.ts # أداة apply_patch (OpenAI) +├── tools/ # تطبيقات الأدوات الفردية │ ├── browser-tool.ts │ ├── canvas-tool.ts │ ├── cron-tool.ts @@ -134,17 +134,16 @@ src/agents/ └── ... ``` -توجد الآن أوقات تشغيل إجراءات الرسائل الخاصة بكل قناة في أدلة extensions -المملوكة للـ Plugin بدلًا من `src/agents/tools`، على سبيل المثال: +توجد الآن بيئات تشغيل إجراءات الرسائل الخاصة بكل قناة في أدلة الامتدادات المملوكة للـ Plugin بدلًا من وجودها تحت `src/agents/tools`، على سبيل المثال: -- ملفات وقت تشغيل إجراءات Plugin الخاصة بـ Discord -- ملف وقت تشغيل إجراءات Plugin الخاصة بـ Slack -- ملف وقت تشغيل إجراءات Plugin الخاصة بـ Telegram -- ملف وقت تشغيل إجراءات Plugin الخاصة بـ WhatsApp +- ملفات بيئة تشغيل إجراءات Plugin الخاصة بـ Discord +- ملف بيئة تشغيل إجراءات Plugin الخاصة بـ Slack +- ملف بيئة تشغيل إجراءات Plugin الخاصة بـ Telegram +- ملف بيئة تشغيل إجراءات Plugin الخاصة بـ WhatsApp ## تدفق التكامل الأساسي -### 1. تشغيل وكيل مضمن +### 1. تشغيل وكيل مضمّن نقطة الدخول الرئيسية هي `runEmbeddedPiAgent()` في `pi-embedded-runner/run.ts`: @@ -170,7 +169,7 @@ const result = await runEmbeddedPiAgent({ ### 2. إنشاء الجلسة -داخل `runEmbeddedAttempt()` ‏(التي تستدعيها `runEmbeddedPiAgent()`)، تُستخدم مجموعة تطوير pi: +داخل `runEmbeddedAttempt()` (التي تستدعيها `runEmbeddedPiAgent()`)، تُستخدم pi SDK: ```typescript import { @@ -207,7 +206,7 @@ applySystemPromptOverrideToSession(session, systemPromptOverride); ### 3. الاشتراك في الأحداث -تشترك `subscribeEmbeddedPiSession()` في أحداث `AgentSession` الخاصة بـ pi: +تقوم `subscribeEmbeddedPiSession()` بالاشتراك في أحداث `AgentSession` الخاصة بـ pi: ```typescript const subscription = subscribeEmbeddedPiSession({ @@ -224,43 +223,41 @@ const subscription = subscribeEmbeddedPiSession({ }); ``` -تشمل الأحداث التي تتم معالجتها: +تشمل الأحداث التي تُعالَج ما يلي: -- `message_start` / `message_end` / `message_update` ‏(نص/تفكير متدفق) +- `message_start` / `message_end` / `message_update` (بث النص/التفكير) - `tool_execution_start` / `tool_execution_update` / `tool_execution_end` - `turn_start` / `turn_end` - `agent_start` / `agent_end` - `compaction_start` / `compaction_end` -### 4. الـ Prompting +### 4. التوجيه -بعد الإعداد، تُرسل prompt إلى الجلسة: +بعد الإعداد، تُوجَّه الجلسة: ```typescript await session.prompt(effectivePrompt, { images: imageResult.images }); ``` -تتعامل مجموعة التطوير مع حلقة الوكيل الكاملة: الإرسال إلى LLM، وتنفيذ استدعاءات الأدوات، وبث الاستجابات. +تتولى SDK حلقة الوكيل كاملة: الإرسال إلى LLM، وتنفيذ استدعاءات الأدوات، وبث الاستجابات. -يكون حقن الصور محليًا بالنسبة إلى prompt: يحمّل OpenClaw مراجع الصور من prompt الحالية -ويمررها عبر `images` لذلك الدور فقط. ولا يعيد فحص أدوار السجل الأقدم -لإعادة حقن حمولات الصور. +حقن الصور محلي على مستوى الموجّه: يحمّل OpenClaw مراجع الصور من الموجّه الحالي ويمررها عبر `images` لهذا الدور فقط. ولا يعيد فحص أدوار السجل الأقدم لإعادة حقن حمولات الصور. -## معمارية الأدوات +## بنية الأدوات ### مسار الأدوات -1. **الأدوات الأساسية**: ‏`codingTools` الخاصة بـ pi ‏(`read` و`bash` و`edit` و`write`) -2. **استبدالات مخصصة**: يستبدل OpenClaw ‏`bash` بـ `exec`/`process`، ويخصص read/edit/write للـ sandbox -3. **أدوات OpenClaw**: المراسلة، والمتصفح، واللوحة، والجلسات، وcron، وgateway، وغير ذلك -4. **أدوات القنوات**: أدوات الإجراءات الخاصة بـ Discord/Telegram/Slack/WhatsApp -5. **تصفية السياسة**: تُصفى الأدوات وفق سياسات الملف الشخصي، والـ provider، والوكيل، والمجموعة، والـ sandbox -6. **تطبيع المخطط**: تُنظف المخططات لمراعاة غرائب Gemini/OpenAI -7. **لفّ AbortSignal**: تُلف الأدوات لاحترام إشارات الإلغاء +1. **الأدوات الأساسية**: `codingTools` الخاصة بـ pi (`read` و`bash` و`edit` و`write`) +2. **استبدالات مخصّصة**: يستبدل OpenClaw `bash` بـ `exec`/`process`، ويخصّص `read`/`edit`/`write` لـ sandbox +3. **أدوات OpenClaw**: المراسلة، والمتصفح، وcanvas، والجلسات، وCron، وGateway، وغيرها +4. **أدوات القنوات**: أدوات إجراءات خاصة بـ Discord/Telegram/Slack/WhatsApp +5. **تصفية السياسات**: تُصفّى الأدوات حسب الملف الشخصي، والمزوّد، والوكيل، والمجموعة، وسياسات sandbox +6. **توحيد المخطط**: تُنظَّف المخططات لمعالجة سلوكيات Gemini/OpenAI الخاصة +7. **تغليف AbortSignal**: تُغلَّف الأدوات لاحترام إشارات الإلغاء -### مهايئ تعريف الأداة +### موائم تعريف الأداة -يمتلك `AgentTool` في pi-agent-core توقيع `execute` مختلفًا عن `ToolDefinition` في pi-coding-agent. ويصل المهايئ الموجود في `pi-tool-definition-adapter.ts` بين الاثنين: +لدى `pi-agent-core` في `AgentTool` توقيع `execute` مختلف عن `ToolDefinition` في `pi-coding-agent`. يقوم الموائم في `pi-tool-definition-adapter.ts` بربط الاثنين: ```typescript export function toToolDefinitions(tools: AnyAgentTool[]): ToolDefinition[] { @@ -279,7 +276,7 @@ export function toToolDefinitions(tools: AnyAgentTool[]): ToolDefinition[] { ### استراتيجية تقسيم الأدوات -تمرر `splitSdkTools()` جميع الأدوات عبر `customTools`: +تقوم `splitSdkTools()` بتمرير كل الأدوات عبر `customTools`: ```typescript export function splitSdkTools(options: { tools: AnyAgentTool[]; sandboxEnabled: boolean }) { @@ -290,34 +287,34 @@ export function splitSdkTools(options: { tools: AnyAgentTool[]; sandboxEnabled: } ``` -يضمن هذا بقاء تصفية السياسة في OpenClaw، وتكامل sandbox، ومجموعة الأدوات الموسعة متسقة عبر providers. +يضمن هذا أن تبقى تصفية السياسات في OpenClaw، وتكامل sandbox، ومجموعة الأدوات الموسّعة متّسقة عبر المزوّدين. -## بناء System Prompt +## إنشاء موجّه النظام -يُبنى system prompt في `buildAgentSystemPrompt()` ‏(`system-prompt.ts`). وهو يجمع prompt كاملة مع أقسام تشمل Tooling، وTool Call Style، وحواجز الأمان، ومرجع OpenClaw CLI، وSkills، وDocs، وWorkspace، وSandbox، وMessaging، وReply Tags، وVoice، وSilent Replies، وHeartbeats، وبيانات تعريف وقت التشغيل، بالإضافة إلى Memory وReactions عند التفعيل، وملفات سياق اختيارية ومحتوى system prompt إضافي. ويتم تقليم الأقسام لاستخدام وضع prompt الأدنى المستخدم مع الوكلاء الفرعيين. +يُبنى موجّه النظام في `buildAgentSystemPrompt()` ضمن `system-prompt.ts`. ويجمّع موجّهًا كاملًا يتضمن أقسامًا مثل الأدوات، وأسلوب استدعاء الأدوات، وضوابط الأمان، ومرجع OpenClaw CLI، وSkills، والوثائق، ومساحة العمل، وsandbox، والمراسلة، ووسوم الرد، والأسلوب، والردود الصامتة، وHeartbeat، وبيانات وقت التشغيل الوصفية، بالإضافة إلى الذاكرة والتفاعلات عند تفعيلهما، وكذلك ملفات السياق الاختيارية ومحتوى موجّه النظام الإضافي. وتُقصّ الأقسام لتناسب وضع الموجّه الأدنى المستخدم بواسطة الوكلاء الفرعيين. -تُطبَّق prompt بعد إنشاء الجلسة عبر `applySystemPromptOverrideToSession()`: +يُطبَّق الموجّه بعد إنشاء الجلسة عبر `applySystemPromptOverrideToSession()`: ```typescript const systemPromptOverride = createSystemPromptOverride(appendPrompt); applySystemPromptOverrideToSession(session, systemPromptOverride); ``` -## إدارة الجلسات +## إدارة الجلسة -### ملفات الجلسات +### ملفات الجلسة -الجلسات هي ملفات JSONL ذات بنية شجرية (ربط عبر id/parentId). ويتولى `SessionManager` في Pi الاستمرارية: +الجلسات عبارة عن ملفات JSONL ذات بنية شجرية (ربط عبر id/parentId). ويتولى `SessionManager` في Pi الاستمرارية: ```typescript const sessionManager = SessionManager.open(params.sessionFile); ``` -ويلف OpenClaw هذا باستخدام `guardSessionManager()` لسلامة نتائج الأدوات. +ويغلّف OpenClaw هذا باستخدام `guardSessionManager()` لضمان أمان نتائج الأدوات. ### التخزين المؤقت للجلسة -يخزن `session-manager-cache.ts` مثيلات SessionManager مؤقتًا لتجنب تحليل الملفات بشكل متكرر: +يقوم `session-manager-cache.ts` بتخزين مثيلات SessionManager مؤقتًا لتجنب تحليل الملفات بشكل متكرر: ```typescript await prewarmSessionFile(params.sessionFile); @@ -327,11 +324,11 @@ trackSessionManagerAccess(params.sessionFile); ### تحديد السجل -يقوم `limitHistoryTurns()` بتقليم سجل المحادثة وفقًا لنوع القناة (رسالة مباشرة مقابل مجموعة). +تقوم `limitHistoryTurns()` بقص سجل المحادثة حسب نوع القناة (رسائل مباشرة مقابل مجموعة). ### Compaction -يتم تشغيل Compaction التلقائي عند تجاوز السياق. وتشمل تواقيع تجاوز السياق الشائعة +يُفعَّل Compaction التلقائي عند تجاوز السياق. وتشمل توقيعات التجاوز الشائعة `request_too_large` و`context length exceeded` و`input exceeds the maximum number of tokens` و`input token count exceeds the maximum number of input tokens` و`input is too long for the model` و`ollama error: context @@ -348,14 +345,14 @@ const compactResult = await compactEmbeddedPiSessionDirect({ ### ملفات تعريف المصادقة -يحافظ OpenClaw على مخزن لملفات تعريف المصادقة مع عدة مفاتيح API لكل provider: +يحافظ OpenClaw على مخزن لملفات تعريف المصادقة يتضمن عدة مفاتيح API لكل مزوّد: ```typescript const authStore = ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false }); const profileOrder = resolveAuthProfileOrder({ cfg, store: authStore, provider, preferredProfile }); ``` -تدور الملفات الشخصية عند الإخفاقات مع تتبع cooldown: +تُدوَّر الملفات الشخصية عند الفشل مع تتبع فترة التهدئة: ```typescript await markAuthProfileFailure({ store, profileId, reason, cfg, agentDir }); @@ -378,9 +375,9 @@ const { model, error, authStorage, modelRegistry } = resolveModel( authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey); ``` -### Failover +### تجاوز الفشل -يؤدي `FailoverError` إلى تشغيل fallback للنموذج عند ضبطه: +يؤدي `FailoverError` إلى تشغيل الرجوع إلى نموذج بديل عند ضبط ذلك: ```typescript if (fallbackConfigured && isFailoverErrorMessage(errorText)) { @@ -396,11 +393,11 @@ if (fallbackConfigured && isFailoverErrorMessage(errorText)) { ## امتدادات Pi -يقوم OpenClaw بتحميل امتدادات Pi مخصصة لسلوكيات متخصصة: +يحمّل OpenClaw امتدادات Pi مخصصة لسلوكيات متخصصة: -### Compaction Safeguard +### حماية Compaction -يضيف `src/agents/pi-hooks/compaction-safeguard.ts` حواجز حماية إلى Compaction، بما في ذلك ميزانية الرموز التكيفية إضافةً إلى ملخصات فشل الأدوات وعمليات الملفات: +يضيف `src/agents/pi-hooks/compaction-safeguard.ts` ضوابط حماية إلى Compaction، بما في ذلك موازنة تكيفية لميزانية التوكنات بالإضافة إلى ملخصات فشل الأدوات وعمليات الملفات: ```typescript if (resolveCompactionMode(params.cfg) === "safeguard") { @@ -411,7 +408,7 @@ if (resolveCompactionMode(params.cfg) === "safeguard") { ### تقليم السياق -ينفذ `src/agents/pi-hooks/context-pruning.ts` تقليم السياق القائم على Cache-TTL: +ينفذ `src/agents/pi-hooks/context-pruning.ts` تقليم السياق المعتمد على Cache-TTL: ```typescript if (cfg?.agents?.defaults?.contextPruning?.mode === "cache-ttl") { @@ -425,9 +422,9 @@ if (cfg?.agents?.defaults?.contextPruning?.mode === "cache-ttl") { } ``` -## البث والردود الكتلية +## البث وردود الكتل -### تقطيع الكتل +### تجزئة الكتل يدير `EmbeddedBlockChunker` بث النص إلى كتل رد منفصلة: @@ -448,7 +445,7 @@ const stripBlockTags = (text: string, state: { thinking: boolean; final: boolean ### توجيهات الرد -تُحلَّل وتُستخرج توجيهات الرد مثل `[[media:url]]` و`[[voice]]` و`[[reply:id]]`: +تُحلَّل توجيهات الرد مثل `[[media:url]]` و`[[voice]]` و`[[reply:id]]` وتُستخرج: ```typescript const { text: cleanedText, mediaUrls, audioAsVoice, replyToId } = consumeReplyDirectives(chunk); @@ -458,7 +455,7 @@ const { text: cleanedText, mediaUrls, audioAsVoice, replyToId } = consumeReplyDi ### تصنيف الأخطاء -يقوم `pi-embedded-helpers.ts` بتصنيف الأخطاء من أجل المعالجة المناسبة: +يقوم `pi-embedded-helpers.ts` بتصنيف الأخطاء للتعامل المناسب معها: ```typescript isContextOverflowError(errorText) // Context too large @@ -469,9 +466,9 @@ isFailoverAssistantError(...) // Should failover classifyFailoverReason(errorText) // "auth" | "rate_limit" | "quota" | "timeout" | ... ``` -### fallback لمستوى التفكير +### الرجوع في مستوى التفكير -إذا كان مستوى التفكير غير مدعوم، فسيتم الرجوع إلى مستوى بديل: +إذا لم يكن مستوى التفكير مدعومًا، فسيجري الرجوع إلى مستوى بديل: ```typescript const fallbackThinking = pickFallbackThinkingLevel({ @@ -484,7 +481,7 @@ if (fallbackThinking) { } ``` -## تكامل Sandbox +## تكامل sandbox عند تفعيل وضع sandbox، تُقيَّد الأدوات والمسارات: @@ -502,59 +499,59 @@ if (sandboxRoot) { } ``` -## المعالجة الخاصة بالـ Provider +## التعامل الخاص بالمزوّد ### Anthropic -- تنقية سلسلة الرفض السحرية +- تنظيف سلسلة الرفض السحرية - التحقق من الأدوار المتتالية -- تحقق صارم من معلمات أدوات Pi upstream +- تحقق صارم من معاملات أدوات Pi في الطرف العلوي ### Google/Gemini -- تنقية مخطط الأدوات المملوكة للـ Plugin +- تنقية مخطط الأدوات المملوك للـ Plugin ### OpenAI - أداة `apply_patch` لنماذج Codex -- معالجة خفض مستوى التفكير +- التعامل مع خفض مستوى التفكير ## تكامل TUI -يمتلك OpenClaw أيضًا وضع TUI محليًا يستخدم مكونات pi-tui مباشرة: +يمتلك OpenClaw أيضًا وضع TUI محليًا يستخدم مكوّنات pi-tui مباشرة: ```typescript // src/tui/tui.ts import { ... } from "@mariozechner/pi-tui"; ``` -يوفر هذا تجربة الطرفية التفاعلية المشابهة للوضع الأصلي في Pi. +ويوفر هذا تجربة طرفية تفاعلية مشابهة للوضع الأصلي في Pi. -## الاختلافات الأساسية عن Pi CLI +## الفروق الرئيسية عن Pi CLI -| الجانب | Pi CLI | OpenClaw Embedded | -| ------ | ------ | ----------------- | -| الاستدعاء | أمر `pi` / ‏RPC | SDK عبر `createAgentSession()` | -| الأدوات | أدوات البرمجة الافتراضية | مجموعة أدوات OpenClaw مخصصة | -| system prompt | ‏AGENTS.md + prompts | ديناميكية لكل قناة/سياق | -| تخزين الجلسات | `~/.pi/agent/sessions/` | `~/.openclaw/agents//sessions/` ‏(أو `$OPENCLAW_STATE_DIR/agents//sessions/`) | -| المصادقة | بيانات اعتماد واحدة | ملفات شخصية متعددة مع تدوير | -| الامتدادات | تُحمَّل من القرص | برمجيًا + مسارات قرص | -| معالجة الأحداث | عرض TUI | قائم على callbacks ‏(`onBlockReply`، وغير ذلك) | +| الجانب | Pi CLI | OpenClaw المضمّن | +| --------------- | ----------------------- | ------------------------------------------------------------------------------------------------ | +| الاستدعاء | أمر `pi` / RPC | SDK عبر `createAgentSession()` | +| الأدوات | أدوات البرمجة الافتراضية | مجموعة أدوات OpenClaw المخصّصة | +| موجّه النظام | `AGENTS.md` + prompts | ديناميكي لكل قناة/سياق | +| تخزين الجلسة | `~/.pi/agent/sessions/` | `~/.openclaw/agents//sessions/` (أو `$OPENCLAW_STATE_DIR/agents//sessions/`) | +| المصادقة | بيانات اعتماد واحدة | عدة ملفات شخصية مع تدوير | +| الامتدادات | تُحمّل من القرص | مسارات برمجية + من القرص | +| معالجة الأحداث | عرض TUI | قائم على الاستدعاءات الراجعة (`onBlockReply` وغيرها) | ## اعتبارات مستقبلية -مجالات محتملة لإعادة العمل: +مجالات يمكن إعادة العمل عليها: -1. **محاذاة توقيع الأدوات**: يوجد حاليًا تكييف بين تواقيع pi-agent-core وpi-coding-agent -2. **لف Session Manager**: يضيف `guardSessionManager` أمانًا لكنه يزيد التعقيد -3. **تحميل الامتدادات**: يمكن أن يستخدم `ResourceLoader` الخاص بـ pi بشكل أكثر مباشرة -4. **تعقيد معالج البث**: نما `subscribeEmbeddedPiSession` كثيرًا -5. **غرائب providers**: توجد مسارات كود كثيرة خاصة بالـ provider يمكن لـ pi ربما التعامل معها +1. **محاذاة توقيع الأدوات**: يوجد حاليًا تكييف بين توقيعات pi-agent-core وpi-coding-agent +2. **تغليف مدير الجلسة**: تضيف `guardSessionManager` أمانًا لكنها تزيد التعقيد +3. **تحميل الامتدادات**: يمكن استخدام `ResourceLoader` الخاص بـ Pi بشكل أكثر مباشرة +4. **تعقيد معالج البث**: نما `subscribeEmbeddedPiSession` وأصبح كبيرًا +5. **خصائص المزوّدين**: توجد مسارات شيفرة كثيرة خاصة بالمزوّدين قد تتمكن Pi من التعامل معها مستقبلًا ## الاختبارات -تمتد تغطية تكامل Pi عبر هذه المجموعات: +يمتد تغطية تكامل Pi عبر هذه المجموعات: - `src/agents/pi-*.test.ts` - `src/agents/pi-auth-json.test.ts` @@ -568,13 +565,13 @@ import { ... } from "@mariozechner/pi-tui"; - `src/agents/pi-settings.test.ts` - `src/agents/pi-hooks/**/*.test.ts` -مباشر/اختياري: +البث المباشر/الاشتراك الاختياري: -- `src/agents/pi-embedded-runner-extraparams.live.test.ts` ‏(فعّل `OPENCLAW_LIVE_TEST=1`) +- `src/agents/pi-embedded-runner-extraparams.live.test.ts` (فعّل `OPENCLAW_LIVE_TEST=1`) -لأوامر التشغيل الحالية، راجع [سير عمل تطوير Pi](/ar/pi-dev). +للاطلاع على أوامر التشغيل الحالية، راجع [سير عمل تطوير Pi](/ar/pi-dev). -## ذو صلة +## ذي صلة - [سير عمل تطوير Pi](/ar/pi-dev) - [نظرة عامة على التثبيت](/ar/install) diff --git a/docs/ar/providers/deepseek.md b/docs/ar/providers/deepseek.md index 8ba3e0a8c..f0f5c3b3b 100644 --- a/docs/ar/providers/deepseek.md +++ b/docs/ar/providers/deepseek.md @@ -1,42 +1,42 @@ --- read_when: - تريد استخدام DeepSeek مع OpenClaw - - تحتاج إلى متغير البيئة الخاص بمفتاح API أو خيار مصادقة CLI + - تحتاج إلى متغير البيئة لمفتاح API أو خيار المصادقة في CLI summary: إعداد DeepSeek (المصادقة + اختيار النموذج) title: DeepSeek x-i18n: - generated_at: "2026-04-24T07:58:21Z" + generated_at: "2026-04-24T15:22:02Z" model: gpt-5.4 provider: openai - source_hash: ead407c67c05bd8700db1cba36defdd9d47bdc9a071c76a07c4b4fb82f6b80e2 + source_hash: 5b0d2345c72328e14351d71c5784204dc6ed9dc922f919b6adfac394001c3261 source_path: providers/deepseek.md workflow: 15 --- -يوفر [DeepSeek](https://www.deepseek.com) نماذج ذكاء اصطناعي قوية عبر API متوافق مع OpenAI. +[DeepSeek](https://www.deepseek.com) يوفّر نماذج ذكاء اصطناعي قوية عبر واجهة API متوافقة مع OpenAI. | الخاصية | القيمة | | -------- | -------------------------- | -| الموفّر | `deepseek` | +| المزوّد | `deepseek` | | المصادقة | `DEEPSEEK_API_KEY` | | API | متوافق مع OpenAI | -| Base URL | `https://api.deepseek.com` | +| عنوان URL الأساسي | `https://api.deepseek.com` | ## البدء - أنشئ مفتاح API على [platform.deepseek.com](https://platform.deepseek.com/api_keys). + أنشئ مفتاح API من [platform.deepseek.com](https://platform.deepseek.com/api_keys). - + ```bash openclaw onboard --auth-choice deepseek-api-key ``` - سيطلب هذا مفتاح API الخاص بك ويضبط `deepseek/deepseek-chat` بوصفه النموذج الافتراضي. + سيطلب هذا مفتاح API الخاص بك ويضبط `deepseek/deepseek-v4-flash` كنموذج افتراضي. - + ```bash openclaw models list --provider deepseek ``` @@ -45,7 +45,7 @@ x-i18n: - بالنسبة إلى عمليات التثبيت المؤتمتة أو غير المزودة بواجهة، مرّر جميع العلامات مباشرة: + بالنسبة إلى عمليات التثبيت المؤتمتة أو بدون واجهة، مرّر جميع العلامات مباشرة: ```bash openclaw onboard --non-interactive \ @@ -60,30 +60,34 @@ x-i18n: -إذا كان Gateway يعمل كخدمة daemon ‏(`launchd`/`systemd`)، فتأكد من أن `DEEPSEEK_API_KEY` -متاح لتلك العملية (على سبيل المثال في `~/.openclaw/.env` أو عبر +إذا كان Gateway يعمل كخدمة daemon ‏(launchd/systemd)، فتأكد من أن `DEEPSEEK_API_KEY` +متاح لتلك العملية (على سبيل المثال، في `~/.openclaw/.env` أو عبر `env.shellEnv`). -## الفهرس المضمن +## الفهرس المدمج -| مرجع النموذج | الاسم | الإدخال | السياق | الحد الأقصى للإخراج | ملاحظات | -| ---------------------------- | ----------------- | ------- | ------- | ------------------- | --------------------------------------------------- | -| `deepseek/deepseek-chat` | DeepSeek Chat | text | 131,072 | 8,192 | النموذج الافتراضي؛ واجهة DeepSeek V3.2 غير الخاصة بالتفكير | -| `deepseek/deepseek-reasoner` | DeepSeek Reasoner | text | 131,072 | 65,536 | واجهة V3.2 مع تمكين الاستدلال | +| مرجع النموذج | الاسم | الإدخال | السياق | الحد الأقصى للإخراج | ملاحظات | +| ---------------------------- | ----------------- | ------- | --------- | ------------------- | ------------------------------------------ | +| `deepseek/deepseek-v4-flash` | DeepSeek V4 Flash | text | 1,000,000 | 384,000 | النموذج الافتراضي؛ واجهة V4 تدعم التفكير | +| `deepseek/deepseek-v4-pro` | DeepSeek V4 Pro | text | 1,000,000 | 384,000 | واجهة V4 تدعم التفكير | +| `deepseek/deepseek-chat` | DeepSeek Chat | text | 131,072 | 8,192 | واجهة DeepSeek V3.2 بدون تفكير | +| `deepseek/deepseek-reasoner` | DeepSeek Reasoner | text | 131,072 | 65,536 | واجهة V3.2 مع تمكين الاستدلال | -يعلن كلا النموذجين المضمنين حاليًا عن توافق استخدام البث في المصدر. +تدعم نماذج V4 عنصر التحكم `thinking` الخاص بـ DeepSeek. كما يعيد OpenClaw أيضًا +تشغيل `reasoning_content` من DeepSeek في الأدوار اللاحقة حتى تتمكن جلسات التفكير +التي تتضمن استدعاءات الأدوات من الاستمرار. -## مثال على التهيئة +## مثال على الإعداد ```json5 { env: { DEEPSEEK_API_KEY: "sk-..." }, agents: { defaults: { - model: { primary: "deepseek/deepseek-chat" }, + model: { primary: "deepseek/deepseek-v4-flash" }, }, }, } @@ -93,9 +97,9 @@ x-i18n: - اختيار الموفّرين، ومراجع النماذج، وسلوك التبديل الاحتياطي. + اختيار المزوّدين ومراجع النماذج وسلوك التبديل الاحتياطي. - - المرجع الكامل لتهيئة الوكلاء والنماذج والموفّرين. + + مرجع الإعدادات الكامل للوكلاء والنماذج والمزوّدين. diff --git a/docs/ar/tools/plugin.md b/docs/ar/tools/plugin.md index 7bfdc8d36..9425097a1 100644 --- a/docs/ar/tools/plugin.md +++ b/docs/ar/tools/plugin.md @@ -1,36 +1,36 @@ --- read_when: - - تثبيت Plugins أو تكوينها - - فهم قواعد اكتشاف Plugin وتحميله - - العمل مع حزم Plugin المتوافقة مع Codex/Claude + - تثبيت الإضافات أو إعدادها + - فهم اكتشاف الإضافات وقواعد التحميل + - العمل مع حِزم الإضافات المتوافقة مع Codex/Claude sidebarTitle: Install and Configure -summary: تثبيت Plugins في OpenClaw وتكوينها وإدارتها -title: Plugins +summary: تثبيت وإعداد وإدارة إضافات OpenClaw +title: الإضافات x-i18n: - generated_at: "2026-04-24T09:02:39Z" + generated_at: "2026-04-24T15:21:59Z" model: gpt-5.4 provider: openai - source_hash: 83ab1218d6677ad518a4991ca546d55eed9648e1fa92b76b7433ecd5df569e28 + source_hash: 947bb7ffc13280fd63f79bb68cb18a37c6614144b91a83afd38e5ac3c5187aed source_path: tools/plugin.md workflow: 15 --- -توسّع Plugins قدرات OpenClaw بإمكانات جديدة: القنوات، وموفّرو النماذج، -وأطر تشغيل الوكلاء، والأدوات، وSkills، والكلام، والنسخ الفوري، والصوت -الفوري، وفهم الوسائط، وتوليد الصور، وتوليد الفيديو، وجلب الويب، والبحث على -الويب، وغير ذلك. بعض Plugins **أساسية** (تأتي مع OpenClaw)، وأخرى +توسّع الإضافات OpenClaw بإمكانات جديدة: القنوات، وموفّرو النماذج، +وأُطر تشغيل الوكلاء، والأدوات، وSkills، والصوت، والنسخ الفوري، والصوت +الفوري، وفهم الوسائط، وتوليد الصور، وتوليد الفيديو، وجلب الويب، والبحث +في الويب، وغير ذلك. بعض الإضافات **أساسية** (تأتي مع OpenClaw)، وأخرى **خارجية** (ينشرها المجتمع على npm). ## البدء السريع - + ```bash openclaw plugins list ``` - + ```bash # من npm openclaw plugins install @openclaw/voice-call @@ -47,12 +47,12 @@ x-i18n: openclaw gateway restart ``` - ثم قم بالتكوين ضمن `plugins.entries.\.config` في ملف الإعداد لديك. + ثم اضبط الإعدادات ضمن `plugins.entries.\.config` في ملف الإعدادات الخاص بك. -إذا كنت تفضّل التحكم من داخل الدردشة، فعّل `commands.plugins: true` واستخدم: +إذا كنت تفضّل التحكّم عبر الدردشة، فعِّل `commands.plugins: true` واستخدم: ```text /plugin install clawhub:@openclaw/voice-call @@ -60,40 +60,40 @@ x-i18n: /plugin enable voice-call ``` -يستخدم مسار التثبيت نفس محلّل المسارات الذي يستخدمه CLI: مسار/أرشيف محلي، أو +يستخدم مسار التثبيت نفس محلّل المسارات الذي تستخدمه CLI: مسار/أرشيف محلي، أو `clawhub:` صريح، أو مواصفة حزمة مجردة (ClawHub أولًا، ثم الرجوع إلى npm). -إذا كان الإعداد غير صالح، فعادةً ما يفشل التثبيت بشكل مغلق ويوجّهك إلى -`openclaw doctor --fix`. الاستثناء الوحيد للاستعادة هو مسار ضيق لإعادة تثبيت -Plugin مضمّن، وذلك بالنسبة إلى Plugins التي تختار +إذا كانت الإعدادات غير صالحة، فعادةً ما يفشل التثبيت بشكل آمن ويوجهك إلى +`openclaw doctor --fix`. الاستثناء الوحيد للاسترداد هو مسار ضيق لإعادة تثبيت +الإضافات المضمّنة للإضافات التي تختار `openclaw.install.allowInvalidConfigRecovery`. -لا تقوم عمليات تثبيت OpenClaw المعبأة بتثبيت شجرة تبعيات وقت التشغيل لكل Plugin -مضمّن بشكل استباقي. عندما يكون Plugin مضمّن ومملوك لـ OpenClaw نشطًا من خلال -إعداد Plugin، أو إعداد قناة قديم، أو ملف manifest مفعّل افتراضيًا، -فإن إصلاحات بدء التشغيل تصلح فقط تبعيات وقت التشغيل المعلنة لذلك Plugin قبل -استيراده. أما Plugins الخارجية ومسارات التحميل المخصصة فلا تزال بحاجة إلى -التثبيت عبر `openclaw plugins install`. +عمليات تثبيت OpenClaw المعبأة لا تثبّت بشكل مسبق شجرة تبعيات وقت التشغيل لكل إضافة +مضمّنة. عندما تكون إضافة مملوكة لـ OpenClaw ومضمّنة نشطة من خلال إعدادات +الإضافات، أو إعدادات القنوات القديمة، أو بيان مفعّل افتراضيًا، فإن إصلاحات +بدء التشغيل تصلح فقط تبعيات وقت التشغيل المعلنة لتلك الإضافة قبل استيرادها. +أما الإضافات الخارجية ومسارات التحميل المخصصة، فيجب تثبيتها عبر +`openclaw plugins install`. -## أنواع Plugins +## أنواع الإضافات -يتعرف OpenClaw على تنسيقين لـ Plugins: +يتعرّف OpenClaw على تنسيقين للإضافات: -| التنسيق | كيف يعمل | أمثلة | -| ----------- | ---------------------------------------------------------------- | ------------------------------------------------------ | -| **Native** | `openclaw.plugin.json` + وحدة وقت تشغيل؛ يُنفَّذ داخل العملية | Plugins الرسمية، وحزم npm المجتمعية | -| **Bundle** | تخطيط متوافق مع Codex/Claude/Cursor؛ يُربَط بميزات OpenClaw | `.codex-plugin/`, `.claude-plugin/`, `.cursor-plugin/` | +| التنسيق | كيف يعمل | أمثلة | +| ---------- | ---------------------------------------------------------------- | ------------------------------------------------------ | +| **أصلي** | `openclaw.plugin.json` + وحدة وقت تشغيل؛ يُنفَّذ داخل العملية | الإضافات الرسمية، وحزم npm المجتمعية | +| **حزمة** | تخطيط متوافق مع Codex/Claude/Cursor؛ يُربط بميزات OpenClaw | `.codex-plugin/`، `.claude-plugin/`، `.cursor-plugin/` | -يظهر كلاهما ضمن `openclaw plugins list`. راجع [حِزم Plugins](/ar/plugins/bundles) لمعرفة تفاصيل الحِزم. +يظهر كلاهما ضمن `openclaw plugins list`. راجع [حِزم الإضافات](/ar/plugins/bundles) لمعرفة تفاصيل الحِزم. -إذا كنت تكتب Plugin Native، فابدأ بـ [بناء Plugins](/ar/plugins/building-plugins) +إذا كنت تكتب إضافة أصلية، فابدأ من [بناء الإضافات](/ar/plugins/building-plugins) و[نظرة عامة على Plugin SDK](/ar/plugins/sdk-overview). -## Plugins الرسمية +## الإضافات الرسمية ### قابلة للتثبيت (npm) -| Plugin | الحزمة | الوثائق | +| الإضافة | الحزمة | الوثائق | | --------------- | ---------------------- | ------------------------------------ | | Matrix | `@openclaw/matrix` | [Matrix](/ar/channels/matrix) | | Microsoft Teams | `@openclaw/msteams` | [Microsoft Teams](/ar/channels/msteams) | @@ -113,24 +113,24 @@ Plugin مضمّن، وذلك بالنسبة إلى Plugins التي تختار `vercel-ai-gateway`, `volcengine`, `xiaomi`, `zai` - + - `memory-core` — بحث ذاكرة مضمّن (الافتراضي عبر `plugins.slots.memory`) - - `memory-lancedb` — ذاكرة طويلة الأمد تُثبَّت عند الطلب مع استدعاء/التقاط تلقائيين (اضبط `plugins.slots.memory = "memory-lancedb"`) + - `memory-lancedb` — ذاكرة طويلة الأمد تُثبَّت عند الطلب مع الاستدعاء/الالتقاط التلقائي (عيّن `plugins.slots.memory = "memory-lancedb"`) - + `elevenlabs`, `microsoft` - - `browser` — Plugin متصفح مضمّن لأداة المتصفح، وCLI `openclaw browser`، وطريقة Gateway `browser.request`، ووقت تشغيل المتصفح، وخدمة التحكم الافتراضية بالمتصفح (مفعّل افتراضيًا؛ عطّله قبل استبداله) + - `browser` — إضافة متصفح مضمّنة لأداة المتصفح، وواجهة CLI `openclaw browser`، والطريقة `browser.request` في Gateway، ووقت تشغيل المتصفح، وخدمة التحكم الافتراضية في المتصفح (مفعّلة افتراضيًا؛ عطّلها قبل استبدالها) - `copilot-proxy` — جسر VS Code Copilot Proxy (معطّل افتراضيًا) -هل تبحث عن Plugins من جهات خارجية؟ راجع [Plugins المجتمع](/ar/plugins/community). +هل تبحث عن إضافات من أطراف خارجية؟ راجع [إضافات المجتمع](/ar/plugins/community). -## الإعداد +## الإعدادات ```json5 { @@ -146,94 +146,129 @@ Plugin مضمّن، وذلك بالنسبة إلى Plugins التي تختار } ``` -| الحقل | الوصف | -| ---------------- | -------------------------------------------------------- | -| `enabled` | مفتاح التشغيل الرئيسي (الافتراضي: `true`) | -| `allow` | قائمة السماح لـ Plugins (اختياري) | -| `deny` | قائمة الحظر لـ Plugins (اختياري؛ الحظر له الأولوية) | -| `load.paths` | ملفات/أدلة Plugins إضافية | -| `slots` | محددات الفتحات الحصرية (مثل `memory` و`contextEngine`) | -| `entries.\` | مفاتيح التفعيل/التعطيل + الإعداد لكل Plugin | +| الحقل | الوصف | +| ---------------- | --------------------------------------------------------- | +| `enabled` | مفتاح تشغيل رئيسي (الافتراضي: `true`) | +| `allow` | قائمة سماح للإضافات (اختياري) | +| `deny` | قائمة حظر للإضافات (اختياري؛ الحظر له الأولوية) | +| `load.paths` | ملفات/أدلة إضافات إضافية | +| `slots` | محددات خانات حصرية (مثل `memory` و`contextEngine`) | +| `entries.\` | مفاتيح تشغيل وتعطيل وإعدادات لكل إضافة | -تتطلب تغييرات الإعداد **إعادة تشغيل Gateway**. إذا كان Gateway يعمل مع -مراقبة الإعداد وإعادة التشغيل داخل العملية (وهو المسار الافتراضي `openclaw gateway`)، -فعادةً ما يتم تنفيذ إعادة التشغيل هذه تلقائيًا بعد لحظات من وصول كتابة الإعداد. +تغييرات الإعدادات **تتطلب إعادة تشغيل Gateway**. إذا كان Gateway يعمل مع +مراقبة الإعدادات + إعادة تشغيل داخل العملية مفعّلتين (وهو المسار الافتراضي +لـ `openclaw gateway`)، فعادةً ما تُنفَّذ إعادة التشغيل تلقائيًا بعد لحظة +من وصول كتابة الإعدادات. لا يوجد مسار مدعوم لإعادة التحميل الفوري لشفرة وقت +تشغيل الإضافات الأصلية أو خطافات دورة الحياة؛ أعِد تشغيل عملية Gateway التي +تخدم القناة الحية قبل توقّع تشغيل شفرة `register(api)` المحدّثة، أو خطافات +`api.on(...)`، أو الأدوات، أو الخدمات، أو خطافات الموفّر/وقت التشغيل. - - - **معطّل**: الـ Plugin موجود لكن قواعد التفعيل أوقفته. يتم الاحتفاظ بالإعداد. - - **مفقود**: يشير الإعداد إلى معرّف Plugin لم يعثر عليه الاكتشاف. - - **غير صالح**: الـ Plugin موجود لكن إعداده لا يطابق المخطط المعلن. +يمثل `openclaw plugins list` لقطة محلية من CLI/الإعدادات. وجود إضافة بحالة +`loaded` هناك يعني أن الإضافة قابلة للاكتشاف والتحميل من الإعدادات/الملفات +التي تراها عملية CLI تلك. لكنه لا يثبت أن عملية Gateway الفرعية البعيدة +العاملة حاليًا قد أُعيد تشغيلها إلى نفس شفرة الإضافة. في إعدادات VPS/الحاويات +التي تستخدم عمليات تغليف، أرسل إعادة التشغيل إلى العملية الفعلية +`openclaw gateway run`، أو استخدم `openclaw gateway restart` مع Gateway +قيد التشغيل. + + + - **معطّلة**: الإضافة موجودة لكن قواعد التفعيل عطّلتها. يتم الاحتفاظ بالإعدادات. + - **مفقودة**: تشير الإعدادات إلى معرّف إضافة لم يعثر عليه الاكتشاف. + - **غير صالحة**: الإضافة موجودة لكن إعداداتها لا تطابق المخطط المعلن. ## الاكتشاف والأولوية -يفحص OpenClaw Plugins بهذا الترتيب (أول تطابق هو الذي يفوز): +يفحص OpenClaw الإضافات بهذا الترتيب (أول تطابق يفوز): - + `plugins.load.paths` — مسارات ملفات أو أدلة صريحة. - + `\/.openclaw//*.ts` و `\/.openclaw//*/index.ts`. - + `~/.openclaw//*.ts` و `~/.openclaw//*/index.ts`. - - تأتي مع OpenClaw. كثير منها مفعّل افتراضيًا (موفّرو النماذج، والكلام). - وبعضها الآخر يتطلب تفعيلًا صريحًا. + + تأتي مع OpenClaw. كثير منها مفعّل افتراضيًا (موفّرو النماذج، والصوت). + بينما يتطلب بعضها الآخر تفعيلًا صريحًا. ### قواعد التفعيل -- `plugins.enabled: false` يعطّل جميع Plugins -- `plugins.deny` يتغلب دائمًا على allow -- `plugins.entries.\.enabled: false` يعطّل ذلك Plugin -- Plugins ذات المصدر من مساحة العمل تكون **معطلة افتراضيًا** (ويجب تفعيلها صراحةً) -- Plugins المضمّنة تتبع مجموعة التفعيل الافتراضي المدمجة ما لم يتم تجاوزها -- يمكن للفتحات الحصرية فرض تفعيل Plugin المحدد لتلك الفتحة -- يتم تفعيل بعض Plugins المضمّنة الاختيارية تلقائيًا عندما يذكر الإعداد - سطحًا يملكه Plugin، مثل مرجع نموذج موفّر، أو إعداد قناة، أو وقت تشغيل harness -- تحافظ مسارات Codex من عائلة OpenAI على حدود Plugins منفصلة: - `openai-codex/*` ينتمي إلى OpenAI Plugin، بينما يتم اختيار - Plugin app-server المضمّن الخاص بـ Codex عبر `embeddedHarness.runtime: "codex"` أو - مراجع النماذج القديمة `codex/*` +- `plugins.enabled: false` يعطّل جميع الإضافات +- `plugins.deny` له الأولوية دائمًا على allow +- `plugins.entries.\.enabled: false` يعطّل تلك الإضافة +- الإضافات ذات المصدر من مساحة العمل تكون **معطّلة افتراضيًا** (ويجب تفعيلها صراحةً) +- تتبع الإضافات المضمّنة مجموعة التفعيل الافتراضي المدمجة ما لم يتم تجاوزها +- يمكن للخانات الحصرية فرض تفعيل الإضافة المحددة لتلك الخانة +- بعض الإضافات المضمّنة التي تتطلب الاشتراك يتم تفعيلها تلقائيًا عندما تسمّي + الإعدادات سطحًا تملكه الإضافة، مثل مرجع نموذج مزوّد، أو إعدادات قناة، أو + وقت تشغيل harness +- تحتفظ مسارات Codex من عائلة OpenAI بحدود إضافات منفصلة: + `openai-codex/*` ينتمي إلى إضافة OpenAI، بينما يتم اختيار إضافة خادم تطبيق + Codex المضمّنة عبر `embeddedHarness.runtime: "codex"` أو مراجع النماذج + القديمة `codex/*` -## فتحات Plugins (فئات حصرية) +## استكشاف أخطاء خطافات وقت التشغيل وإصلاحها -بعض الفئات حصرية (يمكن أن يكون واحد فقط نشطًا في كل مرة): +إذا ظهرت إضافة في `plugins list` لكن التأثيرات الجانبية لـ `register(api)` أو +الخطافات لا تعمل في حركة الدردشة الحية، فتحقق أولًا من التالي: + +- شغّل `openclaw gateway status --deep --require-rpc` وأكّد أن عنوان URL الخاص + بـ Gateway النشط، والملف الشخصي، ومسار الإعدادات، والعملية هي نفسها التي + تعدّلها. +- أعِد تشغيل Gateway الحي بعد تغييرات تثبيت الإضافة/الإعدادات/الشفرة. في + الحاويات المغلّفة، قد يكون PID 1 مجرد مشرف؛ أعِد تشغيل أو أرسل إشارة إلى + العملية الفرعية `openclaw gateway run`. +- استخدم `openclaw plugins inspect --json` لتأكيد تسجيلات الخطافات + والتشخيصات. تتطلب خطافات المحادثة غير المضمّنة مثل `llm_input`، + و`llm_output`، و`agent_end` الإعداد + `plugins.entries..hooks.allowConversationAccess=true`. +- عند تبديل النموذج، فضّل `before_model_resolve`. فهو يعمل قبل حل النموذج في + أدوار الوكيل؛ بينما لا يعمل `llm_output` إلا بعد أن تنتج محاولة نموذج + مخرجات للمساعد. +- لإثبات النموذج الفعّال للجلسة، استخدم `openclaw sessions` أو أسطح جلسة/حالة + Gateway، وعند تصحيح حمولات الموفّر، ابدأ Gateway مع + `--raw-stream --raw-stream-path `. + +## خانات الإضافات (فئات حصرية) + +بعض الفئات حصرية (لا يكون نشطًا إلا واحد فقط في كل مرة): ```json5 { plugins: { slots: { memory: "memory-core", // أو "none" للتعطيل - contextEngine: "legacy", // أو معرّف Plugin + contextEngine: "legacy", // أو معرّف إضافة }, }, } ``` -| الفتحة | ما الذي تتحكم به | الافتراضي | -| ---------------- | ---------------------- | ------------------- | -| `memory` | Active Memory plugin | `memory-core` | -| `contextEngine` | محرك السياق النشط | `legacy` (مدمج) | +| الخانة | ما الذي تتحكم به | الافتراضي | +| --------------- | --------------------- | ------------------- | +| `memory` | إضافة الذاكرة النشطة | `memory-core` | +| `contextEngine` | محرّك السياق النشط | `legacy` (مدمج) | ## مرجع CLI ```bash -openclaw plugins list # جرد مضغوط -openclaw plugins list --enabled # Plugins المحمّلة فقط -openclaw plugins list --verbose # أسطر تفاصيل لكل Plugin +openclaw plugins list # جرد موجز +openclaw plugins list --enabled # الإضافات المحمّلة فقط +openclaw plugins list --verbose # أسطر تفاصيل لكل إضافة openclaw plugins list --json # جرد قابل للقراءة آليًا openclaw plugins inspect # تفاصيل معمّقة openclaw plugins inspect --json # قابل للقراءة آليًا openclaw plugins inspect --all # جدول على مستوى المجموعة -openclaw plugins info # اسم بديل لـ inspect +openclaw plugins info # اسم مستعار لـ inspect openclaw plugins doctor # تشخيصات openclaw plugins install # تثبيت (ClawHub أولًا، ثم npm) @@ -245,10 +280,10 @@ openclaw plugins install --marketplace openclaw plugins install --marketplace https://github.com// openclaw plugins install --pin # تسجيل مواصفة npm المحلولة الدقيقة openclaw plugins install --dangerously-force-unsafe-install -openclaw plugins update # تحديث Plugin واحد +openclaw plugins update # تحديث إضافة واحدة openclaw plugins update --dangerously-force-unsafe-install openclaw plugins update --all # تحديث الكل -openclaw plugins uninstall # إزالة سجلات الإعداد/التثبيت +openclaw plugins uninstall # إزالة سجلات الإعدادات/التثبيت openclaw plugins uninstall --keep-files openclaw plugins marketplace list openclaw plugins marketplace list --json @@ -257,61 +292,64 @@ openclaw plugins enable openclaw plugins disable ``` -تأتي Plugins المضمّنة مع OpenClaw. كثير منها مفعّل افتراضيًا (على سبيل المثال -موفّرو النماذج المضمّنون، وموفّرو الكلام المضمّنون، وPlugin المتصفح -المضمّن). أما Plugins المضمّنة الأخرى فلا تزال تتطلب `openclaw plugins enable `. +تأتي الإضافات المضمّنة مع OpenClaw. كثير منها مفعّل افتراضيًا (على سبيل المثال +موفّرو النماذج المضمّنون، وموفّرو الصوت المضمّنون، وإضافة المتصفح +المضمّنة). بينما لا تزال إضافات مضمّنة أخرى تحتاج إلى +`openclaw plugins enable `. -يقوم `--force` بالكتابة فوق Plugin مثبت أو حزمة hook موجودة في مكانها. استخدم -`openclaw plugins update ` للترقيات الروتينية لـ Plugins npm -المتعقبة. لا يتم دعمه مع `--link`، الذي يعيد استخدام مسار المصدر بدلًا -من النسخ إلى هدف تثبيت مُدار. +يقوم `--force` بالكتابة فوق إضافة أو حزمة خطافات مثبّتة موجودة في مكانها. استخدم +`openclaw plugins update ` للترقيات الروتينية لإضافات npm +المتعقبة. ولا يكون مدعومًا مع `--link`، الذي يعيد استخدام مسار المصدر بدلًا +من النسخ فوق هدف تثبيت مُدار. -عندما يكون `plugins.allow` مضبوطًا بالفعل، يضيف `openclaw plugins install` معرّف -Plugin المثبت إلى قائمة السماح تلك قبل تفعيله، بحيث تصبح عمليات التثبيت -قابلة للتحميل مباشرة بعد إعادة التشغيل. +عندما يكون `plugins.allow` مضبوطًا بالفعل، فإن `openclaw plugins install` +يضيف معرّف الإضافة المثبّتة إلى قائمة السماح تلك قبل تفعيلها، بحيث تصبح +عمليات التثبيت قابلة للتحميل فورًا بعد إعادة التشغيل. -ينطبق `openclaw plugins update ` على عمليات التثبيت المتعقبة. يؤدي -تمرير مواصفة حزمة npm مع dist-tag أو إصدار دقيق إلى إعادة حل اسم الحزمة -إلى سجل Plugin المتعقَّب وتسجيل المواصفة الجديدة للتحديثات المستقبلية. -ويؤدي تمرير اسم الحزمة بدون إصدار إلى إعادة تثبيت مثبّت بإصدار دقيق إلى -خط الإصدار الافتراضي في السجل. إذا كان Plugin npm المثبّت يطابق بالفعل -الإصدار المحلول وهوية الأثر المسجلة، فسيتخطى OpenClaw التحديث -من دون تنزيل أو إعادة تثبيت أو إعادة كتابة للإعداد. +ينطبق `openclaw plugins update ` على عمليات التثبيت المتعقبة. إن +تمرير مواصفة حزمة npm مع dist-tag أو إصدار محدد يعيد حل اسم الحزمة إلى سجل +الإضافة المتعقّب ويسجّل المواصفة الجديدة للتحديثات المستقبلية. وتمرير اسم +الحزمة من دون إصدار يعيد التثبيت المثبّت بإصدار دقيق إلى خط الإصدار الافتراضي +في السجل. وإذا كانت إضافة npm المثبّتة تطابق بالفعل الإصدار المحلول وهوية +القطعة الأثرية المسجّلة، فإن OpenClaw يتخطى التحديث من دون تنزيل أو إعادة +تثبيت أو إعادة كتابة الإعدادات. -إن `--pin` خاص بـ npm فقط. ولا يتم دعمه مع `--marketplace`، لأن -عمليات التثبيت من marketplace تحفظ بيانات تعريف مصدر marketplace بدلًا من مواصفة npm. +`--pin` خاص بـ npm فقط. وهو غير مدعوم مع `--marketplace`، لأن +عمليات التثبيت من marketplace تحتفظ ببيانات تعريف مصدر marketplace بدلًا من +مواصفة npm. -إن `--dangerously-force-unsafe-install` هو تجاوز طارئ للحالات الإيجابية -الكاذبة من ماسح الشيفرة الخطرة المدمج. وهو يسمح باستمرار تثبيت Plugins -وتحديثاتها بعد نتائج `critical` المدمجة، لكنه مع ذلك -لا يتجاوز كتل سياسة Plugin `before_install` أو حظر فشل الفحص. +يمثل `--dangerously-force-unsafe-install` تجاوزًا اضطراريًا لحالات الإيجابيات +الكاذبة من ماسح الشيفرة الخطرة المدمج. فهو يسمح بمتابعة عمليات تثبيت +الإضافات وتحديثها رغم نتائج `critical` المدمجة، لكنه مع ذلك لا يتجاوز كتل +سياسات plugin `before_install` ولا حظر فشل الفحص. -ينطبق علم CLI هذا على تدفقات تثبيت/تحديث Plugin فقط. أما عمليات تثبيت تبعيات Skills -المعتمدة على Gateway فتستخدم بدلًا من ذلك تجاوز الطلب المطابق `dangerouslyForceUnsafeInstall`، بينما -يبقى `openclaw skills install` تدفق تنزيل/تثبيت Skills منفصلًا عبر ClawHub. +ينطبق علم CLI هذا على تدفقات تثبيت/تحديث الإضافات فقط. أما عمليات تثبيت +تبعيات Skills المعتمدة على Gateway فتستخدم بدلًا من ذلك تجاوز الطلب المطابق +`dangerouslyForceUnsafeInstall`، بينما يظل `openclaw skills install` تدفق +تنزيل/تثبيت Skills منفصلًا من ClawHub. -تشارك الحِزم المتوافقة في نفس تدفق list/inspect/enable/disable الخاص بـ Plugin. -يشمل دعم وقت التشغيل الحالي Skills الخاصة بالحِزم، وcommand-skills الخاصة بـ Claude، -وقيم Claude الافتراضية في `settings.json`، والقيم الافتراضية لكلٍّ من -Claude `.lsp.json` و`lspServers` المعلنة في manifest، وcommand-skills الخاصة بـ Cursor، -وأدلة hooks المتوافقة مع Codex. +تشارك الحِزم المتوافقة في نفس تدفق قائمة/فحص/تفعيل/تعطيل الإضافات. يتضمن دعم +وقت التشغيل الحالي Skills الخاصة بالحِزم، وClaude command-skills، +وافتراضيات Claude `settings.json`، وافتراضيات Claude `.lsp.json` و +`lspServers` المعلنة في البيان، وCursor command-skills، وأدلة خطافات +Codex المتوافقة. -كما يبلّغ `openclaw plugins inspect ` عن قدرات الحِزم المكتشفة بالإضافة إلى -إدخالات خوادم MCP وLSP المدعومة أو غير المدعومة لـ Plugins المعتمدة على الحِزم. +يعرض `openclaw plugins inspect ` أيضًا إمكانات الحِزم المكتشفة بالإضافة إلى +إدخالات خوادم MCP وLSP المدعومة أو غير المدعومة للإضافات المدعومة بالحِزم. -يمكن أن تكون مصادر Marketplace اسم marketplace معروفًا لدى Claude من -`~/.claude/plugins/known_marketplaces.json`، أو جذر Marketplace محليًا أو -مسار `marketplace.json`، أو اختصار GitHub مثل `owner/repo`، أو عنوان URL -لمستودع GitHub، أو عنوان URL لـ git. بالنسبة إلى أسواق Marketplace البعيدة، يجب أن تبقى -إدخالات Plugin داخل مستودع Marketplace المستنسخ وأن تستخدم مصادر مسارات +يمكن أن تكون مصادر Marketplace اسم marketplace معروفًا لـ Claude من +`~/.claude/plugins/known_marketplaces.json`، أو جذر marketplace محليًا أو مسار +`marketplace.json`، أو صيغة GitHub مختصرة مثل `owner/repo`، أو عنوان URL +لمستودع GitHub، أو عنوان URL لـ git. وبالنسبة إلى marketplaces البعيدة، يجب أن +تبقى إدخالات الإضافات داخل مستودع marketplace المستنسخ وأن تستخدم مصادر مسارات نسبية فقط. -راجع [مرجع CLI الخاص بـ `openclaw plugins`](/ar/cli/plugins) للحصول على التفاصيل الكاملة. +راجع [مرجع CLI للأمر `openclaw plugins`](/ar/cli/plugins) للحصول على التفاصيل الكاملة. ## نظرة عامة على Plugin API -تُصدِّر Plugins Native كائن إدخال يعرّض `register(api)`. قد لا تزال -Plugins الأقدم تستخدم `activate(api)` كاسم بديل قديم، لكن ينبغي على Plugins الجديدة +تُصدّر الإضافات الأصلية كائن إدخال يوفّر `register(api)`. قد تظل الإضافات +القديمة تستخدم `activate(api)` كاسم مستعار قديم، لكن ينبغي للإضافات الجديدة استخدام `register`. ```typescript @@ -332,49 +370,49 @@ export default definePluginEntry({ }); ``` -يقوم OpenClaw بتحميل كائن الإدخال واستدعاء `register(api)` أثناء تفعيل Plugin. -ولا يزال المُحمِّل يعود إلى `activate(api)` بالنسبة إلى Plugins الأقدم، -لكن يجب على Plugins المضمّنة وPlugins الخارجية الجديدة اعتبار `register` +يحمّل OpenClaw كائن الإدخال ويستدعي `register(api)` أثناء تفعيل الإضافة. +ولا يزال المُحمِّل يرجع إلى `activate(api)` للإضافات الأقدم، لكن ينبغي أن +تتعامل الإضافات المضمّنة والإضافات الخارجية الجديدة مع `register` باعتباره العقد العام. -طرائق التسجيل الشائعة: +طرق التسجيل الشائعة: -| الطريقة | ما الذي تسجله | -| --------------------------------------- | -------------------------- | -| `registerProvider` | موفّر نموذج (LLM) | -| `registerChannel` | قناة دردشة | +| الطريقة | ما الذي تسجّله | +| --------------------------------------- | --------------------------- | +| `registerProvider` | موفّر نماذج (LLM) | +| `registerChannel` | قناة دردشة | | `registerTool` | أداة وكيل | -| `registerHook` / `on(...)` | hooks دورة الحياة | -| `registerSpeechProvider` | تحويل النص إلى كلام / STT | -| `registerRealtimeTranscriptionProvider` | STT متدفق | -| `registerRealtimeVoiceProvider` | صوت ثنائي الاتجاه في الوقت الفعلي | -| `registerMediaUnderstandingProvider` | تحليل الصور/الصوت | -| `registerImageGenerationProvider` | توليد الصور | -| `registerMusicGenerationProvider` | توليد الموسيقى | -| `registerVideoGenerationProvider` | توليد الفيديو | -| `registerWebFetchProvider` | موفّر جلب / كشط الويب | -| `registerWebSearchProvider` | البحث على الويب | -| `registerHttpRoute` | نقطة نهاية HTTP | -| `registerCommand` / `registerCli` | أوامر CLI | -| `registerContextEngine` | محرك السياق | -| `registerService` | خدمة خلفية | +| `registerHook` / `on(...)` | خطافات دورة الحياة | +| `registerSpeechProvider` | تحويل النص إلى كلام / STT | +| `registerRealtimeTranscriptionProvider` | STT متدفق | +| `registerRealtimeVoiceProvider` | صوت فوري ثنائي الاتجاه | +| `registerMediaUnderstandingProvider` | تحليل الصور/الصوت | +| `registerImageGenerationProvider` | توليد الصور | +| `registerMusicGenerationProvider` | توليد الموسيقى | +| `registerVideoGenerationProvider` | توليد الفيديو | +| `registerWebFetchProvider` | موفّر جلب / كشط الويب | +| `registerWebSearchProvider` | البحث في الويب | +| `registerHttpRoute` | نقطة نهاية HTTP | +| `registerCommand` / `registerCli` | أوامر CLI | +| `registerContextEngine` | محرّك السياق | +| `registerService` | خدمة في الخلفية | -سلوك حارس hook بالنسبة إلى hooks دورة الحياة المكتوبة الأنواع: +سلوك حراسة الخطافات للخطافات المعيارية لدورة الحياة: -- `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 }` بلا تأثير ولا تلغي إلغاءً سابقًا. +- `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 }` لا تُحدث أي أثر ولا تزيل إلغاءً سابقًا. -للاطلاع على السلوك الكامل لـ hooks المكتوبة الأنواع، راجع [نظرة عامة على SDK](/ar/plugins/sdk-overview#hook-decision-semantics). +للاطلاع على السلوك الكامل المعياري للخطافات، راجع [نظرة عامة على SDK](/ar/plugins/sdk-overview#hook-decision-semantics). ## ذو صلة -- [بناء Plugins](/ar/plugins/building-plugins) — أنشئ Plugin خاصًا بك -- [حِزم Plugins](/ar/plugins/bundles) — توافق حِزم Codex/Claude/Cursor -- [Plugin Manifest](/ar/plugins/manifest) — مخطط manifest -- [تسجيل الأدوات](/ar/plugins/building-plugins#registering-agent-tools) — أضف أدوات الوكيل داخل Plugin -- [Plugin Internals](/ar/plugins/architecture) — نموذج القدرات ومسار التحميل -- [Plugins المجتمع](/ar/plugins/community) — قوائم الجهات الخارجية +- [بناء الإضافات](/ar/plugins/building-plugins) — أنشئ الإضافة الخاصة بك +- [حِزم الإضافات](/ar/plugins/bundles) — التوافق مع حِزم Codex/Claude/Cursor +- [بيان Plugin](/ar/plugins/manifest) — مخطط البيان +- [تسجيل الأدوات](/ar/plugins/building-plugins#registering-agent-tools) — أضف أدوات الوكيل داخل إضافة +- [الداخليات الخاصة بـ Plugin](/ar/plugins/architecture) — نموذج الإمكانات وخط أنابيب التحميل +- [إضافات المجتمع](/ar/plugins/community) — قوائم الأطراف الخارجية