نظرة سريعة على المفاهيم الأساسية لـ Codex
📚 تنقل السلسلة: المقال السابق 01 · التعرف على Codex والمداخل الأربعة أطلعك على الأوجه الأربعة لـ Codex — تطبيق سطح المكتب، سطر الأوامر، إضافات IDE، والسحابة. هذا المقال يتعمق خطوة أخرى للداخل، ليشرح بالتفصيل عدة مفاهيم أساسية ستتكرر في الفصول التالية. المقال التالي 03 · التثبيت وتسجيل الدخول سيبدأ بالتثبيت العملي.
دعنا نبدأ بحماقة ارتكبتها بنفسي سابقًا: عندما بدأت استخدام Codex لأول مرة، طلبت منه مباشرة «مساعدتي في إعادة تسمية هذه الملفات الثلاثة دفعة واحدة»، فقام بتعديلها بسرعة فائقة، وعندما تحققت ذُهلت — فقد قام فقط بتعديل الملفات الموجودة في دليل المشروع الحالي، بينما الملفان الموجودان على سطح المكتب لم يتحركا قيد أنملة. كنت أتساءل حينها: ألم يقل أنه يستطيع تشغيل الأوامر، فلماذا ينتقي عمله؟ لاحقًا عندما تصفحت المستندات أدركت: أن البيئة المعزولة (Sandbox) هي التي منعته، فهو يعمل افتراضيًا فقط داخل مساحة العمل التي حددتها له، ويتعين عليه سؤالك أولاً قبل الخروج من هذا النطاق.
في تلك اللحظة أدركت: عدم فهم هذه المفاهيم قبل استخدام Codex سيجعلك تشعر دائمًا أنه «يعمل أحيانًا ويتعطل أحيانًا أخرى» — في الواقع هو لم يخطئ إطلاقًا، بل أنت من يجهل وجود القيود الموضوعة عليه.
هذا المقال سيوضح لك هذه القيود بالتفصيل، بالإضافة لعدة إعدادات مميزة خاصة به.
بعد قراءة هذا المقال، ستحصل على:
- شرح مبسط في جملة واحدة لمعنى «الوكيل (Agent)» في Codex، والفرق الفعلي بينه وبين برامج المحادثة
- فهم تام للعلاقة بين البيئة المعزولة والموافقة — سبب فشل إعادة التسمية في تجربتي وكيفية فك هذا القيد
- التعرف على
AGENTS.md: كتيب الإرشادات الذي يجعل Codex يتذكر قواعد مشروعك - معرفة ما هي الذاكرة (Memory) و Chronicle، وهل تم تفعيلهما افتراضيًا، وكيفية استخدامهما
- تمرين مبسط لتطبيقه بنفسك، لتشاهد حظر البيئة المعزولة للعمليات بأم عينيك
⚠️ جميع الأوامر وخيارات الإعدادات والسلوكيات الافتراضية المذكورة أدناه تعتمد على المستندات الرسمية لـ Codex؛ وبالنسبة لأسماء النماذج والباقات التي تتغير مع الإصدارات، فيرجى الاعتماد على ما يظهر لديك محليًا.
01 الوكيل (Agent): يعمل بنفسه ولا يقتصر على الرد بالنصوص
الخلاصة أولاً في جملة واحدة: Codex هو «وكيل برمجة (coding agent)» من OpenAI، بمقدوره قراءة الأكواد وتعديل الملفات وتشغيل الأوامر بنفسه، ولا يقتصر على الرد عليك بنصوص مكتوبة. والاقتباس الرسمي يوضح ذلك: "OpenAI's coding agent that can read, edit, and run code".
كلمة «الوكيل (Agent)» هي المفتاح هنا، ويستحق الأمر شرحًا مبسطًا: الوكيل = ذكاء اصطناعي يستطيع تفكيك المهام ذاتيًا، استدعاء الأدوات، مراجعة النتائج، واتخاذ القرار للخطوة التالية، وليس مجرد صندوق محادثات يعتمد على سؤال وجواب.
وتصف الوثائق الرسمية أسلوب عمل Codex بالعبارة التالية: «يعمل الوكيل في حلقة لتشغيل أوامر الطرفية، حيث يقوم بتعديل الأكواد وإجراء الفحوصات والتحقق من عمله ذاتيًا»(الترجمة من العبارة الأصلية: The agent runs terminal commands in a loop. It edits code, runs checks, and tries to validate its work)。
وبعبارة أبسط، يتمثل الأمر في ثلاثة إجراءات — التفكير ← التنفيذ ← المراجعة:
- التفكير:قراءة الملفات ذات الصلة، مراجعة الأخطاء، وفهم الحالة.
- التنفيذ:تعديل الأكواد، إنشاء الملفات، وتشغيل الأوامر。
- المراجعة:تشغيل الاختبارات، الاطلاع على المخرجات، وتكرار المحاولة عند وجود خلل.
تشبيه: وكيل تسوق ينجز المعاملة بالكامل بالنيابة عنك. برمجيات المحادثة التقليدية تشبه موظف خدمة العملاء الذي يجيب عن الأسعار فقط — تسأله «كم سعر هذا القميص»، فيجيبك وينتهي الأمر. أما Codex فيشبه وكيل التسوق: تقول له «ساعدني في شراء قميص أسود مقاس متوسط»، فيذهب للبحث ومقارنة الأسعار والشراء واستلام الطرد وفتحه للتأكد من المقاس، وإعادته للاستبدال عند وجود خلل. «إنجاز مسار العمل بالكامل ذاتيًا» هو الفارق الجوهري بين الوكيل وصندوق المحادثات المعتاد。
بعض السيناريوهات الواقعية التي ستواجهها:
- تسأله «لماذا فشل هذا الاختبار»، فيقوم بـ تشغيل الاختبار بنفسه ← قراءة الخطأ ← العثور على الخلل (bug) ← التعديل ← وإعادة التشغيل للتأكيد، وتكتفي أنت بالمشاهدة.
- تسلمه مشروعًا قديمًا بلا مستندات توضيحية قائلاً «اشرح لي الهيكل العام للمشروع»، فيقوم بفحص الملفات والبحث عن الكلمات المفتاحية وقراءة المستندات ذاتيًا، ليعود إليك برسم توضيحي — دون أن تحدد له ملفًا واحدًا.
- تطلب منه «إضافة ذاكرة مؤقتة (cache) لهذه الدالة»، فيقوم بتعديلها وضبط مواضع استدعائها في الملفات الأخرى، لامتلاكه القدرة على المراجعة الشاملة لجميع الملفات.
💡 الخلاصة في جملة واحدة: Codex هو «وكيل» وليس «صندوق محادثات» — ينجز العمل بالكامل ذاتيًا في حلقة «التفكير ← التنفيذ ← المراجعة»، وهذه الآلية تتطابق مع Claude Code تمامًا، والاختلاف في المسمى فقط。
02 البيئة المعزولة (Sandbox): أين تقع حدود صلاحياته
هنا النقطة الأهم. فالعطل في إعادة التسمية الذي ذكرته في البداية كان بسببه.
البيئة المعزولة (Sandbox):تُعرف رسميًا بأنها «الحدود (boundary) التي تتيح لـ Codex العمل ذاتيًا، دون منحه صلاحيات كاملة غير محدودة على جهازك بالكامل». وبعبارة بسيطة، هي دائرة يتم رسمها لـ Codex — ينجز مهام الدائرة ذاتيًا، ويتعين عليه سؤالك قبل تجاوزها.
تشبيه: منطقة ألعاب الأطفال في المتجر. تضع طفلك داخل السياج,ليعب بالكرات والزحليقة بحرية دون الحصول على مراقبة كل حركة؛ ولكن عندما يحاول الطفل الخروج من السياج والذهاب لمواقف السيارات، ينطلق جرس الإنذار لتتدخل. البيئة المعزولة هي هذا السياج: حرية العمل داخل الدائرة دون إزعاج، والحظر عند محاولة التجاوز — ليوفر وقتك ويحمي بياناتك من التلف.
يتحكم السياج في أمرين: الملفات القابلة للتعديل، والاتصال بالإنترنت。وتوفر الوثائق الرسمية ثلاثة أوضاع شائعة للبيئة المعزولة:
| وضع البيئة المعزولة | هل يمكنه تعديل الملفات؟ | هل يمكنه الاتصال بالإنترنت? | متى يُستخدم |
|---|---|---|---|
read-only (للقراءة فقط) | ❌ لا يمكنه (يتطلب موافقة للتعديل) | ❌ لا | تريده أن يقرأ الأكواد ويراجعها ويقترح حلولاً دون لمس الملفات |
workspace-write (مساحة العمل قابلة للكتابة) | ✅ داخل مساحة العمل فقط | ❌ لا (افتراضيًا) | الأكثر استخدامًا للتطوير اليومي;ويوصى به للمجلدات التي تخضع لإدارة الإصدارات |
danger-full-access (وصول كامل) | ✅ لجميع ملفات الجهاز | ✅ نعم | في البيئات الموثوقة بالكامل؛ الاسم يحتوي على كلمة danger للتنبيه، فاحذر واستخدمه بحرص |
هل لاحظت عبارة «داخل مساحة العمل فقط» لوضع workspace-write؟ هذا هو السبب الفعلي لعدم تعديل ملفات سطح المكتب في تجربتي — فلم تكن تلك الملفات تقع داخل دليل المشروع الذي قمت بتشغيل Codex منه، وليست داخل السياق. فالأمر لم يكن كسلًا من Codex، بل تعذر الوصول الفعلي إليها.
وهناك تفصيل رسمي هام: لا تقتصر قيود البيئة المعزولة على قراءة وكتابة Codex فقط، بل تسري القيود على الأوامر المتفرعة منه أيضًا。وهذا يعني أنه عند استدعاء أوامر git أو أدوات إدارة الحزم أو برمجيات الاختبار، فإن تلك الأوامر تخضع لنفس حدود الدائرة — لضمان عدم حدوث «تجاوز الأوامر الفرعية للقيود المفروضة على العملية الأساسية».
ويختلف أسلوب التنفيذ حسب المنصة التي تستخدمها (وسنفصل ذلك في المقال 03 التثبيت وتسجيل الدخول讲):
- macOS:يعتمد على إطار عمل Seatbelt المدمج في النظام، ويعمل مباشرة دون الحصول على أي إعدادات مسبقة。
- Windows:يعمل مباشرة في بيئة Windows الرسمية، ويعتمد على نظام Windows Sandbox المدمج (وينقسم إلى وضعين
elevatedوunelevated);وعند استخدام بيئة WSL2 يتم تطبيق أسلوب Linux. - Linux / WSL2:يتطلب تثبيت أداة تسمى
bubblewrapأولاً لضمان عمل البيئة المعزولة بشكل سليم (وهذا شرط أساسي تنص عليه الوثائق).
💡 الخلاصة في جملة واحدة: البيئة المعزولة هي القيد الأساسي المفروض على Codex — حيث يقتصر عمله افتراضيًا (
workspace-write) على تعديل ملفات مساحة العمل فقط ويُمنع من الاتصال بالإنترنت;وإذا أردت منح صلاحيات أوسع، يتعين عليك زيادة حدود الدائرة بنفسك。
03 الموافقة (Approval): من يتولى السماح عند تجاوز الحدود
بعد رسم حدود البيئة المعزولة، «من يتولى الموافقة عند تجاوز الحدود» — هذا موضوع آخر يسمى الموافقة (Approval)。
يخلط الكثيرون (ومنهم أنا في البداية) بين المفهومين، وتوضح الوثائق الرسمية الفارق قائلة: البيئة المعزولة تحدد الحدود التقنية، بينما سياسة الموافقة تحدد الحالات التي يجب على Codex التوقف عندها وطلب إذنك قبل تجاوز تلك الحدود。
تشبيه: بطاقة الدخول وحارس الأمن. البيئة المعزولة هي البوابة الإلكترونية (تمنع الخروج الفعلي وتغلق المنافذ)، بينما سياسة الموافقة هي شخصية حارس الأمن الواقف عند البوابة — فبعضهم يسمح بالمرور للجميع (never)، وبعضهم يمنع الغرباء فقط (untrusted)، وبعضهم يطالبك بالتوضيح وطلب الإذن قبل كل خروج (on-request)。البوابة ثابتة، ومستوى تساهل الحارس يمكنك ضبطه。
وتوفر الوثائق الرسمية ثلاث سياسات شائعة للموافقة:
| سياسة الموافقة | سلوك Codex | توضيح مبسط |
|---|---|---|
untrusted | يطلب إذنك قبل تشغيل أي أمر غير مضاف لـ «قائمة الموثوقين» | يمنع الأوامر غير المألوفة فقط |
on-request | يعمل داخل مساحة العمل افتراضيًا، ويطلب إذنك عند الرغبة في التجاوز فقط | الخيار الأكثر توازنًا والأكثر استخدامًا |
never | لا يطلب إذنك إطلاقًا وينفذ مباشرة | يُستخدم لأتمتة المهام؛ وتظل القيود خاضعة للبيئة المعزولة، وتفعيلها يتطلب منح الوصول الكامل |
ملاحظة: خيارات untrusted و on-request و never المذكورة هنا هي سياسات الموافقة الواردة في المستندات الرسمية — وتمثل بعدًا مستقلاً تمامًا عن وضع البيئة المعزولة، ويتم إعداد وفهم كل منهما بشكل منفصل。
كيف يتم الربط بينهما؟ توفر الوثائق الرسمية تركيبتين جاهزتين، وتذكر هاتين التركيبتين كافٍ للاستخدام:
- الأتمتة المحلية منخفضة المخاطر (موصى بها للاستخدام اليومي): إعداد
sandbox_mode = "workspace-write"معapproval_policy = "on-request"。الحدود مغلقة، ويطلب إذنك عند التجاوز فقط، ليجمع بين الأمان والراحة。 - الوصول المفتوح بالكامل (احذر): إعداد
sandbox_mode = "danger-full-access"معapproval_policy = "never"。هذا يعادل إزالة البوابة وإلغاء حراسة الأمن — ولا يجب استخدامه إلا في البيئات الموثوقة بنسبة 100%。
عادتي الشخصية هي: مع المشاريع الجديدة والمستودعات غير المألوفة، أبدأ بوضعها كـ read-only دائمًا ليقتصر عمله على القراءة والدراسة,وعند الاطمئنان للحل المقترح وفهم طريقة عمله، أقوم بتحويل الوضع إلى workspace-write ليبدأ التعديل. في إحدى المرات تهاونت وقمت بتشغيل برمجيات أتمتة بوضع danger-full-access مباشرة,فبدأ يفحص ويعدل ملفات الدليل الرئيسي لجهازي بالكامل مما أثار قلقي — ومنذ ذلك الحين لم أجرؤ على تفعيل الوصول الكامل في الأماكن غير المناسبة。
كيف يتم التغيير؟ لن تحتاج لتعديل ملفات الإعدادات يوميًا، ويكفي كتابة /permissions داخل الجلسة في واجهة CLI لتعديل الوضع فورًا (أو باستخدام محدد الصلاحيات بجانب صندوق الإدخال في تطبيق سطح المكتب و IDE). وإذا أردت تثبيت الوضع عند بدء كل جلسة، فستقوم بإعداد ملف التكوين — وهو ما سنشرحه بالتفصيل في المقال 18 شرح ملف config.toml 的活,这里先知道有这么个开关。
ما توضحه هذه الصورة هو أمر هام — قبل القيام بأي خطوة، يتحقق Codex أولاً من «هل يقع الإجراء داخل حدود البيئة المعزولة» (قرار البيئة المعزولة)، وعند التجاوز يتحقق من «هل يجب سؤلك أولاً» (قرار الموافقة)。بوابتان تعمل كل منهما بشكل منفصل。

💡 الخلاصة في جملة واحدة: البيئة المعزولة تحدد «إمكانية الوصول»، والموافقة تحدد «ضرورة السؤال»، ويمكنك ضبط كل منهما بشكل مستقل;والتركيبة الافتراضية اليومية
workspace-write+on-requestتضمن الأمان وراحة العمل معًا。
04 ملف AGENTS.md: كتيب إرشادات المشروع لـ Codex
شرحنا الصلاحيات في الأقسام الثلاثة السابقة. وسنتناول هنا موضوعًا آخر: كيف تجعل Codex يتذكر قواعد مشروعك الشخصي,لتتفادى عناء إعادة التوضيح له مع كل جلسة.
الحل يكمن في إنشاء ملف يسمى AGENTS.md。
تشبيه: كتيب إرشادات الموظف الجديد. عندما ينضم موظف جديد للشركة، لن تلاحقه يوميًا لتكرار عبارات مثل «نحن نستخدم pnpm وليس npm» أو «يرجى كتابة رسائل التعديل باللغة العربية» — بل تسلمه كتيبًا ليقرأه بنفسه. ملف AGENTS.md هو هذا الكتيب لـ Codex: تضعه داخل المشروع، ليقوم بقراءته والالتزام بقواعده عند بدء كل جلسة عمل。
تُعرفه الوثائق الرسمية بأنه «إرشادات المشروع الدائمة (durable project guidance)» — وهي توجيهات ترافق مستودع الأكواد ويتم تفعيلها قبل بدء عمل الوكيل. ونصيحة هامة: حافظ عليه مختصرًا (Keep it small),وتجنب كتابته كمستندات طويلة.
ويحتوي الملف عادة على (حسب الأمثلة الرسمية):
- أوامر البناء والاختبار (مثل «استخدم
pytest -qللاختبار») - معايير مراجعة الأكواد (مثل «تشغيل lint بعد التعديل حتمًا»)
- اتفاقيات المشروع الخاصة (比如目录怎么放、命名怎么取)
ويمكن وضعه في مستويين، وتكون الأولوية للمستوى الأقرب لدليل العمل (وهذا معيار هام لتحديد الأولويات):
| المستوى | موقع الملف | نطاق التأثير |
|---|---|---|
| العام (Global) | ~/.codex/AGENTS.md | تفضيلاتك الشخصية (مثل «اجعل الإجابات مختصرة»),وتسري على جميع المشاريع |
| 项目 (Project) | الدليل الرئيسي للمستودع أو الأدلة الفرعية | قواعد المشروع / الفريق، ويمكن رفعها ومشاركتها عبر Git مع أعضاء الفريق |
الاستخدام الأكثر تميزًا توضحه الوثائق الرسمية وهو المفضل لدي — معاملته كحلقة تغذية راجعة (feedback loop): عندما يسيء Codex فهم قواعد مشروعك ويرتكب خطأ، لا تكتفِ بتصحيحه في المحادثة العابرة (لأن ذلك مؤقت وسينساه في الجلسة التالية),直接让它把这条修正写进 AGENTS.md,下回开新会话它自己就继承了。我给一个 Python 项目调了两周,AGENTS.md 从空白长到二十来行,全是它踩过、被我逮住、然后自己记下来的坑——现在新会话基本不犯重复错误了。
ملف
AGENTS.mdبالنسبة لـ Codex يطابق تمامًا ملفCLAUDE.mdبالنسبة لـ Claude Code — نفس المفهوم مع اختلاف المسمى فقط。
💡 الخلاصة في جملة واحدة: ملف
AGENTS.mdهو كتيب إرشادات المشروع لـ Codex — اكتب فيه القواعد ليلتزم بها عند بدء كل جلسة;واستخدمه كحلقة تغذية راجعة ليسجل الأخطاء ويتجنب تكرارها مستقبلاً。
05 الذاكرة (Memory) و Chronicle: هل يستطيع تذكر تفضيلاتك
المفاهيم الأخيرة هي ميزات حديثة نسبيًا في Codex وقد تسبب تشتتًا للمستخدمين — هل يستطيع تذكر ما دار في المحادثات السابقة فعليًا؟
دعنا نفصل بين المصطلحين أولاً:
الذاكرة(Memory):تتيح لـ Codex حفظ المعلومات المفيدة المستخلصة من الجلسات السابقة ونقلها للجلسات التالية — مثل بيئات العمل التي تفضلها، عادات التسمية، والأخطاء التي تم تصحيحها، لتتفادى عناء توضيحها مع كل جلسة جديدة.
تشبيه: زميل العمل الخبير الذي يرافقك طويلاً. المساعد الجديد يتطلب توضيح القواعد تكرارًا مثل «نحن نستخدم TypeScript ونمنع الفواصل المنقوطة»;أما الزميل الخبير الذي يرافقك لثلاث سنوات فيفهم التوجيه بلمحة — لكونه يحفظ عاداتك وتفضيلاتك. الذاكرة (Memory) تهدف لنقل Codex من مرحلة المساعد الجديد لمرحلة الزميل الخبير.
ولكن هناك حقائق أساسية يجب عليك معرفتها، لتفادي الشعور بأنه يعاني من عدم الاستقرار:
- مغلقة افتراضيًا (off by default). لن يسجل أي شيء ما لم تقم بتفعيلها يدويًا. طريقة التفعيل: تفعيلها من إعدادات تطبيق Codex App، أو كتابة
memories = trueتحت قسم[features]في ملف~/.codex/config.toml。 - القيود الجغرافية. تنص الوثائق الرسمية صراحة: لا تتوفر الميزة حاليًا في المنطقة الاقتصادية الأوروبية، المملكة المتحدة، وسويسرا。
- التحديث غير الفوري. ينتظر النظام حتى تصبح الجلسة «خاملة لوقت كافٍ» للتأكد من انتهاء عملك، ليقوم بتلخيص المحادثة وحفظ النقاط الهامة في الخلفية — لذا لن تتوفر الملاحظات كذاكرة فور انتهاء الجلسة مباشرة。
- التخزين المحلي: تُخزن الملاحظات محليًا تحت مسار
~/.codex/memories/كملفات markdown。 - التحكم بكل جلسة: يمكنك كتابة
/memoriesفي التطبيق أو CLI لتحديد «هل ترغب في استخدام الذاكرة المتوفرة في الجلسة الحالية، وهل ترغب في تسجيل المحادثة الحالية كذاكرة جديدة أم لا».
وتضيف الوثائق الرسمية تنبيهًا هامًا: القواعد والاتفاقيات الأساسية للفريق يجب كتابتها بوضوح داخل ملف AGENTS.md,ولا تعتمد على الذاكرة إطلاقًا — فالذاكرة هي «ميزة إضافية للاستدعاء المحلي» وليست المصدر الوحيد للقواعد. وهذا صحيح تمامًا: فالذاكرة تعتمد على التخمين والاحتمالات، والاعتماد عليها لحماية القواعد الهامة سيؤدي للمشاكل حتمًا。
💡 الخلاصة في جملة واحدة: الذاكرة توفر وضع «الزميل الخبير»، ولكنها مغلقة افتراضيًا وتخضع لقيود جغرافية — والقواعد الهامة يجب كتابتها في
AGENTS.mdوتظل الذاكرة للملاحظات الجانبية الإضافية فقط。
وبالحديث عن ميزة Chronicle، يجب توضيح حالتها أولاً:
⚠️ ميزة تجريبية وقابلة للتغيير. تتوفر ميزة Chronicle حاليًا كـ «معاينة بحثية تتطلب تفعيلها يدويًا (opt-in research preview)»، وهي مخصصة لمستخدمي ChatGPT Pro وعلى نظام macOS فقط,ولا تتوفر كذلك في الاتحاد الأوروبي، المملكة المتحدة، وسويسرا。
ميزة Chronicle تهدف لتغذية الذاكرة بـ «محتويات الشاشة». فالذاكرة المعتادة تسجل الملاحظات من المحادثات مع Codex؛ بينما تذهب ميزة Chronicle لأبعد من ذلك، حيث تستخدم محتويات شاشتك لمساعدته في فهم ما تعمل عليه حاليًا — الملف المفتوح أمامك، طلب PR الذي تراجعه، أو المستند الذي تتصفحه، ليتابع معك العمل دون الحصول على إعادة الشرح له。
تشبيه: زميل عمل يستطيع الاطلاع على شاشتك. الزميل المعتاد يستمع لشرحك فقط؛ أما Chronicle فيستطيع إلقاء نظرة على شاشتك ليدرك «آها، أنت تراجع هذا الخطأ حاليًا»، وتستمر في العمل دون الحاجة لإعادة كتابة تفاصيل الخطأ. تبدو الميزة رائعة، ولكن ضريبتها واضحة — تحذرك الوثائق الرسمية من ثلاثة أمور: تستهلك الحصص بسرعة، تزيد من مخاطر هجمات حقن التوجيهات (prompt injection)، وتُخزن الملاحظات محليًا دون تشفير。وبعبارة أخرى، الراحة والمخاطر واضحة وعليك اتخاذ القرار. رأيي الشخصي: لا بأس بتجربتها، وعند عرض بيانات حساسة على الشاشة (مثل كلمات المرور، الرسائل الخاصة، أو بيانات العملاء),تذكر الضغط على «Pause Chronicle» في شريط القوائم لإيقافها مؤقتًا。
| البعد | الذاكرة (Memory) | Chronicle |
|---|---|---|
| مصدر المعلومات | المحادثات السابقة للجلسات | محتويات شاشتك الحالية |
| حالة التطوير | ميزة رسمية (مغلقة افتراضيًا) | معاينة بحثية تجريبية |
| المنصة المستهدفة | متوفرة للتطبيق و CLI | لنظام macOS ولمستخدمي Pro فقط |
| نصيحتي | يفضل تفعيلها لراحة العمل | للتجربة فقط، وتذكر إيقافها مؤقتًا عند البيانات الحساسة |
💡 الخلاصة في جملة واحدة: الذاكرة تنقل Codex من مرحلة المساعد الجديد لمرحلة الزميل الخبير، ولكنها مغلقة افتراضيًا وتخضع لقيود جغرافية ولا تغني عن ملف
AGENTS.md;وميزة Chronicle هي معاينة تجريبية للاطلاع على الشاشة، وتوفر الراحة مع وجود مخاطر واضحة。
شرحنا المفاهيم الخمسة بشكل منفصل، وقبل الانتقال للتطبيق العملي، دعنا نلقي نظرة على هذا الرسم التوضيحي الذي يربطها معًا — ففهم المفاهيم بمفردها بسيط، ولكن فهم كيفية تعاونها هو الأهم:

ما يوضحه هذا الرسم: «الوكيل» في المنتصف هو البطل، ويعمل داخل سياج «البيئة المعزولة»;وعند رغبته في الخروج للبيئة الخارجية (ملفات جهازك أو الويب)، يتعين عليه عبور بوابة «الموافقة»؛ وملف AGENTS.md على اليسار يزوده بقواعد المشروع قبل البدء؛ والذاكرة و Chronicle في الأسفل تسجل الملاحظات والخبرات للاستفادة منها في الجلسات التالية — فجميع المفاهيم الخمسة تدور حول خدمة هذا الوكيل في المنتصف。
06 تمرين عملي: شاهد حظر البيئة المعزولة للعمليات بنفسك
القراءة بمفردها لا تساعد على الفهم. سنقوم بتمرين عملي مدته دقيقة واحدة، لتشاهد كيف تمنع البيئة المعزولة بوضع read-only عمليات الكتابة والتعديل بنفسك — وهذا يمنحك تجربة عملية مباشرة。لا يتطلب التمرين وجود مشروع جاهز، وسنقوم بإنشاء مجلد فارغ فقط。
الخطوة الأولى: إنشاء دليل فارغ وتشغيل Codex.
شغل الأوامر التالية في الطرفية (على نظام Mac / Linux؛ وعلى نظام Windows استخدم PowerShell مع استبدال mkdir -p بـ mkdir):
mkdir -p ~/codex-demo && cd ~/codex-demo
codexهل لم تقم بتثبيت Codex بعد؟ لا تقلق، اقرأ الشرح أولاً لتستوعب المفاهيم، وسيوضح لك المقال 03 التثبيت وتسجيل الدخول خطوات التثبيت بالتفصيل لتتمكن من العودة وتطبيق هذا التمرين.
الخطوة الثانية: التحويل لوضع القراءة فقط.
اكتب الأمر المائل التالي في جلسة Codex لتعديل الصلاحيات إلى القراءة فقط:
/permissionsثم اختر خيار القراءة فقط (Read Only / read-only) من الخيارات المعروضة。المتوقع رؤيته:ظهور تنبيه يفيد بتعديل الصلاحيات إلى القراءة فقط، مثل——
Permissions updated: read-only⚠️ قد تختلف واجهة القوائم في الإصدارات الحديثة: بدءًا من إصدار codex-cli 0.142,أطلقت الوثائق الرسمية ميزة ملفات تعريف الصلاحيات (permission profiles)(الوسيلة التجريبية Beta,may change)كبديل للخيارات المعتادة «Read Only / Auto / Full Access»——قد تظهر خيارات القائمة لـ
/permissionsكسياسات موافقة مثلAsk for approval/Approval for me/Full access(دون ظهور خيارRead Onlyصراحة).إذا تعذر ظهور خيار
Read Onlyلديك، فالطريقة الأكثر استقرارًا هي تشغيل وضع sandbox القديم (والذي تحتفظ الوثائق بتوافقه): اخرج من الجلسة أولاً، وأعد الدخول بكتابةcodex --sandbox read-only؛ أو اكتبsandbox_mode = "read-only"في ملف~/.codex/config.tomlلتفعيله دائمًا. وتطبيق هذا التمرين سيظل صالحًا باتباع هذه الخطوات.
الخطوة الثالثة: توجيهه للقيام بعملية تتطلب كتابة ملف، لمشاهدة الحظر.
اكتب التوجيه التالي وأرسله له:
ساعدني في إنشاء ملف جديد باسم hello.txt، واكتب بداخله عبارة "hello codex".المتوقع رؤيته:لن يقوم بإنشاء الملف صامتًا، بل سيتوقف ليطلب موافقتك صراحة——因为「写文件」这一步突破了 read-only 的边界,按审批策略它必须先问你。大意是:
أحتاج لإنشاء ملف باسم hello.txt، وهذا الإجراء يتجاوز حدود وضع القراءة فقط الحالي،
هل تسمح بذلك؟ (y/n)مشاهدة هذا التوقف لطلب الإذن تمثل تجربة عملية لتضافر البيئة المعزولة والموافقة معًا:حيث تحدد البيئة المعزولة «أن هذا الإجراء يتجاوز الحدود»، وتتولى سياسة الموافقة عرض التنبيه لتوافق عليه. هاتان هما البوابتان المشروحتان في القسمين 02 و03، وتعملان أمامك على الشاشة بشكل عملي.
الخطوة الرابعة: مقارنة السلوك بعد منح الصلاحية.
عد لكتابة /permissions وحول الوضع لمساحة العمل القابلة للكتابة (workspace-write),再让它建一次 hello.txt。这回预期它直接建好、不再问你——因为在工作区里写文件本就在沙箱圈内,无需审批。
تم إنشاء الملف hello.txtبعد الانتهاء، اكتب /status للاطلاع على تفاصيل الجلسة الحالية مثل النموذج المستخدم وسياسة الموافقة:
/statusطلب إنشاء نفس الملف، تم حظره في وضع القراءة فقط، وتم تنفيذه مباشرة في وضع مساحة العمل القابلة للكتابة——这就是沙箱模式实打实的区别。比起读十遍「沙箱是安全边界」,亲眼看它在只读模式下停下来问你那一下,理解得快得多。
💡 الخلاصة في جملة واحدة: بتطبيق هذا التمرين، ستلاحظ — طلب إنشاء نفس الملف، تم حظره في وضع
read-onlyوتطلب الموافقة، وتم تنفيذه مباشرة في وضعworkspace-write، وهذا يمثل التعاون الملموس بين البيئة المعزولة والموافقة.
07 ملخص
لخص هذا المقال المفاهيم الأساسية التي ستتكرر في بقية الفصول لـ Codex:
| المفهوم | خلاصة الفهم | ما يقابله في Claude Code |
|---|---|---|
| الوكيل (Agent) | ذكاء اصطناعي يعمل بمسار تفكير ← تنفيذ ← مراجعة ذاتية، وليس مجرد محادثة | حلقة الوكيل (طريقة العمل متطابقة) |
| البيئة المعزولة (Sandbox) | الدائرة المرسومة لتحديد الملفات القابلة للتعديل والاتصال بالإنترنت | حدود الصلاحيات (ولكن بشكل أكثر وضوحًا هنا) |
| الموافقة (Approval) | سياسة طلب إذنك عند تجاوز الحدود، وهي منفصلة عن وضع البيئة المعزولة | وضع الصلاحيات |
| AGENTS.md | كتيب إرشادات القواعد التي يلتزم بها عند بدء كل جلسة عمل | ملف CLAUDE.md مع اختلاف المسمى |
| الذاكرة / Chronicle | حفظ الملاحظات للجلسات التالية؛ و Chronicle ميزة تجريبية للاطلاع على الشاشة | ميزة الذاكرة (Memory)، وميزة Chronicle حديثة وتجريبية |
يجب أن تكون قادرًا الآن على فهم: سبب امتناع Codex أحيانًا عن تعديل ملف محدد (لعدم وقوعه داخل حدود البيئة المعزولة)، سبب توقفه فجأة لطلب إذنك (لتجاوز الحدود وتدخل سياسة الموافقة)، كيفية استخدام AGENTS.md لتثبيت القواعد ليلتزم بها، واستخدام /permissions لتعديل الأوضاع مباشرة.
القاعدة الأساسية التي يجب أن تتذكرها:Codex ليس بئر أمنيات، بل هو شريك عمل قدير يعمل وفق قيود محددة——你的活儿是给方向、画好它能动手的圈、跑偏时拉一把。把这几个概念吃透,后面学各个入口、配置、扩展,都是在这套地基上添砖加瓦。
المقال التالي 03 · التثبيت وتسجيل الدخول: بعد فهم المفاهيم، حان الوقت لتثبيت Codex على جهازك عمليًا. سيوضح لك المقال التالي كيفية التثبيت على أنظمة Mac / Windows / Linux، تسجيل الدخول للحساب، وتشغيل أول أمر بنجاح — ومستخدمو نظام Linux، هل تتذكرون أداة bubblewrap المذكورة في هذا المقال؟ ستعرفون فائدتها العملية عند التثبيت في المقال القادم.