codex الرسمية.
لإعداد النظام واتخاذ قرارات التوجيه، ابدأ بـ
أداة Codex.
سطح إعدادات الإضافة
توجد جميع إعدادات أداة Codex ضمنplugins.entries.codex.config.
الإشراف
يسرد اكتشاف الجلسات الأصلية افتراضيًا جلسات Codex غير المؤرشفة من حاسوب Gateway والعُقد المقترنة التي اختير تضمينها. عطّل ذلك الدليل وحده باستخدام:supervision بصورة منفصلة في الأدوات الموجّهة للوكيل:
تقبل إدخالات نقاط النهاية الحقول التالية:
تستخدم صفحة جلسات Codex App Server الخاص بالإشراف في الإضافة وتعرض
الجلسات غير المؤرشفة فقط. من دون إعدادات اتصال
appServer صريحة،
تتم إدارة ذلك الاتصال عبر stdio في المجلد الرئيسي للمستخدم. يمكن للصفوف المحلية المخزنة أو الخاملة إنشاء
محادثة مقفلة على نموذج، مع سجل محدود للمستخدم والمساعد وصولًا إلى آخر
دورة مصدر نهائية محفوظة. يحافظ ربطها الخاص على تفرّع اللقطة،
وفرع المصدر الأساسي appServer، وحقن السجل، والدورات اللاحقة ضمن ذلك
الاتصال. تستخدم البداية الأساسية الأولى الزوج الذي يعيده التفرّع. أما عمليات
الاستئناف اللاحقة فتحذف تجاوزات نموذج OpenClaw ومزوّده كي يستعيد Codex
الزوج المحفوظ للمحادثة الأساسية؛ ويمكن لتغيير أصلي منفصل تحديث ذلك
الزوج، لكن النموذج الخارجي وسلسلة البدائل لا يستبدلانه مطلقًا. يمكن أرشفة
الصفوف المخزنة والخاملة بعد التأكد من عدم وجود مشغّل آخر، ما لم يكن ربط OpenClaw
نشط آخر يملك الهدف نفسه تمامًا أو أحد العناصر التابعة التي أنشأها وغير المؤرشفة.
يتبع OpenClaw ترقيم Codex لصفحات العناصر التابعة، ويتوقف بأمان عند
أخطاء التعداد أو الدورات أو استنفاد حد الأمان. يظل التأكيد
يشمل عملاء Codex الأصليين غير المعروفين والتسابق بين الحالة والأرشفة. لا يمكن
حذف محادثة خاضعة للإشراف ومقفلة على نموذج ما دامت تحمي الربط الأصلي.
لا يمكن للمصادر النشطة إنشاء فرع أو أن تُؤرشف، لكن يظل من الممكن فتح محادثة
خاضعة للإشراف موجودة. يبقى كل صف لعقدة مقترنة للقراءة فقط؛ إذ لا يوفّر
نقل العقدة بعد دورة حياة البث التي تحتاج إليها الأداة.
يغيّر appServer.homeScope: "user" وحده مجلد Codex الرئيسي الذي تستخدمه عملية
أداة مُدارة؛ ولا ينشر دليل المجموعة. لا يؤدي تفعيل الإشراف
إلى تغيير الإعداد الافتراضي للأداة. بدلًا من ذلك، يستخدم اتصال الإشراف المنفصل
افتراضيًا stdio مُدارًا في المجلد الرئيسي للمستخدم عند عدم وجود إعدادات اتصال
appServer صريحة. تُحترم الإعدادات الصريحة لذلك الاتصال.
تحتفظ الارتباطات الخاضعة للإشراف المعلّقة والمثبتة بذلك الاتصال في كل دورة؛
ويؤدي تعطيل الإشراف أو انحراف الاتصال/دورة الحياة إلى التوقف بأمان بدلًا من
الرجوع إلى أداة المجلد الرئيسي للوكيل. يشارك الاتصال الافتراضي الجلسات المخزنة
مع عملاء Codex الأصليين، لا حالة نشاط عملياتهم المحلية.
أُوقفت إعدادات plugins.entries.codex-supervisor القديمة. شغّل
openclaw doctor --fix لترحيل الإدخال القديم وتعريفات نقاط النهاية وأعلام السياسة
ومراجع السماح/المنع الخاصة بالإضافة إلى هذه الكتلة. تتغلب قيم
codex.config.supervision الأساسية الصريحة عند وجود تعارضات.
نقل App-server
بالنسبة إلى دورات الأداة العادية، يشغّل OpenClaw ملف Codex التنفيذي المُدار والمضمّن مع الإضافة الرسمية (حاليًا@openai/codex 0.144.3):
codex الرسمية بدلًا من
أي Codex CLI منفصل مثبّت محليًا. عيّن
appServer.command فقط عندما تريد عمدًا ملفًا تنفيذيًا مختلفًا.
تفضّل الدورات المُدارة العادية ذات المجلد الرئيسي المعزول الافتراضي للوكيل هذه
الحزمة المثبتة حتى عند تثبيت حزمة تطبيق سطح مكتب macOS. عند تفعيل
استخدام الكمبيوتر، أو عندما يكون homeScope
هو "user" ويمكنه تحميل حالة استخدام الكمبيوتر الأصلية، يفضّل بدء التشغيل المُدار بدلًا من ذلك
ملف تطبيق سطح المكتب التنفيذي الذي يملك أذونات macOS المطلوبة. تنطبق قاعدة
تفضيل سطح المكتب نفسها عندما تفعّل إعدادات Codex الفعلية في المجلد الرئيسي المعزول
للوكيل استخدام الكمبيوتر الأصلي. إذا لم تكن أي حزمة لتطبيق سطح المكتب مثبّتة، يعود OpenClaw
إلى ملف الحزمة المثبتة التنفيذي.
ينسّق تسليم الملف التنفيذي وعزل الإعدادات الأصلية بين العملاء داخل عملية
Gateway واحدة قيد التشغيل. أعد تشغيل Gateway بعد أن تغيّر عملية أخرى إعدادات
إضافة Codex الأصلية.
يحدّد الإشراف اتصالًا منفصلًا. عند عدم وجود إعدادات اتصال
appServer صريحة، يستخدم stdio مُدارًا مع homeScope: "user"؛
وتظل الأداة العادية تستخدم stdio مُدارًا مع homeScope: "agent". تُحترم
إعدادات الاتصال الصريحة في كلا المسارين. عيّن homeScope: "user"
صراحةً عندما ينبغي للأداة العادية مشاركة $CODEX_HOME (أو ~/.codex)
مع العملاء الأصليين. يستخدم الربط الخاص الخاضع للإشراف اتصال الإشراف
بغض النظر عن الإعداد الافتراضي للأداة العادية. تحتفظ عمليات App Server
المستقلة بحالة مباشرة وحالة موافقات منفصلتين.
بالنسبة إلى app-server قيد التشغيل بالفعل، استخدم نقل WebSocket:
appServer:
يُعد
appServer.networkProxy صريحًا لأنه يغيّر عقد وضع الحماية في Codex.
عند تمكينه، يضبط OpenClaw أيضًا features.network_proxy.enabled و
default_permissions في إعدادات سلسلة Codex كي يتمكن ملف تعريف الأذونات
المُنشأ من بدء الشبكات المُدارة بواسطة Codex. ينشئ OpenClaw افتراضيًا
اسم ملف تعريف openclaw-network-<fingerprint> مقاومًا للتصادم استنادًا إلى
محتوى ملف التعريف؛ ولا تستخدم profileName إلا عند الحاجة إلى اسم محلي ثابت.
danger-full-access، فإن تمكين
networkProxy يستخدم بدلًا منه وصولًا إلى نظام الملفات بنمط مساحة العمل
لملف تعريف الأذونات المُنشأ. يُعد فرض الشبكة المُدار بواسطة Codex شبكةً
ضمن وضع حماية، ولذلك لن يحمي ملف تعريف الوصول الكامل حركة البيانات الصادرة.
يحظر Plugin عمليات المصافحة لخادم التطبيق القديمة أو غير المرفقة بإصدار: يجب
أن يبلّغ خادم تطبيق Codex عن الإصدار المستقر 0.143.0 أو إصدار أحدث.
يتعامل OpenClaw مع عناوين URL لخادم التطبيق عبر WebSocket غير المرتبطة بواجهة
الاسترجاع على أنها بعيدة، ويتطلب مصادقة WebSocket حاملة للهوية من خلال
appServer.authToken أو ترويسة Authorization. يمكن أن يكون
appServer.authToken وكل قيمة appServer.headers.* من نوع SecretInput؛ ويحل وقت
تشغيل الأسرار مراجع SecretRef والصيغة المختصرة لمتغيرات البيئة قبل أن ينشئ
OpenClaw خيارات بدء خادم التطبيق، وتفشل مراجع SecretRef المنظمة غير المحلولة
قبل إرسال أي رمز مميز أو ترويسة. عند إعداد Plugins أصلية لـ Codex، يستخدم
OpenClaw مستوى التحكم في Plugins الخاص بخادم التطبيق المتصل لتثبيت تلك
Plugins أو تحديثها، ثم يحدّث مخزون التطبيقات كي تظهر التطبيقات المملوكة
لـ Plugin لسلسلة Codex. يظل app/list المصدر المعتمد للمخزون
والبيانات الوصفية، لكن سياسة OpenClaw تقرر ما إذا كان thread/start
يرسل config.apps[appId].enabled = true لتطبيق مُدرج يمكن الوصول إليه حتى إذا كان Codex
يميّزه حاليًا بأنه معطل. تظل معرّفات التطبيقات المجهولة أو المفقودة مغلقة
عند الفشل؛ ولا يفعّل هذا المسار إلا Plugins المتجر عبر plugin/install
ويحدّث المخزون. لا تربط OpenClaw إلا بخوادم تطبيق بعيدة موثوق بها لقبول
عمليات تثبيت Plugins وتحديث مخزون التطبيقات التي يديرها OpenClaw.
أوضاع الموافقة ووضع الحماية
تستخدم جلسات خادم التطبيق المحلية عبر stdio وضع YOLO افتراضيًا:approvalPolicy: "never" وapprovalsReviewer: "user" و
sandbox: "danger-full-access". يتيح وضع المشغّل المحلي الموثوق هذا
لأدوار OpenClaw غير المراقبة وعمليات Heartbeat إحراز تقدم من دون مطالبات
موافقة أصلية لا يوجد من يجيب عنها.
إذا كان ملف متطلبات النظام المحلي في Codex يمنع قيم الموافقة الضمنية بوضع
YOLO أو قيم المراجع أو وضع الحماية، فإن OpenClaw يعامل القيمة الافتراضية
الضمنية بوصفها guardian بدلًا من ذلك ويختار أذونات guardian المسموح بها.
يفرض tools.exec.mode: "auto" أيضًا موافقات Codex التي يراجعها guardian، ولا يحتفظ
بالتجاوزات القديمة غير الآمنة approvalPolicy: "never" أو sandbox: "danger-full-access"؛
اضبط tools.exec.mode: "full" لاتخاذ وضع متعمد بلا موافقة. تُراعى إدخالات
[[remote_sandbox_config]] المطابقة لاسم المضيف في ملف المتطلبات نفسه عند اتخاذ
قرار القيمة الافتراضية لوضع الحماية.
اضبط appServer.mode: "guardian" لموافقات Codex التي يراجعها guardian:
guardian إلى approvalPolicy: "on-request"
وapprovalsReviewer: "auto_review" وsandbox: "workspace-write" عندما تكون هذه
القيم مسموحًا بها. تتجاوز حقول السياسة الفردية mode. تظل قيمة
المراجع الأقدم guardian_subagent مقبولة باعتبارها اسمًا مستعارًا للتوافق،
لكن ينبغي للإعدادات الجديدة استخدام auto_review.
عندما يكون وضع حماية OpenClaw نشطًا، تظل عملية خادم تطبيق Codex المحلية
تعمل على مضيف Gateway. لذلك يعطّل OpenClaw وضع Code Mode الأصلي في Codex
وخوادم MCP الخاصة بالمستخدم وتنفيذ Plugins المدعوم بالتطبيقات لذلك الدور،
بدلًا من اعتبار وضع حماية Codex على جانب المضيف مكافئًا للواجهة الخلفية
لوضع حماية OpenClaw. يُتاح الوصول إلى الصدفة من خلال الأدوات الديناميكية
المدعومة بوضع حماية OpenClaw مثل sandbox_exec وsandbox_process
عندما تكون أدوات exec/process العادية متاحة.
على مضيفي وضع حماية OpenClaw المدعومين بـ Docker (عند ضبط
agents.defaults.sandbox.mode على واجهة Docker خلفية)، يتحقق openclaw doctor مما إذا
كان المضيف يسمح بنطاقات أسماء المستخدم غير ذي الامتيازات، وكذلك نطاقات أسماء
الشبكة عندما يكون خروج شبكة وضع حماية Docker معطلًا، والتي يحتاج إليها
bwrap المتداخل في Codex لتنفيذ صدفة workspace-write داخل
حاوية وضع الحماية. يظهر فشل التحقق عادةً على هيئة bwrap: setting up uid map: Permission denied أو
bwrap: loopback: Failed RTM_NEWADDR: Operation not permitted على مضيفي Ubuntu/AppArmor.
أصلح سياسة نطاقات أسماء المضيف المُبلّغ عنها لمستخدم خدمة OpenClaw وأعد تشغيل
Gateway؛ وفضّل ملف تعريف AppArmor محدود النطاق لعملية الخدمة على الإجراء
الاحتياطي kernel.apparmor_restrict_unprivileged_userns=0 على مستوى المضيف كله، ولا تمنح امتيازات أوسع
لحاوية Docker لمجرد تلبية متطلبات bwrap المتداخل.التنفيذ الأصلي ضمن وضع الحماية
القيمة الافتراضية المستقرة هي الإغلاق عند الفشل: يعطّل وضع حماية OpenClaw النشط أسطح التنفيذ الأصلية في Codex التي كانت ستعمل لولا ذلك من مضيف خادم تطبيق Codex. لا تستخدمappServer.experimental.sandboxExecServer: true إلا عندما تريد
تجربة دعم البيئة البعيدة في Codex مع الواجهة الخلفية لوضع حماية OpenClaw.
يعمل مسار المعاينة هذا مع كل إصدار مدعوم من خادم تطبيق Codex.
عزل المصادقة والبيئة
في الدليل الرئيسي الافتراضي لكل وكيل، تُختار المصادقة بهذا الترتيب:- ملف تعريف مصادقة OpenClaw Codex صريح للوكيل.
- حساب خادم التطبيق الحالي في دليل Codex الرئيسي لذلك الوكيل.
- لعمليات تشغيل خادم التطبيق المحلية عبر stdio فقط،
CODEX_API_KEY، ثمOPENAI_API_KEY، عندما لا يوجد حساب لخادم التطبيق وتظل مصادقة OpenAI مطلوبة.
CODEX_API_KEY
وOPENAI_API_KEY من عملية Codex الابنة التي يشغّلها. يُبقي ذلك مفاتيح API
على مستوى Gateway متاحة لعمليات التضمين أو نماذج OpenAI المباشرة من دون أن
تُفوّتَر أدوار خادم تطبيق Codex الأصلي عبر API عن طريق الخطأ.
تستخدم ملفات تعريف مفاتيح API الصريحة لـ Codex والإجراء الاحتياطي لمفتاح
البيئة المحلي عبر stdio تسجيل الدخول إلى خادم التطبيق بدلًا من بيئة العملية
الابنة الموروثة. لا تتلقى اتصالات خادم التطبيق عبر WebSocket الإجراء
الاحتياطي لمفتاح API من بيئة Gateway؛ استخدم ملف تعريف مصادقة صريحًا أو حساب
خادم التطبيق البعيد نفسه.
ترث عمليات تشغيل خادم التطبيق عبر stdio بيئة عملية OpenClaw افتراضيًا.
يمتلك OpenClaw جسر حساب خادم تطبيق Codex ويضبط CODEX_HOME على دليل
خاص بكل وكيل ضمن حالة OpenClaw لذلك الوكيل. يُبقي ذلك إعدادات Codex وحساباته
وذاكرة Plugins المؤقتة وبياناتها وحالة السلاسل ضمن نطاق وكيل OpenClaw بدلًا
من تسربها من دليل ~/.codex الرئيسي الشخصي للمشغّل.
اضبط appServer.homeScope: "user" لمشاركة حالة Codex الأصلية مع Codex
Desktop وCLI. يدعم وضع الدليل الرئيسي للمستخدم المحلي هذا stdio المُدار
ونقل Unix الصريح. ويستخدم $CODEX_HOME عند ضبطه و~/.codex
بخلاف ذلك، بما يشمل المصادقة والإعدادات وPlugins والسلاسل الأصلية.
يتجاوز OpenClaw جسر ملف تعريف المصادقة الخاص به لخادم التطبيق. يمكن لأدوار
المالك المتحقق منها استخدام codex_threads لسرد تلك السلاسل، مع مرشح
search اختياري، وقراءتها وتفريعها وإعادة تسميتها وأرشفتها وإلغاء
أرشفتها. فرّع السلسلة قبل متابعتها في OpenClaw؛ إذ لا تنسق عمليات Codex
المستقلة بين الكتّاب المتزامنين للسلسلة نفسها.
ينطبق اشتراك homeScope هذا على جلسات حزمة التشغيل العادية. أما Chat
المُنشأة من خلال Codex Sessions فتستخدم اتصال الإشراف الخاص بها بدلًا من ذلك،
ما يحافظ على إعدادات المصادقة والمزوّد الخاصة بالاتصال الأصلي للفرع المعتمد
وعمليات الاستئناف المستقبلية.
في Chat خاضعة للإشراف ومقيدة بنموذج، لا يمكن لـ codex_threads إرفاق
فرع مختلف أو أرشفة السلسلة الأصلية المرتبطة بـ Chat. يظل السرد وقراءة
البيانات الوصفية فقط متاحين. تتطلب قراءات النص الخام allowRawTranscripts؛
وعندما تكون معطلة، يُرفض أيضًا بحث القائمة لأن البحث الأصلي قد يطابق معاينات
النص. تتطلب إعادة تسمية سلسلة غير ذات صلة لا تملكها Chat أخرى في OpenClaw،
وإلغاء أرشفتها، وإنشاء فرع منفصل منها، وأرشفتها allowWriteControls. لا يتجاوز
أي من الخيارين ارتباطًا مقفلًا.
لا يعيد OpenClaw كتابة HOME لعمليات تشغيل خادم التطبيق المحلية
العادية. ترى العمليات الفرعية التي يشغلها Codex، مثل openclaw
وgh وgit وأدوات CLI السحابية وأوامر الصدفة،
الدليل الرئيسي العادي للعملية ويمكنها العثور على الإعدادات والرموز المميزة
في الدليل الرئيسي للمستخدم. قد يكتشف Codex أيضًا $HOME/.agents/skills
و$HOME/.agents/plugins/marketplace.json؛ وتتم مشاركة اكتشاف .agents هذا عمدًا مع
الدليل الرئيسي للمشغّل، وهو منفصل عن حالة ~/.codex المعزولة.
في نطاق الوكيل الافتراضي، تظل Plugins الخاصة بـ OpenClaw ولقطات Skills في
OpenClaw تتدفق عبر سجل Plugins ومحمّل Skills الخاصين بـ OpenClaw؛ أما أصول
Codex الشخصية في ~/.codex فلا تتدفق. إذا كانت لديك Skills أو
Plugins مفيدة لـ Codex CLI من دليل Codex رئيسي وينبغي أن تصبح جزءًا من وكيل
OpenClaw معزول، فاحصرها صراحةً:
appServer.clearEnv:
appServer.clearEnv إلا في عملية خادم تطبيق Codex الابنة التي تم
تشغيلها. يزيل OpenClaw CODEX_HOME وHOME من هذه القائمة
أثناء تسوية التشغيل المحلي: يظل CODEX_HOME موجّهًا إلى نطاق الوكيل
أو المستخدم المحدد، ويظل HOME موروثًا كي تتمكن العمليات
الفرعية من استخدام حالة الدليل الرئيسي العادية للمستخدم.
الأدوات الديناميكية
تستخدم أدوات Codex الديناميكية تحميلsearchable افتراضيًا، وتُعرض
ضمن نطاق الأسماء openclaw باستخدام deferLoading: true. لا يعرض
OpenClaw عادةً الأدوات الديناميكية التي تكرر عمليات مساحة العمل الأصلية في
Codex أو سطح البحث عن الأدوات الخاص بـ Codex:
readwriteeditapply_patchexecprocessupdate_plantool_calltool_describetool_searchtool_search_code
exec وprocess
المرشحتين وفق سياسته باعتبارهما الإجراء الاحتياطي للصدفة. تظل قوائم السماح
لوقت التشغيل وcodexDynamicToolsExclude سارية.
تتوفر معظم أدوات تكامل OpenClaw المتبقية، مثل المراسلة والوسائط وCron
والمتصفح والعُقد وGateway وheartbeat_respond وweb_search،
من خلال بحث Codex عن الأدوات ضمن مساحة الاسم تلك. وهذا يُبقي سياق النموذج
الأولي أصغر. تظل مجموعة صغيرة من الأدوات قابلة للاستدعاء مباشرةً بصرف النظر عن
codexDynamicToolsLoading، لأن بحث Codex عن الأدوات قد لا يكون متاحًا أو قد
يقتصر على نطاق يضم الموصلات فقط: agents_list وsessions_spawn
وsessions_yield. وتظل تعليمات المطوّر توجّه الوكلاء الفرعيين العاديين في Codex
نحو spawn_agent الأصلي لأعمال الوكلاء الفرعيين الأصلية في Codex، بينما
يظل sessions_spawn متاحًا للتفويض الصريح عبر OpenClaw أو ACP.
وتظل أيضًا ردود المصدر التي تستخدم أداة الرسائل فقط مباشرةً، لأن ذلك يمثل
عقدًا للتحكم في الدور.
تُجمع الأدوات المعلَّمة بـ catalogMode: "direct-only"، بما فيها أداة OpenClaw
computer، ضمن openclaw_direct. يضيف OpenClaw مساحة الاسم تلك إلى
قائمة code_mode.direct_only_tool_namespaces في Codex دون استبدال
الإدخالات التي يوفّرها المشغّل. ولذلك يعرض Codex تلك الأدوات باعتبارها
DirectModelOnly في سلاسل المحادثات العادية والمقتصرة على وضع الشيفرة بدلًا من توجيهها
عبر استدعاءات Code Mode tools.* المتداخلة. هذا الحد الفاصل مطلوب
للنتائج التي تحتوي على صور: إذ يحوّل التسلسل المتداخل في Code Mode مخرجات الصور إلى
نص، ما يؤدي إلى فقدان لقطة الشاشة اللازمة لإجراء الحاسوب التالي.
عيّن codexDynamicToolsLoading: "direct" فقط عند الاتصال بخادم تطبيقات
Codex مخصّص لا يستطيع البحث عن الأدوات الديناميكية المؤجلة أو عند تصحيح
حمولة الأدوات الكاملة.
المُهَل الزمنية
تُحدَّد مدة استدعاءات الأدوات الديناميكية المملوكة لـ OpenClaw بصورة مستقلة عنappServer.requestTimeoutMs. يستخدم كل طلب item/tool/call في Codex
أول مهلة متاحة بالترتيب التالي:
- وسيطة
timeoutMsموجبة لكل استدعاء. - بالنسبة إلى
image_generate، agents.defaults.imageGenerationModel.timeoutMs. - بالنسبة إلى
image_generateمن دون مهلة مضبوطة، القيمة الافتراضية لتوليد الصور وهي 120 ثانية. - بالنسبة إلى أداة فهم الوسائط
image، تُحوَّلtools.media.image.timeoutSecondsإلى ميلي ثانية، أو تُستخدم القيمة الافتراضية للوسائط وهي 60 ثانية. وبالنسبة إلى فهم الصور، ينطبق ذلك على الطلب نفسه ولا يُخفَّض بسبب أعمال التحضير السابقة. - بالنسبة إلى أداة
message، قيمة افتراضية ثابتة قدرها 120 ثانية. - القيمة الافتراضية للأداة الديناميكية وهي 90 ثانية.
item/tool/call الديناميكية الخارجية. تعمل المُهَل الخاصة
بطلبات مزوّد بعينه داخل ذلك الاستدعاء، وتحتفظ بدلالات المُهَل الخاصة بها.
تُحدَّد ميزانيات الأدوات الديناميكية بحد أقصى قدره 600000 ms. عند انقضاء المهلة، يُجهض OpenClaw
إشارة الأداة حيثما كان ذلك مدعومًا، ويُعيد إلى Codex استجابة فاشلة من الأداة الديناميكية
حتى يمكن للدور أن يستمر بدلًا من ترك الجلسة في
processing.
بعد أن يقبل Codex دورًا، وبعد أن يستجيب OpenClaw لطلب خادم تطبيقات
محدود بنطاق الدور، يتوقع إطار التشغيل من Codex إحراز تقدم في الدور الحالي
وإنهاء الدور الأصلي في النهاية باستخدام turn/completed. إذا ظل
خادم التطبيقات صامتًا طوال appServer.turnCompletionIdleTimeoutMs، يحاول OpenClaw
مقاطعة دور Codex بأفضل جهد ممكن، ويسجّل تشخيصًا لانقضاء المهلة،
ويحرّر مسار جلسة OpenClaw حتى لا توضع رسائل الدردشة اللاحقة في قائمة انتظار
خلف دور أصلي متقادم.
تلغي معظم الإشعارات غير النهائية للدور نفسه تسليح آلية المراقبة القصيرة
لأن Codex أثبت أن الدور لا يزال نشطًا. تستخدم عمليات تسليم الأدوات
ميزانية خمول أطول بعد الأداة: بعد أن يعيد OpenClaw استجابة item/tool/call،
وبعد اكتمال عناصر الأدوات الأصلية مثل commandExecution، وبعد اكتمالات
custom_tool_call_output الأولية، وبعد تقدم المساعد الأولي عقب الأداة،
أو اكتمالات الاستدلال الأولية، أو تقدم الاستدلال. يستخدم الحارس
appServer.postToolRawAssistantCompletionIdleTimeoutMs عند ضبطه،
وتكون قيمته الافتراضية خمس دقائق بخلاف ذلك. كما تمدد ميزانية ما بعد الأداة نفسها
آلية مراقبة التقدم خلال نافذة التوليف الصامتة قبل أن يصدر Codex
حدث الدور الحالي التالي. قد تتبع اكتمالات الاستدلال واكتمالات
agentMessage في التعليقات وتقدم الاستدلال أو المساعد الأولي قبل الأداة
إجابة نهائية تلقائية، لذا تستخدم حارس الرد بعد التقدم
بدلًا من تحرير مسار الجلسة فورًا. لا تُسلّح تحرير مخرجات المساعد إلا عناصر
agentMessage النهائية/المكتملة غير التعليقية واكتمالات المساعد الأولية قبل الأداة:
فإذا ظل Codex صامتًا بعد ذلك من دون turn/completed،
يحاول OpenClaw مقاطعة الدور الأصلي بأفضل جهد ممكن ويحرّر مسار
الجلسة. تُعاد محاولة حالات فشل خادم التطبيقات عبر stdio الآمنة لإعادة التشغيل،
بما فيها مُهَل خمول اكتمال الدور التي لا تتضمن دليلًا على وجود مساعد أو أداة
أو عنصر نشط أو أثر جانبي، مرة واحدة في محاولة جديدة لخادم التطبيقات.
أما المُهَل غير الآمنة فتؤدي مع ذلك إلى إنهاء عميل خادم التطبيقات العالق
وتحرير مسار جلسة OpenClaw. كما تمحو ارتباط سلسلة المحادثة الأصلية المتقادم
بدلًا من إعادة تشغيلها تلقائيًا. تعرض مُهَل مراقبة الاكتمال نصًا خاصًا بـ Codex:
فتشير الحالات الآمنة لإعادة التشغيل إلى أن الاستجابة قد تكون غير مكتملة،
بينما تطلب الحالات غير الآمنة من المستخدم التحقق من الحالة الحالية قبل إعادة المحاولة.
تتضمن تشخيصات المُهَل العامة حقولًا بنيوية مثل آخر طريقة إشعار من خادم التطبيقات،
ومعرّف/نوع/دور عنصر استجابة المساعد الأولي، وأعداد الطلبات/العناصر النشطة،
وحالة المراقبة المُسلَّحة. وعندما يكون آخر إشعار عنصر استجابة أولية من المساعد،
فإنها تتضمن أيضًا معاينة محدودة لنص المساعد. ولا تتضمن
محتوى المطالبة أو الأداة الأولي.
اكتشاف النماذج
افتراضيًا، يطلب Plugin الخاص بـ Codex من خادم التطبيقات النماذج المتاحة. تعود ملكية إتاحة النماذج إلى خادم تطبيقات Codex، لذا قد تتغير القائمة عندما يرقّي OpenClaw إصدار@openai/codex المضمّن أو عندما يشير نشرٌ ما
بواسطة appServer.command إلى ملف Codex تنفيذي مختلف. وقد تكون الإتاحة أيضًا
محددة بنطاق الحساب. استخدم /codex models على Gateway قيد التشغيل للاطلاع على
الفهرس المباشر لإطار التشغيل والحساب المعنيين.
إذا فشل الاكتشاف أو انتهت مهلته، يستخدم OpenClaw فهرسًا احتياطيًا مضمّنًا:
إطار التشغيل المضمّن الحالي هو
@openai/codex 0.144.3. أعاد فحص
model/list لخادم التطبيقات المضمّن صفوف المنتقي العامة التالية:يمكن لفهرس خادم التطبيقات الإبلاغ عن
ultra؛ وتعرض عناصر التحكم في الاستدلال
في OpenClaw حاليًا المستويات حتى max.تكون صفوف المنتقي المباشرة محددة بنطاق الحساب، وقد تتغير بتغير الحساب أو فهرس
Codex أو الإصدار المضمّن؛ شغّل /codex models للحصول على القائمة الحالية بدلًا
من الاعتماد على أي جدول مرتبط بلحظة زمنية معينة. وقد تظهر النماذج المخفية أيضًا في
فهرس خادم التطبيقات للتدفقات الداخلية أو المتخصصة من دون أن تكون خيارات عادية
في منتقي النماذج.plugins.entries.codex.config.discovery:
ملفات تمهيد مساحة العمل
يتعامل Codex معAGENTS.md بنفسه من خلال الاكتشاف الأصلي لوثائق المشروع.
لا يكتب OpenClaw ملفات اصطناعية لوثائق مشروع Codex ولا يعتمد على أسماء الملفات
الاحتياطية في Codex لملفات الشخصية، لأن بدائل Codex لا تُطبَّق إلا عند غياب
AGENTS.md.
لتحقيق التكافؤ مع مساحة عمل OpenClaw، يمرّر إطار تشغيل Codex ملفات
التمهيد الأخرى باعتبارها تعليمات للمطوّر، ولكن ليس بالطريقة نفسها:
- يُمرَّر
TOOLS.mdباعتباره تعليمات مطوّر موروثة في Codex، بحيث يراه أيضًا الوكلاء الفرعيون الأصليون في Codex الذين يُنشؤون أثناء الدور. - تُمرَّر
SOUL.mdوIDENTITY.mdوUSER.mdباعتبارها تعليمات تعاون محدودة بنطاق الدور. لا يرثها الوكلاء الفرعيون الأصليون في Codex، ما يمنع أدوار الوكلاء الفرعيين من التقاط شخصية الوكيل الأصل وملف المستخدم الشخصي. - تُمرَّر أيضًا قائمة Skills المحمّلة والموجزة في OpenClaw باعتبارها تعليمات مطوّر للتعاون محدودة بنطاق الدور، ولذلك لا يرثها الوكلاء الفرعيون الأصليون في Codex أيضًا.
- لا يُحقن محتوى
HEARTBEAT.md؛ بل تحصل أدوار Heartbeat على مؤشر في وضع التعاون لقراءة الملف عندما يكون موجودًا وغير فارغ. - لا يُلصق محتوى
MEMORY.mdمن مساحة عمل الوكيل المضبوطة في إدخال الدور الأصلي في Codex عندما تكون أدوات الذاكرة متاحة لمساحة العمل تلك؛ وعندما يكون موجودًا، يضيف إطار التشغيل مؤشرًا صغيرًا لذاكرة مساحة العمل إلى تعليمات مطوّر التعاون محدودة نطاق الدور، وينبغي لـ Codex استخدامmemory_searchأوmemory_getعندما تكون الذاكرة الدائمة ذات صلة. وإذا كانت الأدوات معطلة، أو كان البحث في الذاكرة غير متاح، أو اختلفت مساحة العمل النشطة عن مساحة عمل ذاكرة الوكيل، يستخدمMEMORY.mdمسار سياق الدور المحدود المعتاد بدلًا من ذلك. - يُمرَّر
BOOTSTRAP.md، عند وجوده، باعتباره سياقًا مرجعيًا لإدخال دور OpenClaw.
تجاوزات البيئة
تظل تجاوزات البيئة متاحة للاختبار المحلي:OPENCLAW_CODEX_APP_SERVER_BINOPENCLAW_CODEX_APP_SERVER_ARGSOPENCLAW_CODEX_APP_SERVER_MODE=yolo|guardianOPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICYOPENCLAW_CODEX_APP_SERVER_SANDBOX
OPENCLAW_CODEX_APP_SERVER_BIN الملف التنفيذي المُدار عندما
لا تكون appServer.command معيّنة.
أُزيل OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1. استخدم
plugins.entries.codex.config.appServer.mode: "guardian" بدلًا منه، أو
OPENCLAW_CODEX_APP_SERVER_MODE=guardian للاختبار المحلي لمرة واحدة. يُفضَّل
الإعداد لعمليات النشر القابلة للتكرار لأنه يُبقي سلوك Plugin في
الملف نفسه الخاضع للمراجعة مع بقية إعداد إطار تشغيل Codex.