Plugin guides

إضافات Codex الأصلية

يتيح الدعم الأصلي لإضافات Codex لوكيل OpenClaw الذي يعمل في وضع Codex استخدام إمكانات التطبيقات والإضافات الخاصة بخادم تطبيقات Codex داخل سلسلة Codex نفسها التي تتولى معالجة دور OpenClaw. تظل استدعاءات الإضافات في سجل Codex الأصلي؛ ويتولى خادم تطبيقات Codex تنفيذ MCP المدعوم بالتطبيقات. لا يحوّل OpenClaw إضافات Codex إلى أدوات OpenClaw ديناميكية اصطناعية من نوع codex_plugin_*.

استخدم هذه الصفحة بعد تشغيل أداة تشغيل Codex الأساسية بنجاح.

المتطلبات

  • يجب أن يكون وقت تشغيل الوكيل هو أداة تشغيل Codex الأصلية.
  • يجب أن تكون قيمة plugins.entries.codex.enabled هي true.
  • يجب أن تكون قيمة plugins.entries.codex.config.codexPlugins.enabled هي true.
  • يجب أن يتمكن خادم تطبيقات Codex المستهدف من رؤية المخزون المتوقع من الأسواق والإضافات والتطبيقات.
  • لا تدعم الترحيل إلا إضافات openai-curated التي رصد تثبيتها من المصدر في مجلد Codex الرئيسي المصدر.
  • تتطلب إضافات workspace-directory المضبوطة يدويًا خادم تطبيقات Codex يقبل فيه plugin/list القيمة marketplaceKinds، وتتضمن ملخصات مساحة العمل التي لا تحتوي على مسار فيه القيمة remotePluginId. يجب أن تكون الإضافة مثبتة ومفعّلة مسبقًا، وأن تكون التطبيقات التابعة لها متاحة في app/list.

لا يؤثر codexPlugins في عمليات التشغيل عبر موفّر OpenClaw أو ارتباطات محادثات ACP أو أدوات التشغيل الأخرى، لأن هذه المسارات لا تنشئ أبدًا سلاسل في خادم تطبيقات Codex بإعداد apps أصلي.

يأتي حساب Codex وتوافر التطبيقات وعناصر التحكم في تطبيقات وإضافات مساحة العمل من جانب OpenAI من حساب Codex المسجّل دخوله. راجع استخدام Codex مع خطة ChatGPT للتعرّف إلى نموذج حساب OpenAI والإدارة.

البدء السريع

عاين الترحيل من مجلد Codex الرئيسي المصدر:

bash
openclaw migrate codex --dry-run

أضف --verify-plugin-apps لجعل الترحيل يستدعي app/list في المصدر ويشترط وجود كل تطبيق تابع وتمكينه وإمكانية الوصول إليه قبل التخطيط للتفعيل الأصلي:

bash
openclaw migrate codex --dry-run --verify-plugin-apps

طبّق الترحيل عندما تبدو الخطة صحيحة:

bash
openclaw migrate apply codex --yes

يكتب الترحيل إدخالات codexPlugins صريحة للإضافات المؤهلة، ويستدعي plugin/install في خادم تطبيقات Codex للإضافات المحددة. يبدو الإعداد المرحّل كما يلي:

json5
{  plugins: {    entries: {      codex: {        enabled: true,        config: {          codexPlugins: {            enabled: true,            allow_destructive_actions: true,            plugins: {              "google-calendar": {                enabled: true,                marketplaceName: "openai-curated",                pluginName: "google-calendar",              },            },          },        },      },    },  },}

يظل الترحيل مقتصرًا على openai-curated. لاستخدام إضافة workspace-directory موجودة، أضفها يدويًا باستخدام summary.id المؤهل باسم السوق تمامًا كما يعيده plugin/list. على سبيل المثال، إذا أعاد Codex القيمة example-plugin@workspace-directory، فاضبط هذه القيمة الكاملة بدلًا من اسم العرض:

json5
{  plugins: {    entries: {      codex: {        enabled: true,        config: {          codexPlugins: {            enabled: true,            plugins: {              "example-plugin": {                enabled: true,                marketplaceName: "workspace-directory",                pluginName: "example-plugin@workspace-directory",              },            },          },        },      },    },  },}

لا يستدعي OpenClaw الأمر plugin/install ولا يبدأ المصادقة لإضافة workspace-directory. ثبّتها ومكّنها وصادق عليها في Codex قبل إضافة سياسة OpenClaw أو تمكينها. يبقي OpenClaw التطبيقات مخفية عندما لا تتضمن الاستجابة السوق أو معرّف الإضافة أو معرّف التفاصيل أو دليل جاهزية التطبيق المطابق تمامًا. إذا رفض Codex طلب plugin/list الصريح لمساحة العمل، فسيبلغ OpenClaw عن marketplace_missing لكل إضافة مساحة عمل مفعّلة، مع إبقاء أي إضافات منسّقة مكتشفة بصورة مستقلة متاحة.

بعد تغيير codexPlugins، تلتقط محادثات Codex الجديدة مجموعة التطبيقات المحدّثة تلقائيًا. شغّل /new أو /reset لتحديث المحادثة الحالية. لا يلزم إعادة تشغيل Gateway عند تغيير تمكين الإضافات أو تعطيلها.

إدارة الإضافات من الدردشة

يفحص /codex plugins إضافات Codex الأصلية المضبوطة أو يغيّرها من الدردشة نفسها التي تشغّل فيها أداة تشغيل Codex:

text
/codex plugins/codex plugins list/codex plugins disable google-calendar/codex plugins enable google-calendar

يمثل /codex plugins اسمًا بديلًا للأمر /codex plugins list. تعرض القائمة مفتاح كل إضافة وحالة تشغيلها أو إيقافها واسم إضافة Codex وسوقها من plugins.entries.codex.config.codexPlugins.plugins.

لا يكتب enable وdisable إلا إلى ~/.openclaw/openclaw.json؛ ولا يعدّلان أبدًا ~/.codex/config.toml ولا يثبتان إضافات Codex جديدة. لا يمكن تشغيلهما إلا بواسطة المالك أو عميل Gateway لديه نطاق operator.admin.

يؤدي تمكين إضافة مضبوطة أيضًا إلى تشغيل مفتاح codexPlugins.enabled العام. إذا كُتبت إضافة منسّقة على أنها معطّلة لأن الترحيل أعاد auth_required، فأعد تفويض التطبيق في Codex قبل تمكينه في OpenClaw. بالنسبة إلى إدخال workspace-directory، لا يؤدي تمكينه هنا إلا إلى تغيير سياسة OpenClaw؛ ويجب أن تكون الإضافة والتطبيق نشطين مسبقًا في Codex.

آلية عمل إعداد الإضافات الأصلي

يتتبّع التكامل ثلاث حالات:

الحالة المعنى
مثبّتة يمتلك Codex حزمة الإضافة في وقت تشغيل خادم التطبيقات المستهدف.
مفعّلة يبلغ Codex بأن الإضافة مفعّلة، ويسمح إعداد OpenClaw باستخدامها في أدوار أداة تشغيل Codex.
متاحة يؤكد خادم تطبيقات Codex أن إدخالات تطبيقات الإضافة متاحة للحساب النشط وتتطابق مع هوية الإضافة المضبوطة.

بالنسبة إلى إضافات openai-curated، يمثل الترحيل خطوة التثبيت والأهلية الدائمة:

  • أثناء التخطيط، يقرأ OpenClaw تفاصيل plugin/read من Codex المصدر ويتحقق من أن حساب خادم تطبيقات Codex المصدر هو حساب اشتراك ChatGPT. يؤدي رد حساب غير تابع لـ ChatGPT أو غياب رد الحساب إلى تخطي الإضافات المدعومة بالتطبيقات مع codex_subscription_required.
  • يتخطى الترحيل افتراضيًا استدعاء app/list في المصدر: يُخطط للإضافات المصدر المدعومة بالتطبيقات التي تجتاز بوابة الحساب دون التحقق من إمكانية الوصول إلى تطبيقات المصدر، وتؤدي أعطال نقل البحث عن الحساب إلى التخطي مع codex_account_unavailable.
  • عند استخدام --verify-plugin-apps، يأخذ الترحيل لقطة حديثة من app/list في المصدر ويشترط وجود كل تطبيق تابع وتمكينه وإمكانية الوصول إليه قبل التخطيط للتفعيل الأصلي. وعندئذ تنتقل أعطال نقل البحث عن الحساب إلى بوابة مخزون تطبيقات المصدر بدلًا من التسبب في التخطي مباشرةً.

بالنسبة إلى إضافات workspace-directory، يتم الإعداد خارج OpenClaw. لا يستعلم OpenClaw عن ذلك السوق إلا عند ضبط إدخال مساحة عمل مفعّل واحد على الأقل، ويحل كل إضافة باستخدام summary.id المطابق تمامًا، ويعيد استخدام فحوص الملكية الحالية من plugin/read والجاهزية من app/list. لا تعرض الإضافة غير المثبتة أو المعطّلة أو غير المتاحة أو غير المصادق عليها أي تطبيقات؛ ولا يحاول OpenClaw تثبيتها أو مصادقتها.

يمثل مخزون تطبيقات وقت التشغيل فحص إمكانية الوصول في الجلسة المستهدفة لكل من الإضافات المنسّقة المرحّلة وإضافات مساحة العمل المضبوطة يدويًا. يحسب إعداد جلسة أداة تشغيل Codex إعداد تطبيقات مقيّدًا للسلسلة استنادًا إلى تطبيقات الإضافات المفعّلة والمتاحة؛ ولا يُعاد حسابه في كل دور، ولذلك لا يؤثر /codex plugins enable وdisable إلا في محادثات Codex الجديدة. استخدم /new أو /reset لتطبيق التغيير في المحادثة الحالية.

حدود دعم الإصدار الأول

  • لا تكون مؤهلة للترحيل إلا إضافات openai-curated المثبتة مسبقًا في مخزون خادم تطبيقات Codex المصدر.
  • يدعم وقت التشغيل أيضًا إدخالات workspace-directory الصريحة في إصدارات خادم التطبيقات التي يطبّق فيها plugin/list القيمة marketplaceKinds ويعيد remotePluginId لملخصات مساحة العمل التي لا تحتوي على مسار. يجب أن تستخدم هذه الإدخالات summary.id المؤهل باسم السوق والمطابق تمامًا، وأن تكون مثبتة ومفعّلة ومتاحة للتطبيقات مسبقًا. ينتج عن رفض طلب قائمة مساحة العمل التشخيص الحالي marketplace_missing لكل إضافة؛ ولا يؤدي غياب دليل السوق أو الإضافة أو التفاصيل أو التطبيق إلى عرض أي تطبيق لمساحة العمل. يظل مخزون الإضافات المنسّقة من طلب القائمة الافتراضي قابلًا للاستخدام.
  • يجب أن تجتاز إضافات المصدر المدعومة بالتطبيقات بوابة الاشتراك أثناء الترحيل. يضيف --verify-plugin-apps بوابة مخزون تطبيقات المصدر. تُبلّغ الحسابات المحجوبة ببوابة الاشتراك، وفي وضع التحقق تطبيقات المصدر غير المتاحة أو المعطّلة أو المفقودة وأعطال تحديث مخزون التطبيقات، باعتبارها عناصر يدوية متخطاة بدلًا من إدخالات إعداد مفعّلة. تُتخطى تفاصيل الإضافة غير القابلة للقراءة قبل بوابة مخزون التطبيقات.
  • يكتب الترحيل هويات إضافات صريحة (marketplaceName وpluginName)؛ ولا يكتب مسارات ذاكرة التخزين المؤقت المحلية marketplacePath.
  • يمثل codexPlugins.enabled مفتاح التمكين العام الوحيد؛ ولا توجد علامة بدل plugins["*"] أو مفتاح إعداد يمنح صلاحية تثبيت عشوائية.
  • تُحفظ الأسواق غير المنسّقة وحزم الإضافات المخزنة مؤقتًا والخطافات وملفات إعداد Codex في تقرير الترحيل للمراجعة اليدوية، ولا تُفعّل تلقائيًا. يقبل وقت التشغيل إدخالات workspace-directory المضبوطة يدويًا؛ وتظل الأسواق الأخرى غير مدعومة.

مخزون التطبيقات والملكية

يقرأ OpenClaw مخزون تطبيقات Codex من خلال app/list في خادم التطبيقات، ويخزّنه مؤقتًا في الذاكرة لمدة ساعة، ويحدّث الإدخالات القديمة أو المفقودة بصورة غير متزامنة. ذاكرة التخزين المؤقت محلية للعملية؛ وتؤدي إعادة تشغيل CLI أو Gateway إلى إسقاطها، ثم يعيد OpenClaw بناءها عند القراءة التالية من app/list.

يستخدم الترحيل ووقت التشغيل مفاتيح ذاكرة تخزين مؤقت منفصلة:

  • يستخدم التحقق من ترحيل المصدر مجلد Codex الرئيسي المصدر وخيارات البدء. ولا يعمل إلا مع --verify-plugin-apps، ويفرض اجتيازًا حديثًا لـapp/list في المصدر لعملية التخطيط تلك.
  • يستخدم إعداد وقت التشغيل المستهدف هوية خادم تطبيقات Codex للوكيل المستهدف عند بناء إعداد تطبيقات السلسلة. يؤدي تفعيل إضافة منسّقة إلى إبطال مفتاح ذاكرة التخزين المؤقت المستهدف، ثم يفرض تحديثه بعد plugin/install. لا يشغّل إعداد workspace-directory مسار التفعيل هذا أبدًا.

لا يُعرض تطبيق الإضافة إلا عندما يستطيع OpenClaw إرجاعه إلى الإضافة المضبوطة من خلال ملكية مستقرة: معرّف تطبيق مطابق تمامًا من تفاصيل الإضافة، أو اسم خادم MCP معروف، أو بيانات وصفية مستقرة وفريدة. تُستبعد الملكية المستندة إلى اسم العرض فقط أو الملكية الملتبسة حتى يثبت تحديث المخزون التالي الملكية.

تطبيقات الحساب المتصل

يمكن للوكلاء الذين يشغّلهم المالك الاشتراك في كل تطبيق متصل مسبقًا بحساب Codex الخاص بهم دون اشتراط وجود حزمة إضافة مطابقة:

json5
{  plugins: {    entries: {      codex: {        enabled: true,        config: {          codexPlugins: {            enabled: true,            allow_all_plugins: true,            allow_destructive_actions: "auto",          },        },      },    },  },}

تأخذ allow_all_plugins: true لقطة كاملة من app/list عند إنشاء سلسلة Codex أصلية جديدة، ولا تسمح إلا بالتطبيقات المعلّمة بأنها متاحة لذلك الحساب. وهي لا تثبّت التطبيقات أو تصادق عليها أو تمكّنها على مستوى عام. تحتفظ السلاسل الحالية بمجموعة تطبيقاتها المحفوظة؛ استخدم /new أو /reset أو أعد تشغيل Gateway لتطبيق التطبيقات المتصلة أو المسحوبة حديثًا.

ترث تطبيقات الحساب القيمة العامة codexPlugins.allow_destructive_actions التي تقبل true أو false أو "auto" أو "ask". تتجاوز سياسة كل إضافة الصريحة السياسة العامة لمعرّفات التطبيقات المتداخلة. تفشل أعطال المخزون بصورة مغلقة بدلًا من الرجوع إلى إعداد افتراضي غير مقيّد.

إعداد تطبيقات السلسلة

يُدخل OpenClaw تصحيحًا تقييديًا على config.apps لخيط Codex: يكون _default معطّلًا، ولا تُفعَّل إلا التطبيقات المملوكة للـ plugins المُعدّة والمفعّلة، أو تطبيقات الحساب التي يمكن الوصول إليها والمسموح بها عبر allow_all_plugins.

تأتي قيمة destructive_enabled لكل تطبيق من السياسة العالمية الفعلية أو سياسة allow_destructive_actions الخاصة بكل plugin؛ إذ تضبط القيم true و"auto" و"ask" جميعها destructive_enabled: true، بينما تضبطها القيمة false على false. يواصل Codex فرض البيانات الوصفية للأدوات التدميرية من تعليقات أدوات التطبيق الأصلية الخاصة به. يكون _default معطّلًا مع open_world_enabled: false؛ وتحصل تطبيقات الـ plugins المفعّلة على open_world_enabled: true. لا يوفّر OpenClaw مفتاح سياسة منفصلًا للعالم المفتوح على مستوى الـ plugin، ولا يحتفظ بقوائم حظر لأسماء الأدوات التدميرية لكل plugin.

يكون وضع الموافقة على الأدوات تلقائيًا افتراضيًا للتطبيقات المقبولة، لذا تعمل أدوات القراءة غير التدميرية دون مطالبة بالموافقة ضمن الخيط نفسه. وتظل الأدوات التدميرية خاضعة لسياسة destructive_enabled الخاصة بكل تطبيق.

سياسة الإجراءات التدميرية

يُسمح افتراضيًا بطلبات الاستيضاح التدميرية للـ plugins في Codex بالنسبة إلى الـ plugins المُعدّة، بينما تؤدي المخططات غير الآمنة والملكية الملتبسة إلى الرفض الآمن:

  • القيمة الافتراضية لـ allow_destructive_actions العامة هي true.
  • تتجاوز قيمة allow_destructive_actions الخاصة بكل plugin السياسة العامة لذلك الـ plugin.
  • false: يعيد OpenClaw رفضًا حتميًا.
  • true: يقبل OpenClaw تلقائيًا فقط المخططات الآمنة التي يستطيع تحويلها إلى استجابة موافقة، مثل حقل موافقة منطقي.
  • "auto": يعرض OpenClaw إجراءات الـ plugins التدميرية إلى Codex، ثم يحوّل طلبات استيضاح موافقة MCP المثبتة الملكية إلى موافقات plugins في OpenClaw قبل إعادة استجابة موافقة Codex.
  • "ask": يستخدم OpenClaw بوابة الكتابة/التدمير نفسها في Codex كما في "auto"، ويمسح تجاوزات الموافقة الدائمة لكل أداة في Codex للتطبيق قبل بدء الخيط، ولا يقدّم سوى موافقة أو رفض لمرة واحدة، بحيث لا تستطيع الموافقات الدائمة منع مطالبات إجراءات الكتابة اللاحقة. لكل تطبيق مقبول يستخدم "ask"، يختار OpenClaw مراجع الموافقات البشرية في Codex لذلك التطبيق، كي يرسل Codex طلبات استيضاح الموافقة الخاصة به إلى OpenClaw؛ بينما تحتفظ التطبيقات الأخرى وموافقات الخيط غير المرتبطة بالتطبيق بالمراجع والسياسة المُعدّين لها.
  • تؤدي هوية plugin المفقودة، أو الملكية الملتبسة، أو معرّف الدور المفقود أو غير المتطابق، أو مخطط استيضاح غير آمن إلى الرفض بدلًا من عرض مطالبة.

استكشاف الأخطاء وإصلاحها

الرمز المعنى الإصلاح
auth_required ثبّتت عملية الترحيل الـ plugin، لكن أحد تطبيقاته لا يزال يحتاج إلى مصادقة. يُكتب الإدخال معطّلًا حتى تعيد التفويض. أعد تفويض التطبيق في Codex، ثم فعّل الـ plugin في OpenClaw.
app_inaccessible, app_disabled, app_missing عند استخدام --verify-plugin-apps، لم يُظهر مخزون تطبيقات Codex المصدر جميع التطبيقات المملوكة على أنها موجودة ومفعّلة وقابلة للوصول. أعد تفويض التطبيق أو فعّله في Codex، ثم أعد تشغيل الترحيل باستخدام --verify-plugin-apps.
app_inventory_unavailable طُلب تحقق صارم من تطبيقات المصدر، لكن فشل تحديث مخزون تطبيقات Codex المصدر. أصلح الوصول إلى خادم تطبيقات Codex المصدر، أو أعد المحاولة دون --verify-plugin-apps لقبول الخطة الأسرع المقيّدة بالحساب.
codex_subscription_required لم يكن حساب خادم تطبيقات Codex المصدر حساب اشتراك ChatGPT. سجّل الدخول إلى تطبيق Codex باستخدام مصادقة الاشتراك، ثم أعد تشغيل الترحيل.
codex_account_unavailable تعذّرت قراءة حساب خادم تطبيقات Codex المصدر. أصلح مصادقة خادم تطبيقات Codex المصدر، أو أعد التشغيل باستخدام --verify-plugin-apps لترك مخزون تطبيقات المصدر يحدد الأهلية.
marketplace_missing, plugin_missing السوق أو الـ plugin المطابق غير متاح؛ ربما رُفض طلب كتالوج مساحة العمل الصريح؛ وتُرفض تطبيقات مساحة العمل بأمان. تحقّق من عقد خادم التطبيقات المتوافق والمعرّف المطابق الموضّح أدناه.
plugin_detail_unavailable تعذّر على OpenClaw قراءة تفاصيل ملكية الـ plugin. افحص استجابات plugin/list وplugin/read لخادم التطبيقات المستهدف.
plugin_disabled يفيد Codex بأن الـ plugin مثبت لكنه معطّل. قد يُصلح التنشيط المنسّق ذلك؛ فعّل plugin لمساحة العمل في Codex قبل إعادة المحاولة.
plugin_activation_failed لم يكتمل تنشيط الـ plugin. استخدم التشخيص المرفق للتمييز بين إخفاقات السوق أو المصادقة أو التحديث أو جاهزية مساحة العمل.
app_inventory_missing, app_inventory_stale جاءت جاهزية التطبيق من ذاكرة تخزين مؤقت فارغة أو قديمة. يجدول OpenClaw تحديثًا غير متزامن تلقائيًا؛ وتظل تطبيقات الـ plugin مستبعدة حتى تُعرف الملكية والجاهزية.
app_ownership_ambiguous لم يتطابق مخزون التطبيقات إلا حسب اسم العرض. يظل التطبيق مخفيًا عن خيط Codex حتى يثبت تحديث لاحق الملكية.

الـ plugin الخاص بمساحة العمل مثبت لكنه غير ظاهر: تأكد من أن نتيجة plugin/list لمساحة العمل تفيد بأن المعرّف المُعدّ المطابق مثبت ومفعّل، ثم تأكد من أن app/list يفيد بإمكانية الوصول إلى كل تطبيق مملوك لحساب Codex نفسه. يستطيع OpenClaw تفعيل تطبيق يمكن الوصول إليه للخيط حتى عندما يفيد مخزون الحساب حاليًا بأن ذلك التطبيق معطّل. إذا غيّرت تلك الحالة بعد أن خزّن Gateway مخزون التطبيقات مؤقتًا، فانتظر تحديث ذاكرة التخزين المؤقت بعد ساعة أو أعد تشغيل Gateway، ثم استخدم /new أو /reset. لا يُصلح OpenClaw plugins مساحة العمل ولا يصادقها. إذا رُفض طلب قائمة مساحة العمل الصريح، فسيبلغ كل إدخال مفعّل في مساحة العمل عن marketplace_missing؛ بينما تستمر الإدخالات المنسّقة غير المرتبطة انطلاقًا من استجابة القائمة الافتراضية.

بالنسبة إلى plugin_detail_unavailable، يجب أن يتضمن ملخص مساحة العمل الذي لا يحتوي على مسار remotePluginId؛ ويُبقي OpenClaw التطبيقات المملوكة مخفية عندما لا يكون ذلك المحدد أو نتيجة plugin/read اللاحقة متاحًا. بالنسبة إلى plugin_activation_failed، قد تفيد الـ plugins المنسّقة بإخفاق في السوق أو المصادقة أو التحديث بعد التثبيت. يفيد plugin مساحة العمل بهذا الرمز عندما لا يكون نشطًا بالفعل؛ ثبّته وفعّله وصادقه خارج OpenClaw.

تغيّر الإعداد لكن الوكيل لا يستطيع رؤية الـ plugin: شغّل /codex plugins list لتأكيد الحالة المُعدّة، ثم /new أو /reset. تحتفظ ارتباطات خيوط Codex الحالية بإعداد التطبيق الذي بدأت به إلى أن ينشئ OpenClaw جلسة تسخير جديدة أو يستبدل ارتباطًا قديمًا.

يُرفض الإجراء التدميري: تحقّق من القيم العامة والخاصة بكل plugin في allow_destructive_actions. حتى مع true أو "auto" أو "ask"، تظل مخططات الاستيضاح غير الآمنة وهوية الـ plugin الملتبسة تؤدي إلى الرفض الآمن.

ذو صلة

Was this useful?
On this page

On this page