نظرة عامة
يمتلك Codex حلقة النموذج الأصلية، والاستئناف الأصلي لسلاسل المحادثات، والمتابعة الأصلية للأدوات، وCompaction الأصلي. بينما يمتلك OpenClaw توجيه القنوات، وملفات الجلسات، وتسليم الرسائل المرئية، وأدوات OpenClaw الديناميكية، والموافقات، وتسليم الوسائط، ونسخة مرآة من سجل المحادثة حول تلك الحدود. يتبع توجيه المطالبات وقت التشغيل المحدد، وليس سلسلة المزوّد وحدها. يتلقى دور Codex أصلي تعليمات مطوّر خادم تطبيق Codex؛ بينما يحتفظ مسار توافق OpenClaw الصريح بمطالبة نظام OpenClaw المعتادة حتى عندما يستخدم مصادقة OpenAI أو وسيلة نقل بنمط Codex. يبدأ OpenClaw سلاسل Codex الأصلية ويستأنفها مع تعطيل الشخصية المضمّنة في Codex (personality: "none")، بحيث تظل ملفات شخصية مساحة العمل وهوية وكيل OpenClaw هي المرجع المعتمد. بخلاف ذلك، يحتفظ Codex الأصلي بتعليمات الأساس/النموذج المملوكة لـ Codex وتحميل مستندات المشروع. وتستمر عمليات OpenClaw الخفيفة (مثل cron) في منع تحميل مستندات المشروع.
تغطي تعليمات مطوّر OpenClaw اهتمامات وقت تشغيل OpenClaw: التسليم عبر القناة المصدر، وأدوات OpenClaw الديناميكية، وتفويض ACP، وسياق المهايئ، وملفات ملف تعريف مساحة عمل الوكيل النشط. وتُعرض كتالوجات Skills ومؤشرات MEMORY.md الموجّهة عبر الأدوات على هيئة تعليمات مطوّر للتعاون ضمن نطاق الدور. وعندما لا تتوفر أدوات الذاكرة، يُستخدم محتوى BOOTSTRAP.md النشط وملف MEMORY.md الكامل بديلًا كسياق إدخال نصي عادي للدور.
تستخدم معظم أدوات OpenClaw الديناميكية نطاق الأسماء القابل للبحث openclaw. أما الأدوات الموسومة بـ catalogMode: "direct-only" فتستخدم openclaw_direct، الذي يبقيه Codex مرئيًا للنموذج مباشرةً بوصفه DirectModelOnly بدلًا من إتاحته للتنفيذ المتداخل في وضع البرمجة.
ارتباطات سلاسل المحادثات وتغييرات النموذج
عندما تُرفق جلسة OpenClaw بسلسلة Codex موجودة، يعيد الدور التالي إرسال النموذج المحدد حاليًا، وسياسة الموافقة، وبيئة العزل، ومراجع الموافقات، ومستوى الخدمة إلى خادم التطبيق. يؤدي التبديل منopenai/gpt-5.5 إلى openai/gpt-5.2 إلى الاحتفاظ بارتباط السلسلة، مع مطالبة Codex بالمتابعة باستخدام النموذج المحدد حديثًا.
تُعد الارتباطات الخاضعة للإشراف استثناءً. يظل منتقي نموذج OpenClaw مقفلًا، وتحذف عمليات الاستئناف تجاوزات النموذج والمزوّد كي يستعيد Codex النموذج والمزوّد المحفوظين للسلسلة المرجعية. يمكن لعنصر تحكم أصلي منفصل في Codex تغيير ذلك الزوج المحفوظ، وقد تنتج اللقطة الأولية تحذير Codex المعتاد بشأن اختلاف النموذج؛ ولا تحل سلسلة نموذج OpenClaw الخارجية وبدائله محل أي منهما أبدًا.
الإشراف والمتابعة الآمنة
إشراف Codex هو إمكانية اختيارية ضمن Plugincodex نفسه. يكتشف السلاسل الأصلية عبر اتصال منفصل، ولا يعرض في كتالوج Gateway سوى الجلسات غير المؤرشفة. وفي غياب إعدادات اتصال appServer الصريحة، يستخدم ذلك الاتصال الإدخال/الإخراج القياسي المُدار في المجلد الرئيسي للمستخدم، بينما تظل الحاضنة العادية ضمن نطاق الوكيل. تكون قراءات القوائم والبيانات الوصفية سلبية: فهي لا تستأنف سلسلة، ولا تشترك بـ OpenClaw في أحداثها المباشرة، ولا تجيب عن موافقاتها.
بالنسبة إلى جلسة محفوظة أو خاملة على حاسوب Gateway، ينشئ المتابعة كفرع محادثة عادية مقفلة على النموذج، ويعكس سجلًا محدودًا للمستخدم والمساعد حتى آخر دور نهائي محفوظ في المصدر. يثبّت أول دور في المحادثة العادية معالجات الموافقة الفعلية، ويستخدم تفرعًا أصليًا مؤقتًا لتثبيت اللقطة دون تجاوز النموذج أو المزوّد. يستخدم خادم تطبيق Codex إعداده الأصلي الحالي ويعيد الزوج المحدد؛ ويصدر تحذيره المعتاد إذا اختلف ذلك النموذج عن آخر نموذج مسجل للمصدر. وعلى اتصال الإشراف نفسه، يبدأ OpenClaw سلسلة حاضنة Codex المرجعية ذات المصدر appServer ضمن دليل عملها الحالي وسياسة وقت تشغيلها، باستخدام النموذج والمزوّد المُعادين بالضبط عند تلك البداية الأولية، ويحقن السجل المرئي المحدود، ثم يؤرشف التفرع المؤقت. لا يُستأنف المصدر مطلقًا. تحتوي السلسلة المرجعية على سطح أدوات حاضنة OpenClaw الكامل؛ ولا يُستنسخ فيها الاستدلال، أو استدعاءات الأدوات، أو نتائج الأدوات من المصدر. يستمر نطاق الاتصال الخاص عبر حالتي الارتباط المعلّقة والمُثبتة، بحيث يبقى كل دور لاحق على ذلك الاتصال باستخدام المصادقة الأصلية وإعداد المزوّد. يؤدي تعطيل الإشراف أو انحراف الارتباط/الاتصال إلى الإغلاق الآمن بدلًا من التبديل إلى حاضنة المجلد الرئيسي العادية للوكيل.
يظل المصدر الأصلي في CLI أو VS Code مؤهلًا للظهور في كلا الكتالوجين. الفرع المرجعي هو سلسلة Codex أصلية، لكن نوع مصدره هو appServer؛ وقد ترشّح البرامج العميلة الأصلية نوع المصدر هذا، لذلك لا يُضمن ظهوره في Codex Desktop.
لا يمكن للمصادر النشطة بدء فرع جديد أو أن تُؤرشف؛ ومع ذلك، يمكن فتح محادثة خاضعة للإشراف موجودة. تعني notLoaded أن النشاط غير معروف، لا أن المصدر خامل؛ ولا يسمح OpenClaw بالأرشفة لصف محلي حالته idle أو notLoaded إلا بعد تأكيد صريح بعدم وجود مشغّل آخر وقراءة حديثة للحالة محليًا داخل العملية. يسلسل Codex تغييرات سلاسل المحادثات داخل عملية واحدة لخادم التطبيق، لكنه لا يوفر عقد إيجار حصريًا لمشغّل أو مالك موافقات عبر العمليات، لذلك لا يمكن لتلك القراءة إثبات أن عملية أخرى لا تستخدم السلسلة. يحظر OpenClaw مالك ارتباط معروفًا نشطًا للهدف نفسه أو لأي سليل غير مؤرشف ناتج تُعيده استعلامات Codex المُرقّمة للنسل. تؤدي أخطاء التعداد، والدورات، واستنفاد حدود الأمان إلى الإغلاق الآمن. مع ذلك، قد تتسابق الأرشفة الأصلية مع دور جديد في عملية أخرى، لذلك يشمل التأكيد البرامج العميلة غير المعروفة والفجوة بين قراءة الحالة والأرشفة. ولا يمكن حذف محادثة خاضعة للإشراف ومقفلة على النموذج ما دامت تحمي الارتباط الأصلي.
تظل كتالوجات العُقد المقترنة مقتصرة على البيانات الوصفية في الإصدار الأولي. حدود استدعاء العقدة الحالية قائمة على الطلب/الاستجابة، ولا يمكنها نقل أحداث الأدوار طويلة الأمد، أو طلبات الموافقة، أو المخرجات المتدفقة المطلوبة لارتباط حقيقي بحاضنة Codex. لذلك تظل عمليتا المتابعة والأرشفة عن بُعد غير متاحتين حتى عندما يكون الصف خاملًا.
راجع إشراف Codex للاطلاع على إعداد المشغّل والسلوك المرئي لواجهة التحكم.
الردود المرئية ونبضات Heartbeat
تستخدم أدوار المحادثة المباشرة/المصدرية عبر حاضنة Codex افتراضيًا التسليم التلقائي لرد المساعد النهائي على أسطح WebChat الداخلية، بما يتوافق مع عقد حاضنة Pi: يرد الوكيل بصورة عادية، وينشر OpenClaw النص النهائي في محادثة المصدر. اضبطmessages.visibleReplies: "message_tool" لإبقاء نص المساعد النهائي خاصًا ما لم يستدعِ الوكيل message(action="send").
تتلقى أدوار Heartbeat في Codex الأداة heartbeat_respond افتراضيًا ضمن كتالوج أدوات OpenClaw القابل للبحث، كي يتمكن الوكيل من تسجيل ما إذا كان ينبغي للاستيقاظ أن يظل صامتًا أو يرسل إشعارًا. تُرسل إرشادات المبادرة في Heartbeat على هيئة تعليمات مطوّر لوضع التعاون في Codex ضمن نطاق دور Heartbeat؛ بينما تظل أدوار المحادثة العادية في الوضع الافتراضي لـ Codex. عندما لا يكون HEARTBEAT.md فارغًا، توجّه تعليمات Heartbeat برنامج Codex إلى الملف بدلًا من تضمين محتوياته مباشرةً.
حدود نقاط الربط
لا يستخدم OpenClaw ملفات
hooks.json الخاصة بالمشروع أو العامة في Codex لتوجيه سلوك Plugin. وبالنسبة إلى جسر الأدوات الأصلية والأذونات، يحقن OpenClaw إعداد Codex لكل سلسلة من أجل PreToolUse وPostToolUse وPermissionRequest وStop.
عند تمكين موافقات خادم تطبيق Codex (أي عندما لا تكون approvalPolicy بالقيمة "never")، يحذف إعداد نقاط الربط الأصلية المحقون افتراضيًا PermissionRequest، بحيث يتولى مراجع خادم تطبيق Codex وجسر موافقات OpenClaw عمليات التصعيد الحقيقية بعد المراجعة. أضف permission_request إلى nativeHookRelay.events لفرض مرحّل التوافق رغم ذلك. وتظل نقاط ربط Codex الأخرى مثل SessionStart وUserPromptSubmit عناصر تحكم على مستوى Codex؛ ولا تُعرض كنقاط ربط Plugin في OpenClaw ضمن عقد الإصدار الأول.
بالنسبة إلى أدوات OpenClaw الديناميكية، ينفذ OpenClaw الأداة بعد أن يطلب Codex الاستدعاء، لذلك يُنفذ سلوك Plugin والبرمجيات الوسيطة داخل مهايئ الحاضنة. أما أدوات Codex الأصلية، فيمتلك Codex سجل الأداة المرجعي؛ ويمكن لـ OpenClaw عكس أحداث محددة، لكنه لا يستطيع إعادة كتابة السلسلة الأصلية ما لم يوفّر Codex ذلك عبر خادم التطبيق أو استدعاءات نقاط الربط الأصلية.
تؤجل أحداث PreToolUse في وضع التقارير لخادم تطبيق Codex موافقة Plugin إلى موافقة خادم التطبيق المطابقة. إذا أعادت نقطة ربط before_tool_call في OpenClaw القيمة requireApproval بينما تضبط الحمولة الأصلية openclaw_approval_mode: "report"، يسجل مرحّل نقطة الربط الأصلية متطلب موافقة Plugin ولا يعيد أي قرار أصلي. عندما يرسل Codex لاحقًا طلب موافقة خادم التطبيق لاستخدام الأداة نفسه، يفتح OpenClaw مطالبة موافقة Plugin ويربط القرار مجددًا بـ Codex. تمثل أحداث PermissionRequest في Codex مسار موافقة منفصلًا، ويمكنها الاستمرار في المرور عبر موافقات OpenClaw عند إعداد ذلك الجسر.
توفر إشعارات عناصر خادم تطبيق Codex أيضًا ملاحظات after_tool_call غير متزامنة حول اكتمال الأدوات الأصلية التي لم يشملها بالفعل مرحّل PostToolUse الأصلي. وهي مخصصة للقياس عن بُعد/التوافق فقط؛ ولا يمكنها حظر استدعاء الأداة الأصلي أو تأخيره أو تعديله.
تأتي إسقاطات Compaction ودورة حياة LLM من إشعارات خادم تطبيق Codex وحالة مهايئ OpenClaw، لا من أوامر نقاط ربط Codex الأصلية. وتُعد before_compaction وafter_compaction وllm_input وllm_output ملاحظات على مستوى المهايئ، وليست تسجيلات مطابقة بايتًا ببايت لطلب Codex الداخلي أو حمولات Compaction.
تُعرض إشعارات خادم التطبيق الأصلية hook/started وhook/completed في Codex على هيئة أحداث وكيل codex_app_server.hook لتتبّع المسار وتصحيح الأخطاء. وهي لا تستدعي نقاط ربط Plugin في OpenClaw.
عقد دعم الإصدار الأول
المدعوم في وقت تشغيل Codex بالإصدار الأول:
غير مدعوم في الإصدار 1 من وقت تشغيل Codex:
الأذونات الأصلية وطلبات الاستيضاح عبر MCP
بالنسبة إلىPermissionRequest، لا يعيد OpenClaw سوى قرارات السماح أو الرفض
الصريحة عندما تقرر السياسة ذلك. لا تعني نتيجة عدم اتخاذ قرار السماح: يتعامل
Codex معها على أنها عدم وجود قرار من الخطاف، وينتقل إلى مسار الحارس أو موافقة
المستخدم الخاص به.
تحذف أوضاع موافقة خادم تطبيق Codex هذا الخطاف الأصلي افتراضيًا. وينطبق ذلك
ما لم يُضمَّن permission_request صراحةً في nativeHookRelay.events أو يثبّت
وقت تشغيل للتوافق هذا الخطاف.
عندما يختار المشغّل allow-always لطلب إذن أصلي من Codex، يتذكر OpenClaw
البصمة الدقيقة لمدخلات المزوّد/الجلسة/الأداة/cwd ضمن نافذة جلسة محدودة.
ويقتصر القرار المحفوظ عمدًا على التطابق التام فقط: يؤدي أي تغيير في الأمر أو
الوسيطات أو حمولة الأداة أو cwd إلى إنشاء موافقة جديدة.
تُوجَّه طلبات موافقة أدوات Codex MCP عبر تدفق موافقة Plugin في OpenClaw
عندما يعيّن Codex القيمة _meta.codex_approval_kind إلى "mcp_tool_call".
تُعاد مطالبات request_user_input في Codex إلى المحادثة الأصلية، وتجيب رسالة
المتابعة التالية في قائمة الانتظار عن طلب الخادم الأصلي بدلًا من توجيهها كسياق
إضافي. وتُرفض طلبات الاستيضاح الأخرى عبر MCP عند غياب قرار صريح.
للتعرف على تدفق موافقة Plugin العام الذي يحمل هذه المطالبات، راجع
طلبات أذونات Plugin.
توجيه قائمة الانتظار
يتطابق توجيه قائمة انتظار التشغيل النشط معturn/steer في خادم تطبيق Codex.
وباستخدام الإعداد الافتراضي messages.queue.mode: "steer"، يجمع OpenClaw
رسائل المحادثة في وضع التوجيه خلال نافذة السكون المكوَّنة، ويرسلها في طلب
turn/steer واحد حسب ترتيب وصولها.
قد ترفض دورات مراجعة Codex وCompaction اليدوية التوجيه في الدورة نفسها. في
هذه الحالة، ينتظر OpenClaw انتهاء التشغيل النشط قبل بدء
الموجّه. استخدم /queue followup أو /queue collect عندما ينبغي وضع الرسائل في قائمة الانتظار
افتراضيًا بدلًا من التوجيه. راجع قائمة انتظار التوجيه.
رفع ملاحظات Codex
عند الموافقة على/diagnostics [note] لجلسة ضمن
بيئة تشغيل Codex الأصلية، يستدعي OpenClaw أيضًا واجهة feedback/upload في خادم تطبيق Codex لسلاسل
Codex ذات الصلة، بما في ذلك سجلات كل سلسلة مدرجة وسلاسل Codex
الفرعية المنشأة عند توفرها.
يمر الرفع عبر مسار الملاحظات المعتاد في Codex إلى خوادم OpenAI. إذا
كانت ملاحظات Codex معطّلة في خادم التطبيق ذاك، يُرجع الأمر خطأ
خادم التطبيق. يسرد رد التشخيصات المكتملة القنوات،
ومعرّفات جلسات OpenClaw، ومعرّفات سلاسل Codex، وأوامر codex resume <thread-id>
المحلية للسلاسل التي أُرسلت.
إذا رفضت الموافقة أو تجاهلتها، فلن يطبع OpenClaw معرّفات Codex تلك
ولن يرسل ملاحظات Codex. لا يحل الرفع محل تصدير
تشخيصات Gateway المحلي. راجع تصدير التشخيصات لمعرفة
سلوك الموافقة والخصوصية والحزمة المحلية والمحادثات الجماعية.
استخدم /codex diagnostics [note] فقط عندما تريد رفع ملاحظات Codex
للسلسلة المرفقة حاليًا من دون حزمة تشخيصات Gateway
الكاملة.
Compaction ونسخة السجل المطابقة
عندما يستخدم النموذج المحدد بيئة تشغيل Codex، تكون ملكية Compaction الأصلي للسلسلة لخادم تطبيق Codex. لا يشغّل OpenClaw فحص Compaction تمهيديًا لدورات Codex، ولا يستبدل Compaction الخاص بـCodex بعملية Compaction لمحرك السياق، ولا يلجأ إلى التلخيص عبر OpenClaw أو OpenAI العام عندما يتعذر بدء Compaction الأصلي. يحتفظ OpenClaw بنسخة مطابقة من السجل لسجل القناة والبحث و/new و/reset والتبديل المستقبلي للنموذج أو بيئة التشغيل.
تبدأ طلبات Compaction الصريحة، مثل /compact أو عملية
Compaction يدوية يطلبها Plugin، عملية Compaction الأصلية في Codex باستخدام thread/compact/start.
يبقي OpenClaw الطلب واستئجار العميل المشترك مفتوحين حتى يصدر Codex
عنصر الإكمال contextCompaction المطابق، ثم يُبلغ عن اكتمال
دورة Compaction. إذا تجاوزت تلك الدورة النهائية مهلة Compaction
المكوّنة، يطلب OpenClaw مقاطعة أصلية للدورة. يظل الاستئجار وحاجز
Compaction الخاص بكل سلسلة محتجزين حتى يُبلغ Codex عن الحالة النهائية أو يؤكد
استدعاء RPC الخاص بالمقاطعة. إذا لم يؤكد Codex خلال فترة السماح
للمقاطعة، يُخرج OpenClaw الاتصال من الخدمة قبل تحرير الحاجز. كما
تفصل الاتصالات البعيدة ارتباط السلسلة المطابق كي لا يتداخل العمل اللاحق
مع دورة بعيدة غير مؤكدة. تفشل الدورات الأخرى على اتصال أُخرج من الخدمة
ويمكنها إعادة المحاولة باستخدام عميل جديد. يؤدي إغلاق العميل أو إلغاء الطلب أو
فشل دورة Compaction إلى إرجاع عملية فاشلة. تقع مسؤولية Compaction التلقائي الناتج عن ضغط السياق
على Codex؛ ولا يبدأ OpenClaw عملية Compaction الأصلية إلا للمشغلات
المطلوبة يدويًا.
عندما يطلب محرك سياق إسقاط تمهيد سلسلة Codex، يُسقط OpenClaw
أسماء استدعاءات الأدوات ومعرّفاتها وأشكال المدخلات ومحتوى نتائج الأدوات المنقّح
إلى سلسلة Codex الجديدة. ولا ينسخ قيم وسائط استدعاءات الأدوات الأولية
إلى ذلك الإسقاط.
تتضمن النسخة المطابقة موجّه المستخدم والنص النهائي للمساعد وسجلات
استدلال Codex أو خططه الخفيفة عندما يصدرها خادم التطبيق. يسجل OpenClaw
بدء Compaction الأصلي وحالته النهائية، لكنه لا
يكشف ملخصًا لعملية Compaction يمكن للبشر قراءته أو قائمة قابلة للتدقيق بالعناصر التي
احتفظ بها Codex بعد Compaction.
نظرًا إلى أن Codex يملك السلسلة الأصلية المعيارية، فإن tool_result_persist لا
يعيد كتابة سجلات نتائج الأدوات الأصلية في Codex. ولا ينطبق إلا عندما يكتب OpenClaw
نتيجة أداة في سجل جلسة مملوك لـOpenClaw.
الوسائط والتسليم
يواصل OpenClaw امتلاك مسؤولية تسليم الوسائط واختيار موفّر الوسائط. تستخدم الصور والفيديو والموسيقى وPDF وTTS وفهم الوسائط إعدادات الموفّر/النموذج المطابقة، مثلagents.defaults.imageGenerationModel
وvideoGenerationModel وpdfModel وmessages.tts.
يستمر النص والصور والفيديو والموسيقى وTTS والموافقات ومخرجات أداة المراسلة
عبر مسار التسليم المعتاد في OpenClaw؛ ولا يتطلب توليد الوسائط
وقت التشغيل القديم. عندما يصدر Codex عنصرًا أصليًا لتوليد الصور يحتوي على
savedPath، يمرر OpenClaw ذلك الملف نفسه عبر مسار وسائط الرد
المعتاد حتى إذا لم تتضمن دورة Codex نصًا من المساعد.