المدونة

لماذا يعيد Claude Code قراءة المشروع بالكامل وكيفية إصلاح ذلك

Markdown

لا يفهرس Claude Code الشيفرة، ويعيد قراءة المشروع من البداية، مستهلكًا الرموز. إليك كيفية منحه ذاكرة دائمة للشيفرة عبر MCP وتقليل الاستهلاك.

قراءة المقال كاملًا

أهم نقطة

لا يحتفظ Claude Code بفهرس لشيفرتك. ففي كل جلسة، يبحث في المشروع من جديد ويقرأ الملفات من البداية، فتُستهلك الرموز في الاستكشاف بدلًا من إنجاز العمل. يمكنك حل هذه المشكلة باستخدام ذاكرة للشيفرة: ثبّت خادم فهرسة عبر MCP، وسيتمكن Claude من استخدام خريطة جاهزة للمشروع بدلًا من إعادة قراءة كل شيء.

وثائق Ailoot: واجهة API والمفاتيح والاتصال.

لماذا يعيد Claude Code قراءة المشروع من البداية في كل مرة؟

أهم نقطة

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

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

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

لكن له جانبًا سلبيًا: كل مهمة جديدة تعني جولة جديدة من البحث وقراءة الملفات. تُستهلك الرموز في اكتشاف أماكن الأشياء من جديد، رغم أن Claude سبق أن فعل ذلك في الجلسة السابقة. وكلما كبر المشروع، ازدادت كلفة هذا الاستكشاف. وهذه الآلية تحديدًا هي سبب شعورك بأن الوكيل «يقرأ كل شيء».

كم عدد الرموز التي يستهلكها هذا فعلًا؟

أهم نقطة

حتى قبل إعادة قراءة الشيفرة، يرسل Claude Code نحو 33,000 رمز من بيانات النظام في كل طلب. وفي إعداد عمل حقيقي، يصل المجموع إلى 75,000–85,000 رمز قبل أن تكتب كلمة واحدة. ثم تضاف إعادة قراءة الملفات، ووفقًا للوثائق الرسمية، تستهلك قراءة الملفات الحصة الأكبر من السياق.

تبدأ التكلفة قبل طلبك. يوضح ذلك قياس مستقل بسيط: يرسل Claude Code نحو 33,000 رمز من موجه النظام وأوصاف الأدوات قبل قراءة الحرف الأول من رسالتك. للمقارنة، يبدأ OpenCode بنحو 7,000.

ثم تبدأ إعادة القراءة. فكل بحث عن ملف وكل قراءة تضيف رموزًا إلى السياق. وتقول وثائق Claude Code الرسمية ذلك بوضوح: قراءة الملفات هي المكوّن الأكبر لاستخدام السياق. تحليل auth.ts الذي يحتوي على 2,400 رمز يعني أن Claude اطّلع على 2,400 رمز، وينطبق الأمر نفسه على كل ملف يفتحه أثناء الاستكشاف.

بالنسبة إلى جمهورنا، يعني هذا المال والحدود. الخوف الأول لدى من يدخلون عالم البرمجة بأسلوب vibe coding هو: «دفعت المال، ونفدت الحدود بلا فائدة». إذا فحص الوكيل المشروع وأعاد قراءة الملفات من البداية في كل مهمة، فسيُستهلك السياق بسرعة مضاعفة: أولًا بسبب الحمل الزائد للنظام، ثم بسبب الاستكشاف. تناولت الخريطة الكاملة لمواضع استهلاك رموز Claude Code في دليل «أين تذهب رموز Claude Code»—وإعادة قراءة المشروع واحدة من تسعة أنماط فيه.

ما ذاكرة الشيفرة الدائمة؟

أهم نقطة

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

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

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

تُوصَل هذه الخريطة عبر MCP، وهي الطريقة القياسية لإضافة أداة خارجية إلى Claude Code (تناولتُ ربط خوادم أخرى في دليل «خوادم MCP لـ Claude Code»). تضيف أداة ذاكرة الشيفرة أوامرها الخاصة للبحث في الخريطة، ويستخدمها Claude تلقائيًا عندما يحتاج إلى فهم بنية المشروع.

عمليًا، الفرق هو بين «قراءة المجلد كله للعثور على دالة واحدة» و«سؤال الخريطة عن موضع تلك الدالة». الأولى تستهلك عشرات الآلاف من الرموز، والثانية مئات.

أسلوبان لذاكرة الشيفرة: ما أوجه اختلافها؟

أهم نقطة

هناك أداتان مفيدتان، وكلتاهما مجانية بموجب ترخيص MIT. يمنح Serena الوكيل إمكانات التنقل في الشيفرة التي توفرها بيئة تطوير ذكية، وهو مناسب للتعديلات الدقيقة. يبحث claude-context بحسب المعنى باستخدام embeddings، لكنه يتطلب قاعدة بيانات خارجية ومفتاحًا. ويكمن الفرق فيما تتذكره كل أداة.

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

ما نقارنهSerenaclaude-context
نوع الذاكرةالتنقل في الشيفرة عبر محرك بيئة تطويربحث قائم على المعنى باستخدام embeddings
ما يعثر عليهالتعريفات ومواضع الاستدعاء الفعلية والتعديلات بحسب الرمزالشيفرة بحسب وصف: «أين يوجد منطق الدفع؟»
التبعيات الخارجيةمدير الحزم uv؛ ولـ TypeScript وJavaScript، يلزم أيضًا Node 20+ وnpmقاعدة بيانات خارجية + مفتاح + Node 20+
التثبيتأمر واحدأمر بثلاثة إعدادات
توفير الرموزلا تنشر نسبة دقيقةنحو 40% مع الحفاظ على الجودة نفسها
نجوم GitHub26,46812,138
نقطة القوةإعادة هيكلة دقيقة عبر قاعدة الشيفرةالعثور على المطلوب دون معرفة الأسماء الدقيقة
نقطة الضعفلغات أقل، ولا يدعم البحث بحسب المعنىإعداد معقد ويتطلب خدمة سحابية

أعداد نجوم GitHub حتى 15 يوليو 2026 (وفقًا لواجهة GitHub API). الأداتان مجانيتان ومفتوحتا المصدر، وتعملان مع Claude Code، وتتصلان به كخادمي MCP.

خلاصة قصيرة لغير المبرمجين: Serena كيد الجراح: استخدمها عندما تعدّل الجزء نفسه في أرجاء المشروع وتكون الدقة مهمة. وclaude-context بحث قائم على المعنى؛ يعثر على الشيفرة انطلاقًا من وصف، لكنه يتطلب إعداد قاعدة بيانات سحابية ومفتاح.

متى تختار Serena أو claude-context؟

أهم نقطة

تكون Serena مفيدة عندما تكون التعديلات الدقيقة مهمة: إعادة تسمية دالة في المشروع كله، أو استبدال محتواها، أو العثور على كل مواضع استدعائها الفعلية. تعمل عبر المحرك نفسه المستخدم في بيئات التطوير الذكية، وتحرر الشيفرة بحسب المعنى لا بمطابقة النص. اختر claude-context عندما تحتاج إلى البحث عن الشيفرة بحسب الوصف ولا تمانع إعداد قاعدة بيانات خارجية ومفتاح.

لا تتنافس الأداتان على جائزة واحدة. فهي تتذكر أشياء مختلفة، ولذلك يعتمد الاختيار على المهمة.

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

مجموعة قوية من أدوات الشيفرة عبر MCP: بحث وتحرير دلاليان—بيئة تطوير لوكيلك.

— Serena, https://github.com/oraios/serena

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

اختر claude-context إذا احتجت إلى بحث قائم على المعنى ولم يزعجك الإعداد. فهو يحوّل الشيفرة إلى متجهات (بصمات رقمية للمعنى) ويبحث بحسب الوصف: «اعثر على موضع منطق الدفع لدينا»، حتى إذا لم تعرف أسماء الدوال. لكن هذا البحث يتطلب إعدادًا إضافيًا.

يخفض claude-context استخدام الرموز بنحو 40% في المتوسط، مع الحفاظ على جودة البحث نفسها.

— zilliztech/claude-context, https://github.com/zilliztech/claude-context

يتطلب claude-context قاعدة بيانات متجهية خارجية، ومفتاحًا لموفر embeddings، وإصدارًا حديثًا من Node. وهو الأكثر تعقيدًا في الإعداد بين الأداتين، لذا أوصي المبتدئين بالبدء بشيء آخر.

ما الذي يمكنك فعله مباشرةً في Claude Code من دون أدوات خارجية؟

أهم نقطة

تحل الأوامر المدمجة نصف المشكلة. يعرض /context بالضبط ما يستهلك السياق. يضغط /compact سجل المحادثة، ويعيد /clear ضبطه قبل مهمة جديدة، ويعثر /doctor على العناصر غير الضرورية ويقترح تنظيفها. يحفظ ملف CLAUDE.md قصير، بدلًا من ملف ضخم، آلاف الرموز في كل رسالة.

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

  1. يعرض /context تحليلًا مباشرًا لما يشغل النافذة: موجه النظام وCLAUDE.md والذاكرة والأدوات والملفات. ويعرض الأمر /mcp تكلفة كل خادم متصل، بينما يعرض /memory ما تم تحميله عند بدء التشغيل.
  2. يضغط /compact سجل المحادثة في ملخص قصير ويتابع المهمة نفسها. يمكنك توجيه التركيز بإضافة ما تريد الاحتفاظ به إلى /compact.
  3. يتخلص /clear من سجل المحادثة بالكامل. والتوصية الرسمية هي تشغيله عند الانتقال إلى مهمة غير مرتبطة، كي لا تزاحم المحادثة القديمة الملفات التي تحتاج إليها.
  4. يشخّص /doctor (المعروف أيضًا باسم /checkup، الذي طُرح في 8 يوليو 2026) الإعداد ويقترح إصلاحات: يزيل العناصر المكررة في CLAUDE.md، ويعثر على الأدوات والخوادم غير المستخدمة، ويكشف المعالجات البطيئة.

ملاحظة منفصلة حول CLAUDE.md. يُحمّل هذا الملف إلى السياق في بداية كل جلسة ويُضمّن في كل رسالة. إذا كان ضخمًا، فستواصل دفع ثمنه. توصي الوثائق الرسمية بإبقائه دون 200 سطر ونقل التفاصيل المرجعية إلى المهارات التي تُحمّل عند الحاجة. تناولت كيفية إعداد CLAUDE.md على النحو الصحيح في الدليل المنفصل «كيفية إعداد CLAUDE.md».

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

يعني العمل الجيد على السياق العثور على أصغر مجموعة ممكنة من الرموز الغنية بالمعلومات التي تنتج النتيجة المطلوبة.

— Anthropic, https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents

هل سيؤدي خادم MCP إضافي إلى زيادة حجم السياق؟

أهم نقطة

هذا تخوف منطقي، لكن الإجابة لا. منذ 2026، لم يعد Claude Code يحمّل أوصاف أدوات MCP كاملة إلى السياق افتراضيًا؛ بل يؤجلها ولا يحمّل إلا ما يحتاج إليه فعلًا. عند بدء التشغيل، لا تُدرج في السياق سوى الأسماء. لذلك يضيف فهرس الشيفرة قدرًا ضئيلًا من الحمل الزائد للنظام، ويوفر آلاف الرموز التي كانت ستُستهلك في إعادة قراءة الملفات.

كان من الصحيح الاعتقاد بأن «إضافة خادم آخر تعني حملًا زائدًا أكبر على السياق»، لكن Claude Code تغيّر. إذ تُؤجّل أوصاف أدوات MCP افتراضيًا: لا تُدرج في السياق عند بدء التشغيل إلا أسماء الخوادم، ثم تُحمّل الأوصاف الكاملة عند الحاجة إلى أداة معينة للمهمة. وتذكر الوثائق ذلك بوضوح.

يُبقي البحث عن الأدوات استخدام سياق MCP منخفضًا عن طريق تأجيل أوصاف الأدوات حتى يحتاج Claude إليها. عند بدء الجلسة لا تُحمّل إلا أسماء الأدوات، لذا فإن إضافة خوادم MCP لا تكاد تؤثر في نافذة السياق.

— Claude Code Docs, https://code.claude.com/docs/en/mcp

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

وهناك نقطتان صريحتان حتى لا تتوقع معجزات. يجب إعادة إنشاء الفهرس من حين لآخر—فالخريطة تعكس الشيفرة كما كانت وقت الفحص، وتحتاج إلى تحديث بعد التعديلات الكبيرة (يختلف ذلك بحسب الأداة: بعضها يفعل ذلك تلقائيًا، بينما يتطلب بعضها الآخر تشغيل أمر). كذلك، تصف الادعاءات الكبيرة مثل «رموز أقل بـ120 مرة» أفضل نتيجة في استعلامات مختارة، لا ما ستراه في كل مهمة. التوفير الفعلي أكثر تواضعًا، لكنه يظل ملحوظًا. إذا أردت التعمق أكثر في تجنب استنفاد الحدود عمومًا، فهناك تحليلي المنفصل «كيفية تجنب استهلاك حدود Claude Code».

من أين تبدأ اليوم؟

أهم نقطة

ابدأ بما هو مجاني وسريع. شغّل /doctor لتنظيف العناصر غير الضرورية. قلّص CLAUDE.md إلى 200 سطر. تقلّل هذه الخطوات ما يحمله Claude إلى كل مهمة، وتبدأ في توفير الرموز والحدود.

إذا استبعدت كل ما لا حاجة إليه، فخطة اليوم بسيطة:

  1. شغّل /doctor ونظّف ما يقترحه: العناصر المكررة في CLAUDE.md والأدوات غير المستخدمة.
  2. قلّص CLAUDE.md إلى 200 سطر، وانقل المواد المرجعية إلى المهارات.

بعدها اختر وفقًا لاحتياجاتك: إذا كنت تجري كثيرًا من عمليات إعادة الهيكلة، فأضف Serena للتعديلات الدقيقة؛ وإذا احتجت إلى البحث بحسب المعنى، فأعد إعداد claude-context. ذاكرة الشيفرة والسياق المنظم يحلان المشكلة الأساسية اليوم.

إذا كنت بحاجة إلى الوصول إلى نماذج الذكاء الاصطناعي عبر Ailoot، فتفضل بزيارة Ailoot.

المزيد من التفاصيل

أسئلة شائعة

متى أختار التنقل بالرموز بدل البحث الدلالي في الشيفرة؟

اختر التنقل بالرموز على غرار Serena للوصول إلى التعريفات ومواضع الاستدعاء وإعادة الهيكلة الدقيقة. يفيد البحث الدلالي مثل claude-context عندما تعرف السلوك المطلوب دون اسم الرمز؛ لكنه يحتاج إلى إعداد إضافي لقاعدة البيانات والتضمينات.

هل أستمر في الوثوق بخريطة الشيفرة بعد التعديلات؟

تحقق من تحديث الفهرس. تعكس الخريطة الشيفرة التي فُحصت، وتختلف آلية التحديث بين الأدوات. استخدمها لتحديد المواضع المناسبة، ثم تحقق من الملفات الحالية قبل تعديلها.

جميع المقالات