Codex harness
بيئة تشغيل حاضنة Codex
توثق هذه الصفحة عقد وقت التشغيل لدورات تسخير Codex. للإعداد والتوجيه، ابدأ بـ تسخير Codex. ولحقول الإعدادات، راجع مرجع تسخير Codex.
نظرة عامة
وضع Codex ليس PI مع استدعاء نموذج مختلف في الطبقة السفلى. يملك Codex جزءًا أكبر من حلقة النموذج الأصلية، ويكيّف OpenClaw أسطح الـ Plugin والأدوات والجلسات والتشخيصات حول ذلك الحد.
لا يزال OpenClaw يملك توجيه القنوات، وملفات الجلسات، وتسليم الرسائل المرئية، وأدوات OpenClaw الديناميكية، والموافقات، وتسليم الوسائط، ومرآة النص الكامل. ويملك Codex السلسلة الأصلية المعيارية، وحلقة النموذج الأصلية، ومتابعة الأداة الأصلية، وCompaction الأصلية.
ارتباطات السلسلة وتغييرات النموذج
عند إرفاق جلسة OpenClaw بسلسلة Codex موجودة، ترسل الدورة التالية نموذج OpenAI
المحدد حاليًا، وسياسة الموافقة، وبيئة العزل، وطبقة الخدمة إلى خادم التطبيق مرة
أخرى. يحافظ التبديل من openai/gpt-5.5 إلى
openai/gpt-5.2 على ارتباط السلسلة لكنه يطلب من Codex المتابعة باستخدام
النموذج المحدد حديثًا.
الردود المرئية وHeartbeats
عندما تمر دورة محادثة مصدرية عبر تسخير Codex، تكون الردود المرئية افتراضيًا
عبر أداة OpenClaw message إذا لم يضبط النشر
messages.visibleReplies صراحة. لا يزال بإمكان الوكيل إنهاء دورة Codex الخاصة
به سرًا؛ ولا ينشر إلى القناة إلا عندما يستدعي message(action="send"). اضبط
messages.visibleReplies: "automatic" لإبقاء الردود النهائية للمحادثة المباشرة
على مسار التسليم التلقائي القديم.
تحصل دورات Heartbeat في Codex أيضًا على heartbeat_respond في فهرس أدوات
OpenClaw القابل للبحث افتراضيًا، لكي يتمكن الوكيل من تسجيل ما إذا كان ينبغي أن
تبقى اليقظة صامتة أو ترسل إشعارًا من دون ترميز تدفق التحكم هذا في النص النهائي.
تُرسل إرشادات المبادرة الخاصة بـ Heartbeat كتعليمة مطور لوضع التعاون في Codex على دورة Heartbeat نفسها. وتستعيد دورات المحادثة العادية وضع Codex الافتراضي بدلًا من حمل فلسفة Heartbeat في مطالبة وقت التشغيل العادية.
حدود الخطافات
يتضمن تسخير Codex ثلاث طبقات خطافات:
| الطبقة | المالك | الغرض |
|---|---|---|
| خطافات Plugin في OpenClaw | OpenClaw | توافق المنتج/Plugin عبر تسخيرات PI وCodex. |
| برمجية توسعة خادم تطبيق Codex الوسيطة | Plugins المجمعة في OpenClaw | سلوك المهايئ لكل دورة حول أدوات OpenClaw الديناميكية. |
| خطافات Codex الأصلية | Codex | دورة حياة Codex منخفضة المستوى وسياسة الأدوات الأصلية من إعدادات Codex. |
لا يستخدم OpenClaw ملفات hooks.json الخاصة بالمشروع أو العالمية في Codex
لتوجيه سلوك Plugin في OpenClaw. وبالنسبة إلى جسر الأداة الأصلية والأذونات
المدعوم، يحقن OpenClaw إعدادات Codex لكل سلسلة لـ PreToolUse وPostToolUse
وPermissionRequest وStop.
عند تمكين موافقات خادم تطبيق Codex، أي عندما لا تكون approvalPolicy
هي "never"، يحذف إعداد الخطاف الأصلي المحقون افتراضيًا PermissionRequest لكي
يتعامل مراجع خادم تطبيق Codex وجسر موافقات OpenClaw مع التصعيدات الحقيقية بعد
المراجعة. يمكن للمشغلين إضافة permission_request صراحة إلى
nativeHookRelay.events عندما يحتاجون إلى مرحّل التوافق.
تبقى خطافات Codex الأخرى مثل SessionStart وUserPromptSubmit عناصر تحكم على
مستوى Codex. ولا تُعرض كخطافات Plugin في OpenClaw ضمن عقد v1.
بالنسبة إلى أدوات OpenClaw الديناميكية، ينفذ OpenClaw الأداة بعد أن يطلب Codex الاستدعاء، لذلك يشغل OpenClaw سلوك Plugin والبرمجية الوسيطة الذي يملكه في مهايئ التسخير. وبالنسبة إلى أدوات Codex الأصلية، يملك Codex سجل الأداة المعياري. يستطيع OpenClaw عكس أحداث محددة، لكنه لا يستطيع إعادة كتابة سلسلة Codex الأصلية ما لم يكشف Codex تلك العملية عبر خادم التطبيق أو استدعاءات الخطاف الأصلي.
توفر إشعارات عناصر خادم تطبيق Codex أيضًا ملاحظات after_tool_call غير متزامنة
لإكمالات الأدوات الأصلية التي لا يغطيها مرحّل PostToolUse الأصلي بالفعل. هذه
الملاحظات للقياس عن بُعد وتوافق Plugin فقط؛ ولا يمكنها حظر استدعاء الأداة
الأصلية أو تأخيره أو تعديله.
تأتي إسقاطات دورة حياة Compaction وLLM من إشعارات خادم تطبيق Codex وحالة مهايئ
OpenClaw، وليس من أوامر خطافات Codex الأصلية. أحداث OpenClaw
before_compaction وafter_compaction وllm_input وllm_output هي ملاحظات
على مستوى المهايئ، وليست لقطات مطابقة بايتًا ببايت للطلب الداخلي أو حمولات
Compaction في Codex.
تُسقط إشعارات خادم تطبيق Codex الأصلية hook/started وhook/completed كأحداث
وكيل codex_app_server.hook للمسار والتصحيح. وهي لا تستدعي خطافات Plugin في
OpenClaw.
عقد دعم V1
مدعوم في وقت تشغيل Codex v1:
| السطح | الدعم | السبب |
|---|---|---|
| حلقة نموذج OpenAI عبر Codex | مدعوم | يملك خادم تطبيق Codex دورة OpenAI، واستئناف السلسلة الأصلية، ومتابعة الأداة الأصلية. |
| توجيه قنوات OpenClaw وتسليمها | مدعوم | تبقى Telegram وDiscord وSlack وWhatsApp وiMessage والقنوات الأخرى خارج وقت تشغيل النموذج. |
| أدوات OpenClaw الديناميكية | مدعوم | يطلب Codex من OpenClaw تنفيذ هذه الأدوات، لذلك يبقى OpenClaw ضمن مسار التنفيذ. |
| Plugins المطالبة والسياق | مدعوم | يبني OpenClaw طبقات مطالبة إضافية ويسقط السياق في دورة Codex قبل بدء السلسلة أو استئنافها. |
| دورة حياة محرك السياق | مدعوم | تعمل عمليات التجميع والإدخال والصيانة بعد الدورة وتنسيق Compaction لمحرك السياق لدورات Codex. |
| خطافات الأدوات الديناميكية | مدعوم | تعمل before_tool_call وafter_tool_call وبرمجية نتائج الأدوات الوسيطة حول الأدوات الديناميكية التي يملكها OpenClaw. |
| خطافات دورة الحياة | مدعومة كملاحظات مهايئ | تنطلق llm_input وllm_output وagent_end وbefore_compaction وafter_compaction مع حمولات صادقة لوضع Codex. |
| بوابة مراجعة الإجابة النهائية | مدعومة عبر مرحّل الخطاف الأصلي | يُرحّل Stop في Codex إلى before_agent_finalize؛ وتطلب revise من Codex تمريرة نموذج إضافية قبل الإنهاء. |
| حظر أو مراقبة الصدفة الأصلية والتصحيح وMCP | مدعوم عبر مرحّل الخطاف الأصلي | يُرحّل PreToolUse وPostToolUse في Codex لأسطح الأدوات الأصلية الملتزم بها، بما في ذلك حمولات MCP على خادم تطبيق Codex 0.125.0 أو أحدث. الحظر مدعوم؛ أما إعادة كتابة الوسيطات فليست مدعومة. |
| سياسة الأذونات الأصلية | مدعومة عبر موافقات خادم تطبيق Codex ومرحل الخطاف الأصلي للتوافق | تُوجّه طلبات موافقة خادم تطبيق Codex عبر OpenClaw بعد مراجعة Codex. مرحّل الخطاف الأصلي PermissionRequest اختياري لأنماط الموافقة الأصلية لأن Codex يصدره قبل مراجعة الحارس. |
| التقاط مسار خادم التطبيق | مدعوم | يسجل OpenClaw الطلب الذي أرسله إلى خادم التطبيق وإشعارات خادم التطبيق التي يتلقاها. |
غير مدعوم في وقت تشغيل Codex v1:
| السطح | حد V1 | المسار المستقبلي |
|---|---|---|
| تعديل وسيطات الأدوات الأصلية | تستطيع خطافات ما قبل الأداة الأصلية في Codex الحظر، لكن OpenClaw لا يعيد كتابة وسيطات أدوات Codex الأصلية. | يتطلب دعم خطاف/مخطط من Codex لاستبدال إدخال الأداة. |
| سجل نصي أصلي قابل للتحرير في Codex | يملك Codex سجل السلسلة الأصلية المعياري. يملك OpenClaw مرآة ويمكنه إسقاط سياق مستقبلي، لكنه ينبغي ألا يعدل داخليات غير مدعومة. | أضف واجهات API صريحة لخادم تطبيق Codex إذا كانت جراحة السلسلة الأصلية مطلوبة. |
tool_result_persist لسجلات الأدوات الأصلية في Codex |
يحول ذلك الخطاف كتابات النص الكامل التي يملكها OpenClaw، وليس سجلات الأدوات الأصلية في Codex. | يمكن عكس السجلات المحولة، لكن إعادة الكتابة المعيارية تحتاج إلى دعم Codex. |
| بيانات وصفية غنية لـ Compaction الأصلي | يلاحظ OpenClaw بدء Compaction وإكمالها، لكنه لا يتلقى قائمة ثابتة لما أُبقي/أُسقط، أو فرق رموز، أو حمولة ملخص. | يحتاج إلى أحداث Compaction أكثر ثراءً من Codex. |
| التدخل في Compaction | خطافات Compaction الحالية في OpenClaw على مستوى الإشعارات في وضع Codex. | أضف خطافات Codex قبل/بعد Compaction إذا احتاجت Plugins إلى رفض Compaction الأصلية أو إعادة كتابتها. |
| التقاط طلب API للنموذج بايتًا ببايت | يستطيع OpenClaw التقاط طلبات خادم التطبيق وإشعاراته، لكن نواة Codex تبني طلب OpenAI API النهائي داخليًا. | يحتاج إلى حدث تتبع طلب نموذج في Codex أو API تصحيح. |
الأذونات الأصلية واستثارات 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". تُرسل مطالبات Codex request_user_input مرة أخرى إلى
الدردشة المنشِئة، وتجيب رسالة المتابعة التالية في الطابور عن طلب الخادم الأصلي
ذلك بدلًا من توجيهها كسياق إضافي. تفشل طلبات استثارة MCP الأخرى بإغلاق آمن.
توجيه الطابور
يُطابق توجيه طابور التشغيل النشط turn/steer في خادم تطبيق Codex. مع
الإعداد الافتراضي messages.queue.mode: "steer"، يجمع OpenClaw رسائل الدردشة
الموضوعة في الطابور ضمن نافذة الهدوء المضبوطة ويرسلها كطلب turn/steer واحد
حسب ترتيب الوصول. يرسل وضع queue القديم طلبات turn/steer منفصلة.
يمكن لجولات مراجعة Codex وCompaction اليدوية رفض التوجيه ضمن الجولة نفسها. في تلك الحالة، يستخدم OpenClaw طابور المتابعة عندما يسمح الوضع المحدد بالرجوع الاحتياطي. راجع طابور التوجيه.
رفع ملاحظات 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 بمرآة سجل لسجل القناة والبحث و/new و/reset
وتبديل النموذج أو الحزمة مستقبلًا.
تتضمن المرآة مطالبة المستخدم ونص المساعد النهائي وسجلات استدلال أو خطة 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 المعتاد. لا يتطلب توليد الوسائط PI. عندما يصدر Codex
عنصر توليد صور أصليًا يتضمن savedPath، يمرّر OpenClaw ذلك الملف الدقيق عبر
مسار وسائط الرد المعتاد حتى إذا لم تتضمن جولة Codex نصًا من المساعد.