Skip to content

نظام الذاكرة (Memories و Chronicle): كيف يتذكرك Codex عبر الجلسات

📚 التنقل في السلسلة: المقال السابق [18 · تفاصيل ملف التكوين config.toml] شرح مفاتيح التحكم السلوكية بالتفصيل - حيث جمع النموذج وبيئة المعزل والموافقات في ملف واحد. هذا المقال يتناول جانباً أكثر عمقاً: كيف تجعل Codex يتذكرك عبر الجلسات المختلفة. لا تقتصر الذاكرة على القواعد المكتوبة يدوياً في ملف AGENTS.md فقط، بل تشمل أيضاً "ملاحظاته الشخصية" التي يجمعها أثناء عمله - فإذا قمت بتصحيح خطأ له مرة، فسيقوم بتدوين ذلك في الخلفية ليتذكره تلقائياً في المرات القادمة. وسنتحدث أيضاً عن ميزة Chronicle التجريبية الحصرية لـ Codex والتي تعتمد على محتوى الشاشة لتغذية الذاكرة.

إليك أولاً جزء من محادثة حقيقية بيني وبين أحد الزملاء.

الزميل: "ألم تذكر أن Codex يحتوي على ميزة الذاكرة؟ لقد أخبرته للتو أن يستخدم pnpm دائماً في هذا المشروع، فلماذا عاد لتشغيل npm install فوراً؟" أنا: "هل توقعت أن يتذكر الأمر فور نطقك به؟" الزميل: "نعم، لم تظهر أي أخطاء في الواجهة." أنا: "لا يتم حفظ الذاكرة لحظياً، بل ينتظر Codex حتى تهدأ الجلسة وتتوقف عن العمل لفترة ليقوم بصياغة الخلاصة في الخلفية - فإذا اختبرته فوراً بعد الحديث فمن الطبيعي ألا يتذكر. ثم إن القواعد الصارمة التي يجب تطبيقها في كل مرة يُفترض كتابتها في ملف AGENTS.md مباشرة، ولا يجب المراهنة على نظام الذاكرة لحفظها."

تخفي هذه المحادثة خطأين شائعين يقع فيهما المبتدئون بشأن ذاكرة Codex: الأول هو الاعتقاد بأن الذاكرة تُحفظ وتُطبق لحظياً، والثاني هو الاعتقاد بأن الذاكرة تغني عن ملف AGENTS.md. وكلاهما غير صحيح وقد يسبب لك مشاكل أثناء العمل. يوضح هذا المقال نظام الذاكرة في Codex بالتفصيل - متى يقوم بالحفظ، أين يحفظ البيانات، كيف تديره، وما هي الأمور التي لا يجب إسنادها إليه أبداً.

بقراءة هذا المقال، ستحصل على:

  • التمييز الواضح بين نظامي التذكر في Codex: ملف AGENTS.md المكتوب يدوياً vs نظام Memories (الذاكرة التلقائية)، وجدول يوضح وظيفة كل منهما
  • هل ميزة Memories مفعلة افتراضياً وما هي المناطق الجغرافية المحجوبة عنها، وكيفية تشغيلها، ومجلد حفظها، ولماذا لا تُحدث لحظياً
  • استخدام الأمر /memories للتحكم على مستوى الجلسة "هل نستخدم الذاكرة الحالية، وهل نسجل محادثة اليوم لحفظها"، مع أهم مفاتيح التحكم في ملف config.toml
  • قائمة بالإرشادات "ما يجب تركه للذاكرة وما لا يجب إسناده إليها"، مع توضيح الخطوط الحمراء التي يحظر تجاوزها
  • ميزة Chronicle التجريبية الفريدة لـ Codex لتغذية الذاكرة بمحتويات الشاشة: إمكاناتها، شروط تشغيلها الصارمة (تتطلب حساب Pro ونظام macOS، ولا تتوفر في الاتحاد الأوروبي وبريطانيا وسويسرا)، والتحذيرات الثلاثة الهامة للخصوصية
  • خطوات عملية قابلة للتطبيق لتشغيل الميزة والتحقق من حفظ واستدعاء الذاكرة

ℹ️ عند مقارنة ذلك بنظام الذاكرة في Claude Code: تجد أن الذاكرة التلقائية هناك مفعلة افتراضياً، وتُنظم في مجلدات بناءً على مستودع git، وتقرأ أول 200 سطر أو 25 كيلوبايت من ملف MEMORY.md عند بدء التشغيل؛ أما نظام Codex فهو مختلف تماماً - حيث يكون مغلقاً افتراضياً، ويخضع لقيود جغرافية، ويتم توليد الذاكرة في الخلفية بشكل غير متزامن، وتختلف مسارات الحفظ والتحكم بالكامل. سنوضح هذه الاختلافات بالتفصيل أدناه.


01 التمييز بين نظامي التذكر: ملف الإرشادات والذاكرة التلقائية

نبدأ بالخلاصة: يوفر Codex نظامين منفصلين تماماً للتذكر - نظام تكتبه بنفسك يدوياً (AGENTS.md)، ونظام يكتبه البرنامج تلقائياً (Memories). ويعتقد الكثيرون أن "جعل Codex يتذكر" يعني استخدام Memories فقط، ولكن هذا يمثل نصف الحقيقة، وغالباً ما يكون الجزء الأقل دقة.

تشبيه: "لوحة الخطط" و"ملاحظات المدرب" في الفريق. يكتب المدرب الخطط بوضوح على اللوحة قبل المباراة - مثل طريقة اللعب، ومراقبة الخصم، وتوزيع الركلات الحرة، ويجب على الفريق بأكمله الالتزام بها، وهذا يمثل ملف AGENTS.md: يكتب يدوياً وبخط واضح، ويتم قراءته ومراجعته عند كل جلسة عمل. أما النظام الآخر فهو الملاحظات التي يدونها المدرب على دفتره الخاص أثناء جلوسه على مقاعد البدلاء - مثل "مدافع الخصم الأيسر بطيء" أو "المهاجم يميل للاختراق من العمق"، وهي ملاحظات لم يطلب أحد منه كتابتها بل يدونها بنفسه تدريجياً ليستعين بها عند مواجهة نفس الخصم مستقبلاً، وهذا يمثل Memories. كلاهما مفيد، ولكن الأول هو "أوامر يجب الالتزام بها"، والثاني هو "خبرات وتفاصيل تم استنباطها مع العمل".

توضح المقارنة التالية الفروق بوضوح بين النظامين:

وجه المقارنةملف AGENTS.mdنظام الذاكرة Memories
الكاتبأنت (كتابة يدوية)Codex (توليد تلقائي)
المحتوىالإرشادات والقواعد التي يجب الالتزام بها دائماًالمعلومات والخبرات المستنبطة من الجلسات السابقة
أمثلة المحتوىأوامر البناء والاختبار، معايير الكود، والمحظوراتلغات التكوين المستخدمة، أسلوب العمل، الخطوات المتكررة، والأخطاء التي تم حلها
الحالة الافتراضيةيعمل دائماً بمجرد وضعه في المستودعمغلق افتراضياً، ويتطلب تفعيلاً يدوياً
الدقة واليقينحتمي - يقرأ في كل جلسة عملاحتمالي - يتم توليده في الخلفية ولا يضمن التذكر دائماً
التخزين في Gitيدخل في Git ويشارك مع الفريقلا يدخل في Git، ويحفظ محلياً على جهازك كملف حالة

هل فهمت الفارق الأساسي؟ ملف AGENTS.md هو "ما تفرضه عليه ليلتزم به في كل مرة"، بينما Memories هو "التفاصيل والخبرات التي يستنبطها لتسهيل العمل وتجنب تكرار الشرح". وتنص الوثائق الرسمية على هذه القاعدة بوضوح:

احرص على كتابة قواعد الفريق الثابتة التي يجب الالتزام بها دائماً في ملف AGENTS.md أو في مستندات المشروع داخل المستودع. وتعامل مع نظام الذاكرة كطبقة تذكر محلية مساعدة، وليس كمصدر وحيد وأساسي للقواعد الصارمة.

الخلاصة: نظام الذاكرة Memories هو ميزة تجميلية إضافية وليس حزام أمان أساسي. وتصرف زميلي المذكور في البداية هو مثال للخطأ - حيث حاول المراهنة على نظام Memories لحفظ قاعدة صارمة مثل "استخدام pnpm"، وكان الأصح كتابتها في ملف AGENTS.md لضمان قراءتها والالتزام بها في كل جلسة عمل. وقد شرحنا كيفية كتابة ملف AGENTS.md بالتفصيل في المقال 11 · ملف الإرشادات AGENTS.md، وسنركز هنا على النصف الآخر - ملاحظاته الشخصية التلقائية.

توضح الرسمة التالية مسارات التذكر وكيف تجتمع لتغذية سياق الجلسة الجديدة:

مسارا الذاكرة في Codex: ملف AGENTS.md تكتبه أنت (يقرأ في كل مرة ويدخل في git) ونظام الذاكرة Memories يكتب تلقائياً (مغلق افتراضياً ومحلي)؛ وميزة Chronicle تغذي الذاكرة من الشاشة

يوضح المسار الأيسر ملف AGENTS.md الذي تكتبه بنفسك ويحفظ في المستودع ويقرأ حتمياً في كل مرة؛ ويعرض المسار الأيمن نظام Memories الذي يكتبه Codex تلقائياً في الخلفية ويحفظ محلياً في المجلد ~/.codex/memories/ (وهو مغلق افتراضياً)؛ ويوضح الخط المتقطع السفلي ميزة Chronicle لتغذية الذاكرة من محتويات شاشتك (المشروحة في القسم 05). ويجتمع المساران لتغذية الجلسة الجديدة لتسريع العمل وتجنب تكرار الإرشادات.

💡 ملخص في جملة واحدة: ينقسم التذكر في Codex إلى نظامين - ملف AGENTS.md الذي تكتبه بنفسك ويدخل في git ويقرأ حتمياً في كل مرة، ونظام Memories الذي يكتبه البرنامج تلقائياً ويحفظ محلياً ويكون مغلقاً افتراضياً؛ واكتب القواعد الصارمة في ملف AGENTS.md ولا تراهن على نظام Memories لحفظها.


02 نظام Memories: الملاحظات التلقائية، تفعيلها، موقعها، وطريقة حفظها

نتحدث عن ميزة Memories (الذاكرة التلقائية) التي يدونها Codex لنفسه لتسهيل العمل. تكمن فائدتها في: تجنب الحاجة لشرح تفضيلاتك مثل "أستخدم لغة TypeScript، ولا أكتب الفواصل المنقوطة، وأشغل الاختبارات بهذه الطريقة" عند بدء كل محادثة جديدة. فبمجرد تفعيل الميزة، يستحضر تفضيلاتك وعاداتك والأخطاء التي قمت بحلها في الجلسات السابقة تلقائياً.

تشبيه: التفاهم والانسجام الذي يتولد مع شريك العمل الطويل. المتدرب الجديد يتطلب منك شرح كل تفصيل وإرشاد وتكرار؛ أما الزميل الذي يعمل معك منذ سنوات فيفهم تفضيلاتك من إشارة واحدة - لأنه يتذكرها جيداً دون حاجة لتذكيره يومياً. ميزة Memories تحول Codex من "مساعد جديد" إلى "شريك عمل خبير": فبينما تعمل وتصحح له التعديلات، يتولى تدوين الملاحظات وتراكم الخبرات للعمل بها في المرة القادمة.

تفعيل الميزة (مغلقة افتراضياً)

هذا هو الفارق الأساسي والأبرز لـ Codex عن Claude Code، ونؤكد عليه:

يتم إيقاف ميزة Memories افتراضياً، ولا تتوفر في المنطقة الاقتصادية الأوروبية (EEA) والمملكة المتحدة وسويسرا عند الإطلاق. ويمكنك تشغيلها من إعدادات Codex أو بكتابة سطر memories = true تحت قسم [features] في ملف التكوين ~/.codex/config.toml.

اختر إحدى الطريقتين للتفعيل:

الطريقة الأولى، عبر ملف التكوين (كتابته في ~/.codex/config.toml للعمل الدائم):

toml
[features]
memories = true

الطريقة الثانية، عبر واجهة إعدادات تطبيق Codex (الواجهة الرسومية للتطبيق).

⚠️ تذكر أن القيود الجغرافية تفرضها الشركة على مستوى تشغيل الميزة وليست مشكلة في الشبكة - فإذا كنت تقيم في إحدى المناطق المحجوبة فلن تعمل الميزة حتى مع استخدام وسائل تخطي الحجب. وتماثل هذه القيود شروط تشغيل ميزة Chronicle الموضحة لاحقاً.

كيف يتم تدوين الذاكرة - ميزة العمل غير المتزامن في الخلفية

هذا هو التفسير للمشكلة التي واجهت زميلي في البداية، وهو السلوك غير المتزامن لنظام الذاكرة. تنص الوثائق الرسمية على ثلاثة قواعد لتوليد الذاكرة:

أولاً، يتم استخلاص الذاكرة من الجلسات السابقة المفيدة والناجحة. بعد تفعيل الميزة، يقوم Codex بمراجعة المحادثات السابقة المفيدة لتحليلها وحفظها؛ ولكنه يتجاوز المحادثات القصيرة جداً وتلك التي لم تكتمل لتجنب تدوين معلومات عشوائية غير مفيدة.

ثانياً، يتم التحديث في الخلفية بعد توقف العمل واستقرار الجلسة. تنص الوثائق على أن الذاكرة لا تُحفظ فور إغلاق المحادثة مباشرة، بل ينتظر Codex حتى تستقر الجلسة وتتوقف عن العمل لفترة كافية للتأكد من عدم وجود تعديلات أخرى قبل البدء في التلخيص وكتابة الملاحظات في الخلفية. لذا فإن محاولة فحص الذاكرة فوراً بعد إخبار المساعد بالمعلومة ستفشل دائماً لأن المعالجة في الخلفية لم تبدأ بعد.

ثالثاً، يتم تجاوز عملية التوليد عند استهلاك الحصص (rate-limits). إذا تراجعت حصص الاتصال المتاحة لـ Codex عن حد معين، فسيتم إيقاف عملية معالجة وحفظ الذاكرة في الخلفية لتوفير الحصص لمهامك البرمجية الأساسية.

أما بالنسبة للأمان وحماية البيانات: يقوم Codex بمسح وت脱敏 (redact) أي مفاتيح تشفير أو كلمات مرور يتم رصدها في المحادثة قبل تدوينها في الذاكرة. ولكن هذا التطهير هو أداة مساعدة ولا يعني التفريط في الأمان، وسنوضح ذلك في قسم الخطوط الحمراء.

أين تحفظ ملفات الذاكرة؟

تحدد الوثائق مسار الحفظ الافتراضي محلياً على جهازك:

يوضح المخطط التالي بنية المجلد، وتولد أسماء الملفات تلقائياً بواسطة البرنامج:

text
~/.codex/memories/
├── (ملف الخلاصة والتلخيص)
├── (ملف الإدخالات المستمرة والثابتة)
├── (ملف المدخلات الحديثة المؤقتة)
└── (ملف شواهد وتفاصيل الجلسات السابقة)

نقاط هامة بشأن المجلد:

يقع المجلد داخل مجلد Codex الرئيسي على جهازك. وهو المجلد المسمى ~/.codex؛ وإذا قمت بتغيير موقع المجلد عبر متغير البيئة CODEX_HOME فستنتقل ملفات الذاكرة للموقع الجديد. ويتم حفظ الملفات تحت مجلد فرعي يسمى memories/ وتتنوع بين ملفات خلاصة وإدخالات مستمرة وشواهد وملاحظات.

تعامل معها كـ "ملفات حالة تم توليدها تلقائياً". تنص الإرشادات بوضوح على: أن هذه الملفات هي نتاج عمليات التوليد التلقائي لـ Codex، ويمكنك تصفحها عند الحاجة لمعرفة ما تم حفظه أو قبل مشاركة مجلد Codex مع آخرين، ولكن تجنب تعديل هذه الملفات يدوياً - وإذا كنت تريد التحكم في الذاكرة فاستخدم الأمر المائل /memories ومفاتيح التكوين الموضحة في القسم التالي وتجنب فتح وتعديل هذه الملفات يدوياً. هذا يختلف تماماً عن أسلوب Claude Code الذي يتيح لك فتح وتعديل ملف MEMORY.md يدوياً، حيث يفضل Codex أسلوب "التحكم عبر الخيارات وترك تعديل الملفات للنظام".

يوضح الجدول التالي الفروق بين النظامين لتسهيل فهم خصائصهما:

وجه المقارنةملف AGENTS.mdنظام الذاكرة Memories
الحالة الافتراضيةيعمل ويقرأ دائماًمغلق افتراضياً، ويتطلب تفعيلاً
وقت الحفظ والتطبيقيطبق فور حفظ الملف يدوياًفي الخلفية بعد استقرار وتوقف العمل
موقع الحفظداخل مجلد المشروع ويدخل في gitمحلياً في مجلد ~/.codex/memories/
أسلوب الإدارةتعديل الملف وكتابته يدوياًالتحكم عبر أمر /memories والإعدادات

💡 ملخص في جملة واحدة: تعد Memories ملاحظات وتفضيلات يكتبها Codex تلقائياً ويحفظها محلياً في مجلد ~/.codex/memories/ وهي مغلقة افتراضياً (تفعل عبر memories = true في التكوين)؛ ولا يتم الحفظ لحظياً بل في الخلفية بعد توقف العمل واستقرار الجلسة؛ وهي ملفات حالة يفضل التحكم بها عبر الخيارات المتاحة وتجنب تعديلها يدوياً.


03 التحكم في الجلسات: أمر /memories ومفاتيح التكوين

بعد تفعيل ميزة الذاكرة، يبرز سؤال هام - هل أريد استخدام الذاكرة الحالية في محادثة اليوم؟ وهل أريد السماح بحفظ محتويات محادثة اليوم وتدوينها في الذاكرة؟ قد ترغب مثلاً في كتابة كود تجريبي مؤقت وتخشى أن يفسد تفضيلاتك المحفوظة، أو قد تعمل على كود حساس وتريد عزل الجلسة تماماً. يوفر Codex مستويين للتحكم: أمر الجلسة المائل /memories ومفاتيح التكوين العامة.

تشبيه: زرا التسجيل والتشغيل في مسجل الصوت. يمثل زر التشغيل "هل تريد الاستماع للتسجيلات السابقة" (استخدام الذاكرة الحالية)، ويمثل زر التسجيل "هل تريد تسجيل الكلام الحالي" (حفظ محادثة اليوم في الذاكرة). وهما زرار مستقلان - حيث يمكنك الاستماع دون تسجيل (استخدام الذاكرة دون حفظ الجلسة)، أو التسجيل دون استماع، أو إيقاف الاثنين معاً. وتتحكم في هذين الخيارين عبر أمر /memories للجلسة.

التحكم في الجلسة الحالية: أمر /memories

اكتب الأمر /memories داخل محادثة تطبيق Codex أو واجهة CLI:

text
/memories

المتوقع: ستظهر قائمة تتيح لك اختيار هل تريد قراءة واستخدام الذاكرة الحالية، وهل تريد تفعيل حفظ محتويات الجلسة وتدوينها مستقبلاً، أو إيقاف عمليات الذاكرة بالكامل لهذه الجلسة. وتؤكد الإرشادات أن هذا الاختيار مؤقت ويقتصر على المحادثة الحالية فقط ولا يغير إعداداتك العامة، وعند فتح محادثة جديدة سيتم العودة للإعدادات الافتراضية.

هذا التصميم مفيد جداً وعملي. عادتي الشخصية هي: ترك الذاكرة تعمل بشكل طبيعي للمشاريع والمهام المعتادة، وتشغيل أمر /memories لإيقاف حفظ الجلسة فوراً عند البدء في مهام تجريبية أو تعديل كود حساس لتجنب حفظ تفاصيل مؤقتة أو بيانات حساسة في الذاكرة الدائمة.

الإعدادات العامة: مفاتيح التكوين في config.toml

لتحديد سلوك الذاكرة العام والدائم لجهازك، أضف هذه المفاتيح تحت قسم [memories] في ملف التكوين الرئيسي ~/.codex/config.toml:

⚠️ تحقق من دليل خيارات التكوين الرسمي لإصدارك الحالي للتأكد من المسميات والقيم الافتراضية، وتجنب نسخها دون فحص.

مفتاح الإعدادوظيفتهالقيمة الافتراضية
memories.use_memoriesعند ضبطه كـ false يمنع استخدام وقراءة الذاكرة الحالية في المحادثات الجديدةtrue
memories.generate_memoriesعند ضبطه كـ false يمنع تحليل وحفظ محتويات المحادثات الجديدة وتدوينها في الذاكرةtrue
memories.disable_on_external_contextعند ضبطه كـ true يمنع توليد وحفظ الذاكرة لأي جلسة تم فيها استخدام مصادر خارجية مثل MCP أو البحث في الويب أو الأداة السحابيةfalse
memories.min_rate_limit_remaining_percentالنسبة المئوية المتبقية للحصص التي إذا قل عنها يتم إيقاف تشغيل معالجة وحفظ الذاكرة25
memories.extract_modelتحديد نموذج معين للقيام بعملية استخلاص الذاكرة من الجلسة الفرديةيعتمد على الافتراضي
memories.consolidation_modelتحديد نموذج معين للقيام بعملية دمج وتلخيص الذاكرة العامةيعتمد على الافتراضي

على سبيل المثال، إذا كنت تريد استخدام الذاكرة الحالية فقط ومنع تدوين أو حفظ أي معلومات جديدة (للحفاظ على الذاكرة مستقرة وتجنب إفسادها):

toml
[memories]
generate_memories = false
use_memories = true

ℹ️ يتوفر لمفتاح memories.disable_on_external_context اسم قديم هو memories.no_memories_if_mcp_or_web_search وتؤكد الوثائق أن النظام يستمر في قبول المسمى القديم لتوافق الإعدادات. وسيتضح لك فائدة هذا المفتاح عند قراءة المقال 20 · استخدام MCP للاتصال بالأدوات الخارجية، نظراً لأن استخدام مصادر بيانات خارجية قد يدخل معلومات عشوائية أو خبيثة للجلسة ويقترح حظر الذاكرة عنها لحمايتها.

💡 ملخص في جملة واحدة: استخدم أمر /memories لتحديد قراءة وحفظ الذاكرة للجلسة الحالية مؤقتاً؛ واستخدم قسم [memories] في ملف config.toml للضبط الدائم - حيث يمثل use_memories و generate_memories المفاتيح الأساسية للتشغيل والإغلاق، ويسمح disable_on_external_context بحظر الجلسات المعتمدة على مصادر خارجية لحماية الذاكرة.


04 ما هو المناسب للذاكرة وما يمنع إسناده إليها (الخطوط الحمراء)

بعد توضيح الآليات، نأتي للمعايير العملية - ما هي التفاصيل المناسبة لحفظها في نظام Memories، وما هي الأمور التي يحظر لمسها. يتميز نظام Memories بالذكاء والحذر (يتجاوز الجلسات المؤقتة والقصيرة)، ولكن يجب أن تفهم الخطوط الفاصلة وخاصة الخطوط الحمراء.

يوضح الجدول التالي التمييز بين الجوانب المناسبة وغير المناسبة للذاكرة لتتجنب المشاكل:

❌ تجنب إسناده للذاكرة (يُكتب في AGENTS.md أو مؤقت وحساس)✅ مناسب للذاكرة (مستمر، مكرر، ويتعلمه تلقائياً)
"يجب استخدام pnpm دائماً وحظر npm" (قاعدة صارمة تتطلب الالتزام الدائم ← اكتبها في AGENTS.md)لغات التكوين والتقنيات التي تستخدمها بكثرة (مثل TypeScript و PostgreSQL و pytest)
"استخدم المنفذ 8081 لهذه الجلسة فقط" (مؤقت وقد يسبب تضارباً مستقبلاً)خطوات العمل المتكررة (مثل تشغيل فحص الأكواد lint قبل فتح PR)
"أقوم حالياً بتعديل صفحة تسجيل الدخول" (حالة مؤقتة تزول بانتهاء المهمة)العادات المتبعة في المشاريع (مثل الحاجة لتشغيل خادم محلي لتشغيل الاختبارات)
كلمات مرور قواعد البيانات، مفاتيح API، ورموز الاعتماد (حساس جداً! خط أحمر!)المشاكل والحلول (مثل تذكر أن bug التوقيت يرجع لاختلاف المناطق الزمنية)

ونعتمد في التقييم على ثلاثة معايير أساسية:

المعيار الأول: هل الإجراء صارم ويجب الالتزام به دائماً؟ هذا هو السؤال الأهم في Codex. فكل قاعدة يجب الالتزام بها حتمياً في كل مرة يجب كتابتها في ملف AGENTS.md ويحظر تركها للذاكرة. نظراً لأن نظام Memories احتمالي قد يغفل عنها أو يتأخر في حفظها أو تداخل مع تفاصيل أخرى. وخطأ زميلي المذكور كان نتيجة إسناد قاعدة صارمة (استخدام pnpm) لنظام احتمالي غير حتمي.

المعيار الثاني: هل المعلومة مؤقتة أم مستمرة وقابلة للتكرار؟ تجنب إرهاق الذاكرة بالمعلومات المؤقتة (مثل أرقام المنافذ المؤقتة، المتغيرات الحالية، أو الملف الذي تفتحه للتو)؛ وركز على حفظ تفضيلاتك المستمرة (مثل بيئات العمل المفضلة، عادات التطوير، وحلول المشاكل المتكررة).

المعيار الثالث: هل تحتوي المعلومة على بيانات حساسة؟ (هذا هو الخط الأحمر، ونؤكد عليه بدقة):

تجنب حفظ مفاتيح التشفير وبيانات الاعتماد في الذاكرة تماماً. فرغم قيام Codex بمسحها وتطهيرها تلقائياً، إلا أنه يجب عليك مراجعة وتصفية ملفات الذاكرة يدوياً قبل مشاركة مجلد Codex الرئيسي مع آخرين أو إخراج ملفات الذاكرة.

تذكر هذا التوجيه بدقة: مسح البيانات الحساسة تلقائياً هو أداة حماية مساعدة وليس تصريحاً للتساهل. تحفظ ملفات الذاكرة بتنسيق markdown نصي غير مشفر على جهازك. لذا - يحظر تماماً إدخال كلمات المرور والمفاتيح والرموز في الذاكرة، وتخضع لنفس سياسات الأمان المعتادة (عدم كتابتها في الكود أو السجلات أو التعديلات). واجعلها عادة لك: مراجعة محتويات مجلد ~/.codex/memories/ للتأكد من خلوه من أي بيانات سرية قبل إرسال مجلد .codex لأي زميل أو مشاركته.

💡 ملخص في جملة واحدة: المعايير الثلاثة هي - الالتزامات الصارمة تكتب في ملف AGENTS.md؛ وتجنب حفظ التفاصيل المؤقتة؛ ويحظر تماماً حفظ المفاتيح وكلمات المرور في الذاكرة (نظراً لحفظ الملفات بشكل نصي غير مشفر محلياً)؛ واحرص على مراجعة مجلد memories/ قبل مشاركته مع آخرين. ويقتصر دور نظام Memories على حفظ تفضيلات التطوير المستقرة والعملية.


05 ميزة Chronicle: تغذية الذاكرة عبر قراءة محتويات الشاشة (ميزة تجريبية)

نتحدث في هذا القسم عن ميزة تنفرد بها أداة Codex وتفتقر إليها أداة Claude Code وهي - ميزة Chronicle.

⚠️ ميزة تجريبية قد تتغير مع الإصدارات. ميزة Chronicle هي أداة اختيارية قيد البحث والتطوير (opt-in research preview). وتخضع المسميات والواجهات والخيارات لما يعرض في واجهتك ولما هو منصوص عليه في المستندات الرسمية لـ Codex، وقد يتم تعديلها مستقبلاً.

ما هي الميزة وما الذي تقدمه؟

الخلاصة: بينما يتعلم نظام Memories من محادثاتك المكتوبة مع Codex، فإن ميزة Chronicle تذهب لأبعد من ذلك، لتتعلم وتستخلص المعلومات من "ما يعرض على شاشتك مباشرة". حيث تستعين بلقطات من شاشة جهازك لتغذية الذاكرة بالمعلومات الحالية، ليصبح Codex أكثر فهماً للملف أو المشكلة التي تعمل عليها والأدوات وسير العمل الذي تتبعه.

تشبيه: مساعد يجلس بجانبك ويلقي نظرة على شاشتك. المساعد العادي يعتمد على ما تخبره به شفهياً؛ أما مساعد Chronicle فيلقي نظرة سريعة على الشاشة - ليفهم مثلاً "أنك تواجه هذا الخطأ البرمجي حالياً" أو "أنك تقوم بتعديل هذا الجزء في PR" - دون الحاجة لأن تشرح له السياق من البداية. وتوضح المستندات ثلاث فوائد رئيسية للميزة: الاستفادة من المحتوى المعروض أمامك (لتوفير وقت نسخه وشرحه)، تكملة تفاصيل السياق التي قد تغفل عنها (دون حاجة لتهيئة خلفية مفصلة)، وحفظ الأدوات وسير العمل الذي تفضله (ليتعلم كيفية تشغيل المهام بالأسلوب الذي تفضله تلقائياً).

وتنبيه هام: لا تقوم ميزة Chronicle بتحليل الشاشة بالكامل بمفردها، بل تستخدمها كـ "مؤشرات وإشارات". فإذا رصدت مشكلة أو ملفاً على الشاشة (مثل ملف كود، محادثة Slack، مستند Google Doc، لوحة تحكم، أو PR)، فإنها تستعين بلقطة الشاشة لمعرفة الملف أو المستند المستهدف، وتقوم بالوصول الفعلي المباشر لهذا المصدر لقراءة محتوياته بدقة.

شروط تشغيل صارمة: الحساب والمنطقة والنظام

نوضح القيود الجغرافية والتقنية الصارمة لتشغيل الميزة، وتأكد من استيفائها قبل المحاولة:

تتوفر ميزة Chronicle لمشتركي ChatGPT Pro فقط، وتعمل حصرياً على نظام macOS، وتظل غير مدعومة في الاتحاد الأوروبي والمملكة المتحدة وسويسرا عند الإطلاق.

ثلاثة شروط إلزامية لتشغيل الميزة:

  • الاشتراك: حساب ChatGPT Pro (ولا تعمل مع اشتراكات Plus العادية).
  • نظام التشغيل: نظام macOS فقط (ولا تتوفر لأنظمة Windows أو Linux - علماً بأن تطبيق Codex لا يوفر نسخة لنظام Linux حالياً).
  • المنطقة الجغرافية: غير مدعومة في الاتحاد الأوروبي والمملكة المتحدة وسويسرا (وهي نفس القيود الجغرافية المطبقة على نظام الذاكرة Memories).

وتتطلب الميزة منح صلاحيتين لنظام التشغيل macOS: تسجيل الشاشة (Screen Recording) و إمكانية الوصول (Accessibility) - لتتمكن الميزة من رؤية الشاشة والتفاعل مع النظام. خطوات التفعيل: افتح إعدادات تطبيق Codex ← توجه لتبويب Personalization ← تأكد من تفعيل Memories أولاً ← فعل خيار Chronicle في الأسفل ← وافق على نافذة الخصوصية واضغط Continue ← اتبع التوجيهات لتفعيل الصلاحيتين في نظام التشغيل.

ثلاثة تحذيرات للخصوصية: اقرأها بدقة قبل التشغيل

تمثل هذه التحذيرات ركيزة الخصوصية للميزة، وتوضحها المستندات بوضوح. يرجى قراءتها وفهمها جيداً قبل التفعيل:

  1. استهلاك سريع للحصص. تعتمد ميزة Chronicle على تشغيل وكلاء فحص الشاشة والتقاطها باستمرار في الخلفية لمعالجة الصور وتغذية الذاكرة، وهي عمليات تستهلك حصص الاستخدام المتاحة لحسابك بسرعة كبيرة. وتفعيل الميزة يقلل الحصص المتاحة لعملياتك البرمجية المعتادة بشكل ملحوظ.
  2. زيادة مخاطر هجمات حقن التعليمات. تزيد قراءة محتويات الشاشة من فرص التعرض لهجمات حقن التعليمات البرمجية - فإذا تصفحت موقعاً يحتوي على كود خبيث موجه للذكاء الاصطناعي، فقد يتم رصده عبر لقطات الشاشة وتغذية الذاكرة به ليقوم Codex بتنفيذه لاحقاً. وتتشابه هذه المخاطرة مع تلك التي ناقشناها في المقال 16 · الأمان وحدود المخاطر ولكنها تتسع هنا لتشمل كل ما يعرض على شاشتك دون تحكم منك.
  3. حفظ ملفات الذاكرة بشكل غير مشفر. كغيرها من إعدادات الذاكرة في Codex، تحفظ إدخالات Chronicle في ملفات markdown نصية غير مشفرة على قرص جهازك.

وازن بين هذه التحذيرات والتسهيلات التي تقدمها الميزة قبل تفعيلها. وكما أوضحنا في المقال 02 · المفاهيم الأساسية: قم بإيقاف الميزة فوراً عند التعامل مع شاشات تحتوي على بيانات حساسة (مثل كلمات المرور، المحادثات الخاصة، بيانات العملاء، أو شاشات اجتماعات العمل). خطوات الإيقاف المؤقت: انقر على أيقونة Codex في شريط القوائم على نظام macOS، واختر Pause Chronicle (ولإعادة تشغيلها اختر Resume Chronicle). وتؤكد الإرشادات على: إيقاف الميزة قبل بدء الاجتماعات أو تصفح البيانات الحساسة؛ وقاعدة أخلاقية صارمة - تجنب استخدام Chronicle لتسجيل محادثات واجتماعات زملاء العمل دون موافقتهم الصريحة (فرغم عدم قراءة الميزة للميكروفون أو أصوات النظام، إلا أن لقطات الشاشة تسجل صور الحاضرين ومحتويات شاشاتهم المعروضة).

أين تحفظ البيانات وهل يتم إرسالها لـ OpenAI؟

توضح الوثائق تفاصيل إدارة البيانات كالتالي:

  • لقطات الشاشة مؤقتة ومحلية: تحفظ اللقطات لفترة قصيرة جداً على جهازك، ويمكن رصدها أثناء التشغيل تحت المجلد المؤقت للنظام $TMPDIR/chronicle/screen_recording/، ويتم حذف اللقطات التي يتجاوز عمرها 6 ساعات تلقائياً أثناء العمل.
  • ملفات الذاكرة الناتجة محلية: تحفظ الذاكرة المستخلصة في المجلد $CODEX_HOME/memories_extensions/chronicle/ (والذي يطابق عادة ~/.codex/memories_extensions/chronicle/) كملفات markdown نصية قابلة للقراءة والتعديل. وإذا كنت تريد حذف معلومة أو تفضيل تم حفظه بالخطأ، فيكفي فتح ملف markdown المخصص وحذف السطر أو تعديله يدوياً؛ ولكن تنصح الإرشادات بـ - تجنب كتابة أو إضافة إدخالات جديدة يدوياً في هذه الملفات.
  • طريقة معالجة اللقطات: لتوليد الذاكرة، يتم تشغيل جلسة Codex مؤقتة لمعالجة الصور الملتقطة وتحليل النصوص بداخلها ومقارنتها بمسارات وتوقيت الملفات المحلية المستخدمة. ويتم حذف لقطات الشاشة فور انتهاء عملية المعالجة على خوادم OpenAI - ولا يتم الاحتفاظ بها ولا خزنها إلا لأسباب قانونية قاهرة، ولا يتم استخدام هذه الصور والبيانات لتدريب النماذج.

💡 ملخص في جملة واحدة: ميزة Chronicle هي أداة تجريبية حصرية لـ Codex لتغذية الذاكرة من لقطات الشاشة، وهي متاحة لمشتركي Pro وعلى نظام macOS فقط وغير مدعومة في EU وبريطانيا وسويسرا وتتطلب صلاحيات تسجيل الشاشة؛ وتذكر مخاطرها المتمثلة في استهلاك الحصص، وزيادة فرص حقن التعليمات، وحفظ البيانات محلياً بشكل غير مشفر؛ ويمكن إيقافها مؤقتاً عبر خيار Pause Chronicle من شريط القوائم عند تصفح شاشات حساسة؛ وتحذف الصور فور معالجتها ولا تستخدم للتدريب.

يوضح المخطط التالي بنية نظام الذاكرة المزدوج ومصادر التغذية وموقع حفظها:

نظام الذاكرة المزدوج في Codex

توضح الرسمة آليتي تدوين الذاكرة: الآلية اليسرى Memories التي تستخلص الملاحظات من محادثاتك مع Codex وتحفظها محلياً في المجلد ~/.codex/memories/ (وتفعل عبر سطر memories = true في التكوين)؛ والآلية اليمنى Chronicle التي تستخلص الملاحظات من محتويات الشاشة وتحفظها في المجلد ~/.codex/memories_extensions/chronicle/ (وهي ميزة تجريبية Pro لنظام macOS فقط)؛ وتجتمع الآليتان لتغذية جلساتك الجديدة لتخصيص ومعاينة العمل تلقائياً.


06 خطوات عملية: تفعيل Memories، حفظ تفضيل، والتحقق من عمله

العمل والتطبيق هما أفضل وسيلة للتعلم. سنقوم معاً بتطبيق خطوات عملية مبسطة: تفعيل Memories ← تسجيل تفضيل معين في محادثة ← التحقق من توليد ملفات الذاكرة محلياً ← واستخدام أمر /memories للتحكم بالجلسة. الخطوات بسيطة وتعمل في كل البيئات.

تنبيه بشأن الأنظمة: الأوامر مثل mkdir وغيرها تعمل مباشرة على أنظمة macOS و Linux؛ ولأنظمة Windows يفضل استخدام Git Bash أو بيئة WSL. ويمثل الرمز ~ المجلد الرئيسي للمستخدم، والذي يطابق المسار C:\Users\username\ على نظام Windows. وتذكر أن مقيمين في الاتحاد الأوروبي والمملكة المتحدة وسويسرا لن تتوفر لديهم ميزة Memories ولن تنجح خطوات تفعيلها.

الخطوة الأولى: تفعيل Memories

افتح ملف التكوين العام ~/.codex/config.toml (وقم بإنشائه إن لم يكن موجوداً)، وأضف السطر التالي:

toml
[features]
memories = true

المتوقع: حفظ الملف لتفعيل الميزة. ويمكنك تفعيلها أيضاً من شاشة إعدادات تطبيق Codex مباشرة.

الخطوة الثانية: إنشاء مجلد اختبار وتشغيل Codex

bash
mkdir memory-demo
cd memory-demo
codex

المتوقع: فتح واجهة محادثة Codex.

الخطوة الثالثة: تدوين وتلقين تفضيل مستقر في المحادثة

أخبر Codex بتفضيل مستقر وعملي تريد منه تذكره مستقبلاً. مثال:

text
أريد اعتماد مكتبة pytest لتشغيل الاختبارات في هذا المشروع دائماً، والتحقق من تشغيلها قبل إتمام العمل. احفظ هذا التفضيل لديك.

المتوقع: سيقوم Codex بالرد وتأكيد الالتزام بالتفضيل. ولكن تذكر - لن يتم كتابة هذا التفضيل في ملفات الذاكرة فوراً. وكما شرحنا في القسم 02: يتم توليد الذاكرة في الخلفية بشكل غير متزامن بعد توقف العمل واستقرار الجلسة لفترة كافية (تصل افتراضياً لـ 6 ساعات للتأكد من انتهاء عمليات التطوير). لذا لن تجد التفضيل مكتوباً في ملفات الذاكرة يدوياً بمجرد إرسال الرسالة.

الخطوة الرابعة: استخدام أمر /memories للتحكم في الجلسة الحالية

لتجربة التحكم الفوري والمباشر في الجلسة، اكتب الأمر المائل التالي داخل المحادثة:

text
/memories

المتوقع: ستظهر قائمة خيارات تتيح لك تحديد هل تريد استخدام الذاكرة الحالية، وهل تريد السماح بحفظ محادثة اليوم، أو إيقاف عمليات الذاكرة بالكامل للجلسة الحالية. قم باختيار إيقاف عملية الحفظ (generate) للجلسة الحالية مثلاً. هذا التعديل فوري ويقتصر على المحادثة الحالية دون التأثير على إعداداتك العامة، وهو بديل سريع للتأكد من عمل خيارات التحكم دون انتظار توليد الذاكرة في الخلفية.

الخطوة الخامسة: التحقق من كتابة ملفات الذاكرة على القرص لاحقاً

بعد مرور فترة كافية واستقرار الجلسة وتوقف العمل (لتسمح لعملية الخلفية بالعمل وتلخيص المحادثة)، توجه لمجلد الحفظ لمراجعة الملفات:

bash
ls ~/.codex/memories/

المتوقع: ظهور ملفات الذاكرة المخصصة (ملفات الخلاصة، والمدخلات المستمرة، والشواهد). ظهور هذه الملفات يعني أن نظام Memories يعمل بنجاح ويقوم بتدوين تفضيلاتك محلياً. ويمكنك فتح هذه الملفات النصية لقراءة محتوياتها؛ ولكن تذكر قاعدة: تجنب تعديل هذه الملفات يدوياً واعتمد على الخيارات البرمجية وأمر /memories وإعدادات config.toml لإدارة سلوك الذاكرة.

⚠️ إذا مرت فترة طويلة وظل مجلد ~/.codex/memories/ فارغاً دون ملفات، فراجع نقاط الفحص التالية: ① تأكد من كتابة memories = true بشكل صحيح تحت قسم [features]؛ ② تأكد من عدم إقامتك في إحدى المناطق المحجوبة جغرافياً (الاتحاد الأوروبي، بريطانيا، وسويسرا)؛ ③ تأكد من أن المحادثة لم تكن قصيرة جداً (حيث يتجاوز النظام المحادثات القصيرة)؛ ④ تأكد من أن حصص حسابك المتبقية كافية وتزيد عن نسبة 25% الافتراضية.

بإتمام هذه الخطوات، تكون قد تحققت عملياً من مسار عمل نظام الذاكرة: تفعيل الميزة ← إدخال تفضيل ← فهم سبب المعالجة المتأخرة في الخلفية ← التحكم في الجلسة الحالية فوراً عبر أمر /memories ← والتحقق من حفظ الملفات محلياً.

💡 ملخص في جملة واحدة: لتجربة الذاكرة: فعل memories = true في التكوين ← اكتب تفضيلاً مستقراً في المحادثة (ولن يحفظ فوراً بل في الخلفية لاحقاً) ← استخدم أمر /memories للتحكم في الجلسة الحالية فوراً ← وراجع مجلد ~/.codex/memories/ لاحقاً للتأكد من كتابة ملفات الذاكرة على القرص.


07 ملخص

شرحنا في هذا المقال نظام الذاكرة في Codex بالتفصيل - وكيف ينقسم التذكر إلى نظامين متميزين؛ والفروق الجوهرية لنظام Codex عن بقية المساعدين.

دعنا نلخص النقاط الأساسية معاً بشكل سريع:

الجانبالتفاصيل والنقاط الهامة
تقسيم نظام التذكرينقسم التذكر إلى نظامين: ملف AGENTS.md الذي تكتبه يدوياً (حتمي وصارم ويدخل في git)، ونظام Memories المكتوب تلقائياً (احتمالي ومحلي)
تفعيل Memoriesمغلق افتراضياً، ويتطلب كتابة memories = true في التكوين أو تفعيله من الإعدادات؛ وتذكر حجبه في الاتحاد الأوروبي وبريطانيا وسويسرا
طريقة الحفظ والتوليدفي الخلفية بشكل غير متزامن بعد استقرار وتوقف العمل لفترة؛ ويتم مسح وتطهير المفاتيح الحساسة؛ ويتم تجاوزه عند تراجع حصص الحساب
موقع الحفظ محلياًيحفظ في المجلد ~/.codex/memories/ محلياً على جهازك ولا يدخل في git، وهي ملفات حالة يفضل إدارتها عبر خيارات التحكم وتجنب تعديلها يدوياً
خيارات التحكمأمر /memories للجلسة الحالية مؤقتاً، وقسم [memories] في ملف config.toml للضبط الدائم (مثل مفتاحي use_memories و generate_memories)
إرشادات الحفظالقواعد الصارمة تكتب في ملف AGENTS.md؛ وتجنب البيانات المؤقتة؛ ويمنع تماماً حفظ كلمات المرور والمفاتيح في الذاكرة لمخاطر تخزينها بشكل غير مشفر
ميزة Chronicleميزة تجريبية لتغذية الذاكرة من محتويات الشاشة؛ تقتصر على حساب Pro ونظام macOS وغير متاحة في EU وبريطانيا وسويسرا؛ وتستهلك الحصص بسرعة وتخزن محلياً بشكل غير مشفر ويمكن إيقافها مؤقتاً عبر خيار Pause Chronicle

يجب أن تكون الآن قادراً على: التمييز بين ملف AGENTS.md ونظام الذاكرة Memories واختيار الأداة المناسبة لكل قاعدة؛ وتفعيل نظام الذاكرة وفهم طريقة عمله غير المتزامنة في الخلفية وموقع حفظ الملفات؛ واستخدام أمر /memories وإعدادات config.toml لإدارة قراءة وحفظ التفضيلات؛ وتصفية المعلومات وحظر البيانات الحساسة؛ وفهم طبيعة عمل ميزة Chronicle وشروط تشغيلها والاحتياطات الأمنية الخاصة بها. بهذه المفاهيم، تتمكن من مساعدة Codex على تراكم الخبرات وحفظ تفضيلاتك بشكل آمن وصحيح لتسريع العمل وتجنب تكرار الإرشادات.

يهدف نظام الذاكرة لحفظ "الخبرات وسياق العمل الذي تم بالفعل" - ليتعلم Codex من تصحيحاتك وتفضيلاتك تدريجياً. ولكن لربط Codex بالعالم الخارجي وتزويده بالمعلومات والأدوات الحية التي تقع خارج جهازك، نعتمد على نظام آخر تماماً.

💡 ملخص في جملة واحدة: يجمع نظام التذكر بين AGENTS.md كخط دفاع حتمي أول للمستندات والقواعد الصارمة، ونظام Memories كأداة احتمالية مساعدة لحفظ الخبرات والتفضيلات محلياً؛ وتوفر ميزة Chronicle الاختيارية تغذية للذاكرة من الشاشة لمشتركي Pro على نظام macOS مع أهمية الحذر والخصوصية عند استخدامها.


المقال التالي 20 · استخدام MCP للاتصال بالأدوات الخارجية - بينما يساعد نظام الذاكرة Codex على "فهم تفضيلاتك وتذكرها"، فإن بروتوكول MCP (Model Context Protocol) يمنحه "القدرة على الوصول للأدوات والبيانات الحية خارج الجهاز": حيث يربط Codex بقواعد البيانات، والواجهات البرمجية (APIs)، والخدمات السحابية الخارجية من خلال بروتوكول موحد ومؤمن، ليمكنه من القراءة والاستعلام والتشغيل المباشر. وتحدثنا في القسم 03 من هذا المقال عن مفتاح disable_on_external_context الذي يمنع حفظ الجلسات الخارجية في الذاكرة، وسيتضح لك في المقال القادم أسباب حظر الجلسات المرتبطة بـ MCP للحفاظ على سلامة الذاكرة. فكر في هذا السؤال: ما هو الفارق في استخدام "الذاكرة التراكمية لحفظ تفضيل شخصي" مقابل "الاستعانة بأداة MCP لقراءة بيانات حية لحظية من خادم خارجي"؟ سنتناول ذلك بالتفصيل في المقال القادم.


قراءات مقترحة