00:00:00أصبح تطبيق "كلاود كود" متاحاً بشكل عام في 22 مايو من العام الماضي، بالتزامن مع إطلاق "كلاود 4".
00:00:06ولكن كانت هناك نسخة تجريبية بحثية قبل ذلك، لذا فأنا أستخدم هذه الأداة
00:00:11منذ أكثر من عام بقليل، وفي الواقع قمت بحساب الأمر. إذا حسبت كل الوقت
00:00:15الذي استغرقته في توجيه الأوامر لـ "كلاود"، ومراجعة الكود، ومراقبته، فقد استخدمت الأداة لأكثر من 2000
00:00:21ساعة حتى الآن. لذا، نعم، لدي الكثير لأعلمكم إياه، وهذا ما أريد فعله في هذا الفيديو.
00:00:27والآن، أريد أن أشارككم جميع استراتيجياتي المجربة والموثوقة التي ستنقلكم
00:00:31من مستخدم عادي لـ "كلاود كود" إلى مستخدم محترف. لقد جمعت كل شيء معاً فيما
00:00:37أسميه إطار عمل "WISC". وإليكم الأمر، هذه الاستراتيجيات حقيقية وفَعّالة. أنا لست واحداً من صُنّاع
00:00:43محتوى الذكاء الاصطناعي الذين ركبوا موجة "كلاود كود" في الأشهر القليلة الماضية فقط. بل كنت
00:00:48أستخدم هذه الأداة، كما قلت، يومياً لأكثر من عام. ولذلك، ستعمل هذه الاستراتيجيات على
00:00:54أي قاعدة بيانات برمجية، حتى الضخمة منها، وحتى المشاريع التي تحتوي على قواعد برمجية متعددة. لقد رأيت كل هذا
00:01:00يُطبق على مستوى المؤسسات الكبرى، لذا مهما كان ما تعمل عليه، فهذا الفيديو لك. كما أنه
00:01:05يعمل حقاً مع أي مساعد برمجي بالذكاء الاصطناعي. أنا أركز فقط على "كلاود كود" لأنه الأفضل حالياً.
00:01:10لذا، أفترض هنا أن لديك على الأقل فهماً أساسياً لـ "كلاود كود"، وتريد الآن
00:01:15الارتقاء بالأمور إلى المستوى التالي. إذا كنت تريد أساسيات بناء نظام للبرمجة بالذكاء الاصطناعي،
00:01:21فلدي فيديو سأضع رابطه هنا. كل هذه الاستراتيجيات مخصصة عندما نريد
00:01:25العمل على قواعد برمجية حقيقية تصبح معقدة، لأن لدينا مجموعة من الاستراتيجيات هنا حول
00:01:32إدارة السياق. هذا أمر مهم لأن "تآكل السياق" هو أكبر مشكلة تواجه مساعدي البرمجة بالذكاء الاصطناعي
00:01:38في الوقت الحالي. لا يهم أن لدينا حد المليون رمز (token) الجديد في "كلاود كود"، فما زلنا
00:01:43بحاجة إلى التعامل مع سياقنا كأثمن مورد يجب هندسته بعناية فائقة
00:01:49مع مساعدي البرمجة بالذكاء الاصطناعي. لذا فإن حروف W و I و S و C في إطار العمل، تشير لاستراتيجيات
00:01:56تنطبق على ذلك، وهي جميعاً أشياء يمكنك أخذها وتطبيقها على مشاريعك فوراً.
00:02:00لذا سأقوم بتبسيط الأمر لكم هنا. الآن، السؤال الذي قد تطرحه
00:02:05على نفسك هو، يا كول، لماذا نركز كثيراً على إدارة السياق؟ بعد أكثر من 2000 ساعة من استخدام
00:02:11"كلاود كود"، هل هذا هو ما تريد التركيز عليه؟ وإجابتي هي نعم. أعلم أن هذا محدد جداً،
00:02:17لكننا بحاجة إلى التعمق الآن في تآكل السياق وكيفية تجنبه. بل سأذهب إلى حد القول
00:02:23إن حوالي 80% من المرات التي يخطئ فيها وكيل البرمجة في كودك، يكون السبب هو أنك
00:02:28لا تدير سياقك بشكل جيد بما يكفي. لذا أريد أن أبدأ بمشكلة تآكل السياق،
00:02:33ثم سننتقل سريعاً إلى الجانب العملي عبر الغوص في كل جزء من إطار عمل "WISC". لكنني أريد
00:02:38أن أبدأ بتآكل السياق كمقدمة حتى تتمكن حقاً من رؤية السبب. بمجرد تطبيق إطار عمل "WISC"،
00:02:45ستلاحظ فوراً قفزات في الموثوقية مع برمجتك بالذكاء الاصطناعي، حتى في
00:02:50القواعد البرمجية الأكثر فوضى. وأنا أواصل التأكيد على القواعد البرمجية الأكبر والأكثر تعقيداً لأن هذا هو المكان الذي نرى فيه
00:02:56تآكل السياق يصبح مشكلة متزايدة. الآن، كان هناك الكثير من الأبحاث في الصناعة حول
00:03:02تآكل السياق، لكن المفضل لدي، وهو الأكثر عملية وربما الأكثر شهرة أيضاً، هو تقرير
00:03:07شركة Chroma التقني الذي يغطي كيف تؤثر زيادة الرموز المدخلة على أداء النماذج اللغوية الكبيرة. والفكرة الرئيسية
00:03:13هنا هي أنه لمجرد أنك تستطيع حشر قدر معين من الرموز في نافذة سياق النموذج، فهذا لا يعني
00:03:18أنه يجب عليك فعل ذلك. نعم، هذا ينطبق على "كلاود كود" مع حد المليون رمز الجديد أيضاً.
00:03:24لأن النماذج اللغوية الكبيرة ترتبك من كثرة المعلومات تماماً مثل البشر. وهذا ما يسمى
00:03:30بمشكلة "البحث عن إبرة في كومة قش". فعندما يكون لديك معلومة محددة جداً أو في حالة
00:03:35وكلاء البرمجة، ملف معين قرأه الوكيل وتحتاج منه استرجاعه، فإنه سيقوم بعمل جيد في استرجاع
00:03:41تلك المعلومة من ذاكرته قصيرة المدى، ولكن فقط إذا لم يكن لديك نافذة سياق ممتلئة للغاية.
00:03:47عندما تبدأ في تحميل قدر هائل من السياق، تبدأ في الحصول على ما يسمى
00:03:52"المشتتات". وهي قطع من المعلومات قريبة أو مشابهة لما تحتاج من النموذج
00:03:58استرجاعه، لكنها ليست صحيحة تماماً. ونرى هذا كثيراً في البرمجة بالذكاء الاصطناعي، خاصة مع القواعد البرمجية
00:04:04الكبيرة. فنحن نتبع نفس الأنماط للأشياء عبر الكود الخاص بنا. ولدينا الكثير من
00:04:09التشابه في كيفية تنفيذ أجزاء مختلفة من كودنا. لذا ستقوم النماذج اللغوية الكبيرة
00:04:14بسحب معلومات خاطئة وتكون واثقة جداً بشأن إصلاحها أو تنفيذها. أنا متأكد من أنك
00:04:19رأيت هذا طوال الوقت. لدينا مشكلة "الإبرة في كومة القش" التي تظهر باستمرار
00:04:24في البرمجة بالذكاء الاصطناعي. هذه هي فكرة تآكل السياق. فكلما كبرت نافذتنا، زادت
00:04:30صعوبة استخراج النموذج اللغوي الكبير لما نحتاجه بالضبط للمرحلة الحالية مع وكيل البرمجة.
00:04:36لذا بالعودة إلى المخطط، دعوني أكون محدداً جداً معكم. ما نعالجه من خلال
00:04:42كل هذه الاستراتيجيات هو السؤال: كيف نحافظ على نافذة السياق الخاصة بنا رشيقة قدر الإمكان
00:04:48مع إعطاء وكيل البرمجة كل السياق الذي يحتاجه؟ هذه هي هندسة السياق
00:04:53التي نقوم بها هنا. لذا سأستعرض كل استراتيجية على حدة. ولدي حتى
00:04:57مثال لكل منها سأقوم بتنفيذه مباشرة معكم على قاعدة برمجية معقدة، وكل
00:05:02الأوامر والقواعد والمستندات التي أستخدمها كمثال، وضعتها في هذا المجلد الذي سأضع رابطه
00:05:06في الوصف. لذا يمكنك استخدام كل هذه الاستراتيجيات نظرياً، وكذلك مع هذه
00:05:12الأوامر كمثال موجود في مجلد ".claud" هنا. حسناً، لننتقل إلى
00:05:17الاستراتيجيات الفردية الآن. ترمز W لـ الكتابة (Write)، و I لـ العزل (Isolate)، و S لـ الاختيار (Select)، و C لـ الضغط (Compress).
00:05:24وبالطبع سنبدأ بحرف W، وهو الكتابة، أي تدوين ذاكرة وكيلنا خارجياً.
00:05:30بقدر الإمكان، نريد تسجيل القرارات الرئيسية وما كان الوكيل يعمل عليه
00:05:34حتى نتمكن في الجلسات القادمة من جعل وكيلنا يواكب الأحداث بشكل أسرع ونضطر لإنفاق
00:05:40رموز أقل في البداية لجعل الوكيل يفهم ما نحتاج منه فعلاً القيام به. والاستراتيجية الأولى
00:05:46هنا هي استخدام سجل "git log" كذاكرة طويلة المدى. وأنا أحب هذا جداً لأن هناك
00:05:52الكثير من الأشخاص الذين يحبون المبالغة في الهندسة وامتلاك أطر عمل ذاكرة معقدة للغاية لوكلاء
00:05:56البرمجة لديهم، ولكن في الحقيقة الجميع يستخدم بالفعل Git و GitHub للتحكم في الإصدارات. لذا يمكننا
00:06:01الاستفادة من أداة نستخدمها بالفعل لتوفير ذاكرة طويلة المدى لوكيلنا. لننتقل
00:06:07إلى قاعدة الأكواد الخاصة بنا وسأريكم ما أعنيه. الكود الذي سأستخدمه في كل
00:06:12الأمثلة هنا هو تطبيق "Archon" الجديد. لقد بذلت جهداً كبيراً في العمل عليه خلال الأشهر القليلة الماضية
00:06:18خلف الكواليس. هذا هو مركز قيادة الذكاء الاصطناعي الخاص بك حيث يمكنك إنشاء وإدارة وتنفيذ تدفقات
00:06:23عمل برمجية أطول للذكاء الاصطناعي. ونحن نعمل حتى على أداة بناء تدفق العمل؛ ستكون مثل
00:06:28أداة N8N لبرمجة الذكاء الاصطناعي. لذا يمكننا بدء تدفقات العمل، وعرض السجلات ومراقبتها في
00:06:33غرفة العمليات الخاصة بنا. يمكننا النظر في عمليات التشغيل السابقة لنرى بالضبط ما حدث. مثل هذا
00:06:39تدفق العمل الطويل جداً الذي أملكه للتحقق من طلبات السحب (pull requests) بالكامل في كودي. نعم، يمكنك القول
00:06:44من خلال النظر إلى هذا، وهناك الكثير قادم في "Archon" قريباً بالمناسبة، ولكن يمكنك القول
00:06:47من النظر إلى هذا أن هناك الكثير من الأجزاء المتحركة. هذه قاعدة أكواد معقدة جداً. لذا
00:06:51فهي مثال جيد لكل ما سأغطيه معكم هنا، كل الاستراتيجيات.
00:06:57وبالعودة إلى استخدام سجل "git" كذاكرة طويلة المدى، سأريكم مثالاً هنا
00:07:03لأمر من سطر واحد لكل رسائل الالتزام (commit) الأخيرة الخاصة بي. وما أريد توضيحه هنا هو أن لدينا
00:07:09طريقة قياسية جداً لإنشاء رسائل الالتزام هذه. لدينا عمليات الدمج الخاصة بنا، ولكن لدينا أيضاً كل عمليات
00:07:13تنفيذ الميزات والإصلاحات. لذا جعلت الأمور قياسية جداً لأنني بهذه الطريقة يمكنني الاعتماد
00:07:19على رسائل الالتزام لإخبار وكيل البرمجة بما عملت عليه مؤخراً، لأن ذلك في كثير من
00:07:24الأحيان سيوجهنا لما نريد العمل عليه تالياً. والسبب في جعل هذا
00:07:29قياسياً جداً هو وجود أمر التزام (commit command) أقوم بتشغيله. الآن، تشغيل "git commit" سهل جداً،
00:07:36ولكن إذا أردنا توحيد الرسالة وجعل وكيل البرمجة يساعدنا في ذلك،
00:07:40فإن وجود أمر محدد يكون قوياً جداً. لذا لدي هذا التنفيذ الكامل الذي قمت به هنا
00:07:46في نافذة سياق واحدة مع وكيل البرمجة. أنا في النهاية الآن وجاهز لتشغيل
00:07:51عملية الالتزام الخاصة بي. لذا إذا قمت فقط بكتابة "slash commit/"، فهذا كل ما علي فعله. إنه يشغل هذا الأمر الذي
00:07:55يحتوي على معايير التوثيق لأي عمل قمت به. وبعد ذلك أيضاً أي شيء فعلته لتحسين
00:08:01قواعدي أو أوامري. لذا فهو أمر من جزأين: إليك ما بنيناه، وإليك كيف قمنا بتحسين
00:08:06طبقة الذكاء الاصطناعي. وسيقوم بإجراء هذا الالتزام وسأريكم كيف سيبدو بعد ذلك.
00:08:10حسناً. بالنظر الآن إلى رسالة الالتزام الخاصة بنا، يمكننا أن نرى أننا أجرينا بعض التحسينات على الاختبارات
00:08:14في واجهة السطر البرمجي (CLI). بادئة جميلة جداً ثم الدخول في التفاصيل. وأيضاً، لكي
00:08:19يعرف وكيل البرمجة كيف تتطور قواعده وأوامره بمرور الوقت، فإننا ندرج ذلك في رسالة
00:08:23الالتزام كلما وجدنا فرصة للتحسين، لنقل في أمر التخطيط (plan command) مثلاً. وبالطبع
00:08:29فإن أمر الالتزام هذا هو أحد الموارد التي وفرتها لكم في المستودع. إذا كنتم ترغبون
00:08:33في استخدامه كنقطة انطلاق، لكنني أشجعكم أيضاً على تخصيص شكل رسائل
00:08:37الالتزام الخاصة بكم. الشيء المهم هنا هو توحيد الرسائل. نجعلها
00:08:41مفصلة للغاية حتى نتمكن من استخدامها كذاكرة طويلة المدى. حسناً، استراتيجية الكتابة الثانية هي
00:08:47البدء دائماً بنافذة سياق جديدة تماماً في كل مرة تكتب فيها أي كود. ومهما كان ما أعمل
00:08:53عليه، فإن سير عملي هو دائماً: لدي محادثة واحدة للتخطيط مع وكيل البرمجة، وسأقوم بإنشاء ملف
00:08:57"markdown" يحتوي على خطتي المنظمة. ثم أرسل ذلك كالسياق الوحيد لجلسة
00:09:03جديدة مخصصة للتنفيذ. ومن المهم جداً هنا أن تحتوي مواصفاتك (spec) على كل
00:09:08السياق الذي يحتاجه الوكيل لكتابة الكود وإجراء التحقق. على سبيل المثال، في هذه المحادثة،
00:09:14أنا أقوم بالتخطيط فقط. لذا أقوم بتشغيل أمر التهيئة (prime) للبدء، سأتحدث عن هذا بعد قليل.
00:09:18أقوم بتحميل السياق ثم أنشئ خطتي بهذا الأمر. وهو أمر آخر وفرته لكم
00:09:24كمورد. هذا الأمر يوضح لوكيل البرمجة الخطوات بدقة؛ إليك الهيكل الدقيق
00:09:28الذي نريد إنشاءه لمستند "markdown" واحد. أي الانتقال من ذاكرتنا قصيرة المدى
00:09:33إلى مستند واحد. ثم ننهي الجلسة هنا. نذهب إلى نافذة سياق جديدة تماماً
00:09:38ونبدأ في التنفيذ. لذا لدي أمر التنفيذ (execute). وهنا يمكنني
00:09:42تحديد المسار لخطتي المنظمة. لا يوجد سياق آخر لأن هذا الملف يجب أن يحتوي على كل ما
00:09:48يحتاجه. هذا مهم جداً لأنه يبقي وكيل البرمجة مركزاً للغاية على المهمة التي
00:09:53بين يديه. فقد يكون هناك الكثير من الأبحاث وأشياء أخرى تشوش نافذة السياق
00:09:57إذا قمنا بالتنفيذ في نفس مكان التخطيط. لذا، فإن آخر استراتيجية في W لتدوين
00:10:03ذاكرة الوكيل هي ملفات التقدم وسجلات القرارات. سترى هذا طوال الوقت مع أطر عمل
00:10:08برمجة الذكاء الاصطناعي الأكثر تطوراً حيث يكون لديك ملف مثل "handoff.md" أو "todo.md" للتواصل بين
00:10:13وكلاء فرعيين مختلفين أو فرق من الوكلاء، أو حتى بين جلسات الوكيل المختلفة. عندما
00:10:17تنفد مساحة السياق، ستحتاج في كثير من الأحيان إلى إنشاء هذا الملخص لما تم إنجازه للتو. حتى
00:10:22تتمكن من الانتقال إلى جلسة جديدة لأنك بدأت تلاحظ تآكل السياق مع ظهور
00:10:27تخيلات (hallucination) لدى الوكيل مع طول المحادثات. من الواضح أنه من الأفضل تجنب هذه المحادثات
00:10:33الطويلة، لكن أحياناً تضطر لإجرائها. مثلاً، شيء أفعله كثيراً في "Archon" هو
00:10:38جعله يستخدم واجهة المتصفح البرمجية لـ Vercel لإجراء اختبارات شاملة (end-to-end) داخل المتصفح.
00:10:44لذا أجعله يمر عبر الكثير من رحلات المستخدم المختلفة واختبار الحالات القصوى. وهذا يستهلك الكثير من
00:10:49السياق. يمكنك أن ترى في الأسفل هنا، قمت بتشغيل أمر السياق ونحن بالفعل عند 200 ألف رمز من
00:10:56أصل المليون رمز كحد أقصى. تمتلئ هذه المساحة بسرعة كبيرة. وبمجرد أن يصبح لديك بضع مئات الآلاف
00:11:01من الرموز في نافذة السياق، ستبدأ في رؤية تدهور أداء الوكيل. لذا
00:11:05يمكنني ببساطة تشغيل أمر "slash handoff/". سيقوم هذا الأمر بإنشاء ملخص يمكن تمريره الآن إلى
00:11:11جلسة أخرى ليتمكن الوكيل من مواصلة العمل. لكن الآن ليس لديه مئات الآلاف من
00:11:16الرموز من نداءات الأدوات وما شابه ذلك في نافذته. وأمر التسليم (handoff) هذا هو حقاً
00:11:21مجرد توضيح لعملية ما نريد وضعه بالضبط في هذا المستند. ليكون لدى الوكيل التالي
00:11:25ما يحتاجه. حسناً، بهذا نختم حرف W، وكل واحدة من هذه الاستراتيجيات مهمة جداً لأننا
00:11:31نسجل القرارات الرئيسية لجلسات الوكيل المستقبلية لكي تستوعبها بسرعة.
00:11:36وأعلم أنني أشرح بسرعة هنا. لذا أخبروني في التعليقات إذا كان هناك أي من هذه
00:11:40الاستراتيجيات التي تريدون مني تخصيص فيديو كامل لها، لأنني أستطيع فعل ذلك لكل منها بكل تأكيد.
00:11:45والآن نصل إلى حرف I الذي يرمز لـ العزل (Isolate) باستخدام الوكلاء الفرعيين. أحب استخدام الوكلاء الفرعيين لكل
00:11:52أعمال البحث، وأستخدمهم في كل جلسة تقريباً. الشيء المهم هنا هو الحفاظ
00:11:56على نظافة السياق الرئيسي الخاص بك. يمكننا استخدام وكلاء فرعيين لإجراء عشرات أو حتى مئات الآلاف من
00:12:03الرموز من الأبحاث عبر كودنا أو الويب. ثم إعطاء الملخص المطلوب فقط لنافذة
00:12:10سياق "كلاود كود" الرئيسية. فبدلاً من تحميل عشرات الآلاف من رموز الأبحاث في
00:12:16نافذة سياقنا الرئيسية، سيصبح الأمر الآن حوالي 500 رمز فقط. وبذلك لا نزال نحصل على المعلومات الأساسية
00:12:21التي نحتاجها، ولكن لدينا تحسن بنسبة 90.2% وفقاً لبعض أبحاث شركة Anthropic عند استخدام الوكلاء
00:12:28الفرعيين لتحميل السياق مسبقاً لأبحاثنا، بدلاً من جعل وكيلنا الرئيسي يتولى
00:12:33كل شيء. سأعطيكم مثالاً سريعاً على ذلك. يكون ذلك دائماً في بداية
00:12:38المحادثة أو قبل تلك الخطة المنظمة التي شرحتها سابقاً، عندما أكون في عملية التخطيط. هذا
00:12:43هو الوقت الذي أستخدم فيه الوكلاء الفرعيين بكثافة. شاهدوا هذا: أريد بناء أداة لتدفق العمل في "Archon".
00:12:50لذا أريدك أن تُشغل وكيلين فرعيين، أحدهما لإجراء بحث مكثف في الكود ليرى كيف
00:12:55سنبني أداة تدفق العمل وما يعنيه ذلك لـ "Archon"، ثم تشغيل وكيل فرعي آخر
00:13:01لإجراء بحث على الويب حول أفضل الممارسات لمجموعة التقنيات المستخدمة. مثلاً إذا أردت استخدام React، فأي مكتبة
00:13:06يجب أن نستخدم؟ وبشكل عام، كيف نبني أدوات تدفق العمل مثل Diffie أو N8N؟ أنا فقط
00:13:12أستخدم أداة تحويل النص إلى كلام هنا. أرسل الأمر. ها قد بدأنا. وهكذا، لا نحصل فقط على
00:13:16فائدة العزل، بل السرعة أيضاً لأنه سيستخدم هؤلاء الوكلاء الفرعيين بالتوازي،
00:13:21ويعود بملخص، ثم سيقوم وكيلي الرئيسي بتركيب كل ذلك وإعطائي النتيجة النهائية.
00:13:26ها هما، كلا الوكيلين الفرعيين يعملان بالتوازي خلف الكواليس. يمكننا الذهاب والاطلاع
00:13:31على السجلات لكل منهما أيضاً. وسيعودان في النهاية بمجرد انتهائهما من
00:13:36التقرير النهائي. حسناً، لقد انتهى الوكلاء الفرعيون. وبدلاً من استخدام مئات الآلاف من الرموز
00:13:41في نافذة سياقنا الرئيسية، وهو حجم العمل الذي قام به الوكلاء الفرعيون في بحثهم،
00:13:46استخدمنا فقط 44 ألف رمز، أي 4% فقط من نافذتنا حتى الآن. هذه هي قوة الوكلاء الفرعيين. لا
00:13:53أنصح بهم لعمليات التنفيذ لأنك عادة ما تريد كل السياق لما فعلته. ولكن بالنسبة
00:13:57للأبحاث، فالأمر قوي جداً. لذا، نعم، العزل والوكلاء الفرعيون مهمون جداً لعملية
00:14:04التخطيط الخاصة بك. الطريقة الأخرى التي يمكننا بها استخدام الوكلاء الفرعيين هي ما أحب تسميته بنمط "المستكشف" (scout pattern).
00:14:09نريد إرسال مستكشفين للمقدمة قبل أن تستهلك سياقك الرئيسي. قد تكون هناك أجزاء من كودك
00:14:14أو توثيقك تريد أن يستكشفها الوكلاء الفرعيون ليروا ما إذا كان من المناسب تحميلها في
00:14:21جلسة "كلاود كود" الرئيسية. فيمكنه اتخاذ القرار مسبقاً؛ مثل: نعم، يجب
00:14:25أن نجلب هذا لتخطيطنا الأكبر، أو لا، يجب أن نتجاهله، فهو ليس ذا صلة. على سبيل المثال،
00:14:30مع "Archon"، لدي بضعة مستندات "markdown" عبارة عن غوص عميق في أجزاء معينة من الكود،
00:14:36وهي ليست نوع السياق الذي نريده في قواعدنا لأننا لا نحتاجه طوال الوقت. ولكن أحياناً
00:14:41قد ترغب في تحميل هذا، ويمكنك تخيل أن يكون هذا شيئاً في Confluence أو Google Drive،
00:14:45أو أي مكان تخزن فيه سياقك. وبالعودة إلى هذه المحادثة الرئيسية،
00:14:48يمكنني ببساطة قول: شَغّل وكيلاً فرعياً للبحث في كل شيء في مجلد ".claud/docs". هل هناك
00:14:54أي أجزاء من التوثيق هنا نهتم بتحميلها في سياقنا الرئيسي للتخطيط؟
00:14:59ويمكنني إرسال هذا، وسيتخذ القرار ثم يحمل ما يهمني. في هذه اللحظة،
00:15:04بدأنا وكيل استكشاف فرعياً. وجد كل توثيقاتنا، وأوصى بتحميل أحدها.
00:15:09فقلت له: نعم، تفضل وحمله. هذا مهم حقاً لما نخطط له هنا.
00:15:13لذا بدلاً من مجرد استخدام الوكلاء الفرعيين للبحث، أحياناً يكون لدينا قطع كاملة من التوثيق
00:15:18نعتقد أنها حاسمة لنافذة سياقنا الرئيسية. عندها نريد استخدام نمط
00:15:23الاستكشاف. هذا كل شيء بالنسبة للعزل. تذكر استخدام الوكلاء الفرعيين لأبحاثك
00:15:28وتخطيطك بشكل مكثف. والآن ننتقل إلى حرف S وهو الاختيار (Select). قُم بتحميل سياقك "عند الحاجة"،
00:15:34وليس "تحسباً للحاجة". وما أعنيه بذلك هو أنك إذا لم تكن واثقاً بنسبة 100% من أن معلومة ما
00:15:40مهمة لوكيل البرمجة الخاص بك الآن، فلا داعي لتحميلها. ولدينا
00:15:46نهج ذو طبقات للمساعدة في ذلك. ونبدأ بقواعدنا العالمية (global rules). وهي
00:15:51القيود والاتفاقيات التي نريد أن يكون وكيل البرمجة على دراية بها دائماً. لذا يجب أن يكون هذا
00:15:57الملف موجزاً جداً، يتراوح طوله عادة بين 500 و 700 سطر، وهذا ما أتبعه. الكثير من الناس
00:16:02ينصحون بأقل من ذلك، ولكن لديك أشياء مثل معماريتك، والأوامر التي يجب تشغيلها، وأشياء
00:16:08مثل استراتيجية الاختبار والتسجيل. هذا هو مثالي من "Archon"، ولكن هذه هي الأشياء التي
00:16:12تريد أن يكون وكيل البرمجة على دراية بها طوال الوقت. ثم لدينا الطبقة الثانية. أو
00:16:18السياق عند الطلب، كما أسميه، وهي القواعد التي تنطبق فقط على أجزاء معينة من الكود.
00:16:23مثلاً إذا كنا نعمل على الواجهة الأمامية (front end)، وهذا لا يحدث دائماً، ولكن إذا كنا نفعل، فإليك
00:16:28القواعد العالمية للواجهة الأمامية، أو إليك القواعد العالمية لبناء نقاط نهاية واجهة البرمجة (API). لذا نضيف هذا
00:16:33إلى قواعدنا العالمية لأنواع مهام محددة، لأننا لن نعمل دائماً على
00:16:38الواجهة الأمامية مثلاً. ولأريكم مثالاً على ذلك، لدينا مرجع YAML لتدفق العمل الذي
00:16:43سحبته قبل قليل باستخدام وكيل الاستكشاف الفرعي. فعندما نعمل على تدفقات العمل،
00:16:48فإننا نهتم بهذا، لكننا لا نريد هذا في قواعدنا العالمية لأننا في معظم الوقت
00:16:52عندما نعمل على "Archon"، لا نكون بصدد العمل على هذا الجزء المحدد من الكود. لذا
00:16:57فهو سياق عند الطلب. ثم الطبقة الثالثة التي لدينا هنا هي المهارات (skills). وهذا شائع جداً
00:17:05مع "كلاود كود" وما هو أبعد منه حالياً. لدينا مراحل مختلفة هنا حيث سيستكشف
00:17:10الوكيل التعليمات والقدرات في المهارة عندما يقرر أنه يحتاجها بالفعل. لذا
00:17:15نبدأ بالوصف. هذا قدر صغير جداً من الرموز يتم تحميله مسبقاً مع قواعدنا
00:17:20العالمية. إذا قرر الوكيل أنه يريد استخدام هذه المهارة، فسيقوم بتحميل ملف "skill.md" الكامل،
00:17:25والذي يمكن أن يشير أيضاً إلى نصوص برمجية أخرى أو مستندات مرجعية قد نرغب في تحميلها إذا كنا نغوص
00:17:29بشكل أعمق في هذه المهارة. وكمثال على ذلك، لدي مهارة متصفح الوكيل (agent browser skill). هذا
00:17:35ما أستخدمه لأتمتة المتصفح في كل اختباراتي الشاملة التي كنت أعرضها سابقاً. أنا أستخدم
00:17:40هذا كل يوم. لذا عندما أقوم باختباراتي الشاملة، أريد تحميل هذه
00:17:46المجموعة من التعليمات ليفهم الوكيل كيفية استخدام متصفح الوكيل. وأخيراً للطبقة
00:17:52الرابعة هنا، لدي أوامر التهيئة (prime commands). فكل شيء آخر غطيته هنا هو توثيق ثابت
00:17:57سنقوم بتحديثه بين الحين والآخر. ولكن أحياناً نحتاج من وكيلنا القيام باستكشاف
00:18:02لكودنا الحالي المباشر. نحتاج للتأكد من أن جميع معلوماته محدثة تماماً
00:18:07ونحن مستعدون لإنفاق بعض الرموز مع الوكلاء الفرعيين مسبقاً لتحقيق ذلك. وهذا
00:18:11ما يفعله أمر التهيئة؛ فنحن نستكشف قاعدة أكوادنا في بداية عملية التخطيط
00:18:16لكي يفهم كودنا قبل البدء في بناء ما نريده لاحقاً. وكما ترون في
00:18:22مجلد الأوامر لدي، يوجد العديد من أوامر التهيئة المختلفة لأن هناك أجزاء مختلفة من الكود
00:18:27أريد أن يفهمها الوكيل بناءً على ما أريد بناءه. وأمر التهيئة العام لدي هو
00:18:32هذا الذي ننظر إليه الآن. أنا فقط أطلب منه أخذ فكرة عن كود "Archon"
00:18:36بشكل عام. وإليك ما أريده أن يقرأه خطوة بخطوة، بما في ذلك سجل Git
00:18:41لأن ذلك مهم لاستخدام سجلنا كذاكرة طويلة المدى. ولدي أيضاً واحد متخصص
00:18:47باسم "prime workflows" عندما أعلم أنني أعمل على محرك تدفق العمل في "Archon". لذا فهو أمر
00:18:53مشابه جداً ولكنه أكثر تخصصاً. فأنا أستخدم هذا في بداية المحادثة لكي يتمكن وكيلي من
00:18:58تحميل كل ما يحتاجه بسرعة. يمكنني التأكد من فهمه لكودي ثم أبدأ في
00:19:03عملية التخطيط التي كنت أعرضها لكم سابقاً. لذا كملخص سريع، القواعد العالمية يتم تحميلها دائماً.
00:19:09السياق عند الطلب عندما تعرف أنك على وشك العمل على جزء من الكود
00:19:13موثق بشكل منفصل. المهارات عندما تحتاج لقدرات مختلفة؛ مثل: حسناً حان الوقت لإجراء
00:19:18اختبار شامل، لنقم بتحميل مهارة متصفح الوكيل. وأوامر التهيئة عادة ما
00:19:22أشغلها في بداية المحادثة لتهيئة المسرح لتخطيطي. هذا
00:19:28كل شيء بالنسبة للاختيار (Select). والآن سننتقل إلى الضغط (Compress)، وهو في الواقع أسرع قسم سنغطيه
00:19:34لأنك لا يجب أن تحتاج للضغط كثيراً إذا كنت تطبق استراتيجيات الكتابة والعزل والاختيار
00:19:39بشكل جيد. إذا كنا نتبع كل الاستراتيجيات الأخرى للحفاظ على رشاقة السياق، فنحن نتجنب هذا،
00:19:46وهذا جيد لأنك تريد تجنب الضغط قدر الإمكان. وإذا كان لا بد من الضغط، فهناك
00:19:52استراتيجيتان سنغطيهما هنا. وهاتان الاستراتيجيتان هما التسليم (handoff) و
00:19:56الضغط المركز (focus compaction). لننتقل إلى "كلاود كود" ونلقي نظرة على هذا. التسليم
00:20:02غطيناه بالفعل، فهو أحد استراتيجيات الكتابة لدينا. نحن نلخص كل شيء فعلناه للتو
00:20:06لتسليمه إلى وكيل آخر أو لنفس الوكيل بعد ضغط الذاكرة. ثم لدينا أمر
00:20:12الضغط المدمج "slash compact/" في "كلاود كود". سيقوم هذا بتلخيص محادثتنا ثم مسح
00:20:18المحادثة ووضع الملخص في أعلى نافذة سياقنا. الآن، التسليم
00:20:23قوي جداً لأن هذا هو المكان الذي نحدد فيه سير عملنا الخاص لكيفية تذكر المعلومات. ولكن
00:20:28أمر "slash compact/" مفيد جداً أيضاً خاصة لأننا نستطيع اختيارياً تقديم تعليمات
00:20:34للتلخيص. عندما أضطر تماماً للضغط، سأستخدم هذا في كل مرة. مثلاً: ركز
00:20:41على الحالات القصوى التي اختبرناها للتو. وهكذا، عندما يقوم بإنشاء هذا الملخص،
00:20:48سيعطي اهتماماً أكبر لهذا الجزء من ذاكرته قصيرة المدى. لم أكتب الكلمة بشكل صحيح، لا
00:20:53بأس، هذا عادي. سيقوم بعملية الضغط هنا. لذا فالتسليم وأمر "compact" هما خياران بديلان.
00:20:58لكنني بالتأكيد أجد أوقاتاً أريد فيها استخدام الاثنين معاً. التسليم خاصة عندما تضطر لإجراء
00:21:03ضغط لأكثر من مرتين، فعادة ما تكون تلك المحادثة قد أصبحت متضخمة جداً لذا سترغب في بدء
00:21:09جلسة جديدة مع التسليم. ولكن إذا كنت سأفعل ذلك مرة واحدة، فغالباً ما أكتفي بتشغيل
00:21:14أمر "slash compact/" لمرة واحدة. ولكن عادة بعد الضغط، سأطلب من الوكيل تلخيص ما
00:21:19يتذكره حتى أتمكن من التأكد من فهمه الحقيقي، مثل: ماذا تتذكر
00:21:24هنا؟ أو شيء من هذا القبيل. لذا نعم، الأمر ليس مثالياً. تجنب الضغط قدر الإمكان.
00:21:30أفضل استراتيجية ضغط هي عدم الحاجة للضغط أصلاً. حسناً، هذا هو إطار عمل
00:21:36"Whisk". أعلم أنه كان كثيراً، لذا آمل أن تكونوا قد وجدتم هذا مفيداً، وأخبروني إذا كان هناك أي
00:21:41استراتيجية معينة تريدون مني التعمق فيها لأنني أستطيع تخصيص فيديو كامل لأي من
00:21:46هذه الاستراتيجيات. ولكن هذا هو إطار عمل "Whisk". آمل أن تتمكنوا من استخدامه لنقلكم إلى
00:21:52المستوى التالي في "كلاود كود" أو في الواقع أي مساعد برمجة بالذكاء الاصطناعي. لذا، إذا وجدتم هذا الفيديو مفيداً
00:21:59وتتطلعون لمزيد من المحتوى حول البرمجة بالذكاء الاصطناعي والقدرة على تطبيق هذه الأنواع من
00:22:04أطر العمل عملياً، سأقدر حقاً الإعجاب والاشتراك. ومع ذلك، سأراكم
00:22:09في الفيديو القادم. لحظة! لدي شيء أخير لكم سريعاً لا تريدون تفويته.
00:22:14في 2 أبريل، سأستضيف ورشة عمل مجانية حول تحول الذكاء الاصطناعي مباشرة على قناتي في يوتيوب مع
00:22:20ليور وينشتاين، مؤسس CTOX، وهذا أمر كبير. سيعلمنا ليور كيفية
00:22:27إعادة هيكلة منظمتنا بالكامل من أجل الذكاء الاصطناعي، ثم سأعلمكم كيفية إتقان منهجية البرمجة
00:22:32بالذكاء الاصطناعي التي أستخدمها لبناء أنظمة موثوقة وقابلة للتكرار لوكلاء البرمجة لدي. لذا
00:22:38سأضع رابطاً في الوصف لهذه الصفحة. ستكون الورشة مباشرة على قناتي في يوتيوب، لذا يمكنك
00:22:42تفعيل التنبيهات لها بالضغط على هذا الزر هنا. سأراكم هناك!