الوكيل (الوكيل الذكي) هو نظام تطبيقي يرتكز على نموذج لغوي كبير، قادر على اتخاذ قرارات مستقلة وتنفيذ إجراءات تجاه هدف المهمة. يوفر النموذج الكبير للوكيل قدرات أساسية مثل فهم اللغة والاستدلال وإنتاج المحتوى، مما يمكّنه من فهم مهام المستخدم وتحليل المعلومات الحالية. على هذه الأساس، يطبق الوكيل قدرة استدلال النموذج بشكل أكبر على تنفيذ المهام: عند مواجهة هدف، لا يحتاج فقط إلى إنتاج استجابة، بل يحتاج أيضًا إلى تحديد ما يجب فعله لتحقيق الهدف، والحصول على معلومات خارجية أو تنفيذ إجراءات محددة من خلال الأدوات. عندما تتضمن المهمة خطوات متعددة، يمكن للوكيل أيضًا استخدام نتائج الخطوة السابقة لتحديد الإجراء التالي، مع ضبط الخطة الأصلية عند الضروري حتى اكتمال المهمة. لذلك، يتوسع تركيز الوكيل من "ما المحتوى الذي يجب إنتاجه بناءً على المدخلات" إلى "كيف تُنجز المهام حول الأهداف". القرارات المستقلة المذكورة هنا لا تعني التصرف بدون قيود تمامًا، بل اختيار الإجراءات المناسبة ضمن نطاق المهام والأدوات والصلاحيات المحددة مسبقًا، بناءً على الحالة الحالية. لذلك، الوكيل ليس نموذجًا جديدًا مستقلًا عن النماذج اللغوية الكبيرة، بل هو نظام تنفيذ المهام يستخدم النماذج الكبيرة كنواة للفهم واتخاذ القرار، ويجمع بين النماذج والقدرات الخارجية.
الوكلاء مناسبون بشكل خاص للمهام التي تتضمن خطوات متعددة، ويتطلبون استخدام معلومات أو أدوات خارجية، وقد يتغير عملية تنفيذها بناءً على النتائج الوسيطة. تشمل سيناريوهات التطبيق الشائعة استرجاع المعلومات وتحليل البيانات وتطوير البرمجيات وأتمتة العمليات التجارية. على سبيل المثال، في سيناريوهات استرجاع المعلومات، يمكن للوكيل البحث وتنظيم المواد من مصادر مختلفة بناءً على المهمة؛ في سيناريوهات تحليل البيانات، يمكنه قراءة البيانات وإجراء الحسابات وإنتاج نتائج التحليل؛ في سيناريوهات تطوير البرمجيات، يمكنه كتابة الكود وتنفيذ الاختبارات والمتابعة بالتعديل بناءً على نتائج التنفيذ؛ في سيناريوهات أتمتة العمليات التجارية، يمكنه الاتصال بقواعد البيانات والأنظمة التجارية لإكمال استفسارات البيانات ومعالجة التذاكر وإجراءات أخرى. للمهام مثل الترجمة والتلخيص وإعادة الصياغة التي يمكن إكمالها مباشرة عبر إنتاج النماذج، عادةً لا حاجة لاستخدام الوكيل.
نواة الوكيل، مسؤول عن معالجة مدخلات المستخدم وإنتاج الاستجابات واتخاذ القرارات - وهو في جوهره "دماغ" الوكيل. بما أن الوكلاء لا يتبعون مسارات محددة مسبقًا بل يضبطون استراتيجية سلوكهم ديناميكيًا بناءً على الظروف في الوقت الفعلي، فإن LLM ليس مسؤولًا فقط عن فهم وإنتاج المحتوى، بل يحتاج أيضًا إلى تحديد العملية التالية بناءً على المهمة الحالية ونتائج التنفيذ، وتحديد كيفية التفاعل مع البيئة الخارجية. يستخدم الوكيل prompts (تلميحات) لتحديد دور LLM وأهداف المهمة وقواعد السلوك وحدود الصلاحيات، مما يسمح لـ LLM باتخاذ القرارات والتنفيذ ضمن الحدود المحددة مسبقًا.
مسؤول عن صياغة خطة عمل الوكيل، بما في ذلك تفكيك المهام المعقدة إلى مهام فرعية متعددة وتحديد خطوات التنفيذ اللاحقة. عند معالجة المهام متعددة الخطوات، لا يحتاج الوكيل فقط إلى إنشاء خطة عمل، بل يحتاج أيضًا إلى ضبطها بناءً على تنفيذ المهمة. على سبيل المثال، عندما تختلف نتائج الأدوات عن التوقعات أو عندما تكون المعلومات المحصل عليها غير كافية، يمكن للوكيل ضبط الخطة الأoriginية وإعادة تحديد الخطوة التالية. يمكّن وحدة التخطيط الوكيل من التخطيط والضبط الديناميكي للإجراءات اللاحقة بناءً على حالة المهمة.
تسجيل الدخول للانضمام إلى النقاش
تُستخدم لتخزين ذاكرة الوكيل، بما في ذلك الذاكرة قصيرة المدى والذاكرة طويلة المدى. تحفظ الذاكرة قصيرة المدى بشكل أساسي المعلومات من الجلسة أو المهمة الحالية، بينما تُستخدم الذاكرة طويلة المدى لتخزين المعلومات التي تحتاج إلى الاحتفاظ بها على المدى الطويل. الذاكرة نظام ديناميكي وقابل للوصول وقابل للتحديث. الديناميكي يعني أن الذاكرة يمكن أن تتغير مع المعلومات الجديدة وحالة المهمة؛ القابل للوصول يعني أن الوكيل يمكنه استرجاع واستخدام المعلومات المخزنة حسب الحاجة؛ القابل للتحديث يعني أن الوكيل يمكنه إكمال أو تعديل الذاكرة الموجودة بناءً على المعلومات الجديدة ونتائج التنفيذ. مع تحديث الذاكرة باستمرار، يمكن للوكيل الاستفادة من التفاعل وخبرة المهام لتحسين الأحكام والقرارات اللاحقة، مما يعزز قدرته على التكيف مع المهام والبيئات المختلفة.
أدوات متعددة متاحة للوكيل، بما في ذلك محركات البحث وقواعد البيانات والآلات الحاسبة وبيئات تنفيذ الكود والخدمات الخارجية المتنوعة المقدمة عبر APIs. الوظيفة الرئيسية لوحدة الأدوات هي توسيع قدرة الوكيل على التفاعل مع البيئة الخارجية، مما يمكّن الوكيل ليس فقط من إنتاج المحتوى بل أيضًا من الحصول على معلومات خارجية وتنفيذ عمليات محددة.
عند استخدام وحدة الأدوات، يحتاج الوكيل إلى تحديد ما إذا كانت الأدوات مطلوبة بناءً على المهمة الحالية والسياق، وأي أداة يجب اختيارها. الفعالية في استخدام الأدوات لا تعني فقط اختيار الأداة الصحيحة، بل تشمل أيضًا كيفية استخدام الأدوات بكفاءة لتقليل الاستخدام غير الضروري. عندما تتطلب المهمة تعاون أدوات متعددة، يحتاج الوكيل أيضًا إلى تحديد ما إذا كان يجب متابعة استدعاء أدوات أخرى بناءً على النتائج، ودمج نتائج أدوات مختلفة. لذلك، توفر وحدة الأدوات للوكيل ليس فقط قدرات خارجية بل تتطلب أيضًا من الوكيل اختيار واستخدام الأدوات بشكل معقول بناءً على احتياجات المهمة.
الوكيل نظام يدمج LLM والتخطيط والذاكرة والأدوات، كما هو موضح في الرسم أدناه. تعمل هذه الوحدات معًا لتمكين الوكيل من تنفيذ المهام بشكل مستقل والتعلم وتحسين سلوكه.
بعد تلقي المهمة، يحتاج الوكيل إلى تحديد كيفية المتابعة بناءً على هدف المهمة والمعلومات الحالية. يمكن لبعض المهام استدعاء الأدوات مع تحديد الخطوة التالية بناءً على نتائج الإرجاع؛ تتطلب بعض المهام المعقدة أولاً تفكيك الخطوات ثم تنفيذها تدريجيًا؛ بالنسبة للنتائج المولدة، يمكن إجراء فحص وتعديل إضافي. عندما لا يتمكن وكيل واحد من إكمال المهمة بالكامل، يمكن تعيين أدوار مختلفة لعدة وكلاء للتعاون.
بناءً على خصائص المهمة وطرق التنفيذ، يمكن للوكلاء تبني أوضاع مختلفة لتنفيذ المهام. نقدم أدناه أربعة أوضاع شائعة: ReAct و Plan-and-Execute والتأمل والتعاون متعدد الوكلاء، التي تنظم عملية تنفيذ المهام للوكيل من جوانب مختلفة مثل التنفيذ الديناميكي وتخطيط المهام وتحسين النتائج وتقسيم المهام.
ReAct (الاستدلال والفعل) نهج لتنفيذ المهام يجمع بين الاستدلال والفعل، اقترحه Shunyu Yao وآخرون. يستدل النموذج الكبير ويقوم بفعل بناءً على المعلومات الحالية، ثم يستمر في الاستدلال والفعل بناءً على المعلومات الجديدة المحصل عليها من الفعل، حتى اكتمال المهمة.
تتضمن العملية النموذجية لـ ReAct Thought (الاستدلال) و Action (الفعل) و Observation (المراقبة). يمثل Thought تحليل المعلومات الحالية من قبل النموذج لتحديد الخطوة التالية؛ عند الحاجة إلى الحصول على معلومات خارجية أو تنفيذ عملية، يولد النموذج Action المقابلة، مثل استدعاء أداة البحث أو الاستعلام من قاعدة البيانات؛ النتيجة المرجعة من الأداة تُقدم للنموذج كـ Observation، ويستمر النموذج في اتخاذ القرارات بناءً على هذه المعلومات الجديدة.
أثناء تنفيذ المهمة، تظهر Thought و Action و Observation بالتناوب بناءً على احتياجات المهمة، مكونة عملية تنفيذ يتعاون فيها الاستدلال والمراقبة والفعل. يمكن التعبير عن العملية النموذجية كالتالي:
Thought → Action → Observation → Thought → Action → Observation → ... → النتيجة النهائية
على سبيل المثال، يسأل مستخدم: "من فاز بجائزة نوبل في الفيزياء عام 2024؟ من هو الأكبر سنًا بينهم؟"
يحدد الوكيل أولاً أنه يحتاج إلى الحصول على قائمة الفائزين بجائزة نوبل في الفيزياء عام 2024، لذا يستدعي أداة البحث للاستعلام. بعد الحصول على القائمة، يكتشف أنه يحتاج أيضًا إلى مقارنة أعمار الفائزين، لذا يستمر في استعلام تواريخ ميلادهم. بعد الحصول على المعلومات المطلوبة، يقارن الوكيل ويولد الإجابة النهائية.
في هذه العملية، لم يحدد الوكيل جميع خطوات التنفيذ في بداية المهمة، بل قرر الخطوة التالية بناءً على نتيجة كل أداة. لذلك، مناسب ReAct أكثر للمهام التي تتطلب تفاعلًا مستمرًا مع البيئة الخارجية، مثل البحث والاستعلام واستدعاء الأدوات. للمهام المعقدة التي تحتوي على العديد من الخطوات، إذا تم استخدام هذا النهج خطوة بخطوة بالكامل، فقد توجد خطوات مفقودة أو مسارات تنفيذ متكررة.
يقسم Plan-and-Execute معالجة المهام المعقدة إلى مرحلتين: التخطيط والتنفيذ. بعد تلقي المهمة، يحلل الوكيل أولاً هدف المهمة ويقسم الخطوات المطلوب إنجازها، مكونًا خطة عامة، ثم ينفذ خطوة بخطوة وفقًا للخطة.
على سبيل المثال، يطلب مستخدم: "حلل أداء شركات الطاقة الجديدة الثلاث خلال العام الماضي وأنشئ تقريرًا مقارنًا." تتضمن هذه المهمة خطوات متعددة، بما في ذلك جمع البيانات وتنظيم البيانات والتحليل المقارن وإنتاج التقارير. لهذه المهام متعددة الخطوات، يمكن إنشاء خطة أولاً كما يلي:
بعد تشكيل الخطة، يكمل الوكيل المهام بالتسلسل. عند تنفيذ خطوة، لا يزال يمكنه استدعاء محرك البحث أو قاعدة البيانات أو أدوات أخرى. إذا اكتشف أثناء التنفيذ أن الخطة الأoriginية لا يمكن متابعتها، أو إذا ظهرت احتياجات مهمة جديدة، يمكن ضبط الخطة الأoriginية.
يمكن التعبير عن عملية التنفيذ النموذجية لـ Plan-and-Execute كالتالي:
مهمة المستخدم → إنشاء خطة → التنفيذ خطوة بخطوة → التحقق من حالة المهمة → النتيجة النهائية
عند التحقق من حالة المهمة، إذا كانت الخطة الأoriginية تحتاج إلى ضبط، يمكن إعادة التخطيط قبل متابعة التنفيذ.
مقارنةً بـ ReAct، يؤكد Plan-and-Execute على إنشاء خطة عامة قبل التنفيذ، مما يجعله مناسبًا للمهام التي تحتوي على العديد من الخطوات والأهداف الواضحة والإمكانية لتفكيكها مسبقًا. يمكن أيضًا دمجوضعيين، على سبيل المثال استخدام Plan-and-Execute لتخطيط المهام المعقدة ثم استخدام ReAct داخل خطوات فردية لتحديد العملية التالية ديناميكيًا بناءً على نتائج الإرجاع من الأدوات.
النتائج التي ينتجها الوكيل في المرة الأولى قد لا تلبي متطلبات المهمة. على سبيل المثال، قد يفتقر التقرير المولد إلى معلومات مهمة، أو قد تحتوي الإجابات على أخطاء وقائية، أو قد لا يعمل الكود بشكل صحيح. لهذه المهام، يمكن إضافة عملية فحص وتحسين بناءً على النتائج الأولية - وهذه الفكرة الأساسية لوضع التأمل.
يمكن التعبير عن عملية التأمل الأساسية كالتالي: مهمة المستخدم → إنتاج نتائج أولية → فحص النتائج → تحديد المشاكل → تعديل النتائج → إعادة الفحص → ... → تلبية المتطلبات → النتيجة النهائية.
على سبيل المثال، اطلب من الوكيل إنتاج تقرير مقارنة منتجات بناءً على مصادر متعددة. بعد إكمال المسودة الأولى، يمكنك التحقق مما إذا كانت جميع المنتجات المطلوب مقارنتها مشمولة، وما إذا كانت معايير المنتج متسقة مع المصادر الأoriginية، وما إذا كانت اختلافات مهمة قد تم تجاهلها. إذا تم العثور على معلومات غير مكتملة لمنتج ما، يمكنك إعادة البحث عن المواد وتكملها؛ إذا لم تكن النتائج متسقة مع المصادر، فهي تحتاج إلى مراجعة.
في هذه العملية، يمكن أن تأتي الملاحظات المستخدمة لفحص النتائج من مصادر مختلفة. يمكن للوكيل فحص نتائج التنفيذ الخاصة به، أو استخدام وكلاء أو نماذج أخرى للتقييم، أو الجمع بين القواعد وقواعد المعرفة أو المراجعة اليدوية لتوفير ملاحظات.
هذا الوضع أكثر ملاءمة للمهام التي تتطلب جودة عالية مثل إنتاج التقارير وكتابة الكود والتحليل المعقد. ومع ذلك، ستزيد الفحوصات والتعديلات المتعددة أيضًا من عدد استدعاءات النموذج ووقت التنفيذ، لذا في الممارسة العملية، عادةً ما يتم تعيين شروط إنهاء، مثل الانتهاء عند تلبية النتائج للمتطلبات أو التوقف بعد الوصول إلى الحد الأقصى لعدد الفحوصات.
لبعض المهام المعقدة، قد يحتاج وكيل واحد إلى إدارة جمع البيانات وتحليل البيانات وإنتاج المحتوى وفحص النتائج في نفس الوقت. في هذه الحالة، يمكن توزيع المهام على عدة وكلاء، كل منهم يتعامل مع أجزاء مختلفة، ثم التعاون لتحقيق الهدف النهائي. يتضمن التعاون متعدد الوكلاء بشكل أساسي جانبين: تقسيم المهام وتبادل المعلومات.
عند تقسيم المهام، يتم تعيين أدوار ومهمات وأدوات ومعرفة مختلفة لوكلاء مختلفين. على سبيل المثال، لإنشاء تقرير بحثي في مجال صناعة معينة، يمكن إعداد وكيل بحثي ووكيل تحليل بيانات ووكيل كتابة ووكيل مراجعة. وكيل البحث مسؤول عن جمع وتنظيم المواد، ووكيل تحليل البيانات يعالج البيانات ذات الصلة، ووكيل الكتابة ينتج التقرير، ووكيل المراجعة يفحص التقرير.
في ما يتعلق بتبادل المعلومات، يمكن استخدام طرق تعاون مختلفة بين الوكلاء المتعددين. للمهام التي يمكن تقسيمها بوضوح، يمكن لعدة وكلاء معالجة مهام فرعية مختلفة بشكل منفصل، ثم تجميع النتائج في النهاية؛ للمهام التي بها تبعيات متسلسلة، يمكن تمرير نتيجة وكيل واحد إلى الوكيل التالي للمعالجة المستمرة؛ للمهام التي تتطلب مناقشة أو تعديلًا متكررًا، يمكن لوكلاء مختلفين تبادل المعلومات من خلال تفاعلات الرسائل. بالإضافة إلى ذلك، يمكن تعيين وكيل منسق لتحديد أي وكيل يجب أن يعالج المهمة التالية بناءً على الوضع الحالي.
كمثال على إنتاج تقرير بحثي في مجال صناعة معينة، يُعرض نهج التعاون متعدد الوكلاء في الرسم أدناه:

يمكن للتعاون متعدد الوكلاء تقليل صعوبة معالجة المهام المعقدة لوكيل واحد من خلال تقسيم العمل، لكن عدد الوكلاء ليس بالضرورة أفضل. مع زيادة عدد الوكلاء، تصبح مهمة توزيع المهام ونقل المعلومات وتنسيق النتائج أكثر تعقيدًا أيضًا، مما يزيد من استدعاءات النموذج وتكاليف التنفيذ. لذلك، للمهام التي يمكن لوكيل واحد إنجازها، عادةً لا حاجة لإدخال عدة وكلاء.
أوضاع تنفيذ المهام هذه ليست مستقلة عن بعضها البعض ويمكن دمجها بناءً على احتياجات المهام في التطبيقات العملية. يمكن على سبيل المثال استخدام Plan-and-Execute لتخطيط المهام المعقدة، ثم استخدام ReAct لإكمال خطوات تتطلب استدعاءات أدوات متعددة، مع التأمل لفحص النتائج وتحسينها؛ للمهام الأكبر حجمًا، يمكن توزيع مهام فرعية مختلفة على عدة وكلاء للتعاون.