스크립트
00:00:00إذا كنت تعمل مع نماذج جيدة مثل opus و gpt 5.6، فستحصل عادةً على مخرجات جيدة ولكن هذه النماذج
00:00:06تستهلك أيضاً الكثير من الرموز (tokens)، ويصبح الأمر أسوأ مع النماذج الراقية مثل gpt astra
00:00:11و fable 5.1 لأنك ستصل إلى حد الاستخدام الخاص بك بشكل أسرع بكثير مقارنة بالنماذج الأخرى
00:00:16وهي بطيئة جداً أيضاً، لذا تجد نفسك تنتظر وقتاً طويلاً حتى تكتمل مهمة واحدة. لحل
00:00:21هذه المشكلة بالتحديد، توجد أداة انتشرت مؤخراً على جيت هับ تُسمى graft، وهي تصلح الطريقة التي
00:00:26تعمل بها هذه الوكلاء مع المشاريع بشكل افتراضي. فهي لا توفر عليك الرموز فحسب، بل تجعل
00:00:31الوكيل أسرع بكثير مقارنةً بعملها بمفردها، ولديها طريقة عمل ممتعة للغاية
00:00:36تعالج السبب الجذري لحدوث هذه المشكلة في المقام الأول. لا يعني ذلك عدم وجود أدوات
00:00:40مبنية لحل هذه المشكلة، لكن لديها جميعاً ثغرة كبيرة، وهذا بالضبط ما تعالجه هذه الأداة.
00:00:46إذا كانت هذه هي زيارتك الأولى هنا، فنحن شركة برمجيات وهذه قناتنا ai labs. في هذا
00:00:51الفيديو، سنوضح لك تماماً كيف تجعل أداة graft استخدام هذه النماذج أرخص. ولكن قبل أن نبدأ
00:00:56في شرح graft، تحتاج إلى فهم سبب استهلاك وكيلك للعديد من الرموز. قبل أن يغير أي شيء في
00:01:02تطبيقك، فإن الطريقة الافتراضية التي تستخدمها وكلاء مثل claude code وcodex للعثور على الملفات تواجه مشكلة؛
00:01:07فعندما تطلب من الوكيل إضافة أي شيء إلى التطبيق الذي تعمل عليه، يحتاج أولاً إلى العثور على أجزاء
00:01:12تطبيقك التي يجب أن يكتب فيها هذا التغيير. وللعثور على تلك الأجزاء، فإنه يستخدم أوامر مختلفة في
00:01:17طرفية الأوامر (terminal) للبحث عن كلمات تتعلق بالشيء الذي تريد إضافته. ولا تجد النماذج عادةً الشيء
00:01:23الذي تبحث عنه من المحاولة الأولى، بل يتعين عليها استخدام أدوات متعددة لتحديد ما
00:01:28تبحث عنه بدقة، وفي كل مرة يحتاج فيها النموذج إلى تحديد الأداة التي ستُستخدم بعد ذلك، يرسل الوكيل
00:01:32إلى النموذج محادثتك بالكامل حتى الآن، بما في ذلك ردود الأدوات التي
00:01:37استخدمها بالفعل. ثم يقرأ النموذج كل ذلك ليقرر خطوته التالية، ليصِل إلى الملف الصحيح
00:01:42بعد عدة دورات، وكل دورة من تلك الدورات تكلفك من حد الاستخدام الخاص بك. على سبيل المثال، عندما تطلب من الوكيل جعل
00:01:47الزر باللون الأخضر، عليه أولاً معرفة الملف الذي يحتوي على كود هذا الزر، لذا فهو يبحث عن
00:01:53الملف الذي يحتوي على ذلك الزر، وتذهب النتائج إلى النموذج مع رسالتك، ثم يقوم الوكيل
00:01:58باستخدام أداة أخرى لقراءة أسطر البرمجة المحددة من ذلك الملف، وفقط بعد ذلك يقوم فعلياً
00:02:04بإجراء التغيير. هذا الأخذ والرد هو الطريقة التي يتم بها تنفيذ كل تغيير تطلبه، ونظراً لأن جميع
00:02:08رسائلك ونتائج الأدوات يتم إرسالها مراراً وتكراراً، تستمر نافذة السياق في النمو. لا يقتصر الأمر على استهلاك
00:02:14السياق فحسب، بل يؤدي أيضاً إلى إبطاء النموذج، لأن النموذج وبهذه الطريقة يستخدم دورات متعددة
00:02:19لتحديد الملف المطلوب، لذا يضيف كل بحث جديد مزيداً من المعلومات، ويتعين على النموذج استخدام
00:02:25الرموز ليقرر ما يجب فعله بها. وهذا في الواقع أحد الأسباب التي تجعلك تصل إلى حد الاستخدام عندما
00:02:30تعمل مع الوكلاء في العديد من المهام خلال جلسة واحدة. والآن، بلوغ حد الاستخدام ليس سوى نتيجة
00:02:36واحدة، بل تحصل أيضاً على مخرجات أسوأ جودة نظراً لوجود الكثير في نافذة السياق لدرجة
00:02:41أن الوكيل لا يمكنه التركيز على شيء واحد في كل مرة. ونظراً لأن هذه مشكلة معروفة، فهناك أدوات
00:02:46موجودة بالفعل تحاول حلها؛ والنهج الشائع الذي تستخدمه هذه الأدوات هو تحويل أقسام
00:02:51التعليمات البرمجية الخاصة بك إلى أرقام تُسمى متجهات (vectors) حتى يتمكن النموذج من مقارنتها بسهولة. وعندما تطرح سؤالاً، تُمثل
00:02:56أداة البحث السؤال في شكل متجهات أيضاً، ثم تجد الأقسام الأكثر تطابقاً
00:03:02ويُسمى ذلك البحث المتجهي، والذي يعبر أساساً عن إيجاد المعلومات بناءً على مدى تشابه معناها
00:03:07مع ما طلبته. ولكن التشابه وحده لا يوضح لك كيف ترتبط أجزاء تطبيقك ببعضها؛
00:03:12على سبيل المثال، يمكن لكود إنشاء الحساب وكود حذف الحساب أن يتطابقا مع سؤال حول
00:03:17الحسابات، لكنهما يقومان بأمرين متعاكسين، لذا فإن اختيار الخيار الخاطئ سيكون مكلفاً حقاً.
00:03:21لهذا السبب لا يُعتبر هذا البحث فعالاً بالقدر الكافي، ومعظم وكلاء البرمجة لا يستخدمونه على الإطلاق.
00:03:26ولكن قبل أن ننتقل إلى الأداة، سيكون من الرائع أن تشترك في القناة وتضغط على زر
00:03:30الإعجاب، فهذه اللفتة البسيطة من الدعم تعني لنا الكثير. والآن، أداة graft هي في الواقع أمر في سطر الأوامر
00:03:36تقوم بتثبيته على جهاز الكمبيوتر الخاص بك، وقد صُممت لتغيير الطريقة الافتراضية التي يستخدمها وكيل البرمجة الخاص بك
00:03:41حتى لا يضطر إلى شق طريقه بالبحث في مشروعك قبل كل تغيير. وهي تفعل ذلك من خلال
00:03:46بناء رسم بياني للمعرفة (knowledge graph)، وهو أساساً خريطة لجميع الأجزاء في مشروعك وتوضح كيف
00:03:51الأجزاء المختلفة مترابطة، ويستخدم الوكيل تلك الخريطة للعثور على الكود الذي يحتاجه والتحقق من الأجزاء الأخرى التي
00:03:57تعتمد عليه. والأداة مجانية ومفتوحة المصدر في الواقع، والميزة الرئيسية فيها هي أنها لا تستخدم نماذج
00:04:02بمفتاح واجهة برمجة تطبيقات (API) منفصل، لذا فهي تعمل باشتراكك المعتاد. وهناك أيضاً خطوة اختيارية تستخدم
00:04:07نموذجاً لكتابة صفحات واضحة حول تطبيقك والتي توضح ما يفعله كل جزء من الكود وكيف
00:04:12تتكامل تلك الأجزاء معاً. لست بحاجة إليها حقاً لأن الخريطة تخبر الوكيل بالفعل بما يرتبط بـ
00:04:17ما، بل تضيف هذه الخطوة فقط شرحاً لما يفعله الكود. وبفضل تلك الصفحات، يتعرف الوكيل على
00:04:22وظيفة كل جزء بدلاً من فتح كل ملف. عندما قام الفريق المطوّر لأداة graft بتشغيلها،
00:04:28وجدو أنها تجعل الوكلاء أرخص بأربع مرات من حيث استهلاك الرموز، وهذا هو أفضل سيناريو لديهم.
00:04:33في اختباراتهم المعيارية عبر 162 تشغيلاً، استغرقت المهام وقتاً أقل بنسبة 60 بالمئة في المتوسط، واستخدم الوكيل أدواته بنسبة 46 بالمئة مرات أقل،
00:04:42و برموز أقل بنسبة 42 بالمئة، وجاءت التكلفة أقل بنسبة 32 بالمئة في المتوسط. ونظراً لأن التوفير
00:04:48يأتي من عمليات البحث التي لم يعد الوكيل بحاجة لإجرائها، فإنها تؤتي ثمارها في المشاريع الكبيرة، لأنه
00:04:53في المشاريع الصغيرة لا يوجد بحث كثير للتوفير فيه أساساً. تعمل أداة graft مع claude code
00:04:58وcodex بالإضافة إلى وكلاء البرمجة الآخرين الذين يستخدمون أوامر الطرفية أو بروتوكول السياق للنموذج (mcp)، لكن الخريطة التي تبنيها
00:05:04ليست مثل البحث المتجهي الذي تحدثنا عنه سابقاً، لأن graft لا تحول الكود الخاص بك إلى أتقام و
00:05:09تطابقها حسب التشابه، بل تقرأ الكود وتدون الجزء الذي يستهلك الجزء الآخر فعلياً. لذا فعندما
00:05:14تغير جزءاً واحداً، يمكن للوكيل أن يرى بوضوح ما قد يكسره هذا التغيير أيضاً، وعندما يتغير الكود الخاص بك
00:05:20فإنها تقوم ببساطة بتحديث الأجزاء التي تغيرت بدلاً من إعادة بناء كل شيء، لتبقى الخريطة محدثة
00:05:25من تلقاء نفسها ولا يعمل الوكيل أبداً بناءً على إصدار قديم لمشروعك. ولكن أولاً، لنستمع إلى كلمة
00:05:30من راعينا الرسمي hydra؛ كنا نضيف ميزة توليد بالذكاء الاصطناعي إلى تطبيقنا، وهو ما كان يعني سابقاً
00:05:35التعامل مع النماذج والبنية التحتية وقوائم انتظار المهام بنفسك، وهنا تأتي أهمية واجهة برمجة تطبيقات hydra. لقد بنوا
00:05:41وقت التشغيل بالكامل وواجهة برمجة التطبيقات خلف نماذجهم، لذا بدلاً من إعداد كل تلك البنية التحتية بنفسك،
00:05:46يتم التعامل مع الطبقة بأكملها نيابة عنك. لقد أجرينا مكالمة حقيقية واحدة من الكود الخاص بنا، وبدلاً من ظهور أحد الأصول هكذا فجأة،
00:05:51حصلنا على وظيفة حقيقية يمكننا تتبعها، وشاهدناها تنتقل من قائمة الانتظار إلى المعالجة ثم إلى
00:05:56الاکتمال قبل أن تعود الوسائط. عرض الحالة هذا هو الجزء الأهم لأنه الطريقة التي تعلم بها
00:06:02أن هذا يمكنه التعامل مع أعمال الإنتاج الحقيقية. يتطلب الأمر القليل فقط من الكود لإضافته إلى تطبيقك الخاص، وهناك
00:06:07واجهة سطر أوامر ومجموعة أدوات تطوير (SDK) أيضاً لكي تتمكن من العمل مباشرة من نافذة الأوامر أو محرر النصوص الخاص بك. هذا هو نوع الأشياء التي
00:06:13لم يكن بمقدور المطور المستقل بناءها من قبل. جرب hydra مجاناً على hydra.com واستخدم رمزنا للحصول على خصم 50 بالمئة على
00:06:19شهرك الأول. الرابط والرمز في الوصف أدناه. قبل أن نثبت أي شيء، تحتاج إلى رؤية
00:06:24كيف تنشئ أداة graft تلك الخريطة فعلياً؛ عندما تستخدمها لبناء الخريطة، تقرأ graft الكود الموجود على
00:06:29جهاز الكمبيوتر الخاص بك وتدون كل جزء تعثر عليه مع اسمه ومكانه في المشروع،
00:06:34ثم تدون الأجزاء المرتبطة ببعضها. يُسمى كل جزء على تلك الخريطة عقدة (node)،
00:06:39ويُسمى كل اتصال بين جزأين حافة (edge). لذا عندما يسأل الوكيل عما يستهلك جزءاً معيناً
00:06:44من تطبيقك، تتبع graft تلك الحواف وتزوده بالكود المتصل بما كان يبحث عنه
00:06:49حتى يرى ما إذا كان هذا التغيير يؤثر على أي شيء آخر، وهو ما تعذر على البحث المتجهي فعله تماماً.
00:06:53تحفظ أداة graft تلك الخريطة على جهاز الكمبيوتر الخاص بك كملف JSON. والسبب في حفظها بتنسيق JSON هو
00:06:59أن هذا التنسيق يتيح لك كتابة الأشياء بتنسيق سليم مع تفاصيل مرتبطة بها، وهي
00:07:04تحتوي أيضاً على عارض يفتح في متصفحك حيث يمكنك رؤية الخريطة واستكشاف الاتصالات. عندما
00:07:10تكون أداة graft متصلة بـ claude code، فإنها تزوّد النموذج بتعليمات استخدام الخريطة في بداية
00:07:15كل جلسة، ثم في كل مرة ترسل فيها أمراً، تطابق graft الكلمات الواردة في رسالتك مع الخريطة
00:07:20وترفق بها ما يصل إلى ثلاثة مواقع متطابقة، بحيث يعرف النموذج بالفعل الملفات والأستر المطلوب قراءتها
00:07:26قبل أن يستخدم أداة واحدة. ولا يدخل الكود نفسه إلى السياق إلا عندما يقرأ الوكيل تلك الأسطر،
00:07:32لذا يصل النموذج إلى الملف الصحيح في عدد دورات أقل، ويتم إضافة مساحة أقل بكثير إلى نافذة السياق،
00:07:37لتصبح العملية أسرع وتستهلك قدراً أقل من الحد الخاص بك. وهناك أيضاً خيار بروتوكول السياق (mcp)، والفرق يكمن فيمن
00:07:43يبدأ عملية البحث؛ فمع الإعداد الذي غطيناه للتو، تخمن graft من رسالتك وترفق تلك المواقع
00:07:48بكل رسالة سواء كان الوكيل بحاجة إليها أم لا. أما مع بروتوكول السياق، فلا يُرفق أي شيء
00:07:53برسائلك، ويسأل الوكيل أداة graft فقط عندما يحتاج إلى شيء بالفعل. وفي اختبارات graft الخاصة،
00:07:58حصل إصدار بروتوكول السياق على إجابات صحيحة أكثر قليلاً من إصدار سطر الأوامر (cli)، بينما كان إصدار سطر الأوامر أسرع. وعندما
00:08:04تقوم بتثبيته، تحصل في الواقع على الاثنين معا، ومع تغير تطبيقك تحافظ graft على تحديث الخريطة بنفسها قبل
00:08:10أن تجيب على أي سؤال، حيث تتحقق مما إذا كان الكود قد تغير منذ بناء الخريطة، وإذا كان الأمر كذلك، فإنها
00:08:15تحدث الخريطة أولاً دون استخدام النموذج. والآن، لتثبيت graft، تحتاج إلى الانتقال إلى موقعهم الإلكتروني الذي
00:08:20سنضعه في الوصف، ومن هناك يمكنك إما نسخ أمر التثبيت أو نسخ أمر الإعداد
00:08:25الخاص بوكيل البرمجة الذي تستخدمه ولصقه مباشرة في الوكيل. يتضمن أمر الإعداد ذلك
00:08:30جميع الأوامر التي يحتاجها الوكيل لتثبيت graft وإعدادها في مشروعك، وإذا كنت تفضل
00:08:35القيام بهذا الجزء بنفسك، فيمكنك فعل ذلك عن طريق نسخ أمر التثبيت من الموقع وتشغيله في
00:08:40الطرفية من أي مجلد. بمجرد تثبيته، يصبح سطر الأوامر جاهزاً للاستخدام. لاستخدامه في مشروع ما،
00:08:46عليك إعداد graft في هذا المشروع عن طريق تشغيل أمر التهيئة (init)، ويجب تشغيل هذا الأمر في الطرفية
00:08:52لأنه يضيف بعض التعليمات الخاصة بهذا المشروع إلى المجلد
00:08:57والتي ستضيع إذا قمت بتشغيله في أي مكان آخر، وعندما تشغله، يسألك عن وكيل البرمجة الذي تستخدمه
00:09:02لأن كل وكيل يحتاج إلى إعداد خاص به، وبما أننا كنا نستخدم Claude Code فقد اخترناه
00:09:07وتابعنا عملية التثبيت. بمجرد الانتهاء من ذلك، سترى مهارة غراف في مجلد مشروعك
00:09:11التي تخبر الوكيل كيفية استخدام غراف والأوامر التي يمتلكها، كما أنها تثبت خطافات، وإذا لم تكن
00:09:16تعرف ما هو الخطاف، فهو نص برمجي صغير يعمل بمفرده في نقطة محددة. هذه الخطافات تجبر
00:09:22الوكيل على اتباع سير عمل غراف. هناك خطافات متعددة يتم تثبيتها، أحدها يمنح
00:09:26النموذج تعليمات لاستخدام الخريطة عند بدء الجلسة، وآخر يربط المواقع المطابقة بكل
00:09:31موجه ترسله، والأخير يعمل بعد أن يقوم كلود تعديل ملف لكي تبقى الخريطة محدثة. بعد ذلك،
00:09:37إذا كنت تقوم بإعداد هذا في مشروع كنت تعمل عليه بالفعل، فأنت بحاجة إلى تشغيل أمر بناء غراف
00:09:41في نفس المجلد حتى يمر غراف عبر كل الكود الموجود مسبقاً و
00:09:46يبني الخريطة منه، وإذا كنت تبدأ في مجلد فارغ فلا يوجد شيء لتخطيطه بعد، لذا فإن
00:09:50المهارة تجعل كلود يبنيها بمجرد توفر الملفات، بعد ذلك تقوم بتشغيل كود كلود بشكل طبيعي و
00:09:56يعرض عارض الخريطة العقد والروابط التي أنشأها غراف. في مجلد فارغ، تبدأ الخريطة بصفر عقد و
00:10:01يضيفها غراف كلما تم إنشاء الملفات. الآن، لقد اختبرنا غراف من خلال بناء تطبيق حجز وجدولة
00:10:06مشابه لـ كاليندي ولكن للمزودين المستقلين باستخدام فابل 5.1. بما أن هذا النموذج يستهلك الرموز
00:10:13بسرعة كبيرة، لم نكن نريد أن يبذل جهداً في المهام الخاطئة، ولهذا السبب اتخذنا سلسلة من
00:10:18الخطوات قبل العمل معه. لقد كتبنا مستند متطلبات المنتج أولاً، وهو المستند الذي يحدد ما من المفترض أن
00:10:23يفعله التطبيق لكي يعرف كل ميزة يحتاجها التطبيق، وأضفنا أيضاً ملف claude.md الذي يحتوي على
00:10:29تعليمات مخصصة لهذا النموذج للسماح له بالعمل لفترات طويلة دون الانحراف عن الهدف، و
00:10:34هذا الملف claude.md هو ما قمنا برفعه كقالب في مجتمعنا AI Labs Pro، لذلك استخدمنا نفس
00:10:40القالب وطلبنا منه أولاً ملء الفجوات في ملف claude.md من مستند المتطلبات لأن الملف كان مجرد
00:10:46قالب، وإذا لم يكن لديك مستند متطلبات يمكنك فقط إخباره في موجهك بما تبنيه بدلاً من ذلك.
00:10:51بمجرد تحديث ملف claude.md، قمنا بتغيير النموذج إلى فابل 5.1 وأعطيناه الموجه لبناء
00:10:57تطبيق الحجز جنباً إلى جنب مع الأدوات التي أردنا بناء التطبيق بها، وعليك إخبار هذا النموذج
00:11:02صراحةً أنه يعمل بمفرده، وهو ما غطيناه في فيديو فابل 5.1 السابق، لذلك أخبرناه
00:11:07ألا يتوقف ويطلب الإذن. مع غراف، استغرق البناء 39 دقيقة واستخدم حوالي 31 بالمئة من
00:11:14نافذة السياق، وبدون غراف استغرق نفس البناء 47 دقيقة واستخدم حوالي 35 بالمئة، وكان كلا التطبيقين
00:11:20يتمتعان عملياً بنفس الوظائف، لذا في ذلك البناء الأول كان الفرق صغيراً لأن
00:11:25الرسم البياني لم يكن مبنياً في هذه النقطة، لكنه أصبح أكبر بمجرد أن بدأنا في إجراء التغييرات لأنه بحلول ذلك الوقت كان غراف
00:11:30يملك بالفعل خريطة للمشروع بأكمله للبحث فيه. استغرق التجديد الكامل للصفحة الرئيسية أقل من
00:11:35دقيقتين، وبدون غراف كان نفس التغيير سيستغرق وقتاً أطول بكثير من ذلك. بعد التغيير،
00:11:40قام غراف بتحديث الخريطة بالملفات الجديدة وعرض تقديره الخاص للرموز التي توفرت في
00:11:46تلك الخطوة. وهناك شيء أخير تحتاج إلى معرفته، فعندما تعمل على مشروع فعلي،
00:11:50فهو لا يتضمن الكود فحسب، بل يحتوي أيضاً على ملفات أخرى تمنح الوكلاء سياقاً حول ما يتم
00:11:56بناؤه، وتشمل هذه مستند المتطلبات، وجميع ملفاتك الخاصة بالمنطقة، وملف learnings.md والعديد من الملفات الأخرى، ولكن
00:12:03غراف يخطط الكود فقط لذا فهو لا يخطط مستند المتطلبات الخاص بك أو الملاحظات، مما يعني أن الوكيل يستخدم
00:12:09الطريقة الافتراضية المعتادة عندما يضطر لقراءة تلك الملفات. وبغض النظر عن ذلك، فإن الكثير من الناس مثلنا يستخدمون كلود كود
00:12:14للعديد من المهام غير البرمجية أيضاً، لذلك لكي نجعل الأداة تلبي تلك الاحتياجات أيضاً، قمنا بتعديلها
00:12:20قليلاً حتى نتمكن من استخدامها في مشاريعنا الفعلية حيث لدينا عدة ملفات خطط، وقد أضفنا
00:12:25تلك النسخة في AI Labs Pro وهو مجتمعنا، لذا إذا وجدت قيمة فيما نقه وتريد
00:12:31دعم القناة فهذه هي أفضل طريقة للقيام بذلك، فالرابط في الوصف. وهذا يأبى بنا إلى نهاية
00:12:36هذا الفيديو، وإذا كنت ترغب في دعم القناة ومساعدتنا في الاستمرار في صنع فيديوهات مثل هذه، يمكنك فعل ذلك عن طريق
00:12:41استخدام زر الشكر المتوفر أدناه. كالعادة، شكراً للمشاهدة وسأراكم في الفيديو القادم
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기