Semantic Kernel and AutoGen
لو أنت داخل مجال الذكاء الاصطناعي جديد، أو حتى شغال فيه، أكيد سمعت عن "العملاقين" بتوع مايكروسوفت: Semantic Kernel و AutoGen. الاتنين دول هما اللي شايلين الليلة دلوقتي في بناء برامج وتطبيقات الـ AI.
عشان نفهمهم من غير تعقيد وكلام مجعلص، تعال نتخيل إننا بنفتح "مطعم كبير" 🍽️، ونشوف كل واحد فيهم هيعمل إيه في المطعم ده.
1. الـ Semantic Kernel (المدير التنفيذي والرباط) 🧠🔗
ده تقدر تعتبره "شيف المطبخ والمدير" اللي بيربط كل حاجة ببعضها. الـ Semantic Kernel (واختصاره SK) هو الجسر اللي بيخلي الكود التقليدي بتاع زمان (زي Python أو #C) يفهم لغة نماذج الذكاء الاصطناعي (زي GPT-4).
- بيعمل إيه؟ بياخد الأوامر منك، ويروح يربطها بقاعدة البيانات، أو يخلّي الـ AI ينفذ وظيفة معينة (بلاك بوكس/Plugins) جوه السيستم بتاعك بأمان واستقرار.
- رمزه في مطعمنا: 👨🍳 الشيف الكبير. هو اللي واقف في المطبخ، في إيده السكينة (الكود) وفي دماغه الوصفة (الـ AI)، وبيطلع لك الطبق مظبوط وثابت كل مرة.
2. الـ AutoGen (شلة الموظفين والوكلاء) 🤝🤖
ده بقى حكاية تانية خالص! ده مش مجرد شيف واقف لوحده، ده إطار عمل معمول عشان يعمل "اجتماعات ومناقشات" بين كذا ذكاء اصطناعي (Multi-Agents). يعني بتعمل فريق عمل كامل، وكل واحد ليه وظيفة، وبيقعدوا يكلموا بعض لحد ما يحلوا المشكلة.
- بيعمل إيه؟ بتبرمج فيه "وكيل" بيفهم في البرمجة، و"وكيل" تاني بيفهم في المراجعة، و"وكيل" تالت بيفهم في التسويق. الـ AutoGen بيخليهم يتناقشوا مع بعض، ويردوا على بعض تلقائي عشان يخلصوا لك الشغلانة.
- رمزه في مطعمنا: 👥 طاقم إدارة المطعم بالكامل. (المحاسب، ومسؤول المشتريات، ومدير الصالة). بيقعدوا مع بعض في اجتماع: المحاسب يقول "الميزانية كام"، ومسؤول المشتريات يرد "هنجيب خضار بكذا"، وهكذا لحد ما الليلة تمشي.
💡 مثال عملي يفهمك الفرق (حكاية "منيو المطعم") 📜
تخيل إننا عاوزين نعمل "منيو أكلات جديد للمطعم":
- لو استخدمنا Semantic Kernel (👨🍳):أنت هتدخل على السيستم وتقول له: "يا شيف، اقترح لي أكلة جديدة". الشيف (SK) هيروح بسرعة يبص في المخزن يشوف إيه المكونات المتاحة (قاعدة البيانات)، ويطلب من الـ AI يختار أكلة، ويطلع لك النتيجة: "مكرونة بالبشاميل" بصورة مباشرة ومنظمة. خطوة واحدة سريعة ومستقرة.
- لو استخدمنا AutoGen (👥):هنا الموضوع بيبقى "ورشة عمل"! هتعمل 3 وكلاء أذكياء:
- الوكيل المبتكر (Chef Agent): "أنا باقترح نعمل سوشي مقلي!" 🍣
- الوكيل المالي (Finance Agent): "لا يا عم، السوشي غالي والميزانية مش هتكفي، خلينا في حاجة موفرة." 💰
- وكيل الجودة (Quality Agent): "طب إيه رأيكم في حواوشي بخلطة سرية؟ رخيص والناس بتحبه." 🥩يقعدوا يكلموا بعض ويردوا على بعض جوه الكود، وفي الآخر يطلعوا لك بالقرار الصح بعد مناقشة طويلة.
⚙️ ملخص الاستخدام (امتى تختار مين؟)
- استخدم Semantic Kernel (🧠🔗) لو عندك برنامج أو موقع لشركة، وعاوز تدخّل فيه ذكاء اصطناعي يعمل مهمة محددة بدقة، وأمان، ومن غير لف ودوران (برامج الشركات الكبيرة Enterprise).
- استخدم AutoGen (🤝🤖) لو بتعمل مشروع معقد محتاج "تفكير جماعي"، أو عاوز تبني نظام يحل مشاكل برمجية معقدة، أو يعمل عصف ذهني (Brainstorming) ويطلع أفكار لوحده.
ملحوظة على الماشي: مايكروسوفت صايعة، وعارفة إن الاتنين جامدين، فعشان كده دمجتهم مؤخراً في نظام واحد اسمه Microsoft Agent Framework عشان تقدر تخلي الشيف والوكلاء يشتغلوا في نفس المطبخ مع بعض! 😉
في المثال ده، هنعمل وكيل ذكاء اصطناعي (Agent) ونربطه بكود دوت نت حقيقي (Plugin) عشان نخليه يقدر يحسب الخصومات في المطعم بتاعنا تلقائيًا. [3, 4]
1. تجهيز المشروع وتثبيت المكتبات 📦
افتح الـ Terminal عندك واكتب الأوامر دي لإنشاء مشروع جديد وتثبيت مكتبات مايكروسوفت الحديثة للـ Agents والـ AI: [5, 6]
2. كتابة كود البرمجة (Program.cs) 💻
امسح الكود القديم في ملف
Program.cs وحط الكود ده، اللي بيشرح نفسه خطوة بخطوة:🔥 إيه اللي بيحصل ورا الكواليس في الكود ده؟
- الـ Kernel/Agent الشغال (🧠): عطينا للذكاء الاصطناعي "شخصية" مدير المطعم المصري عبر الـ
Instructions. - الربط مع الـ C# (🔗): السطر
restaurantAgent.Tools.Add(...)ده هو جوهر الـ Semantic Kernel؛ بياخد كود السي شارب العادي ويحوله لـ Tool يفهمها الموديل. - الذكاء واتخاذ القرار (🤖): لما الزبون قال "بـ 500 جنيه وعاوز الخصم"، الـ AI مش هيخمن الحساب من دماغه؛ هو ذكي كفاية إنه هيوقف المحادثة لحظة، ويروح يستدعي دالة
CalculateDiscountاللي كتبناها بالـ C#، وياخد النتيجة الصح (425 جنيه)، ويرجع يصيغها ليك بأسلوب مصري جميل ولطيف.
تعال نفصص الكود اللي فات حتة حتة ونشوف فين الـ Semantic Kernel وفين الـ AutoGen بالظبط ورا الكواليس:
1. فين الـ Semantic Kernel (الرباط وطبقة الـ SDK)؟ 🧠🔗
جزء الـ Semantic Kernel في الكود بيظهر في ربط كود الـ C# العادي بالذكاء الاصطناعي، وإدارة الأدوات والاتصال بالـ API.
شوف السطور دي من الكود:
- ليه ده Semantic Kernel؟ لأن وظيفة الـ Semantic Kernel الأساسية هي إنه يعمل كـ "مترجم" أو "جسر". هو اللي أخد دالة الـ C# التقليدية (
CalculateDiscount) وخلاها تظهر للذكاء الاصطناعي كـ "أداة" (Tool) يقدر يستدعيها وينفذها في الوقت المناسب. من غير الجزء ده، الـ AI هيكون مجرد شات بوت أعمى ما يعرفش أي حاجة عن نظام الفواتير بتاعك.
2. فين الـ AutoGen (مفهوم الوكيل الذكي ومستقبل المحادثات)؟ 🤝🤖
جزء الـ AutoGen بيظهر في طريقة تعريف وتغليف الذكاء الاصطناعي على شكل "وكيل مستقل" (Agent) له اسم، ووظيفة، وتوجيهات محددة، ويقدر ياخد قرارات لوحده ويتكلم بالنيابة عن السيستم.
شوف السطر ده من الكود:
- ليه ده AutoGen؟ لأنك مش بتنادي على الـ AI بشكل مباشر وتبعت له نص عادي (زي الشغل التقليدي)؛ أنت هنا صممت كائن برامجي (Object) اسمه
Agent. الـ AutoGen هو اللي بيخليه يتصرف كـ "موظف" مستقل في المطعم. - بروح الـ AutoGen: في المثال اللي فات، إحنا عملنا وكيل واحد بس (
restaurantAgent). لكن البنية دي مجهزة تماماً إنك تعمل سطر تاني وتنشئ وكيل تاني وتسميهChefAgentوتخليهم يكلموا بعض (وهي دي الميزة القاتلة للـ AutoGen).
📊 ملخص الحكاية في جدول صغير:
| الميزة في الكود | مين المسؤول عنها؟ | بتعمل إيه بالظبط؟ |
|---|---|---|
Tools.Add(...) | Semantic Kernel ⚙️ | ربطت الـ AI بالـ Database أو بكود الـ C# بتاعك (حساب الخصم). |
ChatClientAgent | AutoGen 🤖 | عملت الـ AI على شكل "موظف/وكيل" مستقل له اسم ووظيفة وشخصية. |
InvokeAsync | الاتنين مع بعض 🔄 | الوكيل (AutoGen) فكّر، واستخدم المترجم (Semantic Kernel) عشان يشغل دالة الـ C#، ورجع رد عليك. |
اربط الحزام بقى عشان هتشوف سحر الـ AutoGen الحقيقي لما نعمل "شلة وكلاء" يكلموا بعض ويردوا على بعض جوه كود الـ #C! 😉
في المثال ده، هنعمل وكيلين (Agents):
- المدير (RestaurantManager): بيستقبل طلب الزبون ويرحب بيه بالمصري.
- المحاسب (Accountant): ده راجل دحيح وبتاع أرقام، وظيفته ياخد السعر، ويشغل دالة الـ C# ويطلع الحسبة المظبوطة.
الكود المطور (Program.cs) 💻
امسح الكود القديم وحط الكود ده، وركز في طريقة ربطهم ببعض:
🎬 السيناريو اللي هيحصل قدام عينك في الـ Console (شرح العرض):
لما تشغل البرنامج، الحوار هيمشي كأنه مسرحية تلقائية كالتالي:
- الخطوة 1 (المدير - Manager):
"يا مرحب بيك يا فندم! منور مطعمنا والله. من عيوني الإثنين، هخلي المحاسب بتاعنا حالا يشوفلك الخصم كام.. يا متر محاسب (Accountant) شوف الأستاذ حسابه كام بعد الخصم لوسمحت." - الخطوة 2 (المحاسب - Accountant):
هنا المحاسب هيفهم إنه لازم يحسب. قبل ما يتكلم، الـ Semantic Kernel هيشتغل في الخلفية ويشغل دالةCalculateDiscountعشان يحسب الـ 600 جنيه (تطلع 480).
المحاسب يرد: "أهلاً بك يا فندم. بناءً على السيستم، الحساب الأصلي 600 جنيه، وبعد تطبيق خصم الـ 20%، الحساب النهائي هو 480 جنيه يا مدير." - الخطوة 3 (المدير - Manager):
"تسلم إيدك يا متر! شفت بقى يا فندم؟ حسابك طلع 480 جنيه بس يا باشا، ألف هنا وشفا على قلبك!"
💡 الخلاصة النهائية عشان تثبت في دماغك:
- الـ AutoGen هو اللي عمل "غرفة الدردشة" (
AgentGroupChat) وخلى المدير والمحاسب يمرروا الكلام لبعض ويفهموا أدوارهم من غير ما أنت تكتبif/elseلكل واحد. - الـ Semantic Kernel هو اللي كان مستخبي جوه جيب المحاسب (
Tools.Add)، وأول ما المحاسب احتاج يحسب بجد، طلع الـ Tool وشغل كود الـ C# ورجع النتيجة للـ AI.
لو جربت الكود ده عندك، هتنبهر من كمية الـ "ذكاء" والتنسيق اللي بيحصل بين الوكلاء وبعضهم! هل الفكرة بقت واضحة كدة والفرق بينهم نور في دماغك؟
Comments
Post a Comment