▲ جلسة مجتمعية: كيفية إنشاء المهارات ونشرها

VVercel
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00[صوت صامت]
00:00:30[صوت صامت]
00:01:00مرحباً جميعاً، كيف حالكم؟
00:01:25أهلاً بكم في جلسة مجتمع Versailles أخرى.
00:01:29يسعدنا جداً تواجدكم معنا.
00:01:32إذا كانت هذه هي المرة الأولى التي تحضرون فيها إحدى جلساتنا،
00:01:35فمرحباً بكم، أنا بولين نافاس من فريق مجتمع Versailles.
00:01:40ربما رأيتموني أتجول في مساحات المجتمع.
00:01:44هذا الوقت ممتع دائماً بالنسبة لي
00:01:46للتحدث إليكم مباشرة والتواصل معكم جميعاً.
00:01:51من الرائع حقاً رؤية بعضكم يشاهدون ويتابعوننا الآن.
00:01:56لذا، إذا كانت هذه هي المرة الأولى التي تنضمون فيها إلى جلساتنا
00:02:00ولا تظهر لكم الدردشة وترغبون في طرح الأسئلة،
00:02:02وهو ما أوصي به بشدة في هذه الجلسة؛ عليكم فعل ذلك.
00:02:06لا تترددوا في الانضمام إلى منصة مجتمعنا عبر community.versailles.com.
00:02:12ثم اضغطوا على زر "الذهاب" لهذا الحدث.
00:02:15ونعم، استخدموا الدردشة واطرحوا الأسئلة طوال الجلسة.
00:02:20إذا كنتم تشاهدوننا على X أو أي منصة أخرى، فلا تترددوا في استخدامها أيضاً.
00:02:25أنا متحمسة للغاية لجلسة اليوم.
00:02:28لا أعرف إن كان ذلك يظهر عليّ، لكننا سنتعمق في شيء
00:02:32يشكل حقاً الطريقة التي يعمل بها المطورون مع وكلاء الذكاء الاصطناعي.
00:02:36إنه موضوع المهارات في أداة Claude code.
00:02:39إذا تمنيت يوماً لو أن وكلاء الذكاء الاصطناعي يعرفون ببساطة كيفية فعل شيء ما،
00:02:44مثل الترقية إلى Next.js بالطريقة الصحيحة أو اتباع أنماط البرمجة الخاصة بفريقك.
00:02:49هذا ما تمكنه هذه المهارات.
00:02:51لذا يسعدني جداً أن أقدم لكم جون
00:02:56من فريق تجربة مطوري الذكاء الاصطناعي هنا في Versailles ليقود ورشة العمل هذه معكم.
00:03:02مرحباً يا جون.
00:03:04>> أهلاً يا بولين.
00:03:05أهلاً بالجميع.
00:03:05شكراً لحضوركم.
00:03:07>> يسعدني جداً رؤيتك.
00:03:09حسناً، فلنبدأ.
00:03:12>> فلنفعل ذلك.
00:03:13حسناً، لنتحدث عن المهارات.
00:03:15يبدو وكأنها موجودة منذ الأزل، لكن ربما عمرها أسبوعان فقط، من يدري؟
00:03:20سأستعرض هذا العرض التقديمي للحديث عن المهارات.
00:03:24سأعرض بعضها، ولا تترددوا في طرح الأسئلة ومقاطعتي وما إلى ذلك
00:03:28لأنني أحب الحديث عن هذه الأمور.
00:03:31بالنسبة للمهارات أولاً وقبل كل شيء، سنتحدث عن إنشائها
00:03:35ونشرها.
00:03:36تم إنشاء هذا العرض التقديمي في الواقع بواسطة مهارة تسمى ReMotion Geist.
00:03:42حيث تستخدم لغة تصميم Vercel الخاصة بنا، وتدمجها مع ReMotion
00:03:46وقد بنت هذا العرض، وسأعرض لكم ذلك في النهاية.
00:03:48لكن الآن، سأستعرض فقط بعض مقاطع الفيديو.
00:03:51تاريخياً، تحدثنا عن هندسة الأوامر (Prompt Engineering) لفترة طويلة
00:03:55عندما لم تكن النماذج جيدة تماماً.
00:03:58كان على الجميع جعل أوامرهم مثالية،
00:04:00واعتقد الجميع أن هندسة الأوامر ستكون مهنة بحد ذاتها.
00:04:03الآن ننتقل إلى هندسة السياق (Context Engineering) والسماح لهذه المهارات،
00:04:08وهي عبارة عن ملفات markdown، بأن يتم تحميلها لاحقاً عند الحاجة.
00:04:13لذلك يوجد الآن فصل بين أمرك الأولي
00:04:17وبين قطع السياق هذه التي يمكن تحميلها لاحقاً.
00:04:19وسنطلق عليها اسم "المهارات".
00:04:22بدأت المهارات مع شركة Anthropic.
00:04:25كانوا بحاجة لتعليم Claude code مهاماً محددة لأن النماذج تبدأ
00:04:30من الصفر، كل نموذج يبدأ من جديد بدون ذاكرة.
00:04:33الأمر يشبه ولادة طفل ليس لديه أي مهارات.
00:04:37كل ما لديهم هو هذه المعرفة المتأصلة التي وضعت في رؤوسهم.
00:04:42لذا فهم يبدأون من لا شيء.
00:04:44فتساءلت Anthropic: كيف سنحل هذه المشكلة؟
00:04:48حسناً، الحل الواضح هو ملفات markdown، لأن كل المشاكل تُحل
00:04:51بملفات markdown هذه الأيام، ومن هنا ولدت المهارات.
00:04:55من هنا، يمكنك الآن حزم هذه المهارات.
00:04:58والمهارات هي ملفات markdown يمكنك مشاركتها بين فرقك
00:05:04ويمكنك حزم سير العمل الخاص بك داخلياً.
00:05:07يمكنك حزمها ومشاركتها في مستودعات GitHub الخاصة بك.
00:05:12ولدينا أدوات مخصصة قمنا بإطلاقها.
00:05:15دعوني أفتح المتصفح سريعاً لإدارة مهارات المجتمع.
00:05:22موقع skills.sh هو المكان الذي يمكنك الذهاب إليه.
00:05:27يمكنك البحث عن مهارات المجتمع.
00:05:29يمكنك العثور على بعض المهارات الأكثر استخداماً.
00:05:32وكالعادة، تأكد من أنك تثق في المهارة أولاً وأنها من مصدر موثوق
00:05:36أو من شخص ما في فريقك.
00:05:38بحيث تستخدم شيئاً تعرف أنه يتماشى مع ما تحاول القيام به.
00:05:42وسنتحدث أكثر عن كيفية استخدام هذا لاحقاً.
00:05:45لكن هذا مكان رائع للبحث في النظام البيئي الكامل
00:05:48ومجتمع المهارات لمعرفة ما هو متاح.
00:05:50من هنا، سنستعرض بعض التفاصيل حول كيفية تدريس ورشة العمل هذه عادةً
00:05:56وسأنتقل إلى الفيديو التالي حول هذا الموضوع.
00:06:00البداية من الصفر؛ البداية من الصفر تعني مجدداً
00:06:07أن الطفل يولد، وبمجرد أن يبدأ وكيلك في العمل، كما تعلمون،
00:06:11الوكيل هو نموذج يتم تشغيله بواسطة برنامج وكيل.
00:06:14دعوني أكبر هذه الصورة قليلاً.
00:06:16يعرف الوكيل أساسيات React وTypeScript وCSS وSQL.
00:06:23لكن ما لا يعرفه هو ما تملكه أنت؛ قواعدك، أنماطك،
00:06:28نظامك، وهيكلية عملك.
00:06:30لذا يمكنك إدخال هذه المعلومات، ودمج
00:06:35الأمور المخصصة لديك مع ما يعرفه النموذج لسد تلك الفجوة المعرفية.
00:06:40بذلك تجلب هذا السياق ويتم تحميل المهارات
00:06:42حتى يتمكن من القيام بتلك الأمور تماماً كما تريدها.
00:06:45هذا هو الأمر، فهم يعرفون اللغة، يعرفون TypeScript، يعرفون React.
00:06:51لكنهم لا يعرفون "لهجتك" الخاصة في تلك اللغة.
00:06:53هذه طريقة رائعة للتفكير في الأمر.
00:06:54حسناً، هل توجد أي أسئلة حتى الآن؟
00:07:01هل فاتني أي شيء؟
00:07:03لا توجد أسئلة حتى الآن.
00:07:06فقط الكثير من الحماس في الدردشة.
00:07:08لذا واصل يا جون.
00:07:09لنكمل.
00:07:11الطريقة التي أحب التفكير بها في هذا الأمر هي أنها لحظة تشبه ظهور NPM بالنسبة للمهارات.
00:07:17NPM هو مدير حزم، وهو ما يألفه معظمنا.
00:07:23ومديرو الحزم لديهم موارد مجمعة من المجتمع
00:07:27يمكنك استخدامها للمساعدة في تشغيل منتجاتك بشكل أسهل.
00:07:30لذا إذا فكرت في المهارات وموقع skills.sh كمدير حزم للمهارات،
00:07:35يمكنك تثبيت هذه القدرات في وكلائك.
00:07:39تماماً كما تثبت مكتبة برمجية،
00:07:41يمكنك استخدام أمر npx skills add لإضافة معرفة إلى مشروعك.
00:07:45سابقاً، كانت هندسة الأوامر تعني محاولة القول في ملف claw.md الخاص بك،
00:07:52أو ملف agents.md، كنت تقول للوكلاء: افعل هذا دائماً، وافعل ذاك دائماً.
00:07:55استخدم هذه المكتبة، تحقق من Jira، وهكذا دواليك.
00:07:59لكن الآن، أصبح لدينا هذه المهارات التي يمكننا إضافتها والتي تلخص تلك القواعد
00:08:04وتجلبها إلى مشاريعنا.
00:08:06لذا فهي دائمة.
00:08:08يمكننا مشاركتها على مستوى المستخدم أو مستوى المشروع.
00:08:11ويمكن أن تكون منفصلة عن المشاريع الفردية.
00:08:14لست مضطراً للنسخ واللصق كثيراً.
00:08:17يمكننا أتمتة الكثير من هذا بحيث بمجرد أن تبدأ مشروعاً جديداً،
00:08:21يمكنك إضافة كل المهارات التي تريدها أو تحتاجها.
00:08:23لذا، نحن نبتعد مرة أخرى عن القلق الزائد
00:08:28بشأن بناء هذه الأوامر.
00:08:30حسناً.
00:08:34مجدداً، إنها هذه القدرات، الدائمة، وللفريق بأكمله.
00:08:38وإذا لم تكن قد جربت عناء محاولة إدارة
00:08:43ملف agents.md أو claw.md في مشروعك،
00:08:47مع طلبات السحب (PRs) وكل شيء لتلك الملفات،
00:08:50فإن هذا يحل تلك المشكلة أيضاً.
00:08:53نتحدث هنا عن الفرق بين مطور واحد والفريق بأكمله.
00:08:58حسناً، هذا يتطرق أيضاً إلى شيء يمكن التفكير فيه
00:09:03يسمى "الخامل مقابل النشط" (Passive versus Active).
00:09:05الخامل يعني أن هذه المهارات لا تحتاج إلى تحميلها
00:09:12إلا عند الضرورة.
00:09:15إذا نظرنا إلى النتائج في ملف agents.md،
00:09:22فإن ملف markdown يشبه أمر النظام الأساسي،
00:09:25وهو الشيء الذي يتم قراءته أولاً.
00:09:26يتم قراءته دائماً.
00:09:28يجب على الوكيل قراءته.
00:09:31لذا يمكنك أن ترى في بعض الاختبارات للكثير من هذا
00:09:35أنك إذا وضعت الكثير من السياق هناك
00:09:38وملأت نافذة السياق،
00:09:41فإنه سيكون أفضل بكثير في اتباع تلك القواعد،
00:09:46مثل "استخدم دائماً TypeScript وTailwind" وما إلى ذلك.
00:09:50تصبح هذه المهارات أكثر نشاطاً.
00:09:53ويمكن للوكلاء إما استدعاؤها يدوياً
00:09:57أو يمكن تحميلها تلقائياً عند الحاجة بواسطة الوكيل
00:10:00فتجلب الأشياء التي تحتاجها في الوقت المناسب.
00:10:04مثل "انشر على Vercel" أو "أنشئ قاعدة البيانات" وما شابه.
00:10:08ومرة أخرى، هي مسألة القواعد مقابل الأدوات
00:10:13وفكروا فقط في المهارات كأدوات
00:10:15ودائماً ما تحتاجون إلى كليهما.
00:10:18- جون، لدينا بالفعل سؤال طرح للتو،
00:10:21وأعتقد أنه قد يكون جيداً لهذا الجزء.
00:10:24كيف نقرر ما إذا كنا سنقدم شيئاً كـ MCP
00:10:28أو كمهارة (Skill)؟
00:10:30- سأقول بشكل افتراضي،
00:10:33هناك عدة طبقات هنا إذا فكرت في الأمر،
00:10:37أريد فقط عرض شيء ما على الشاشة.
00:10:38لذا سأضعه هناك.
00:10:39- نعم، طبعاً.
00:10:40- بشكل افتراضي، حل المشكلة باستخدام markdown.
00:10:44إذا لم يكن markdown كافياً، فحلها باستخدام واجهة سطر الأوامر (CLI).
00:10:47وإذا لم يكن الـ CLI كافياً، فحلها باستخدام بروتوكول MCP.
00:10:51تلك هي مستويات التجريد،
00:10:53ومستويات البساطة؛ إذا تمكنت من إيجاد طريقة
00:10:58لحلحلة المشكلة باستخدام ملف markdown
00:10:59وهذا ينطبق على أي أداة تعتمد على الذكاء الاصطناعي
00:11:01حيث يمكنك رؤية الكثير من الطريقة
00:11:05التي صممت بها Anthropic أداة Claude code
00:11:08والآخرون يتبعون نفس النهج فيما يخص المهارات،
00:11:11وفيما يخص الأوامر والوكلاء الفرعيين.
00:11:13كلها ملفات markdown مع بيانات أمامية (front matter)
00:11:15وتكوينات، وكان ذلك كافياً في الغالب.
00:11:19وبعد ذلك يمكن لملفات markdown هذه تحديد الأدوات
00:11:21التي تحتاجها والأدوات المسموح لها باستدعائها
00:11:24والقيود، وقد يستغرق الأمر بعض الوقت
00:11:29للمرور عبر خطوات التكوين تلك فعلياً.
00:11:31لكن إذا واجهت سيناريو تحتاج فيه إلى تحكم صارم
00:11:37في البيانات وأنواع البيانات تحديداً
00:11:40وكل شيء يتم تمريره ذهاباً وإياباً
00:11:42بين الوكيل والـ MCP،
00:11:43حينها تكون الـ MCPs حلاً جيداً.
00:11:46لكن أعتقد بشكل عام أن التوجه الحالي والنمط السائد
00:11:50هو التحول نحو واجهات سطر الأوامر (CLIs)،
00:11:54وملفات markdown، واستخدام الـ MCPs فقط عند الضرورة القصوى.
00:11:59- نعم، هذا هو النقاش الذي رأيته أيضاً
00:12:04من خلال جميع المناقشات عبر الإنترنت.
00:12:06لدينا أيضاً سؤال آخر وصل للتو من منصة X.
00:12:10يقول: هذا مذهل، في المستقبل المنظور،
00:12:13هل ترى أن المهارات ستدعم اكتشاف وكيل لوكيل آخر؟
00:12:17سيكون من الرائع رؤية وكيل يقرر
00:12:20تثبيت مهارة ما، سؤال رائع.
00:12:22- أحب هذا السؤال كثيراً، فالتفاعل من وكيل لوكيل
00:12:27ميزة غير مستغلة كفاية، لكنها نمط شائع هذه الأيام.
00:12:32بالتأكيد، أستطيع رؤية ملف markdown
00:12:39يعمل كواصف لوكيل يتم تحميله.
00:12:42يدعم Claude هذا حالياً من خلال الوكلاء الفرعيين (sub-agents)
00:12:46واليوم تحديداً، من الممتع التحدث عن
00:12:49ميزات الفرق (teams) التي أطلقوها اليوم للتو
00:12:54حيث يمكنهم إنشاء مجموعة من الوكلاء الفرعيين
00:12:59الذين يمكنهم بعد ذلك تقديم تقاريرهم إلى قائد الفريق الأساسي.
00:13:02يسمونها الآن "فرقاً".
00:13:04ويمكن إدارة هذه الفرق بشكل أساسي
00:13:10من قبل قائد الفريق هذا، ويمكنك الدخول ومعاينة
00:13:12ما تفعله هذه الوكلاء.
00:13:14ولدى هؤلاء الوكلاء تعريفات لما يقومون به،
00:13:18أتساءل إن كان بإمكاني العثور سريعاً على الوثيقة الخاصة بذلك.
00:13:23- بينما يبحث جون عن ذلك،
00:13:30إذا كنتم تتابعوننا في الدردشة وترغبون في طرح سؤال،
00:13:34فالآن هو الوقت المناسب، لا تترددوا في طرحها جميعاً
00:13:37وسنتناولها خلال الجلسة.
00:13:40- أين يمكنني.. ربما يمكنني نشر هذا
00:13:42في دردشة تويتر على الأقل.
00:13:47لذا، هناك،
00:13:51في هذه الصفحة، سترون الطريقة التي يتم بها تعريف الوكيل الفرعي
00:13:58وستلاحظون وجود قسم للبيانات الوصفية (front matter)
00:14:01وفي هذا القسم،
00:14:03يمكنكم تحديد المهارات التي يمتلك الوكيل الفرعي صلاحية الوصول إليها.
00:14:08لذا إذا أردتم إنشاء وكيل، في هذه الحالة،
00:14:13وكيل فرعي لديه قائمة مهارات،
00:14:17فيمكنكم القيام بذلك عبر تسمية المهارة.
00:14:20ولم نصل تماماً بعد،
00:14:22الشرائح التالية تتحدث عن تشريح المهارات،
00:14:26لكن المهارات هي في الأساس مجرد أسماء.
00:14:28لذا يمكن أن يكون لديكم وكيل فرعي
00:14:29بمجموعة مهارات محددة،
00:14:31مجموعة مهارات خاصة جداً،
00:14:34ويمكنكم جعل هذا الوكيل الفرعي ينجز مهمة ما.
00:14:38لذا ما يحدث مع ميزة الفرق (Teams) التي أُطلقت اليوم
00:14:43هو أنهم يستطيعون،
00:14:45يمكن لـ Cloud Code بناء فريقه الخاص
00:14:48وبناء وكلائه الخاصين
00:14:49وإنجاز المهمة بأفضل شكل ممكن.
00:14:53ولكن يمكنك تحديد وكلاء فرعيين مخصصين بمهارات مخصصة
00:14:56إذا أردت أن تقول،
00:14:57"يرجى بناء فريق باستخدام هؤلاء الوكلاء الفرعيين".
00:15:00الآن، هذا ليس تماماً تواصلاً بين وكيل وآخر.
00:15:05هذا نقاش أكبر بكثير حول هندسة
00:15:08التواصل بين الوكلاء،
00:15:11وهو أمر كان خارج نطاق الموضوع.
00:15:12لكنني أرى بالتأكيد هذا النمط
00:15:14في الطريقة التي نعرف بها الوكلاء الفرعيين
00:15:17يتم اعتماده في الطريقة التي نعرف بها الوكلاء
00:15:21والطريقة التي سيتواصلون بها مع بعضهم البعض.
00:15:23مثل كيف تعرض وكيلاً،
00:15:24أتخيل أنه سيكون ملف markdown
00:15:26يحتوي على "إليك ما أنا قادر على فعله"،
00:15:28مثل نمط "أشركني يا مدرب"، حيث يقول:
00:15:30"لدي هذه المهارات، يمكنني تسديد الثلاثيات،
00:15:32ويمكنني المتابعة، أشركني في اللعب".
00:15:34وبعد ذلك يمكنهم اكتشاف بعضهم البعض بهذه الطريقة.
00:15:39وأتخيل أن لدينا ملف skills.sh من أجل،
00:15:43بمثابة مدير حزم للمهارات.
00:15:47سيكون لدينا مدير حزم للوكلاء
00:15:49وملفات markdown الخاصة بالوكلاء.
00:15:51هذا شيء سيحدث بكل بساطة.
00:15:54أعني، أنا متأكد أنه حدث بالفعل
00:15:57وأن أحدهم قد نشر شيئاً ما،
00:15:58لكنه لم ينتشر بشكل واسع بعد.
00:16:00- هذا منطقي تماماً.
00:16:03شكراً لك، شكراً لك.
00:16:04إذا كان لديكم أي أسئلة أخرى، أيها الحضور،
00:16:06ضعوها في الدردشة.
00:16:08في هذه الأثناء، هل تود الاستمرار، جون؟
00:16:10- أجل، بكل تأكيد.
00:16:12المهارات مجرد مجلد، لا خوادم ولا استضافة.
00:16:15والمهارة تكون داخل دليل (directory)
00:16:20وتعطيها اسماً ما، ثم اسم المهارة
00:16:24أو اسم ملف المهارة يجب أن يكون skill.md.
00:16:28هذا يسمح للوكلاء في أنماط الاكتشاف الخاصة بهم
00:16:31بالعثور عليها.
00:16:32إنه مجرد عُرف تم وضعه لكي تعمل الأدوات
00:16:35بشكل أفضل مع هذه المهارات.
00:16:36فهو يسهل كثيراً بناء مديري الحزم
00:16:39والتنظيم وكل شيء.
00:16:41ويمكن للمهارة أيضاً أن تأتي مرفقة بشيء ما.
00:16:45يمكن أن تحتوي على نصوص برمجية مدمجة، وملفات مرجعية،
00:16:49إلى آخره، كل هذه الميزات حيث يمكن للمهارة
00:16:53الوصول إلى أشياء أخرى مُشار إليها داخلها.
00:16:56لذا سترون أن المهارة ستحتوي على بيانات وصفية (front matter).
00:17:01بشكل افتراضي، تحتاج إلى اسم ووصف.
00:17:04والاسم سيكون.. مطابقاً لاسم..
00:17:08إذا نظرت إلى الهيكل.
00:17:10فلو أردنا إنشاء مهارة باسم my-skill،
00:17:12ستسميها my-skill هنا.
00:17:17والوصف أمر بالغ الأهمية
00:17:20لأنه يحدد متى سيتم استخدام هذه المهارة
00:17:23من قبل الوكيل.
00:17:24فالوكيل سيقول،
00:17:26سيعمل على المهمة التي قد توكلها إليه.
00:17:29وإذا وصل إلى نقطة يرى فيها،
00:17:31"أوه، أحتاج لشيء يطبق
00:17:33معايير المبيعات"، فعندها سيقوم بتحميل هذه المهارة.
00:17:38سيستخدم أداة تحميل المهارات ويحمل هذه المهارة.
00:17:41لذا تصبح هذه الأوصاف حاسمة.
00:17:42والطريقة التي تكتبها بها،
00:17:43إذا كنت ستستخدم المهارات بأسلوب "التحميل الكسول" (lazy manner)،
00:17:46وإلا يمكنك استدعاء المهارات مسبقاً باستخدام علامة الشرطة المائلة
00:17:50والتعامل معها كأوامر.
00:17:52أعتقد أن لدي شريحة حول الأوامر مقابل المهارات،
00:17:55لكن في الأساس، تاريخياً، كانا شيئين منفصلين
00:18:00والآن تم دمج كليهما في واحد.
00:18:03المهارات كانت سابقاً تُحمل فقط عند الحاجة (lazy loaded)،
00:18:04لكن الآن يمكن للمستخدمين استدعاؤهما باستخدام الشرطة المائلة
00:18:08أو يتم تحميلهما تلقائياً بواسطة الوكيل.
00:18:12وبذلك، أقصد أنك إذا ضغطت على الشرطة المائلة هنا،
00:18:17يمكنك رؤية قائمة بالمهارات المتاحة،
00:18:19والتي يمكنك استدعاؤها يدوياً إذا أردت،
00:18:22أو يمكنك الانتظار، وسيقوم الوكيل باستدعائها عند حاجته إليها.
00:18:27لذا من هنا، لم يعد التركيز..
00:18:32- أعتقد أنك ستتطرق لهذا يا جون،
00:18:39لكني شخصياً أود سماع مثال ملموس.
00:18:43مثل، ما هي المهارة الصغيرة والمحددة التي تنصح
00:18:47الجميع ببنائها أولاً لفهم هذا النموذج؟
00:18:52- أوه، هذا.. دعني أعطيك ما أعتقد
00:18:55أنه أحد أفضل الأمثلة حالياً.
00:18:57في الأساس، بعض مشاكل المهارات التي نواجهها
00:19:03في Vercel هي أننا نطلق التحديثات
00:19:07بوتيرة سريعة جداً، وبسرعة مذهلة.
00:19:12والوكلاء والنماذج لديهم تواريخ انقطاع للمعرفة،
00:19:15والتي تعود لبضعة أشهر مضت، أو حتى عام أو أكثر.
00:19:19لذا، بشكل افتراضي،
00:19:24إذا أعطيت الوكيل مهمة، فقد يستخدم Next.js 14،
00:19:30بينما يكون ذلك قد أصبح قديماً بعدة إصدارات.
00:19:33وقد يستخدم AI SDK، الذي، كما تعلمون،
00:19:35أوقف مؤخراً ميزات مثل generate object،
00:19:39والتي أصبحت الآن جزءاً من generate text
00:19:41لجعل واجهة برمجة التطبيقات أكثر معيارية وسهولة في المتابعة.
00:19:45وهكذا ستواجه هذه المشكلات حيث
00:19:50سيكون الوكيل مستخدماً لإصدار قديم
00:19:51وأنت تحاول القيام بشيء ما
00:19:53بينما تقرأ الوثائق وتجد
00:19:54أن الأشياء غير متزامنة وقديمة.
00:19:56وهكذا يتعثر المشروع لبعض الوقت،
00:20:00محاولاً الفهم.. لأنك والوكيل
00:20:03لستما متوافقين على ما هو مطلوب.
00:20:05لذا لتنسيق عملك مع الوكيل،
00:20:08يمكنك إنشاء مهارة تقول ببساطة،
00:20:11"استخدم هذا الإصدار من React، وهذا الإصدار من AI SDK،
00:20:16وهذا الإصدار من سير العمل (workflow)".
00:20:18وبعد ذلك يمكنك وضع مراجع
00:20:19حول مكان العثور على المعلومات الخاصة بها.
00:20:22على سبيل المثال، مهارة بنيتها لـ Vercel،
00:20:28دعوني استعرضها.
00:20:33مهارة سير عمل Vercel (Vercel workflow skill) هي هذه
00:20:40التي أطلقتها قبل بضعة أيام.
00:20:43والطريقة التي نقوم بها بذلك،
00:20:46هي أننا نقول ببساطة لأننا مهتمون جداً
00:20:49بأرقام الإصدارات،
00:20:50بدأنا بنشر التوثيق مع حزم NPM الخاصة بنا
00:20:54ونخبر الوكيل أن طريقة عمله قديمة،
00:20:58وأن معرفته بسير العمل قديمة.
00:20:59نحن نعلم ذلك لأن سير العمل هذا يتم تحديثه
00:21:02يومياً تقريباً الآن بينما نقترب من الإطلاق الرسمي.
00:21:06ولكن ما يمكننا فعله هو القول،
00:21:10لقد قمنا بدمج الوثائق.
00:21:11لذا كلما احتجت للبحث في سير العمل،
00:21:13اطلع على الوثائق التي أرفقناها
00:21:16وتحقق من أحدث نسخة.
00:21:18وهذا سمح لي في كل مرة أبدأ فيها سير عمل،
00:21:22ألا أقلق بشأن عثوره على معلومات قديمة.
00:21:25سيجد دائماً المعلومات المرفقة
00:21:27مع حزمة NPM ليكون هناك تزامن
00:21:32وتوافق مع الإصدار نفسه.
00:21:34هذا مثال بسيط جداً، المهارة بأكملها هي في الأساس
00:21:38"اذهب واقرأ الدليل" مع بعض أفضل الممارسات الجوهرية
00:21:42كمراجع سريعة.
00:21:44هذه مهارات تعالج قضايا
00:21:48امتلاك الوكلاء لتواريخ انقطاع للمعرفة
00:21:53ومواجهة مشاكل في أرقام الإصدارات وما إلى ذلك.
00:21:57أما عن مهارة يمكنك كتابتها لنفسك،
00:22:01سأقول إذا استخدمت المهارة،
00:22:07سأقوم بتوضيح مهارة تسمى "إنشاء مهارة" (create skill).
00:22:11إذا بحثت في skills.sh عن create skill،
00:22:14لا أعلم إن كان..
00:22:23لذا إذا اخترت مهارة إنشاء،
00:22:28ربما اختر تلك الخاصة بفريق Claude code.
00:22:33لنرى، أعتقد أننا نشرنا مهاراتهم.
00:22:39عذراً، هذا الأمر لم يكن مخططاً له مسبقاً.
00:22:42- أجل، يمكنك ذلك بينما تبحث عنها.
00:22:46أوه، مذهل، تفضل.
00:22:47- كان عليّ التفكير في Anthropic
00:22:49بدلاً من Claude code.
00:22:50أجل، إذا جلبت إحدى مهارات الإنشاء الخاصة بهم
00:22:54أو أحد أنماطهم، يمكنك قول "أنشئ مهارة"
00:22:58ثم، عذراً، يمكنك قول "أنشئ مهارة" واكتب،
00:23:02فلنقل: "انظر إلى أسلوبي في الكتابة
00:23:09في ملف readme.md وأنشئ مهارة
00:23:12تتبع دائماً هذا الأسلوب في الكتابة".
00:23:14وبعد ذلك سيأخذ كل ما هو موجود في ملف readme
00:23:19ويقوم بإنشاء مهارة هي في الأساس
00:23:21بمثابة أسلوبك الشخصي في الكتابة،
00:23:23بحيث يمكنك من حينها استدعاء المهارة
00:23:26باسم "أسلوب كتابة جون" أو غيره.
00:23:28ويمكنك تزويده بأطنان من الوثائق
00:23:31أو روابط لمنشورات مدونتك
00:23:33أو منشوراتك الخاصة أو لغة العملاء أو أي شيء
00:23:37وتغذيتها للنظام فحسب.
00:23:38أعتقد أن هذه دائماً نقطة بداية جيدة:
00:23:40ما الذي أملكه بالفعل
00:23:42وأريد أن أكون قادراً على إعادة إنتاجه مجدداً؟
00:23:43على سبيل المثال، ما هو الشيء الذي تستخدمه باستمرار
00:23:46وتعلم أنك ستستخدمه بشكل أكبر؟
00:23:50عادةً ما يكون ذلك رسائل العملاء،
00:23:53والتدوين، والمحتوى، والمواد
00:23:56التي أنتجتها في الماضي
00:23:57وتريد إنتاج المزيد منها.
00:23:59لذا، نعم، هذا أسلوب رائع لتبدأ به.
00:24:04- هذا اقتراح جيد حقًا.
00:24:05سأجرب ذلك بالتأكيد.
00:24:06أردت فقط قراءة بعض التعليقات
00:24:08في الدردشة هنا.
00:24:10قال ديف إننا أنشأنا مهارات
00:24:14للسماح لمؤسس شركة ناشئة لم يبرمج منذ 10 سنوات
00:24:17بالمساهمة في كتابة الكود
00:24:19دون تجاوز الحدود الهيكلية
00:24:23في قاعدة بيانات برمجية جديدة.
00:24:24وجدت أن هذا استخدام جيد جدًا للمهارات،
00:24:27حيث يساعد الأشخاص غير التقنيين أو المبتدئين في البرمجة
00:24:30على المشاركة في عملية البرمجة
00:24:32دون المساس بمعايير الجودة، وهو أمر رائع.
00:24:38وأردت أن أقول أيضًا، لقد ذكر ديف سابقًا،
00:24:42سأؤكد على ما قاله جون،
00:24:45بخصوص الأدوات الشائعة هذه الأيام.
00:24:47نعم، أدوات MCP الوحيدة التي يستخدمها هي Chrome dev tools،
00:24:52وواحدة للتفاعل مع أداة إدارة المشاريع
00:24:56مثل Linear أو JIRA، والعمل مع قاعدة بيانات.
00:24:59هذا مجرد تأكيد لكل ما قلته سابقًا.
00:25:02قبل أن ننتقل، لدينا أيضًا سؤال في الدردشة
00:25:07حول رأيك في تفوق ملفات agents.md على المهارات
00:25:12في منشور مدونتنا حول تقييم الوكلاء الذي نشرناه.
00:25:17لا أعرف ما إذا كنت ستتطرق إلى ذلك
00:25:19في مرحلة ما من عرضك التقديمي.
00:25:21أعلم أننا دخلنا في عدة مواضيع فرعية هنا،
00:25:25لكن هل تود مناقشة ذلك الآن؟
00:25:27- نعم، بالتأكيد.
00:25:28تقييم النماذج والوكلاء
00:25:34أمر صعب للغاية.
00:25:38لأنه غالبًا عند كتابة تقييمات الاستدعاء لها،
00:25:42فإنك تختبرها مقابل مشروع جديد وفارغ
00:25:46لا يتضمن أي سياق مسبق.
00:25:49وتعطيه سيناريو واحد محدد،
00:25:51مثل: "مع هذا المشروع الفارغ، جرب استخدام Next.js" أو ما شابه.
00:25:56وإذا كتبت ذلك كتقييم،
00:25:59لكنك لم تأخذ في الاعتبار أن، كما تعلم،
00:26:03إصدار Opus 4.6 قد صدر اليوم،
00:26:05أو أيًا كان النموذج الذي تستخدمه
00:26:07أو طبيعة المشروع وكل هذا السياق الإضافي
00:26:10أو النموذج أو الوكيل أو المشغل.
00:26:13لذا فإن Claude Code سيكون له توجيه نظام مختلف،
00:26:16وكذلك Cursor سيكون له توجيه نظام مختلف.
00:26:17وهناك الكثير من المتغيرات،
00:26:21والنماذج نفسها، كما تعلم،
00:26:24غير محددة النتائج بطبيعتها على أي حال،
00:26:26لذا فإن اختبارها أمر صعب للغاية.
00:26:31ومع ذلك، فإن مقارنة agents.md مقابل المهارات (Skills)
00:26:37هي مقارنة بين فرض السياق وبين تحميله عند الحاجة.
00:26:42وإذا لخصت منشور المدونة في سؤال:
00:26:47هل فرض السياق أفضل من تحميله عند الطلب؟
00:26:51فالإجابة ستكون نعم،
00:26:53لأنه سيعامل السياق المفروض
00:26:57كتعليمات أولية، وهي الأمر الأكثر أهمية
00:27:00في بداية دورة حياة الوكيل.
00:27:03سيعلمه ببساطة،
00:27:08أن هذا هو ما نعمل عليه.
00:27:10وهذا هو أفضل شيء يمكننا القيام به.
00:27:12في الواقع، لدي شيء يتطرق لهذا
00:27:14كنت سأعرضه في النهاية،
00:27:16حيث يمكنك تهيئة أو تحميل المهارات مسبقًا أيضًا.
00:27:20لذا، فالأمر ببساطة يتعلق
00:27:25بآلية عمل النماذج.
00:27:29وآمل ألا يُفهم منشور المدونة
00:27:33بأي شكل آخر، فهذا لا يعني أن المهارات سيئة.
00:27:35بل يعني فقط أنه إذا كنت بحاجة ماسة لاتباع التعليمات
00:27:39دائمًا، فإن استخدام ملف agents.md
00:27:42هو الطريقة التي أراها مناسبة.
00:27:44رغم أنني لم أقرأ المنشور منذ أسبوع تقريبًا.
00:27:48- نعم، هذا منطقي جدًا.
00:27:50نعم، رائع.
00:27:51حسنًا، تذكير للجميع في المجتمع،
00:27:53إذا كان لديكم المزيد من الأسئلة، فاطرحوها.
00:27:56وإلا، فاستمر يا جون.
00:27:57- حسنًا.
00:28:01نعم، ملف المهارة هو مجرد ملف Markdown.
00:28:04ويمكنك رؤية هذا المثال، التعليمات:
00:28:06"عند مراجعة كود React، اجعله للخادم فقط، وحسن هذا،"
00:28:09ووضع قائمة بالأشياء هناك
00:28:12التي تريد تنفيذها.
00:28:14ثم يمكنك تضمين سكربتات ليرجع إليها
00:28:19أو أشياء تريد أن تكون قادرًا على استدعائها
00:28:21والحصول على أي نوع من الحزم، مجموعة من، عذرًا،
00:28:25مجموعة من الأشياء التي تريده أن يراها.
00:28:30حسنًا.
00:28:32نعم، المهارات تشبه إلى حد ما إضافة وكيل،
00:28:37أو إضافة مهندس برمجيات خبير.
00:28:38حسنًا، لنواصل التحرك.
00:28:42والآن، حالات الاستخدام.
00:28:46فلنعرض هذا بملء الشاشة.
00:28:49حسنًا، بالنسبة لبعض الأنماط،
00:28:52تعتبر أفضل ممارسات React واحدة من،
00:28:57واحدة من أكثر، أو ربما المهارة الأكثر تحميلًا
00:29:00في مدير حزم المهارات.
00:29:02وهي تقوم فقط بتعزيز
00:29:08ما هي أفضل الممارسات،
00:29:09حتى لما يتجاوز ما تم تدريب النموذج عليه.
00:29:12لأن النموذج تم تدريبه على أكواد الجميع
00:29:14بينما تريده أنت أن يتبع أنماطك الخاصة.
00:29:18ولننتقل هنا.
00:29:21أتمتة سير العمل.
00:29:26إذا أردت يومًا ما تجميع شيء ما
00:29:27في ملف zip أو غيره،
00:29:30فالأمر يشبه تقريبًا سكربت بلغة طبيعية.
00:29:34أفكر غالبًا في أي تطبيق هذه الأيام.
00:29:40فإما أن يتم اختزاله إلى سكربت
00:29:44أو أن يتطور ليصبح وكيلًا ذكيًا
00:29:47لأنك إما تحتاج إلى مخرجات محددة
00:29:50حيث تطابق المدخلات المخرجات دائمًا
00:29:53أو تحتاج إلى وكيل يكون قادرًا على استنتاج
00:29:56ما يحدث إذا لم تتطابق البيانات تمامًا.
00:29:59لذا إذا كنت ترغب في إنشاء هذا النوع من الأتمتة
00:30:02بدلاً من سكربت جامد، حيث يمكنه بذكاء
00:30:07تجميع الأشياء، يمكنه مثلاً إذا كنت،
00:30:10إذا أخبرت وكيلك بعمل git commit وقال:”
00:30:15"لقد لاحظت أن لديك مقطع فيديو في هذا المشروع."
00:30:20"سأقوم بتجاهله لأن مقاطع الفيديو هي ملفات ضخمة (blobs)"
00:30:25"ولا نريد إضافتها."
00:30:26إنه عادة ما يكون ذكيًا بشأن هذه الأمور.
00:30:29بينما في السكربت، إذا كتبته بنفسك،
00:30:30سيتعين عليك مراعاة كل تلك السيناريوهات يدويًا.
00:30:33لذا إذا كنت ترغب في إنشاء أتمتة له،
00:30:36يمكنك إعداد سلسلة الأحداث تلك وسيقوم بها.
00:30:41وكذلك الحواجز الوقائية (Guardrails)، حيث يمكنك إخباره،
00:30:44"يرجى مراجعة التعليمات، يرجى مراجعة الإرشادات،"
00:30:49"يرجى مراجعة الألوان،" وتزويده بكل تلك المعلومات.
00:30:53وهذه المهارات غالبًا ما يكون من الجيد تحميلها مسبقًا
00:30:56للتأكد من أن وكيلك، حسنًا، هناك وكلاء فرعيون،
00:31:00هناك الكثير من السيناريوهات المتقدمة للحواجز الوقائية أيضًا.
00:31:02ربما يكون ذلك موضوع ورشة عمل أخرى في يوم آخر.
00:31:07حسنًا، مجددًا، فرض المعايير،
00:31:12وأتمتة خطوط الإنتاج وحماية أنظمتك.
00:31:17حسنًا، لنقم بهذا.
00:31:21حسنًا، لنتخطى العرض المباشر لهذا اليوم.
00:31:30نعم، لنتحدث عن النشر.
00:31:37النشر هو في الأساس مجرد الرفع إلى GitHub
00:31:46وبعد ذلك يمكن لأي شخص الرجوع إلى مستودع GitHub الخاص بك
00:31:51وإضافة مهارتك.
00:31:52لا يحتاجون للبحث عن الرابط بالضبط.
00:31:56على سبيل المثال، إذا نظرت إلى skills.sh لإضافة مهارات،
00:32:00سأحضر هذا هنا، سترى مثلًا،
00:32:04إذا اخترنا واحدة عشوائية هنا من browser use،
00:32:08ستجد رابطًا لنسخه ولصقه لتثبيت مهارة،
00:32:11ولكن يمكنك فقط إضافة،
00:32:13لا أعتقد أن لدي browser use مثبتًا.
00:32:14لذا سآخذ هذا وأقوم بتجربته،
00:32:18سأفتح تبويبًا وأفعل ذلك بهذه الطريقة.
00:32:23إذا لم أقم بتحديد المهارة يدويًا
00:32:29وأعطيته فقط مستودع GitHub،
00:32:31فسيذهب ويبحث عن المهارات،
00:32:34باستخدام أمر install skill package.
00:32:36سيسألك عن المحررات التي تريد استخدامها.
00:32:39سأختار Claude Code حاليًا.
00:32:42سيسألك ما إذا كنت تريدها في مشروعك أم عالميًا،
00:32:45سأقول في المشروع، وربط SimLink يسمح للجميع
00:32:49بالرجوع إلى نفس الملف ثم المتابعة.
00:32:53ويمكنك أن ترى أنه على الرغم من أنني لم أحدد
00:32:55الملف بالضبط، إلا أنه ذهب ووجد مهارات Claude.
00:33:00حيث يحتوي browser use على ملف skill MD هذا.
00:33:09لذا، وإذا نظرنا إليه، فلنفعل ذلك.
00:33:13عذرًا، المهارة.
00:33:18يمكنك رؤية ما قاموا بشحنه هنا
00:33:22كمهارة لـ browser use، حيث يبدأ
00:33:26بتنسيق Markdown في الأعلى.
00:33:27إنها مهارة طويلة نوعًا ما.
00:33:32مع الاسم والوصف، وبها أدوات مسموح بها،
00:33:35توضح أنها مهارة تسمح للنموذج باستخدام
00:33:39browser use دون موافقة المستخدم.
00:33:42لذا فهي تعطيه صلاحيات بأن أي شيء
00:33:47يتعلق بـ browser use مسموح به.
00:33:49لذا إذا استدعيت هذه المهارة،
00:33:50فلن تضطر للموافقة على استخدام browser use في كل مرة.
00:33:53وبعد ذلك يوضح، إذا لم يكن مثبتًا لديك،
00:33:56كيفية تثبيته،
00:33:58ويعلمه بعض الأساسيات وكيفية استخدام هذه الأداة.
00:34:04حسنًا، لنعد إلى عرضنا،
00:34:09ونعم، كل ما عليك فعله هو رفع ملف Markdown
00:34:15إلى مستودع GitHub ثم استخدام أمر إضافة المهارات لإضافته.
00:34:19مرة أخرى، تأكد من تثبيت المهارات التي تثق بها فقط
00:34:23لأنه يجب معاملتها
00:34:26مثل حزم NPM أو السكربتات التي لا تريد استخدامها عشوائيًا
00:34:31دون معرفة مصدرها أو محتواها
00:34:35لأنك لا تعرف ما ينشره هؤلاء الأشخاص.
00:34:38تأكد من الوثوق بها.
00:34:40ويمكنك استخدام مستودعات خاصة
00:34:45أو وحدات Git الفرعية (sub modules) أيضًا.
00:34:48وهناك سجل مجتمعنا،
00:34:51الذي عرضته عدة مرات بالفعل.
00:34:54حسنًا، رائع.
00:34:55من هنا، تقوم فقط بإنشاء ملف Markdown،
00:35:00وتنشره في مستودع GitHub
00:35:02وبعد ذلك يمكننا اكتشافه وتثبيته.
00:35:05أريد أن أعرض استخدام المهارات الرائعة.
00:35:09هل هناك أي أسئلة قبل أن أتعمق في هذا الأمر؟
00:35:13- نعم، هناك سؤال طُرح سابقاً.
00:35:16كم عدد الأمثلة التي يحتاجها النموذج اللغوي الكبير لحزمة أو مكتبة
00:35:21غير معروفة تماماً، بفرض أنها غير موجودة
00:35:26في بيانات تدريب النموذج،
00:35:28ليتمكن من استخدامها كـ "مهارة" بشكل صحيح
00:35:31والحصول على نتائج جيدة؟
00:35:33- كم عددها للحصول على نتائج جيدة؟
00:35:36عذراً، هل يمكنك قراءة السؤال مرة أخرى؟
00:35:39- نعم، بالطبع.
00:35:40كم عدد الأمثلة لحزمة أو مكتبة
00:35:45غير معروفة تماماً يحتاجها النموذج، بفرض أنها غير موجودة
00:35:49في بيانات تدريبه، ليستخدمها كـ "مهارة"؟
00:35:53- تقصد كم عدد الأمثلة التي يجب وضعها
00:35:55داخل المهارة؟
00:35:56- نعم، بالضبط.
00:35:57في الحقيقة، أحد الطرق للتفكير في الأمر
00:36:00بدلاً من التفكير في عدد محدد من الأمثلة،
00:36:05هو تخيل المهارة ككتاب
00:36:09يحتوي على فهرس وفصول وما إلى ذلك،
00:36:12حيث إذا واجه العميل الاصطناعي موقفاً معيناً
00:36:14وقمت بإعطائه دليل إرشادات،
00:36:17تماما كما لو كان لديك دليل لسيارتك،
00:36:21فأنت لا تريد تصفح الصفحات إلا
00:36:26عندما يضيء ضوء فحص المحرك مثلاً.
00:36:29لست بحاجة لقراءة صفحات عن الإطارات
00:36:32أو غيرها في تلك اللحظة، صح؟
00:36:33لذا، إذا قمت بهيكلة مهارتك بطريقة
00:36:36تكون فيها المهارة الأساسية هي دليل السيارة،
00:36:38وهنا دليل سيارتك.
00:36:40وإذا احتاج لمعرفة سبب ضوء فحص المحرك
00:36:44أو كيفية عمل درج السيارة (لست ميكانيكياً)،
00:36:49يمكنه الذهاب لتلك الصفحة المحددة
00:36:51وتحميل ملف "ماركداون" آخر
00:36:53أو معلومات إضافية خاصة بالمهمة
00:36:57التي يقوم بها حالياً.
00:36:58لذا بدلاً من محاولة حشو كم هائل من الأمثلة
00:37:01عن كيفية عمل السيارة ككل،
00:37:06وكآلة متكاملة، يمكنك تقسيمها.
00:37:11ولا أقصد هنا كتابة كل هذا يدوياً.
00:37:14بل أقول، عندما تطلب من العميل إنشاء مهارة،
00:37:18اطلب منه تنظيمها بحيث تدرج الأشياء
00:37:23بناءً على متى سيحتاج لفصول محددة
00:37:26من هذا الكتاب؟
00:37:27بالمثل، يمكن للمهارات أن تحتوي على مراجع
00:37:30وتقوم بتحميل سياق إضافي عند الحاجة
00:37:33بناءً على المهمة الحالية.
00:37:35كما هو الحال مع معظم المكتبات،
00:37:39إذا فكرت في حزمة NPM مثلاً،
00:37:43فأنت لا تستورد منها عادةً إلا بعض الدوال
00:37:45لأنك لا تحتاج لكل دوال التاريخ
00:37:48الموجودة في مكتبة التواريخ.
00:37:50ولا تحتاج لكل المكونات
00:37:52في مكتبة المكونات.
00:37:53تحتاج فقط لأمثلة عن الأشياء المحددة
00:37:57المطلوبة لمهمتك الحالية.
00:37:59لذا حاول التفكير بالأمر بهذه الطريقة، حيث تقسمه
00:38:03حسب الحاجة، والمهمة، والمتطلبات،
00:38:07بدلاً من محاولة إجبار النموذج على استيعاب قاعدة بيانات كاملة
00:38:11داخل المشروع.
00:38:12- هذا منطقي جداً.
00:38:14سؤال آخر لدينا هنا: كيف تختبر
00:38:17ما إذا كان العميل قد تعلم حقاً حزمة جديدة
00:38:21من خلال المهارة؟
00:38:22هل هناك مطالبات بسيطة أو أنماط تقييم
00:38:25تنصح بها للتحقق من ذلك قبل تعميمها على الفريق؟
00:38:29- الإجماع العام وما أؤيده شخصياً
00:38:37هو ببساطة: قم بإنشاء شيء واستخدمه،
00:38:40وانظر أين يفشل ثم قم بالتعديل والتحسين.
00:38:43هذا جزء كبير من عقلية التطوير القائمة على الوكلاء (Agents)،
00:38:49بدلاً من الإفراط في التفكير في كيفية التنظيم
00:38:54والتخطيط وماهية المهارة المثالية،
00:38:57اصنع شيئاً ثم راقب مواضع الخلل
00:39:00وحسّنه بناءً على ذلك.
00:39:01أما بالنسبة للاختبار، فقد جربت طرقاً لفتح
00:39:08تسع جلسات مختلفة، بل وأكثر من ذلك بكثير،
00:39:13من أداة Claude Code، وكل منها محمل بمهارات مختلفة
00:39:15لمعرفة أيها يعطي أفضل أداء.
00:39:17وبعدها تحصل على كل هذه الأمثلة المختلفة
00:39:19وتحاول تحديد أي من هذه الأمثلة
00:39:24تبدو الأفضل لعينك البشرية،
00:39:26أو تجعل Claude يقيم نتائجه بنفسه.
00:39:29لكن هذا يصبح مهمة مستحيلة حالياً.
00:39:34لذا، بما أن المهارة في الأساس
00:39:37هي مجرد ملف ماركداون،
00:39:39اجعل فريقك يقوم بتحديثه مباشرة
00:39:40أو اطلب من العميل نفسه تحديثه.
00:39:43ما يمكنك فعله في نهاية أي محادثة
00:39:46هو القول، إذا فشل أي شيء: "من فضلك
00:39:49حدث المهارة بناءً على المحادثة الحالية"،
00:39:54أو شيء من هذا القبيل.
00:39:56وسيقوم هو بالبحث عن ملف الماركداون
00:40:00وتحديثه ثم رفع التغييرات.
00:40:02هذه هي الطريقة التي نعمل بها
00:40:08حالياً.
00:40:09بالطبع هناك أمور مثل أرقام الإصدارات
00:40:13وأشياء قد تسبب مشاكل إضافية.
00:40:16لكننا وصلنا لمرحلة أصبحت فيها النماذج
00:40:19أكثر كفاءة في تحميل المهارات.
00:40:21لا أعرف ما هي مقاييس الأداء
00:40:24لإصدار Opus 4.6 مقابل 4.5 أو GPT 5.3 مقابل 5.2 في التعامل مع المهارات،
00:40:29لكنني أراهن أنها أصبحت أفضل الآن
00:40:33مما كانت عليه صباح اليوم فقط.
00:40:35الأمر يشبه الكثير من تلك المشكلات
00:40:40حيث نعتقد أن علينا جعل الشيء مثالياً.
00:40:42ثم تقضي بضعة أسابيع في العمل عليه
00:40:44وعندما تطلقه أخيراً،
00:40:46تكون النماذج قد تغيرت خمس مرات
00:40:48منذ بدأت في المهمة.
00:40:49لذا، من الأفضل الإطلاق ثم التحسين المستمر
00:40:52بدلاً من محاولة تقديم شيء مثالي من البداية؛
00:40:56هذه أفضل نصيحة يمكنني تقديمها.
00:40:58- نعم، التحسين نحو العظمة.
00:41:00أليس كذلك يا جون؟
00:41:01- ITG (اختصار للجملة).
00:41:02- نعم، ITG.
00:41:04سؤال أخير قبل أن أتركك تكمل العرض.
00:41:08هل لاحظت وصولك لنقطة تناقص العوائد
00:41:10حيث لم يعد لإضافة المزيد من الأمثلة للمهارة
00:41:13أي تأثير في تحسين السلوك، أو حتى تشتت النموذج؟
00:41:17- لم ألاحظ ذلك.
00:41:23فأنا لا أضع الكثير في ملفات المهارات الخاصة بي.
00:41:27مهارة "إنشاء مهارة" التي أستخدمها تقوم بالكثير من التقسيم.
00:41:33أحتاج للبحث عن المهارة المحددة
00:41:35لأنني أستخدم مهارة شخص آخر.
00:41:37دعني أبحث عنها خلف الكواليس.
00:41:40قد يكون هذا شيئاً،
00:41:42لأنه يتعلق بملفات التكوين التي—
00:41:45- نعم، فقط اخفِ شاشتك
00:41:47وسنعيدها عندما تكون مستعداً.
00:41:49- حسناً، دعني أبحث.
00:41:52- أردت فقط أن أقول إننا وصلنا لحوالي 200 شخص
00:41:57في البث، وهذا رائع.
00:41:58مرحباً بالجميع.
00:41:59إذا كنتم قد انضممتم إلينا للتو،
00:42:01فلا تترددوا في طرح أسئلتكم في الدردشة
00:42:03وسنقوم بطرحها على جون.
00:42:07- نعم، يسعدني الإجابة عليها.
00:42:12- سأبحث عن المهارة التي أستخدمها.
00:42:16حسناً، تبدو الأمور جيدة.
00:42:19التي أستخدمها، أحتاج لمعرفة مصدرها.
00:42:27لا أعرف ما إذا كان بمجرد تثبيتها،
00:42:29يحتفظ النظام برابطها الأصلي
00:42:32أو إذا كانت معلومات NPX أو المهارات
00:42:36تحتوي على ذلك بالفعل،
00:42:37لكنني لا أريد تشغيل أوامر عشوائية أثناء البث.
00:42:43هذه المهارة تطلب من النموذج في الواقع
00:42:44استخدام نظام تحميل ثلاثي المستويات
00:42:47حيث توجد البيانات التعريفية والموارد المدمجة
00:42:49وتطلب منه صراحة تقسيم الأشياء
00:42:54إلى موارد وتعليمات إضافية.
00:42:57لذا أنا أستخدم الوكلاء (Agents) لإنشاء المهارات
00:43:02ومنذ ذلك الحين، لطالما فعلت ذلك بهذه الطريقة،
00:43:07سواء قبل ذلك حين كنت أنسخ وألصق الوثائق
00:43:11من Claude Code إلى العميل وأقول له:
00:43:13"من فضلك أنشئ مهارة بناءً على هذه الوثائق".
00:43:15والآن أستخدم هذه المهارة للقيام بذلك.
00:43:17ولم أحاول قط حشو الكثير من الأمثلة.
00:43:23أعلم أن هناك بعض القواعد العامة حول
00:43:28إبقاء ملف المهارة تحت 200 سطر تقريباً،
00:43:31لكن مرة أخرى، هذا يعتمد على النموذج،
00:43:35والنماذج في تطور مستمر.
00:43:36نعم، هذه المهارة تقترح أقل من 200 سطر.
00:43:39لذا سأقول: اعتمدوا البساطة.
00:43:44وإذا وجدتم فجوات فقوموا بحلها،
00:43:47خصوصاً إذا كنت خبيراً في مجالك
00:43:50فستتمكن من تحديد تلك الفجوات.
00:43:52أما إذا لم تكن خبيراً وبدأت
00:43:56في استخدام مهارة لست ملمّاً بها،
00:43:58فراقبها عن كثب بدلاً من تركها تعمل وحدها.
00:44:01لا تتوقع بناء نظام تنسيق وكلاء ضخم،
00:44:03وتثبيت مهارات ليس لديك أدنى فكرة عنها
00:44:06وأن يعمل كل شيء تماماً كما تتوقع.
00:44:08عليك مراقبة تلك العمليات.
00:44:11- نعم، نصيحة جيدة جداً، 100%.
00:44:13رائع.
00:44:17- حسناً.
00:44:20على سبيل المثال، الفيديوهات التي صنعتها هنا في هذا المشروع،
00:44:22تمت جميعها باستخدام مهارة "دليل إنشاء Remotion"،
00:44:28المتاحة على موقع skills.sh.
00:44:34يمكنكم فقط البحث عنها.
00:44:37و Geist.
00:44:39Geist هو نظام تصميم من البرازيل (Vercel)
00:44:43و Remotion هو— دعني أبحث عن ذلك خلف الكواليس.
00:44:48هو وسيلة لصناعة الفيديوهات برمجياً.
00:44:53لقد دمجت مهارة من Remotion
00:45:01وكان عليّ فعلياً إنشاء مهارة Geist.
00:45:05ذهبت إلى أحد مستودعات Vercel،
00:45:09أعتقد أنها كانت الصفحة الرئيسية والوثائق.
00:45:12وقلت: "من فضلك استخرج كل المعلومات"
00:45:15مثل معلومات التصميم والمهارات والسمات والخطوط
00:45:19والتنسيقات والنصائح وكل شيء
00:45:23وأنشئ مهارة من هذا.
00:45:25وبعد القيام بذلك فقط، أي:
00:45:27"خذ مهارة Remotion هذه"
00:45:30"وخذ كل معلومات التصميم هذه"
00:45:32من تلك المواقع، وأنشئ مهارة جديدة
00:45:37وسمّها "Create Remotion Geist".
00:45:41ومن ذلك العمل البسيط فقط، تمكنت من إنشاء
00:45:43هذه الأنواع من الفيديوهات، المصممة بهوية واضحة جداً.
00:45:48هذه الأنواع من الفيديوهات، والتي هي بشكل كبير،
00:45:57كما تعلمون، مهارات مصممة بهوية برازيل (Brazil).
00:46:01ربما ينبغي عليّ جعلها تكبّر الصورة قليلاً في الفيديوهات.
00:46:04بالنظر إلى هذه النتائج النهائية،
00:46:07كان عليّ أن أجعلها تكبّر الصورة قليلاً،
00:46:09لكن بالأساس تم توليد كل هذا
00:46:12بينما ذهبت أنا لتناول شطيرة، تماماً؟
00:46:14كل تلك الفيديوهات كانت، كان لدي هذا المخطط
00:46:16لكيفية سير ورشة العمل.
00:46:18قلت، هي، اصنع كل هذه الفيديوهات بناءً على مخططي
00:46:20والبحث الذي قمت به.
00:46:22وكل هذه الفيديوهات ظهرت في النهاية.
00:46:24لذا مجدداً، المهارات فقط تأخذ،
00:46:29سيكون ذلك عبر أمر "إنشاء مهارة" داخل
00:46:33مستودعات "ريسلر" (reseller)
00:46:36والقول، اسحب كل تلك الأشياء،
00:46:38واجمعها مع مهارة إنشاء "ريموشن" (remotion).
00:46:41وبعد ذلك حصلت على ما أريد.
00:46:42ثم شاركت ذلك مع الفريق
00:46:43والآن يمكن لأي شخص القيام بذلك.
00:46:45مجدداً، كان ذلك،
00:46:47مقدار الجهد والعمل الذي بذلته فيه
00:46:50كان ربما بضع دقائق.
00:46:54بالطبع الوكيل استغرق، كما تعلمون،
00:46:55استغرق بعض الوقت للعثور على كل شيء
00:46:57للعثور على كل التصاميم وكل شيء.
00:46:59لذا فإن إجمالي وقت العمل كان ربما ساعتين،
00:47:03لكن الجهد الفعلي الذي بذلته
00:47:06كان بسيطاً للغاية
00:47:08وكان يعمل فقط في الخلفية
00:47:09بينما كنت أقوم بأشياء أخرى.
00:47:11لذا، خذ بالتأكيد أي عمل حالي لديك
00:47:15وانظر، فكر في أشياء يمكنك حزمها
00:47:17وبناؤها بهذه الطريقة.
00:47:19وبالمثل، إذا نظرت إلى مهارة تصميم "جايست" (Geist)،
00:47:24إذا أردت إنشاء موقع يبدو أجمل،
00:47:27يمكنني أخذ تصميم "جايست" الخاص بنا والقول،
00:47:31مثلاً في مجلد ورشة العمل،
00:47:35يرجى بناء صفحة هبوط لهذه الورشة.
00:47:39وهذا سيقوم ببساطة بإنشاء مجلد لورشة العمل
00:47:46ثم يغذي النظام بكل معلومات التصميم تلك
00:47:50ويقوم ببنائها باستخدام تلك المعلومات.
00:47:55وقد ينجح هذا أو لا بناءً على، كما تعلمون،
00:47:58مزاج نموذج "أوبوس 4.6" (Opus 4.6) اليوم.
00:48:01لم تسنح لي الفرصة لاختباره حقاً
00:48:04بما أنه أُطلق قبل دقائق قليلة من بدئنا.
00:48:06لكن هذا سيحتوي على كل تلك المعلومات
00:48:11وسيكون قادراً على البدء بالعمل على ذلك.
00:48:14وبالمثل، يمكنني أن أبدأ
00:48:17سلسلة محادثات مختلفة تماماً لموقع آخر
00:48:20إذا أردت القيام بآخر في،
00:48:25لنسمّه مجلد السيارات،
00:48:29صفحة هبوط لسيارات تبدو رائعة.
00:48:34لا أعلم، لست خبيراً بالسيارات.
00:48:36ومن هناك، يمكننا البدء بالقيام
00:48:40بكل هذه الأشياء.
00:48:41وواحدة من أفضل الأوامر التي يمكنك كتابتها هي،
00:48:46إذا كنت تحاول ابتكار أفكار وتصاميم،
00:48:49خاصة مع ميزة "الفرق" (Teams) الجديدة،
00:48:54يمكننا تشغيل تصميم "جايست" والقول،
00:48:57في مجلد ورشة العمل،
00:48:59لنفعل ذلك في مجلد "تنويعات ورشة العمل".
00:49:09يرجى بناء صفحة هبوط.
00:49:12لنفعل، يرجى بناء تسعة تنويعات لصفحات هبوط
00:49:17لهذه الورشة.
00:49:22والآن لديهم بالفعل ميزة الفرق حيث يمكننا القول،
00:49:23استخدم عضواً من الفريق.
00:49:28لنقل، أنشئ فريقاً لبناء تسعة تنويعات
00:49:34وشيء من هذا القبيل.
00:49:38فقط بلغة إنجليزية بسيطة.
00:49:40والآن يمكن لهذا حتى أن يشكل فريقاً.
00:49:41والآن لدينا كل هذا العمل الذي يحدث.
00:49:44والآن يمكنني الذهاب لتناول شطيرتي، تماماً؟
00:49:47لأنني جائع، وحان وقت الغداء.
00:49:49وبعد ذلك بمجرد عودتي،
00:49:52هذا يستخدم "تيل ويند 4" (Tailwind 4)،
00:49:54أستطيع رؤية أنه يعمل بشكل جيد.
00:49:55وبمجرد عودتي،
00:49:56سأرى ما هي كل هذه التنويعات
00:49:58وأقوم بتعديلها حتى أصل لشيء يعجبني.
00:50:03وهناك أيضاً، بافتراض أن هذا سينتهي قريباً،
00:50:09يمكنني استعراض بعض أدوات تصحيح الأخطاء.
00:50:11- قال أحدهم في الدردشة، عفواً جون،
00:50:12قال أحدهم للتو في الدردشة،
00:50:14إن من أفضل الأوامر التي أكتبها هي إضافة "من فضلك" في النهاية.
00:50:17- أوه نعم. - صحيح.
00:50:18- من فضلك.
00:50:21أعني، هناك الكثير من الدراسات حول النماذج المختلفة
00:50:23وكيفية استجابتها للتشجيع وما إلى ذلك.
00:50:27أحد الشخصيات المفضلة التي كنت أعطيها للأوامر
00:50:33أو لهؤلاء الوكلاء كانت،
00:50:36يرجى التصرف كمجيب في موقع "ستاك أوفر فلو" (Stack Overflow)
00:50:41حيث يكون ناقداً للغاية لأي شيء أسأل عنه
00:50:45وبأن السؤال قد تمت الإجابة عليه بالفعل أو، كما تعلمون،
00:50:48لكن الإجابات التي كان يقدمها كانت مختصرة للغاية
00:50:51ومحددة جداً بما يتوافق مع سؤالي بالضبط.
00:50:56أجل، لا أعرف، نحن لا نتحدث عن الشخصيات كثيراً،
00:51:02ليس بالقدر الذي اعتدنا عليه عندما لم تكن النماذج،
00:51:04النماذج أصبحت أفضل بكثير الآن.
00:51:06لم نعد مضطرين لإجبارها على أداء المهام
00:51:10بالقدر الذي كنا نفعل.
00:51:11- قال أحدهم أيضاً في الدردشة،
00:51:15يبدو أن بعض النماذج تؤدي بشكل أفضل إذا قلت
00:51:18أنك ستُطرد من العمل.
00:51:20- أوه نعم. - إذا لم يفعلوها بشكل صحيح.
00:51:22لا أعرف مدى صحة ذلك، لكنه مضحك.
00:51:25- إنه صحيح تماماً.
00:51:27بعض النماذج سترد عليك الآن.
00:51:32أعتقد أن الكثير من نماذج GPT كانت تقول،
00:51:34لا تتحدث معي بهذه اللهجة.
00:51:35- مذهل، واو.
00:51:38- يتصرفون وكأنهم هم المسؤولون وما إلى ذلك.
00:51:39سأقول فقط، قم بتشغيل الخادم لي في الخلفية.
00:51:46(صوت كتابة على لوحة المفاتيح)
00:51:49يمكنني مثلاً بناء مهارة.
00:51:50تصل لمرحلة معينة عندما تكتب
00:51:52فقرة كاملة وتتساءل،
00:51:54هل هذا شيء سأكتبه كثيراً؟
00:51:56وإذا كان كذلك، إذا كنت قد كتبت فقرة للتو،
00:51:59وتعلم أنك ستكتبها كثيراً، يمكنك الدخول والقول،
00:52:01أنشئ مهارة من الفقرة الأخيرة.
00:52:03لذا هذا يجب أن يكون موقع السيارات الخاص بنا.
00:52:07لنرى كيف أصبحت النتيجة.
00:52:09يا للهول، "سيارات تحرك روحك".
00:52:14باللونين الأبيض والأسود، بأسلوب "برازيل".
00:52:16لا أعرف من أين أتى بالصور.
00:52:18أعتقد أنه يظن أن هذه سيارات رائعة.
00:52:22وها هو ذا.
00:52:27أعني، أعلم أننا ربما رأينا صفحات هبوط
00:52:29مليون مرة حتى الآن، لكنها عادية جداً.
00:52:34إنها تتبع إرشادات التصميم
00:52:36الخاصة بشكل خط وتصميم "جايست".
00:52:42ومن هنا، يمكننا في الواقع،
00:52:44أحد الحزم الرائعة التي أطلقناها مؤخراً
00:52:47من "برازيل"، تسمى "متصفح الوكيل" (Agent Browser).
00:52:54وهناك مهارة تسمى "متصفح الوكيل"،
00:52:56والتي يجب أن تكون متاحة هنا في مختبرات برازيل.
00:53:01وهذا يفتح أدوات مطوري كروم
00:53:06وسينشئ اتصالاً
00:53:08بحيث يمكنك القيام بأشياء مثل "يرجى التقييم".
00:53:11سأكتب فقط.
00:53:13يرجى تقييم أداء صفحة الويب هذه
00:53:15لنرى ما إذا كان هناك أي شيء يمكننا فعله
00:53:17لتحسينها لمستخدمينا.
00:53:18وبعد ذلك يقوم "متصفح الوكيل"،
00:53:23باستخدام إحدى أدوات الأتمتة وأدوات مطوري كروم
00:53:26حيث يمكنه الدخول ورؤية السجلات.
00:53:28يمكنني رؤية أدوات المطورين، وأدوات الشبكة
00:53:30وأخذ لقطات للشاشة.
00:53:32إنه في الواقع أحد الأشياء المفضلة لدي
00:53:36هو أن أطلب منه تكرار أخذ لقطات الشاشة
00:53:41لكي يرى نوعاً ما ما الذي صنعه.
00:53:44وبعد ذلك يمكنك إخباره مثلاً،
00:53:47يرجى توجيه هذا التصميم نحو شيء
00:53:49يشبه س وص وع.
00:53:52وبعد ذلك تجعله يأخذ لقطات شاشة
00:53:54ويقوم بعمليات حفظ (commits) في كل مرة يأخذ فيها لقطة.
00:53:56حتى تتمكن من التنقل ذهاباً وإياباً بين،
00:54:00بين ما كانت عليه تلك التعديلات المحفوظة
00:54:04وما كانت عليه تغييرات التصميم.
00:54:06ويمكنك رؤيته وهو يقوم بالفعل
00:54:09بفحص محددات الاستعلام (query selectors)
00:54:11ورؤية كيف يمكنه تحسين الأداء.
00:54:13يمكننا فتح هذه، وبدء خادم التطوير.
00:54:20أي أسئلة أخرى بينما تجري هذه
00:54:25الأشياء في الخلفية؟
00:54:26- يعجبني فقط رؤية كم عدد العمليات التي تعمل الآن.
00:54:30هذا رائع جداً.
00:54:31لا توجد أسئلة حقيقية في الدردشة.
00:54:34مجرد أشخاص يجرون محادثات حول أوامر مختلفة،
00:54:37وأفكار للأوامر، وهذا أمر رائع.
00:54:40أعتقد أن لدي سؤال يا جون،
00:54:43عندما تسمح للوكلاء بتحديث المهارات
00:54:47بناءً على المحادثات الفاشلة،
00:54:49كيف تمنع تلك التعديلات التلقائية
00:54:52من الانجراف بالمهارة بعيداً
00:54:55عن الهدف الأصلي أو معيار الجودة؟
00:54:58- سؤال جيد.
00:55:05عادة ما يكونون جيدين جداً
00:55:09في إجراء تغييرات صغيرة ومعزولة.
00:55:12إذا كنت تجري محادثة
00:55:13لأنه يرى ما نجح في المحادثة
00:55:17ويرى ما لم ينجح.
00:55:20لذا إذا حددت أن هذا الشيء لم ينجح
00:55:24من المحادثة الحالية،
00:55:26يمكنه العثور على الأجزاء المحددة والخاصة فقط
00:55:30التي تحتاج إلى تحديث، وتحديثها.
00:55:33ولن يقوم بالدخول و، مثلاً،
00:55:35إعادة كتابتها بالكامل من الصفر أو شيء من هذا القبيل.
00:55:37لذا لا أعتقد أنني رأيت ذلك كمشكلة حقيقية أبداً،
00:55:42لكنني لن أقول إنها ليست مشكلة على الإطلاق،
00:55:45إلا أنني لم أرها كمشكلة حقيقية.
00:55:47- أجل، فهمت.
00:55:48- حسناً، إليكم صفحة ورشة العمل.
00:55:54جاهزة للنشر، أليس كذلك؟
00:55:56تبدو جميلة.
00:55:57وهنا التنويعات الخاصة بنا.
00:55:59لنقم بفتح خوادم التطوير لكل منها.
00:56:03ثم نفتح مجموعة كاملة من علامات التبويب.
00:56:11لكن أعتقد أن وقتي قد أوشك على الانتهاء.
00:56:16إذا كانت هناك أي أسئلة نهائية
00:56:17قبل أن نختتم الأمور، يمكنني أن أعرض،
00:56:22لقد كانت لدي في المهارات، لقد فقدت مهاراتي.
00:56:29أيها المتصفح، أعدها لي.
00:56:30أوصي بشدة بالعثور على مهارة إنشاء،
00:56:36اقرأ واحدة تتماشى مع ما تفعله.
00:56:40لدي مهارة نشر، والتي إذا كنت تثق،
00:56:43هذه موجودة تحت اسمي.
00:56:45إذا كنت تثق في عميل ذكاء اصطناعي لتشغيل واجهة سطر أوامر GitHub،
00:56:50مرة أخرى، هذا مستوى كبير من الثقة.
00:56:54إنه القليل من الثقة التي لدي.
00:56:57سوف تأخذ المهارة التي قمت بإنشائها.
00:57:00لذا يمكنك قول “إنشاء مهارة” ثم “نشر مهارة”.
00:57:02وبعد ذلك ستنتقل إلى،
00:57:04سأفعل هذا خارج الشاشة بسرعة.
00:57:07سأبحث عن أحد مستودعاتي التي تحتوي على،
00:57:16أعتقد أنها نشرت نفسها حتى.
00:57:21لذا يمكنني استعراض هذه المهارة.
00:57:22دعني أتأكد من عدم وجود أي شيء خاص هنا.
00:57:24حسناً، عذراً.
00:57:27لذا يمكنني ببساطة إنشاء مستودع GitHub لك
00:57:29ونشر المهارة نفسها
00:57:32بحيث لا تضطر حقاً للقيام بأي عمل
00:57:35سوى قول “إنشاء مهارة” ثم “نشر مهارة”.
00:57:38وستلاحظ وجود خيار: “من فضلك أنشئ المستودع”،
00:57:43أنشئه تحت، سأختار المنظمة دائماً
00:57:45لأنني أعمل تحت عدة منظمات مختلفة،
00:57:47ثم تحقق من توفرها في أداة المهارات.
00:57:52بحيث إذا أخذت هذا،
00:57:56مرة أخرى، التعليمات هي أن،
00:57:58يمكنه المضي قدماً وإنشاء ذلك
00:58:00أو نشر تلك المهارة نيابة عنك
00:58:01لتتمكن من مشاركتها مع فريقك،
00:58:02أو مع أصدقائك، أو أي شخص.
00:58:03وهناك أداة أخرى كنت أعمل عليها
00:58:08اليوم فقط، وهي في الأساس ممهد للمهارات
00:58:14حيث إذا كنت أعرف أنه ستكون هناك بعض المهارات
00:58:19التي أريد تحميلها مسبقاً،
00:58:20أعرف أنني أريد مهارة متصفح العميل، مثل Geist،
00:58:24أريد، دعنا نختار ممارسات Remotion الفضلى
00:58:29وممارسات Vercel React الفضلى.
00:58:33هذه في الأساس واحدة من تلك الأدوات
00:58:37التي تعالج مسألة فرض السياق مسبقاً.
00:58:40وستقوم بفرض مطالبة في Cloud Code،
00:58:44هي مخصصة لـ Cloud Code فقط حالياً.
00:58:45لكنها ستفرضها هناك وتقول،
00:58:48هذه هي كل المهارات التي أعرف أنني سأحتاجها
00:58:50وهذا هو المحتوى
00:58:51بحيث بمجرد أن تبدأ المحادثة،
00:58:53إذا قلت “قيّم أداء المنفذ 3000”،
00:58:58حتى لو لم أقل أي شيء عن متصفح العميل،
00:59:06فإنه سيتوجه بوضوح لاستخدام متصفح العميل.
00:59:10كما قد يفعل سابقاً، وغالباً ما سيفعل.
00:59:14لا أعرف كيف يبدو وصف متصفح العميل.
00:59:18لا أعرف ما إذا كانت كلمة “تقييم” موجودة فيه
00:59:21أو ما إذا كان سيفهم من “تقييم” و “المنفذ 3000” أنه يجب تحميله.
00:59:24أنه يجب تحميله.
00:59:24لكن بهذه الطريقة أنا فقط أفرضه مسبقاً
00:59:29بحيث عندما أقول عبارات كهذه، يكون محملاً بالفعل.
00:59:33لذا تلك الحزمة موجودة في،
00:59:36دعني أبحث عن ممهد المهارات (skills primer).
00:59:41- يمكننا أيضاً مشاركة هذه الروابط في النهاية.
00:59:45- حسناً، رائع.
00:59:45- لدينا الروابط، ممتاز.
00:59:46- ضعها هناك.
00:59:50- وأود أن أقول كالعادة،
00:59:53مع الطريقة التي تسير بها البرمجيات اليوم،
00:59:55اذهب وانسخ المستودع واجعله خاصاً بك.
00:59:59فنحن في عصر تخصيص واجهات سطر الأوامر
01:00:02وتخصيص البرمجيات.
01:00:04لذا إذا كنت تريد أن يكون لهذا اسم مختلف تماماً
01:00:07أو ميزات ووظائف مختلفة كلياً،
01:00:08إذا كنت ترغب في تخصيص هذا لـ Codex
01:00:11أو Cursor أو أي شيء، فقط انسخه واجعله ملكك.
01:00:14مثلاً قل: “من فضلك اجعل هذا يعمل مع Cursor”
01:00:18واجعل عميلك الذكي يبنيه ليعمل مع Cursor.
01:00:20وعادة ما يكون الأمر كذلك، حيث يمكنك إنجاز
01:00:23الكثير من الأشياء بضغطة واحدة هذه الأيام، إنه أمر مذهل.
01:00:26- إنه أمر رائع، البرمجيات المخصصة هي الحل.
01:00:29أردت أن أسأل سؤالاً واحداً إضافياً
01:00:31جاء في الدردشة.
01:00:32أعلم أننا وصلنا لنهاية الوقت الآن،
01:00:35ولكن بما أن المهارات هي مستودعات GitHub
01:00:37ويبدو أنه يتم تثبيتها محلياً أيضاً،
01:00:40كيف تضمن حصولك على التحديثات؟
01:00:42هل تحتوي واجهة سطر الأوامر على أوامر لتحديث المهارة؟
01:00:48- لا أتذكر الأوامر الدقيقة هذه الأيام
01:00:52سأغلق هذه النوافذ.
01:00:53مهارات، أوه، ليس لدي حتى المهارات مثبتة عالمياً.
01:00:59- أحببت ذلك.
01:01:02- أحصل على أحدث نسخة في قائمة المهارات.
01:01:05أجل، أمر تحديث المهارات موجود هناك.
01:01:07- أعتقد أن هناك سؤالاً تابعاً،
01:01:11هل تريد أن تصل تحديثات المهارات بشكل متكرر؟
01:01:13- هذا سؤال رائع.
01:01:18لا أعرف ما إذا كان لدى أي شخص إجابة قاطعة
01:01:23لأن قواعد المهارات حالياً مثل
01:01:28القواعد حول البيانات الوصفية والمهارات والإصدارات،
01:01:30لا أعتقد أن الجميع قد اتفقوا عليها
01:01:32تماماً كما هو الحال مع المهارات، لم يتفقوا بعد
01:01:34على المجلدات والهياكل التي يجب وضعها فيها.
01:01:37هذا كله نظام بيئي ينمو بسرعة في الوقت الحالي.
01:01:41لذا فيما يتعلق بالإصدارات،
01:01:47الأمر نوعاً ما يتوقف على الانتظار والترقب،
01:01:49مثل أن نفعل أفضل ما لدينا بما نملكه الآن
01:01:51وننتظر لنرى ما سيستقر كأفضل الممارسات.
01:01:54لأنني ليس لدي نصيحة أقدمها الآن
01:01:57سوى تحديثها في كل مرة.
01:01:59وافترض فقط أن هذا هو الأفضل.
01:02:03لكن نعم، ليست لدي نصيحة محددة هناك.
01:02:06- أجل، والأمور تتغير طوال الوقت.
01:02:08أنا متأكد أن شخصاً ما سيكون لديه نصيحة محدثة
01:02:12في غضون أيام، فالأمور تتغير كل يوم.
01:02:18مذهل يا جون.
01:02:18هل هناك أي شيء آخر تريد عرضه
01:02:20على المجتمع اليوم؟
01:02:21- أعني ذلك.
01:02:25- هناك الكثير.
01:02:26- سنقوم بالكثير من هذه الجلسات
01:02:28ولدي الكثير من الأشياء الأخرى لأعرضها،
01:02:30ولكن يمكنني التحدث لساعات.
01:02:32- أجل، هذا رائع.
01:02:34جون، شكراً جزيلاً لك على الحضور
01:02:36إلى منصة مجتمعنا
01:02:38والتحدث إلى مجتمعنا
01:02:39ولكل من يتابعنا هنا.
01:02:42ونعم، كما قلنا،
01:02:44سيعود جون بالتأكيد في جلسة أخرى من هذه الجلسات.
01:02:46لذا ابقوا على اطلاع.
01:02:48- شكراً للجميع.
01:02:49- شكراً لك.
01:02:50حسناً، إذا كنتم ترغبون في المتابعة
01:02:53لجلستنا المجتمعية القادمة،
01:02:55لدينا قصص المصادر المفتوحة يوم الاثنين
01:02:58وأعتقد جلسة أخرى مع الشركاء،
01:03:00جلسة شركاء المتجر الأسبوع المقبل،
01:03:03ولكن يمكنك العثور على جميع التفاصيل
01:03:04في تقويم فعاليات المجتمع الخاص بنا،
01:03:08الموجود على [community.vercel.com/events](https://www.google.com/search?q=https://community.vercel.com/events).
01:03:12ولكن نعم، شكراً لكم جميعاً على المتابعة.
01:03:15لقد كان الأمر ممتعاً للغاية و نعم،
01:03:17سنراكم هنا الأسبوع المقبل.

Key Takeaway

تعد المهارات وسيلة ثورية لتمكين وكلاء الذكاء الاصطناعي من استيعاب السياق الخاص بالفريق وسد فجوات المعرفة المحدثة من خلال ملفات Markdown بسيطة وقابلة للمشاركة.

Highlights

التحول من هندسة الأوامر (Prompt Engineering) إلى هندسة السياق (Context Engineering) لتعزيز أداء وكلاء الذكاء الاصطناعي.

تعريف "المهارات" كملفات Markdown تسمح لوكلاء Claude Code بتعلم مهام محددة وأنماط برمجية مخصصة.

إطلاق منصة skills.sh كمدير حزم للمهارات يشبه نظام NPM للمطورين.

الفرق بين السياق الخامل (المهارات التي تُحمل عند الحاجة) والسياق النشط (التعليمات الدائمة في ملفات agents.md).

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

استعراض ميزة "الفرق" (Teams) الجديدة التي تمكن الوكلاء الفرعيين من التعاون تحت قيادة وكيل أساسي.

أهمية الثقة والمصدر عند تثبيت المهارات البرمجية من مجتمع المطورين لتجنب المخاطر الأمنية.

Timeline

مقدمة وترحيب من فريق مجتمع Versailles

بدأت الجلسة بمقدمة ترحيبية من بولين نافاس التي عرفت بنفسها كعضو في فريق مجتمع Versailles. أكدت بولين على أهمية التواصل المباشر مع المطورين وشجعت الحضور على طرح الأسئلة عبر الدردشة في المنصة الرسمية أو منصة X. أوضحت أن موضوع الجلسة سيركز على كيفية جعل وكلاء الذكاء الاصطناعي يفهمون أنماط البرمجة الخاصة بكل فريق بدقة. قدمت بعد ذلك جون من فريق تجربة مطوري الذكاء الاصطناعي ليقود ورشة العمل التقنية. تهدف هذه الافتتاحية إلى تهيئة الحضور لفهم القيمة العملية لأدوات Claude code الجديدة.

مفهوم المهارات والانتقال إلى هندسة السياق

استعرض جون فلسفة المهارات موضحاً الفرق بين هندسة الأوامر القديمة وهندسة السياق الحديثة التي تعتمد على تحميل المعلومات عند الحاجة. شبه وكيل الذكاء الاصطناعي بطفل يولد بمعرفة عامة باللغات مثل React وSQL لكنه يفتقر إلى "لهجة" الفريق وقواعده الخاصة. يتم حل هذه المشكلة باستخدام ملفات Markdown التي تعمل كحزم معرفية تسد فجوة المعرفة لدى النموذج. أوضح جون أن المهارات بدأت كحاجة داخلية لدى شركة Anthropic لتعليم Claude مهاماً محددة دون استهلاك نافذة السياق بالكامل. تكمن أهمية هذا القسم في شرح كيف يمكن للمطورين توجيه الذكاء الاصطناعي لاتباع معاييرهم بدلاً من مجرد الاعتماد على تدريبه العام.

موقع skills.sh ونموذج NPM للمهارات

قدم جون موقع skills.sh كمدير حزم مخصص للمهارات، واصفاً إياه بأنه يمثل "لحظة NPM" في عالم الذكاء الاصطناعي. يمكن للمطورين الآن تثبيت قدرات جديدة في وكلائهم باستخدام أوامر بسيطة مثل npx skills add لمشاركة سير العمل بين أعضاء الفريق. ناقش الحضور كيفية الاختيار بين استخدام بروتوكول MCP أو المهارات، حيث نصح جون بالبدء بملفات Markdown لبساطتها قبل اللجوء لخيارات أكثر تعقيداً. تم التأكيد على أن المهارات تجعل المعرفة دائمة وقابلة لإعادة الاستخدام في مشاريع متعددة دون الحاجة لعمليات النسخ واللصق المتكررة للأوامر. يوضح هذا الجزء البنية التحتية التي تدعم توزيع المهارات ونشرها على نطاق واسع.

تشريح المهارة وكيفية إنشائها برمجياً

شرح جون الهيكل التقني لملف المهارة، مشيراً إلى أنه مجرد مجلد يحتوي على ملف يسمى skill.md مع بيانات وصفية (front matter). يتضمن الملف اسماً ووصفاً دقيقاً يساعد الوكيل في تحديد متى يجب "التحميل الكسول" لهذه المهارة أثناء العمل على مهمة معينة. ناقش أيضاً ميزة "الفرق" (Teams) التي أطلقت حديثاً، والتي تتيح لوكيل Claude بناء فريق من الوكلاء الفرعيين بمهارات مخصصة. تم عرض روابط توثيقية توضح كيف يمكن للبيانات الوصفية تحديد الصلاحيات والأدوات التي يُسمح للوكيل الفرعي باستخدامها. يعد هذا القسم دليلاً عملياً للمطورين الراغبين في بناء أدواتهم الخاصة وتخصيص سلوك الوكلاء.

أمثلة عملية: حل مشكلة انقطاع المعرفة والتصميم

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

النشر، التقييم، والتحسين المستمر

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

الخاتمة وموارد المجتمع

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

Community Posts

No posts yet. Be the first to write about this video!

Write about this video