المقدمة

النهاردة هنتكلم عن مفهوم الوكلاء Agents في الذكاء الاصطناعي. الوكيل Agent يعني أي نظام أو برنامج يقدر يتفاعل مع البيئة بتاعته باستخدام حساسات (Sensors) علشان يستقبل المعلومات، ومحركات (Actuators) علشان ينفذ الأفعال. الفكرة إن الوكلاء بيبقوا أداة أساسية لتمثيل الأنظمة اللي بتتخذ قرارات وتتعامل مع الظروف المختلفة.

هنتعرف على مفهوم الوكيل العاقل، اللي بيختار أفعاله بطريقة تهدف لتعظيم الأداء على أساس المعلومات اللي بيستقبلها والمعرفة اللي عنده. الوكيل العاقل بيحاول يتصرف بأفضل شكل ممكن علشان يوصل للنتيجة المرجوة، وده بيعتمد بشكل كبير على طبيعة البيئة اللي بيشتغل فيها. يعني بيئات معينة ممكن تكون سهلة ومرتبة، وبيئات تانية ممكن تكون معقدة وصعبة، وده بيأثر على تصميم الوكيل. 


فرصة تكسب 20,000 جنيه!

لو عايز تطوّر مهاراتك وتشتغل على تحسين AI Coding Agent مصري مش بس كده ده كمان open source ، وتنافس مبرمجين تانيين، دي فرصتك!

🎯 شارك في مسابقتنا واشتغل على تحسين وتطوير الـAI Coding Agent (س18)، وكمان عندك فرصة للفوز بجائزة 20,000 جنيه مصري! 💰

🔹 إيه اللي هتستفيده؟
✅ تشتغل على مشروع Open Source حقيقي
✅ تتعلم وتنافس مع أفضل المبرمجين
✅ فرصة للفوز بجائزة مالية محترمة
✅ المساهمة في تحسين أداء وبرمجة الـ AI Agents لتكون أكثر كفاءة

📌 ما تفوّتْش الفرصة! سجل دلوقتي لينك فى اول كومنت وكن جزء من التحدي! 🚀


Agents and Environments (الوكلاء والبيئات)

An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through actuators.

الوكيل هو أي كيان نقدر نبصّ له على إنه بيقدر "يشوف" أو "يحس" بيئته من خلال مستشعرات  (Sensors)، و"يتصرّف" أو "ينفّذ أفعال" من خلال مشغّلات أو محرّكات (Actuators). الفكرة البسيطة دي بنشوفها بوضوح في الصورة دي:

  • الوكيل البشري عنده عيون وأذان وباقي الحواس كمستشعرات، وعنده الأيدي والأرجل والجهاز الصوتي كمحرّكات.
  • الوكيل الروبوتي ممكن يكون عنده كاميرات وأجهزة استشعار بالأشعة تحت الحمراء علشان يشوف، وموتورات علشان يتحرّك.
  • الوكيل البرمجي (Software Agent) بيستقبل ملفات أو حزم شبكة أو مدخلات من الكيبورد، الماوس، اللمس، الصوت كأنها "حواس"، وبيتفاعل مع بيئته بكتابة ملفات أو إرسال حزم شبكة أو عرض معلومات أو تشغيل صوت.

البيئة في أبسط تعريف ممكن تكون أي حاجة موجود فيها الـAgent  - الكون كله لو حبّينا! - لكن عمليًا بنحدّد الجزء اللي يهمّنا واللي الوكيل هيتعامل معاه واللي أفعاله ومدخلاته هتأثّر فيه أو تتأثّر بيه.

المدخل الحسي Percept: هو المحتوى اللي حواس الوكيل بتستقبله في لحظة معيّنة.سلسلة المدخلات الحسية Percept sequence:هي تاريخ أو سجل كامل بكل الحاجات اللي الوكيل استقبلها في حياته.

💡
بشكل عام، اختيار الوكيل للفعل المناسب في أي لحظة بيعتمد على المعرفة المبنية جواه بالإضافة لسلسلة المدخلات الحسية اللي عدّت عليه، إنما مش هيعتمد على حاجة ما استقبلهاش فعلًا. ولو حبّينا نصف سلوك الوكيل نظريًا، بنعرّفه بحاجة اسمها دالة الوكيل

(Agent function)  اللي بتاخد أي سلسلة مدخلات حسية، وتحدّد الفعل المناسب.

ممكن نتخيّل إننا نعمل جدول ضخم يوضّح استجابة الوكيل لكل سلسلة مدخلات ممكنة. الجدول ده هيبقى كبير جدًا، ولو البيئة ملهاش حدود، ممكن يبقى لانهائي. وعشان ندرس وكيل معيّن، نقدر نظريًا نجرّب كل سلسلة مدخلات ونشوف إزاي بيردّ عليها.

برنامج الوكيل :Agent program هو التطبيق العملي لدالة الوكيل جوا نظام مادي أو برمجي حقيقي. الدالة نفسها وصف رياضي مجرّد، بينما البرنامج هو اللي شغال فعلًا على الجهاز.

مثال: عالم المكنسة الكهربائية    (Vacuum-cleaner world) 

عندنا وكيل مكنسة بيتحرّك في بيئة فيها مربعات: كل مربع ممكن يكون "متسخ (Dirty)" أو "نظيف (Clean)"زي ماهو في الصورة ، البيئة فيها مربعين بس (A & B) الوكيل يقدر يعرف هو في أنهي مربع، ويعرف إذا كان المربع وسخ ولا لأ.

  • الأفعال المتاحة: يتحرك يمين، يتحرك شمال، يشفط التراب (Suck)، أو ما يعملش حاجة (Do nothing).
  • بيبدأ في المربع  A.
  • ممكن نعرّف دالة وكيل بسيطة: "لو المربع الحالي وسخ، نظّفه (Suck)، لو نظيف، روح للمربع التاني."

في الصورة دي هنلاقي جزء من الجدول اللي بيعرض الدالة دي:

في الصورة دي هنلاقي مثال لبرنامج الوكيل نفسه:

هنا بييجي سؤال مهم: إيه اللي يخلي وكيل "كويس" أو "عاقل" أو "ذكي"؟ هنردّ عليه في الجزء اللي جاي.

لو الوكيل بيختار أفعاله بعشوائية، هنحتاج نجرّب كل تسلسل مدخلات كذا مرة علشان نفهم احتمالية كل فعل. رغم إن العشوائية باين إنها تصرف "غريب"، بس فيه حالات بيكون فيها تصرّف ذكي جدًا.

قبل ما نختم الجزء ده، جدير بالذكر إن فكرة "الوكيل" هي مجرد أداة تحليلية. مش كل حاجة في الدنيا لازم نعتبرها وكيل. ممكن مثلًا نتعامل مع الآلة الحاسبة على إنها وكيل بيختار يعرض "4" لما يستقبل "2 + 2 "  بس التحليل ده مش هيفيدنا في فهم الآلة الحاسبة بشكل كبير. في النهاية، ممكن نقول إن كل فروع الهندسة بتصمّم أنظمة بتتفاعل مع العالم، لكن الذكاء الاصطناعي بيميل للأنظمة اللي عندها موارد حوسبية عالية وبتحتاج قرارات مش بسيطة.

💡
Good Behavior : The Concept of Rationality (السلوك الجيد: مفهوم العقلانية) A rational agent is one that does the right thing. Obviously, doing the right thing is better than doing the wrong thing, but what does it mean to do the right thing?

الوكيل العاقل هو اللي بيعمل الحاجة الصح. طبعًا إنك تعمل الحاجة الصح أحسن من إنك تعمل الحاجة الغلط، بس إيه معنى "الحاجة الصح" دي بالظبط؟

Performance measures (مقاييس الأداء)

الفلسفة الأخلاقية طوّرت مفاهيم كتير للفعل الصح، لكن في الذكاء الاصطناعي عادة بنستخدم فكرة "العواقبية " (Consequentialism)  بنقيّم سلوك الوكيل بناءً على عواقبه في البيئة. لما نحط وكيل في بيئة، بيستقبل مدخلات  (Percepts)، ويستجيب بأفعال (Actions)، الأفعال دي بتغيّر حالات البيئة بالتدريج. لو التسلسل النهائي لحالات البيئة كان مرغوب أو مرغوب بشكل كبير، بنقول إن أداء الوكيل كان ممتاز.

الرغبة أو "النتيجة الحلوة" بنقيسها بحاجة اسمها معيار الأداء(Performance measure)  ده بيقيّم أي تسلسل لحالات البيئة، ويشوف هل هو مرغوب ولا لأ.

بالنسبة للبشر، عندهم رغبات وتفضيلات. معنى العقلانية عندهم هو اختيار الأفعال اللي تحقق أحسن نتائج من وجهة نظرهم. أما الآلات فمعندهاش رغبات شخصية، فمعيار أدائها بيجي من مصمّم الآلة أو المستخدم اللي عايز منها وظيفة معينة. بعض تصميمات الوكلاء ممكن تبقى فيها تمثيل صريح لمعيار الأداء ده، وفي تصميمات تانية ممكن الوكيل ينفّذ الحاجة الصح من غير ما "يعرف" هو بيعمل كده ليه.

كمان لازم نتأكد إن "الغرض اللي بنحطه في الماكينة هو فعلًا الغرض اللي احنا عاوزينه". مثلًا، وكيل المكنسة الكهربائية لو قررنا نقيس أداءه بعدد مرات شيل التراب في 8 ساعات، ممكن يستغل النقطة دي بشكل عكسي: ينضّف وبعدين يرمي التراب تاني وينضّف وهكذا علشان يزود عدّاد المرّات!

الأفضل إننا نقيّمه بناءً على درجة نظافة الأرض نفسها، زي نقطة لكل مربّع نظيف كل خطوة زمنية. القاعدة العامة: "صمّم معيار الأداء بناءً على اللي إنت فعلًا عايزه يتحقق، مش بناءً على تخمينك لطريقة تصرف الوكيل."

بس حتى مع تجنّب الأخطاء الواضحة، ممكن نقع في أسئلة فلسفية عميقة: زي إيه الأفضل؟ وكيل بينضّف باستمرار بس بمستوى ثابت وواطي، ولا وكيل بيعلي الأداء جامد بس بياخد فترات راحة طويلة؟ وهكذا. دي أمثلة على أسئلة أكبر وأعمق في الفلسفة.

هنفترض إن معيار الأداء مضبوط صح. بس لازم نفهم إن ممكن نغلط في تحديد "الغرض"، وكمان ممكن يبقى عندنا مستخدمين مختلفين وكل واحد ليه تفضيلات خاصة. بالتالي، ممكن نصمّم وكلاء عندها حالة عدم يقين في الأول عن معيار الأداء الحقيقي، وتتعلّم أكتر عنه مع الوقت.

Rationality (العقلانية)

إيه اللي بيخلي الوكيل تصرفه "عاقل" في لحظة معينة؟ فيه أربع عوامل:

  1. معيار الأداء (Performance measure) اللي بيحدد النجاح.
  2. معرفة الوكيل المسبقة عن البيئة.
  3. الأفعال اللي يقدر الوكيل ينفّذها.
  4. سلسلة المدخلات الحسية (Percept sequence) لحد دلوقتي.

Definition of a rational agent (تعريف الوكيل العاقل)

💡
For each possible percept sequence, a rational agent should select an action that is expected to maximize its performance measure, given the evidence provided by the percept sequence and whatever built-in knowledge the agent has.

لو خدنا وكيل المكنسة الكهربائية البسيط: بيشفط لو المربع متسخ، وبيتحرك للمربع التاني لو نظيف. هل ده وكيل عاقل؟ ده بيعتمد على:

  • معيار الأداء (مثلاً نقطة عن كل مربّع نظيف في كل خطوة على مدى 1000 خطوة).
  • معلوماته عن البيئة (مثلاً عارف خريطة مربعين، مش عارف التراب فين، ولا الموقع الابتدائي).
  • الأفعال (يمين، شمال، شفط).
  • الحواس (يعرف موقعه ويعرف لو فيه تراب).

في الظروف دي، ممكن نقول إن الوكيل عاقل، لأنه بيحقق أداء جيد. إنما لو في عقوبة على الحركة، هتلاقيه بيتحرّك يمين وشمال على الفاضي وبيخسر. في الحالة دي يبقى مش عاقل وفقًا لمعيار الأداء الجديد. وهكذا. العامل الأساسي هو إن التصرف "العاقل" بيختلف لو البيئة أو المعيار تغيّروا.

Omniscience, learning, and autonomy (كلية المعرفة، والتعلم، والاستقلالية)

لازم نفرّق بين العقلانية (Rationality) وكلية المعرفة  (Omniscience). الوكيل اللي يعرف كل حاجة مش واقعي. مثال: لو مشيت في الشارع ومافيش خطر ظاهر، ووقعت عليك حاجة من السماء فجأة، هل ده يخلي قراري "غلط"؟ لأ، لأننا ما نقدرش نتوقع أحداث مستحيلة.

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

المعلومة وجمع البيانات جزء مهم من العقلانية. كمان الوكيل المفروض يتعلم من خبراته. لو فيه بيئة متوقعة 100% ومعروفة من البداية، ممكن ما نحتاجش نستقبل مدخلات أصلاً. بس ده بيخلي الوكيل هش وغير مستعد لو حصلت ظروف خارج الحسابات.

وفي مثال: دبور الـ sphex (sphex wasp) بيحط خطة محددة: يحفر جحر، يجيب يرقة مخدّرة، يدخل الجحر يتأكد إنه تمام، وبعدين يشدّ اليرقة جوه ويحط البيض. لكن لو حد حرّك اليرقة شوية كل مرة، تلاقيه بيروح يشدها تاني ويرجع يتأكد تاني، ويرجع يشدها… وهكذا من غير تعديل للخطة مهما حصل.

من جهة تانية، مش معنى كده إن الوكيل يعمل حاجات "غير ذكية" لمجرد إن معندوش معلومات. مثال: ما ينفعش يعدي الطريق من غير ما يبص يمين وشمال بحجة إنه مش شايف عربية جايه في المدخلات. الوكيل العاقل هيشوف إن فيه خطوة البصّ

(Information gathering) علشان يقلل خطر الحوادث. وعلى نفس المنوال، وكيل المكنسة في بيئة مش معروفة لازم يستكشف الأول  (Exploration).

الوكيل كمان لازم يتعلم (Learning) من خبراته. ممكن يبقى عنده معرفة مسبقة من المصمم، بس برده محتاج يتكيّف مع البيئة الحقيقية اللي بيواجهها.

لو البيئة متعرّفة بشكل كامل قبل ما نبدأ والشغل ما فيهوش مفاجآت، ممكن الوكيل ما يحتاجش لا يستقبل مدخلات ولا يتعلم، ويمشي على الخطة. بس ده بيبقى وكيل هش (Fragile) ومش مستعد زي ما وضحنا.

كل ما الوكيل يعتمد على المعرفة المسبقة للمصمم، ويهمل التعلّم من البيئة، يبقى استقلاليته (Autonomy) أقل. الوكيل العاقل المفروض يبقى مستقل قدر الإمكان، ويتعلم عشان يصحح أي أخطاء أو نقص في المعرفة المسبقة. برضه من العملي إننا نبدأ بإعطائه شوية معلومات أساسية بدل ما نسيبه يشتغل عشوائي. مع الخبرة، الوكيل يقدر يبقى مستقل بشكل كبير.

(The Nature of Environments) طبيعة البيئات

بعد ما عرفنا يعني إيه وكيل عاقل، هنفكر في الـ مهمة أو البيئة  (Task Environment) اللي الوكيل هيشتغل فيها. البيئة دي هي "المشكلة" اللي الوكيل بيمثل "الحل" ليها. هنبدأ نشرح إزاي بنوصف بيئة المهمة، وهنعرض أمثلة. بعدين هنبين إن البيئات ليها أشكال وأنواع، وده بيأثر على تصميم برنامج الوكيل.

 (Specifying the task environment) تحديد بيئة المهمة

لما حكينا عن وكالة المكنسة، اتكلمنا عن معيار الأداء، والبيئة، والأدوات اللي بيستخدمها الوكيل الـ ( Actuators)، والحواس (Sensors). بنسمي الأربع عناصر دول مع بعض باسم PEAS (Performance, Environment, Actuators, Sensors).

خطوة أساسية في تصميم أي وكيل: تحدد له الـPEAS بتوعه بوضوح.

مثال: سواق تاكسي أوتوماتيكي

التاكس الأوتوماتيكي عليه يشوف:

  1. معيار الأداء (Performance measure):
    • يوصل للوجهة الصح،
    • يستهلك بنزين قليل ويقلل تأكل العربية،
    • يقلل زمن الرحلة أو تكلفتها،
    • يقلل مخالفات المرور ويقلل إزعاج السواقين التانيين،
    • يعظم السلامة وراحة الركاب،
    • يعظم الربح وهكذا. بس طبعًا ممكن يحصل تعارض بين المعايير دي ويحتاج توازن.
  2. البيئة (Environment):
    • هيسوق في شوارع مختلفة: ريفية، مدن زحمة، أو طرق سريعة فيها 12 حارة.
    • هيقابل عربيات تانية ومشاة وحيوانات ضالة وإصلاحات في الطريق وشرطة وبِرك مية ومطبات.
    • كمان لازم يتعامل مع ركاب فعليين أو محتملين.
    • فيه اختيارات تانية: ممكن يبقى في كاليفورنيا (مفيش تلج كتير) أو ألاسكا (تلج كتير)، يمشي على اليمين أو الشمال حسب البلد… كل ما البيئة تتحدد أكتر، التصميم يبقى أسهل.
  3. المحركات أو الأدوات اللي بيستخدمها التاكس (Actuators):
    • دواسة البنزين للتحكم في الموتور،
    • الدركسيون للاتجاه،
    • الفرامل،
    • شاشة عرض أو صوت علشان يتكلم مع الركاب،
    • طريقة يتواصل مع العربيات التانية (إشارات مثلاً).
  4. الحواس (Sensors):
    • كاميرا عشان يشوف الطريق،
    • ليدار (Lidar) وألتراساوند (Ultrasound) علشان يقيس المسافة بينه وبين العربيات أو العقبات،
    • عداد سرعة (Speedometer) عشان ما ياخدش مخالفة،
    • جهاز يقيس التسارع (Accelerometer) في الملفات،
    • مستشعرات لميكانيكا العربية (الموتور، البنزين، الكهرباء)،
    • GPS عشان ما يتهش،
    • ميكروفون أو شاشة باللمس عشان يعرف الركاب عايزين يروحوا فين.

الصورة التالية بتلخص الـPEAS  لوكلاء كتير تانية. فيه وكلاء لبيئات "افتراضية" (Virtual) زي برامج إنترنت للمزايدات والمضاربات، ودي بتتعامل مع ملايين المستخدمين ومليارات السلع.


في الختام

  • في الأول، عرّفنا يعني إيه وكيل (Agent): أي حاجة بتشوف البيئة بمستشعرات وبتتفاعل معاها بمحرّكات.
  • فهمنا إن سلوكه بيتحدد بدالة الوكيل، وإن تنفيذه العملي هو برنامج الوكيل.
  • اتكلمنا عن مفهوم "العقلانية" وإن الوكيل العاقل بيحاول يعظّم معيار الأداء المتّفق عليه.
  • العقلانية مش معناها كمال مطلق، ومش معتمدة على التنبؤ بالمستقبل بشكل أكيد (Omniscience)، لكنها معتمدة على التصرّف بناءً على المدخلات الحسية والمعرفة المتاحة.
  • الاستقلالية مهمة جدًا؛ الوكيل لازم يتعلم من خبرته مش بس يعتمد على المعرفة المسبقة من المصمم.
  • أخيرًا، شفنا إن بيئات المهام (Task Environments) بتتفاوت في الصعوبة، وإن ضروري نحدّد الـPEAS  بوضوح عشان نعرف نصمّم الوكيل المناسب.

ان شاء الله المرة الجاية هنتكلم عن البيئات وأنواعها بشكل مستفيض وازاي الـAgents بتتعمل فيها، وازاي بيتم تصميم الـAgent بناءًا على فئة البيئة. 


المصادر

Artificial Intelligence: A Modern Approach [Book]

What are AI Agents?- Agents in Artificial Intelligence Explained - AWS

What Are AI Agents? | IBM