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سنراكم هنا الأسبوع المقبل.