Skip to content

إدارة السياق: تجنب جعله "يفقد الذاكرة" ولا تستهلك الـ tokens بشكل مفرط

📚 التنقل في السلسلة: المقال السابق 18 · دليل استخدام CLAUDE.md علمك كيفية كتابة معايير المشروع في "دليل انضمام الموظف". يغير هذا المقال المنظور ليتحدث عن مستوى أعلى — فهذا الدليل ومحادثاتك والملفات المقروءة تزدحم معًا في مساحة تسمى "نافذة السياق" وهي بمثابة طاولة العمل لـ Claude؛ كيفية إدارة طاولة العمل هذه وتجنب امتلائها تمامًا هو موضوعنا اليوم.

عند بدء استخدام Claude Code لأول مرة، يسهل الوقوع في خطأ ساذج للغاية.

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

ماذا كانت النتيجة؟ بدأ بالفعل في قراءة ملف تلو الآخر، وظلت شاشة الطرفية تتدفق بالبيانات، ولكن بعد قراءته لأكثر من عشرين ملفًا بدأ في التباطؤ بشكل واضح وأصبح بطيئ الاستجابة. وعندما طلبت منه البدء في إصلاح خطأ تسجيل الدخول، سألني مستغربًا "في أي ملف يقع موديول auth؟" — وهو ملف قرأه بالكامل قبل 10 دقائق فقط. لم ينهِ العمل المطلوب، وبدأ في "فقدان الذاكرة" أولاً، مع استهلاك كمية كبيرة من الـ tokens.

وبعد فهم طريقة العمل اتضحت الفكرة: نافذة السياق ليست أفضل كلما كانت ممتلئة، بل إن امتلائها يقلل من كفاءته واستيعابه. سنشرح لك اليوم بالتفصيل "طاولة العمل" هذه — تعريفها، ما يحدث عند امتلائها، كيفية تنظيفها باستخدام الأمرين /compact و /clear، كيفية فحص استخدامها لحظيًا، وكيفية توفير الـ tokens من المصدر.

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

  • تشبيه عملي يوضح فكرة "نافذة السياق" بالكامل، وما الذي يحدث بدقة عند امتلائها
  • جدول مقارنة يوضح متى نستخدم كلاً من: /compact (الضغط)، و /clear (المسح)، وبدء جلسة جديدة مباشرة
  • كيفية استخدام الأمرين /context و /usage لمراقبة حجم السياق المستهلك بدقة مع النتائج المتوقعة
  • خمس عادات يومية لتوفير الـ tokens، تعلمناها من مواجهة المشاكل الحقيقية سابقًا
  • فهم آلية عمل "الضغط التلقائي" (auto-compact) وكيف تعمل في الخلفية لتجنب التفاجؤ عند توقف الجلسة فجأة بسببها

01 نافذة السياق: ما هو حجم "طاولة العمل" لـ Claude

دعنا نحدد هذا المفهوم الأساسي أولاً.

نافذة السياق (context window) —— هي المساحة والسعة الإجمالية لجميع محتويات الجلسة الحالية التي يستطيع Claude "رؤيتها" وفهمها في نفس الوقت، وتُقاس بالـ tokens (وهي الوحدة الصغرى المستخدمة لحساب النصوص في النماذج).

وهي لا تقتصر على النصوص التي تكتبها فقط، بل تضم عدة عناصر مختلفة. وتفصلها وثيقة context-window.md الرسمية كالتالي:

المحتويات التي توضع في طاولة العملمتى تدخل السياقالمساحة المستهلكة
توجيهات النظام (توجيهات سلوك Claude)عند بدء التشغيل في كل مرة، وهي غير مرئية لكجزء ثابت ومحدد
ملف CLAUDE.md الخاص بك (العام والمحلي)تُحمل بالكامل عند بدء التشغيلتعتمد على حجم الملف
الذاكرة التلقائية (auto memory)تُحمل عند بدء التشغيل (مع وجود حد أقصى)متوسطة
كل جملة تقوم بكتابتهاتضاف جملة جديدة مع كل إدخال ترسلهصغيرة عادة
كل ملف يقوم بقراءتهيُضاف محتواه بالكامل بمجرد قراءتهالقسم الأكبر، وتستهلك الـ tokens بسرعة فائقة
مخرجات الأوامر ونتائج الأدواتتُضاف بعد كل استدعاء للأدواتسريعة للغاية عند التعامل مع السجلات أو الملفات الكبيرة

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

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

ما هو حجم طاولة العمل هذه؟ يعتمد ذلك على النموذج المستخدم. تتوفر معظم النماذج بحجم 200 ألف tokens تقريبًا، وبعض النماذج (مثل التي تحمل الرمز [1m]) تصل إلى مليون tokens. ولكن تذكر هذه القاعدة البسيطة فهي أهم من حفظ الأرقام:

مهما كانت الطاولة واسعة فلها حدود، وكلما امتلأت، قلت كفاءة عمله.

💡 خلاصة في جملة واحدة: نافذة السياق هي طاولة عمل Claude، ويذهب الجزء الأكبر من مساحتها للملفات التي يقرأها وليس للنصوص التي تكتبها؛ وللطاولة حدود، وإذا امتلأت سيبدأ في التخلص من المعلومات القديمة وإلقائها للخارج.


02 ماذا يحدث عند امتلاء طاولة العمل: يصبح بطيئًا، وتقل كفاءته، وربما "يفقد الذاكرة"

هذه هي الملاحظة الأهم في المقال: نافذة السياق ليست أفضل كلما كانت ممتلئة، بل إن زيادة حجمها عن حد معين يؤدي لتراجع كفاءة أداء Claude بشكل ملحوظ.

لماذا؟ لأن زيادة المحتويات فوق الطاولة تشتت "انتباه وتركيز" النموذج، وتبدأ البيانات القديمة غير المرتبطة بالعمل الحالي في التشويش على المهمة المطلوبة. ويطلق على هذه الظاهرة اسم "تلف وتدهور السياق" (context rot).

كيف تعرف أن السياق قد تدهور؟ لخصنا لك بعض الأعراض الشائعة، وإذا لاحظت أيًا منها يجب عليك التدخل:

  • ظهور تناقض في إجاباته، ونسيان الترتيبات والحلول التي اتفقتما عليها سابقًا
  • أن تصبح إجاباته عامة ومبهمة، وتقل التفاصيل البرمجية ويبدأ في سرد توضيحات لا تفيد
  • تكرار السؤال عن أمور أجبت عنها بالفعل (مثل سؤاله "في أي ملف يقع موديول auth" المذكور سابقًا)
  • تكرار نفس المشكلة والدوران في حلقة مفرغة على الرغم من تصحيح الخطأ له مرتين أو أكثر

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

ما الذي سيفعله Claude عند امتلاء الطاولة فعليًا؟ سيقوم بالضغط التلقائي (auto-compact) — وسنفصل هذا في القسم 05. ما تحتاج لمعرفته هنا هو: هذا إجراء حماية تلقائي لا تتحكم في توقيت تشغيله، وقد يوقف العمل فجأة ويتسبب في إزعاجك أثناء مهمة هامة.

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

💡 一句话总结:上下文塞满会触发「上下文衰退」——前后矛盾、变笼统、反复问;与其在污染的台子上反复纠正,不如主动清理


03 أداتا التنظيف: الضغط عبر /compact مقابل المسح عبر /clear

لتنظيف وترتيب طاولة العمل، يوفر لك Claude Code أداتين، ووظيفتاهما مختلفتان تمامًا، لذا تجنب الخلط بينهما.

/compact:把台子上的东西「打包压扁」,但留着

وظيفة الأمر /compact (الضغط) هي: تلخيص تاريخ المحادثة الطويل الحالي في خلاصة موجزة ومكثفة، واستبدال السجلات النصية التفصيلية السابقة بهذه الخلاصة، لمتابعة العمل على نفس المهمة.

تشبيه: تلخيص أوراق المسودات المبعثرة فوق الطاولة في ورقة نقاط أساسية واحدة. ناقشت العمل مع زميلك لساعتين، وتراكمت الأوراق والرسومات التخطيطية غير المفيدة فوق الطاولة. يشبه استخدام /compact جمع هذه الأوراق وتلخيصها في ورقة واحدة توضح "اتفقنا على الحل A، واستبعدنا B، والخطوة القادمة هي C"، وبذلك تخلي مساحة الطاولة مع الحفاظ على النتائج التي توصلتم إليها.

والأهم من ذلك، أنه يدعم كتابة توجيهات تحدد له البيانات الأساسية الواجب الاحتفاظ بها:

text
/compact 保留认证流程的架构决策和已确认的 API 格式,丢掉调试中的无效尝试

وتعرض وثيقة costs.md الرسمية مثالاً باللغة الإنجليزية وهو /compact Focus on code samples and API usage (التركيز على نماذج الكود واستخدام الـ API)، ويعطي نفس النتيجة.

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

/clear:直接清空,从头再来

يعد الأمر /clear (المسح) أكثر قوة: فهو يمسح تاريخ المحادثة بالكامل، ويعادل بدء جلسة عمل جديدة تمامًا.

ولكن لا تقلق — لا يؤثر /clear على ملف CLAUDE.md أو الذاكرة التلقائية، ويتم تحميلهما تلقائيًا في الجلسة الجديدة. وكل ما ستفقده هو "محتوى المحادثة الحالية فقط"، مع الاحتفاظ بمعايير المشروع والذاكرة طويلة المدى.

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

وتنصح وثيقة costs.md الرسمية صراحة: استخدم الأداة /clear للبدء من جديد عند الانتقال للعمل على مهمة غير مرتبطة، لأن "السياق القديم غير المفيد سيتسبب في استهلاك الـ tokens بلا طائل مع كل رسالة جديدة ترسلها".

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

💡 خلاصة في جملة واحدة: الأمر /compact يعني "الضغط مع الاحتفاظ بالخلاصة لمتابعة العمل"، والأمر /clear يعني "مسح الطاولة بالكامل والبدء من جديد لمهمة أخرى"؛ وعند تعثره وتكرار الخطأ مرتين، لا تتردد في تشغيل /clear.


04 مراقبة الاستخدام: استخدام الأمرين /context و /usage لمعرفة المساحة المتبقية

الاعتماد على التقدير التقريبي لمعرفة "هل امتلأ السياق أم لا" ليس خيارًا دقيقًا. يوفر Claude Code أمرين لمعاينة أرقام حقيقية ودقيقة، وتجنب الخلط بين اسميهما.

/context:看台子被什么占满了

text
/context

يقوم الأمر /context بـ عرض تمثيل رسومي ملون يوضح توزيع استخدام السياق الحالي لحظيًا، ويصنفها حسب الفئات — المساحة التي تستهلكها توجيهات النظام، وملف CLAUDE.md، وكل خادم MCP، وتاريخ المحادثة، ويقدم أيضًا نصائح لتحسين الاستخدام. وتؤكد وثيقة context-window.md الرسمية: إذا كنت تريد فحص حجم السياق المستهلك بدقة في أي وقت، فقم بتشغيل /context.

من العادات المفيدة: تشغيل الأمر /context لفحص السياق قبل البدء في مهمة كبيرة. وإذا لاحظت أن أحد خوادم MCP يستهلك مساحة كبيرة دون فائدة حقيقية، أو أن ملف CLAUDE.md ضخم للغاية، فقم بتعديل وتصحيح هذه الأمور أولاً قبل بدء العمل.

هناك أيضًا أمر مكمل وهو /memory لفحص ملفات CLAUDE.md والذاكرة التلقائية التي تم تحميلها عند بدء التشغيل — واستخدمه للتحقق إذا شككت في وجود تضارب في المعلومات المحفوظة لديه.

/usage:看这次会话烧了多少 token / 多少钱

text
/usage

يعرض قسم Session في الجزء العلوي للأمر /usage إحصائيات استخدام الـ tokens للجلسة الحالية,ويقوم بتحويلها لقيمة تقديرية بالدولار الأمريكي. ووفقًا لوثيقة costs.md الرسمية، تظهر الإحصائيات بالشكل التالي:

text
Total cost:            $0.55
Total duration (API):  6m 19.7s
Total duration (wall): 6h 33m 10.2s
Total code changes:    0 lines added, 0 lines removed

⚠️ تنبيه: بالنسبة لمشتركي باقتي Pro / Max، فإن تكلفة الجلسات تكون مشمولة بالفعل في قيمة الاشتراك، وهذه القيمة بالدولار الأمريكي لا ترتبط بفاتورتك الحقيقية، بل تُعرض كإشارة تقريبية فقط لتوضيح حجم الاستهلاك.

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

💡 خلاصة في جملة واحدة: الأمر /context يعرض "محتويات توزيع استخدام الطاولة"، والأمر /usage يعرض "حجم الـ tokens المستهلكة والتكلفة للجلسة الحالية"؛ ويُفضل تشغيل /context دائمًا قبل البدء في مهمة كبيرة للتأكد من حالة الطاولة.


05 الضغط التلقائي (auto-compact): آلية لحماية النظام، وتجنب الاعتماد عليها بالكامل

الضغط التلقائي (auto-compact) هو آلية حماية مدمجة في Claude Code: فعند اقتراب حجم السياق من الحد الأقصى للنافذة، يقوم تلقائيًا بتلخيص تاريخ المحادثة في خلاصة موجزة، لإخلاء مساحة لمتابعة العمل وتجنب الانهيار المفاجئ للبرنامج بسبب امتلاء المساحة. وتدرج وثيقة costs.md الرسمية هذه الآلية بالتوازي مع ميزة تخزين التوجيهات المؤقت (prompt caching) كأداتين أساسيتين يستخدمهما Claude Code لـ "تحسين التكلفة تلقائيًا".

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

على الرغم من فائدتها، ننصحك بعدم الاعتماد عليها بالكامل، لسببين:

أولاً، لا يمكنك التحكم في توقيت تشغيلها. فمن المحتمل أن تكون في منتصف خطوة برمجية هامة، وتقترب الطاولة من الامتلاء، ليوقف العمل فجأة ويبدأ في عملية الضغط — مما يشتت تسلسل العمل تمامًا.

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

لذلك، الخيار الصحيح هو المبادرة بالعمل: عندما تلاحظ زيادة طول المحادثة وتُظهر نتيجة /context زيادة حجم الاستهلاك، بادر بتشغيل /compact بنفسك مع كتابة توجيهات تحدد له البيانات الهامة الواجب الاحتفاظ بها. ويضمن لك الضغط اليدوي ميزتين هما: التحكم في توقيت التشغيل وتحديد البيانات المحفوظة بدقة.

وهناك طريقة أخرى أكثر سهولة: كتابة تفضيلات الضغط مباشرة في ملف CLAUDE.md. وتوضح وثيقة costs.md كيفية كتابة ذلك بإضافة القسم التالي في ملف CLAUDE.md:

markdown
# Compact instructions

When you are using compact, please focus on test output and code changes

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

💡 خلاصة في جملة واحدة: الضغط التلقائي هو آلية لحماية النظام، ولكنها توقف العمل وقد تتخلص من معلومات هامة؛ وبدلاً من انتظار تشغيلها تلقائيًا، بادر بتشغيل /compact يدويًا مع كتابة توجيهات، أو حدد تفضيلات الحفظ صراحة في ملف CLAUDE.md.


06 خمس نصائح لتوفير الـ tokens: تجنب امتلاء الطاولة سريعًا من البداية

تنظيف الطاولة هو خطوة علاجية، والخيار الأفضل هو تجنب امتلائها سريعًا من البداية. ونعرض هنا خمس نصائح مفيدة للاستخدام اليومي، تركز جميعها على تحسين إدارة السياق والـ tokens:

أولاً,تجنب استخدام المشاريع الضخمة للتدريب. عند التعلم والتجربة,أنشئ مشروعًا تجريبيًا بسيطًا يتكون من 3 إلى 5 ملفات فقط. قلة الملفات تعني تقليل قراءة البيانات والحفاظ على نظافة الطاولة، وتسهل عليك متابعة خطوات العمل. فالوقوع في مشكلة "فقدان الذاكرة بعد قراءة 20 ملفًا" المذكورة في البداية كان سببه التسرع في استخدام مستودع متوسط الحجم غير مألوف.

ثانياً,استخدم الرمز @ للإشارة للملف المستهدف بدقة لتجنب البحث العشوائي. بدلاً من الطلب العام "أصلح خطأ تسجيل الدخول" ليقوم بالبحث في جميع الملفات، اكتب مباشرة @src/api/auth.ts أصلح مشكلة الخطأ 401. وتوضح وثيقة costs.md الرسمية ذلك بوضوح: الطلبات العامة والمبهمة تسبب مسحًا واسعًا للمستودع وقراءة ملفات كثيرة، بينما الطلبات المحددة تتيح له إنجاز العمل بأعلى كفاءة وبأقل قراءة للملفات. استخدام @ يوجه تركيزه للملف المقصود مباشرة.

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

رابعاً,تقسيم المهام الطويلة ومسح الطاولة بعد كل مرحلة. لا تتوقع إنجاز ميزة ضخمة بالكامل في جلسة واحدة من البداية للنهاية. بعد إتمام مرحلة مستقلة ومحددة، شغل الأمر /compact لضغط المحادثة؛ وعند الانتقال لجزء منفصل تمامًا، شغل الأمر /clear للبدء من جديد.

خامساً,تفويض العمليات الطويلة ومخرجاتها للوكلاء الفرعيين (Subagents). العمليات التي تنتج مخرجات ضخمة مثل تشغيل الاختبارات، وفحص السجلات الكبيرة، وقراءة الوثائق الطويلة، يُفضل إسنادها للوكيل الفرعي — حيث يعمل على طاولة عمل مستقلة تمامًا بمفرده، ويحضر الخلاصة والنتيجة فقط للمحادثة الرئيسية. في المثال المعروض في وثيقة context-window.md الرسمية، استهلك الوكيل الفرعي 6100 tokens لقراءة الملفات، ولكنه أرجع خلاصة للمحادثة الرئيسية استهلكت 420 tokens فقط. سنفصل موضوع الوكلاء الفرعيين في مقال لاحق، وتذكر الآن أنها أداة فعالة للغاية لتوفير مساحة السياق.

مقارنة بين الإجراءات:

الإجراءالطبيعةمتى نستخدمه
/compactعلاجي · ضغط مع الحفظعند عدم اكتمال العمل، وارتفاع حجم السياق، والحاجة للمعلومات السابقة لاحقًا
/clearعلاجي · مسح والبدء من جديدعند الانتقال لمهمة منفصلة، أو حدوث تلوث كبير في السياق
بدء جلسة جديدة مباشرة (الخروج ثم تشغيل claude مجددًا)وقائي · نظافة تامةعند الرغبة في الحصول على طاولة عمل نظيفة تمامًا خالية من أي سجلات للجلسة الحالية
الإشارة للملفات بدقة عبر @وقائي · تقليل قراءة الملفاتيُنصح باتباع هذه العادة في كل توجيه ترسله
استخدام مشاريع تجريبية بسيطةوقائي · توفير من المصدرفي مرحلتي التعلم والتجربة
تفويض العمليات الطويلة للوكيل الفرعيوقائي · عزل المخرجاتعند تشغيل الاختبارات / فحص السجلات / وقراءة الوثائق الكبيرة

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


07 عملي: تجربة إدارة السياق في ثلاث خطوات

التجربة العملية تثبت الحفظ. سنستخدم خطوات فحص بسيطة لتشاهد بنفسك كيف يزداد حجم السياق وكيف يقوم الأمر /compact بتقليصه. قم بتشغيل claude في أي مجلد للمشروع واتبع الخطوات التالية:

الخطوة الأولى: فحص حالة البداية أولاً

بعد التشغيل، اكتب هذا الأمر لتأكيد حالة التحميل:

text
/context

النتيجة المتوقعة: تعرض الطرفية توزيع حجم السياق المستهلك — وستلاحظ استهلاك مساحة بالفعل بواسطة توجيهات النظام وملف CLAUDE.md وغيرها (وجود استهلاك قبل بدء المحادثة هو سلوك طبيعي تمامًا)، ويظهر في الأسفل الحجم الإجمالي مع نصائح للتحسين. احفظ هذا الرقم البدئي.

الخطوة الثانية: تقديم بعض المهام لزيادة حجم الاستهلاك

اطلب منه قراءة بضعة ملفات ومحادثته لبعض الجولات، مثل:

text
读一下这个项目的主要源码文件,给我讲讲整体结构

بعد انتهائه من القراءة والإجابة، اكتب الأمر مجددًا:

text
/context

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

الخطوة الثالثة: تشغيل /compact لضغط المساحة وتقليصها

text
/compact 保留这个项目的整体结构结论,丢掉逐个文件的原始内容

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

التحقق والمقارنة: قارن نتيجة تشغيل /context قبل وبعد عملية الضغط، وستلاحظ انخفاض عدد الـ tokens المخصصة لتاريخ المحادثة بعد الضغط مما يؤكد نجاح عمل /compact. ولتأكيد "عدم فقدانه للذاكرة",وجه له السؤال "ما هو هيكل المشروع الذي لخصته للتو؟" لتجده قادرًا على الإجابة عليه دون مشاكل.

⚠️ تفصيل هام: عملية الضغط هي عملية غير مطابقة تمامًا وتفقد بعض البيانات بالتلخيص (Lossy). فهي تحافظ على النقاط الهامة والمسار العام المحدد، ولكنها تتخلص من التفاصيل النصية السابقة لمخرجات الأدوات. لذلك، يُنصح دائمًا بتسجيل النتائج والترتيبات الهامة في ملف CLAUDE.md مباشرة وفقًا للخطوات الموضحة في المقال 18 — إما بطلب ذلك من Claude أو تعديل الملف يدويًا عبر الأمر /memory، وهو خيار أكثر أمانًا من تركها في المحادثة المكتنزة.

💡 خلاصة في جملة واحدة: تشغيل خطوات الفحص: /context ← تقديم توجيهات ← تشغيل /compact ← فحص /context مجددًا، يعرض لك بشكل مرئي كيفية تضخم السياق وطريقة تقليصه بالضغط؛ وتأكيد الفارق في عدد tokens تاريخ المحادثة يثبت نجاح العملية.


08 ملخص

استعرضنا في هذا المقال مساحة "نافذة السياق" وطريقة إدارتها بالتفصيل:

ما تعلمته في المقالباختصار وقابل للتطبيق
تعريف نافذة السياقهي طاولة عمل Claude، ويذهب الجزء الأكبر منها للملفات التي يقرأها وليس لنصوصك
تأثير الامتلاءيسبب تدهور وتلف السياق — البطء، إجابات عامة، تناقضات، وفقدان الذاكرة
الأمر /compactلضغط المحادثة مع الاحتفاظ بالخلاصة، ويدعم توجيهه لحفظ نقاط محددة
الأمر /clearلمسح تاريخ المحادثة بالكامل والبدء من جديد دون المساس بملف CLAUDE.md أو الذاكرة
الأمران /context و /usageالأول لفحص محتويات الطاولة، والثاني لمعرفة التكلفة والـ tokens المستهلكة
الضغط التلقائيآلية حماية مدمجة، ولكنها توقف العمل وقد تفقد بيانات هامة، والضغط اليدوي أفضل
توفير الـ tokensاستخدام مشاريع بسيطة، الإشارة الدقيقة بـ @، تقسيم المهام، واستخدام الوكيل الفرعي

من المفترض الآن أن تكون قادرًا على: فهم محتويات نافذة السياق، وسبب تراجع كفاءة Claude عند امتلائها؛ ومعرفة متى تشغل /compact للضغط ومتى تشغل /clear للبدء من جديد؛ واستخدام الأمرين /context و /usage لمراقبة الاستهلاك لحظيًا؛ والالتزام بعادات توفير الـ tokens منذ كتابة التوجيه الأول، لتضمن دائمًا الحفاظ على مساحة كافية للعمل فوق طاولة العمل.

وبعبارة أخرى، يتلخص جوهر إدارة السياق في جملة واحدة: توجيه تركيز وانتباه Claude المحدود نحو الأمور الأكثر أهمية فقط وتوفيره من الهدر.

نافذة السياق والأمران /compact و /clear

يشبه هذا الرسم التوضيحي نافذة السياق بطاولة العمل: فعند امتلائها بالملفات والمحادثات (يظهر استهلاك 92% في الرسم)، نستخدم الأمر /compact لضغط المحادثات الطويلة في ورقة نقاط أساسية (لمتابعة العمل)، أو نستخدم الأمر /clear لتنظيف الطاولة بالكامل والبدء من الصفر — الخيار الأول يحمي المعلومات الهامة، والخيار الثاني يضمن النظافة التامة.


المقال التالي 20 · تهيئة الصلاحيات —— ركز هذا المقال على تنظيم "ما يستطيع Claude تذكره"، وسيركز المقال القادم على تنظيم "ما يستطيع القيام به وتعديله". فما هي الصلاحيات الممنوحة له لقراءة الملفات وتعديل الكود وتشغيل الأوامر، ومتى يتوجب عليه استئذانك، وكيف نهيئ قواعد صلاحيات تضمن الأمان وسلاسة التشغيل معًا؟ فكر في هذا السؤال مقدمًا: هل تسمح له بتشغيل الأمر git push مباشرة دون الحصول على موافقتك الصريحة أولاً؟


القراءة الموصى بها