00:00:00مع تقدم الذكاء الاصطناعي وتزايد قوة كل نموذج جديد يتم إصداره، تحولت الطريقة التي ننتج بها الأكواد البرمجية بشكل كامل.
00:00:07هناك الآن العديد من الأدوات المتخصصة في البرمجة، مثل ClodCode وCursor وAntigravity وغيرها، ولكل منها قدراتها الفريدة الخاصة.
00:00:14لكن النماذج الجيدة وحدها لا تحدد جودة الكود الذي تنتجه.
00:00:18كيفية استخدامك للأداة وإدارتك للسياق مهمة بنفس القدر.
00:00:22جميع هذه الأدوات لديها آلية متأصلة لهندسة السياق، لكن Cursor قام للتو بدفعة كبيرة نحو نهج جديد، ودمجه بشكل أصلي في التطبيق نفسه.
00:00:29بينما كنت أطالع مقالهم، أدركت أن هذه المبادئ قوية حقاً.
00:00:33لدينا الكثير للحديث عنه اليوم لأن هذه الأفكار يمكن تطبيقها على نطاق واسع على أي منصة تستخدمها لبناء التطبيقات.
00:00:40كانت إدارة السياق دائماً أمراً بالغ الأهمية عند العمل مع وكلاء الذكاء الاصطناعي لأن إدارة السياق الجيدة تحدد جودة المخرجات.
00:00:47تحدثنا سابقاً في فيديوهاتنا عن مدى أهمية إدارة السياق وتحدثنا عن سير العمل الخاص بها.
00:00:53نفذت Cursor ميزات إدارة السياق مباشرة في منتجهم وأصدرت مقالاً حول ذلك.
00:00:58تستند هذه المبادئ إلى ملاحظتهم أنه للحصول على نتائج جيدة من النماذج، من الأفضل تقديم أقل قدر ممكن من التفاصيل في نافذة السياق.
00:01:06كلما قلت المعلومات التي يتلقاها النموذج دفعة واحدة، قلت البيانات التي يجب عليه معالجتها في وقت واحد، مما يعني تشويشاً أقل وتركيزاً أكبر على المهمة التي يحتاج إلى القيام بها في اللحظة الحالية، لأنه يتم تضمين المعلومات ذات الصلة فقط.
00:01:17هذا النهج هو ما يسمونه اكتشاف السياق الديناميكي.
00:01:20الفكرة هي تدوين الملاحظات المنظم.
00:01:22أي أن المعلومات غير المطلوبة الآن يجب ألا تكون في نافذة السياق، فاستبعاد التفاصيل المربكة أو المتناقضة يحسن جودة استجابات الوكيل بشكل كبير.
00:01:32يضيف الإصدار الحالي من Cursor خمس طرق لإدارة السياق الديناميكي سيتم طرحها للمستخدمين قريباً.
00:01:37على الرغم من أن Cursor ينفذ هذا كتحديث للمنتج، إلا أن هذه المبادئ قابلة للنقل على نطاق واسع إلى جميع وكلاء الذكاء الاصطناعي.
00:01:44التحديث الأول الذي ذكره Cursor هو أن استجابات الأدوات الطويلة يجب أن توضع في ملفات.
00:01:48غالباً ما تُرجع بروتوكولات MCP استجابات كبيرة تبقى في نافذة السياق.
00:01:52ليست كل المعلومات من الاستجابات مطلوبة دائماً.
00:01:55ذكر Cursor أن النهج الشائع لمعظم أدوات البرمجة هو اقتطاع استجابات MCP الطويلة، مما يؤدي إلى فقدان البيانات أو إزالة المعلومات المهمة التي قد تكون ضرورية للسياق.
00:02:07إضافة Claude لمتصفح Chrome هي إضافة تعتمد بشكل كبير على الأدوات، وبضع مطالبات فقط يمكن أن تملأ السياق بسبب تحميل جزء ضخم في نافذة السياق.
00:02:15لذلك أضفت تعليماً في ملف Claude.md بأن أي استجابة أداة MCP أكبر من 50 سطراً يجب حفظها في مجلد MCP داخل مجلد .context عن طريق تشغيل أمر echo في الطرفية.
00:02:27عندما شغلت إضافة Chrome لتحليل واجهة المستخدم لصفحة هبوط، كلما واجه Claude أداة مثل ReadPage التي تنفخ نافذة السياق بشكل كبير، حفظ استجابة MCP في ملف لقراءة إضافية، وباستخدامها حلل الصفحة بأكملها وقدم لي تقريراً.
00:02:42حسّن هذا الحل البديل دقة تحليل استجابة الأداة من خلال السماح لـ Claude بتحليل الاستجابات من الملفات عدة مرات حسب الحاجة وألغى الحاجة إلى استدعاءات الأدوات المتكررة.
00:02:52عندما تكون هناك حاجة إلى بيانات من استدعاءات MCP السابقة، يمكن لـ Claude قراءتها مباشرة من مجلد .context بدلاً من إجراء استدعاءات الأدوات، مما يوفر وقتاً كبيراً.
00:03:00قبل أن ننتقل إلى التغيير التالي، دعونا نستمع إلى راعينا، Zen Rose.
00:03:04إذا كنت تبني منتجات ذكاء اصطناعي أو أتمتة أو أنظمة تعتمد على البيانات، فأنت تعرف بالفعل شيئاً واحداً، كل شيء يبدأ ببيانات ويب موثوقة.
00:03:12لكن الحصول على بيانات نظيفة ومنظمة على نطاق واسع أصعب مما يبدو.
00:03:15هنا تأتي Zen Rose لتتناسب تماماً مع المجموعة..
00:03:18تتعامل Zen Rose مع استخراج البيانات من المواقع المعقدة بينما تدير تلقائياً تجاوز مكافحة الروبوتات حتى تتمكن من التركيز على ما يهم حقاً وهو استخدام البيانات.
00:03:27بدلاً من التعامل مع مخرجات فوضوية، يقدم Zen Rose نتائج منظمة مثل JSON أو Markdown جاهزة للاستخدام المباشر في سير عملك.
00:03:34إنه جاهز للتكامل ومُوجه نحو الأعمال، مما يجعله مثالياً لشركات الذكاء الاصطناعي الناشئة وفرق البيانات وبناة الأتمتة الذين لا يريدون مراقبة البنية التحتية باستمرار..
00:03:43سواء كنت تُثري قوائم العملاء المحتملين، أو تشغل وكلاء الذكاء الاصطناعي، أو تُؤتمت الأبحاث، فإن Zen Rose يعمل ببساطة.
00:03:48إذا كان عملك يعتمد على بيانات الويب، فإن Zen Rose يجب أن يكون ضمن أدواتك..
00:03:52انقر على الرابط في التعليق المثبت وابدأ البناء اليوم.
00:03:55نعلم أن خطوة التلخيص عندما تمتلئ نافذة السياق تكون فوضوية وتؤدي إلى فقدان الكثير من المعلومات.
00:04:01معظم الأدوات، بما في ذلك Cursor وClaude Code، تُفعّل خطوة التلخيص وتبدأ الجلسة بنافذة سياق جديدة مع الملخص كنقطة انطلاق..
00:04:09عندما تضغط على الضغط مراراً وتكراراً، يبدأ الملخص في نسيان تفاصيل قد تكون مهمة لك ولكن قد يغفلها ملخص النموذج.
00:04:16هناك قدر محدود من التحكم لديك في الضغط التلقائي، والضغط المتكرر يؤدي إلى فقدان معلومات حاسمة إذا اضطررت لفعل ذلك بشكل متكرر.
00:04:24حل Cursor هو حفظ جميع سجلات المحادثات السابقة كملف ليرجع إليه الوكيل لاحقاً.
00:04:30عندما نقدم موجهاً محدداً جداً ولا يستطيع النموذج العثور على المعلومات في الملخص، يعمل النص السابق كقاعدة معرفية له.
00:04:37يستخدم النموذج ذلك النص لتوليد الحل، مما يسمح له باستعادة أي شيء فُقد من الملخص.
00:04:43إلى أن يتم طرح تطبيق Cursor ويصبح متاحاً للجميع، حاولت تنفيذ هذه الميزة مع Claude Code.
00:04:50أضفت التعليمات داخل ملف Claude.md لتحديث سجل المحادثة بعد كل دورة، وتوثيق جميع القرارات والخطوات الرئيسية المتخذة.
00:04:58استخدم مجلد السجل داخل مجلد .context مع اسم كل ملف يعكس الجلسة.
00:05:03لذا كلما طلبت منه تنفيذ أي مهمة، في نهاية جلسة تنفيذ المهمة، يوثق سجل المحادثة في ملف السجل المقابل، مضيفاً كل شيء إلى ذلك الملف.
00:05:12بهذه الطريقة، يحتوي مجلد .context على سجلات تفصيلية لجميع الجلسات وكل ما تم إنجازه.
00:05:18مُنحت الوكلاء مهارات للمساعدة في إدارة مشكلة السياق التي كانت تسببها MCPs.
00:05:23الغرض الكامل من المهارات هو جعل الوكلاء يوفرون قدرة أفضل على استخدام قدراتهم الخاصة من خلال التوجيه عبر النصوص البرمجية وملفات التعليمات، مما يقلل من تضخم السياق عبر الإفصاح التدريجي.
00:05:33كانت Anthropic أول من ابتكر الفكرة، وهي في الأساس منح الوكلاء مجموعة من التعليمات والنصوص البرمجية والموارد التي يمكن للوكيل اكتشافها واستخدامها للأداء بشكل أفضل في مهام محددة.
00:05:43قامت Anthropic بشكل أساسي بجعل مهارات هؤلاء الوكلاء مفتوحة المصدر، مما وضع معياراً يمكن للآخرين تنفيذه.
00:05:49بعد ذلك، بدأ Codex وGemini وآخرون في تنفيذ مهارات الوكلاء، وبعد ذلك جاء دور Cursor أخيراً للقيام بالشيء نفسه.
00:05:56مهارات Cursor هي في الأساس نفس الملفات القابلة للتنفيذ والنصوص البرمجية المجمعة معاً في مهارة واحدة يمكن للوكيل استخدامها لمهامه المعنية.
00:06:03فقط اسم المهارات ووصفها موجودان في السياق الثابت..
00:06:07بمجرد دخولهم إلى السياق الثابت، يمكن للوكلاء استدعاء مهاراتهم بأنفسهم، باستخدام grep والبحث الدلالي في Cursor.
00:06:13هذا ما يجعله مختلفًا، لأن البحث الدلالي في Cursor يستخدم نموذج التضمين الخاص به وخطوط الفهرسة في الخلفية، بدلاً من مطابقة الأنماط البسيطة، مثل عمليات البحث القائمة على regex في أوامر grep.
00:06:25مهارات Claude تعرض فقط الاسم والوصف في السياق، بغض النظر عن عدد الملفات التي يستخدمها السكريبت، مما يمنع تضخم السياق.
00:06:32في مشروعي، كنت قد قمت بإعداد 5 مهارات، كل منها يستهلك عددًا قليلاً جدًا من الرموز، حوالي 0.2% فقط من الإجمالي، مما يترك مساحة أكبر للعمل.
00:06:41الفارق هو أن مهارات Claude يمكن الوصول إليها أيضًا عبر /commands، مما يتيح لك تفعيلها يدويًا عند الحاجة، مما يعالج شكاوى الناس حول عدم تحميل المهارات عند الطلب بشكل صحيح.
00:06:51تحتوي MCPs على الكثير من الأدوات المعروضة جميعها في نافذة السياق، مما يؤدي إلى تضخم نافذة السياق بشكل غير ضروري.
00:06:58أخذ Cursor على عاتقه التأكيد على أن مسؤولية إصلاح تضخم السياق تقع على عاتق وكلاء البرمجة، وليس خوادم MCP.
00:07:05كان الحل لذلك هو الاكتشاف الديناميكي للسياق عن طريق مزامنة أوصاف الأدوات في مجلد.
00:07:10فكرة Cursor هي وضع جميع MCPs بأسمائها في مجلدات منفصلة، تُسمى بأسماء كل MCP متصل، وداخل كل مجلد، يجب إدراج جميع الأدوات.
00:07:17بهذا، يتلقى الوكيل فقط أسماء الأدوات، وعندما يحتاج إلى أي أداة، يبحث عنها من خلال المجلدات.
00:07:23في الاختبارات التي أجروها، اكتشفوا أن الاكتشاف الديناميكي لأدوات MCP قلل الاستخدام بنسبة 46.9%، وهو ما يحدث فرقًا كبيرًا إذا كنت تعمل على نظام طويل الأمد.
00:07:32هذا التنفيذ يساعد أيضًا في الحالات التي تنقطع فيها خوادم MCP عن طريق الخطأ أو تتطلب إعادة المصادقة.
00:07:38عادةً، سينسى النظام تلك الأدوات فحسب، لكن الآن يمكن للوكيل فعليًا إخطار المستخدم بأن إعادة المصادقة مطلوبة.
00:07:45لدى Claude أيضًا أداة بحث متقدمة مصممة خصيصًا لمعالجة هذه المشكلة، باستخدام مجموعة معينة من الإشارات لإعلام Claude بما إذا كان يجب تحميلها أم لا.
00:07:54تطبق هذه الأداة فكرة Cursor نفسها للاكتشاف الديناميكي للسياق، لكن هذا مقتصر على منصة المطورين، وفقط لأولئك الذين يبنون باستخدام واجهات برمجة التطبيقات.
00:08:03لا يمكننا تعديل كيفية استخدام MCPs في كود Claude، لأنها مدمجة فيه من قبل Anthropic.
00:08:08تمامًا كما كنت أبحث عن طرق لتنفيذ هذا في كود Claude، عثرت على علامة مخفية.
00:08:13بدون تعيين هذه العلامة، كانت جميع أدوات MCP التي كنت قد قمت بتوصيلها معروضة في سياق كود Claude.
00:08:19عندما قمت بتعيين علامة enable experimental MCP CLI، تمت إزالة جميع الأدوات من نافذة السياق، مما حرر المساحة التي كانت تشغلها أدوات MCP في السابق.
00:08:28لكن هذا لا يعني أن MCPs تنفصل عند تمكين هذه CLI.
00:08:31الفرق الوحيد هو أنها لا تُعرض مقدمًا في نافذة السياق.
00:08:34بدلاً من وضع جميع المخططات في السياق، يستخدم Claude الآن طبقة bash وسيطة تسمى MCP CLI، والتي تتعامل مع جميع المهام المتعلقة بـ MCP.
00:08:42يستخدم Claude هذه الطبقة الوسيطة للبحث والحصول على المعلومات واستدعاء الأدوات.
00:08:47عندما تطلب من Claude تنفيذ أي مهمة تتطلب استدعاء أداة MCP، بدلاً من استخدام الطريقة المعتادة، يستخدم MCPs عبر MCP CLI وينفذ المهمة المطلوبة منه.
00:08:56باستخدام هذه الأداة، ينفذ Claude جميع المهام كالمعتاد، فقط من خلال هذه الطبقة الوسيطة.
00:09:01الإبلاغ عن أخطاء الطرفية صعب في Cursor بسبب وصوله المحدود.
00:09:05إذا أظهرت الطرفية أي خطأ، كنت بحاجة إلى إضافته إلى المحادثة ثم جعله يصلحها.
00:09:09حل Cursor لهذا هو أيضًا نقل جلسات الطرفية إلى ملفات.
00:09:12لذا عندما تطرح عليه أي أسئلة، يشير إلى ملفات السجل تلك ويستخدم grep لاستخراج المخرجات ذات الصلة..
00:09:20نظرًا لأن سجلات الخادم عادةً ما تكون طويلة وتحتوي على الكثير من البيانات غير المفيدة للوكيل، فإن استخدام مهمة grep يكون أكثر كفاءة لأنه يتيح للوكيل مطابقة الأنماط.
00:09:30لقد حصلوا على هذه الفكرة من وكلاء البرمجة المعتمدة على سطر الأوامر، التي تنفذ الأوامر، ولكن يتم إدراج المخرجات في السياق بالطريقة نفسها التي يقوم بها Claude Code وغيره افتراضيًا.
00:09:40على الرغم من أن Claude يتعامل مع هذا بذكاء من تلقاء نفسه، يمكننا إدارته بشكل أكبر باستخدام التعليمات في ملف Claude.md لتوجيهه لإضافة جميع سجلات الطرفية في ملف داخل مجلد terminal الموجود في مجلد .context.
00:09:52في الأساس، إذا قام Claude بتشغيل أي أمر npm، فإنه يشغل أمرًا خاصًا يسجل كلاً من تدفق الإخراج وتدفق الإدخال في ملفات المستندات.
00:10:00هنا، يمثل الرقم 2 تدفق الأخطاء القياسي ويمثل الرقم 1 تدفق الإخراج القياسي.
00:10:04يكتب هذه السجلات في مجلد terminal، مع وضع علامة عليها بطابع زمني.
00:10:08بعد ذلك، كلما احتاج إلى البحث فيها، يستخدم ببساطة أمر grep بنمط محدد ويحمل آخر 20 سطرًا لاستخراج ما يهم فقط..
00:10:15لذا كلما اختبرت خادم التطوير الخاص بي، كان يستخدم هذه الأوامر ويستمر في كتابة تشغيلات الطرفية في الملفات وفقًا لملف Claude.md.
00:10:23بعد تشغيل الخادم، رجع إلى ملفات السجل واكتشف ما كان يسبب المشكلة وأصلح المشكلة لي..
00:10:29الآن على الرغم من أن هذه الإضافة لـ Claude Code قد تبدو غير مهمة لأنها لا تبدو ذات تأثير كبير على العمل الفوري، إلا أنها يمكن أن تكون مفيدة جدًا عندما تريد الرجوع إلى كيفية عمل تطبيقك.
00:10:38تمامًا مثلما احتجت إلى تحديد الخدمة التي كانت تسبب تعطل تطبيقي، ببساطة أخبرت Claude بالرجوع إلى سجلات الاختبار بدلاً من تشغيل الاختبارات مرة أخرى، مما وفر علي إعادة تشغيل مجموعة اختبارات مدتها دقيقتان فقط لإعادة إنتاج خطأ كنت قد رأيته بالفعل.
00:10:51هذا يقودنا إلى نهاية هذا الفيديو.
00:10:52إذا كنت ترغب في دعم القناة ومساعدتنا في الاستمرار في صناعة مقاطع فيديو مثل هذه، يمكنك القيام بذلك باستخدام زر الشكر الفائق أدناه.
00:10:59كما هو الحال دائمًا، شكرًا لك على المشاهدة وسأراك في الفيديو التالي..