الانتقال إلى المحتوى الرئيسي

نظرة عامة

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

أمثلة البدء السريع

لمصادر المعرفة المستندة إلى الملفات، تأكد من وضع ملفاتك في مجلد knowledge في جذر مشروعك. أيضًا، استخدم المسارات النسبية من مجلد knowledge عند إنشاء المصدر.

إعداد عميل المتجه (RAG)

يوفر CrewAI تجريدًا لعميل RAG محايد بالنسبة للمزود لمتاجر المتجهات. المزود الافتراضي هو ChromaDB، ويتم دعم Qdrant أيضًا. يمكنك التبديل بين المزودين باستخدام أدوات الإعداد. المدعوم حاليًا:
  • ChromaDB (افتراضي)
  • Qdrant
Code
عميل RAG هذا منفصل عن التخزين المدمج في المعرفة. استخدمه عندما تحتاج إلى تحكم مباشر في متجر المتجهات أو خطوط أنابيب استرجاع مخصصة.

مثال المعرفة النصية الأساسية

Code

مثال معرفة محتوى الويب

تحتاج إلى تثبيت docling لكي يعمل المثال التالي: uv add docling
Code

مصادر المعرفة المدعومة

يدعم CrewAI أنواعًا متعددة من مصادر المعرفة جاهزة للاستخدام:

مصادر نصية

  • سلاسل نصية خام
  • ملفات نصية (.txt)
  • مستندات PDF

بيانات مهيكلة

  • ملفات CSV
  • جداول بيانات Excel
  • مستندات JSON

مصدر معرفة الملفات النصية

مصدر معرفة PDF

مصدر معرفة CSV

مصدر معرفة Excel

مصدر معرفة JSON

يُرجى التأكد من إنشاء مجلد ./knowledge. يجب وضع جميع ملفات المصادر (مثل .txt و .pdf و .xlsx و .json) في هذا المجلد للإدارة المركزية.

معرفة Agent مقابل معرفة Crew: دليل شامل

فهم مستويات المعرفة: يدعم CrewAI المعرفة على مستوى كل من Agent و Crew. يوضح هذا القسم بالضبط كيف يعمل كل منهما، ومتى يتم تهيئتهما، ويعالج المفاهيم الخاطئة الشائعة حول التبعيات.

كيف تعمل تهيئة المعرفة فعليًا

إليك ما يحدث بالضبط عند استخدام المعرفة:

معرفة على مستوى Agent (مستقلة)

ما يحدث أثناء crew.kickoff()

عند استدعاء crew.kickoff()، إليك التسلسل الدقيق:

استقلالية التخزين

يستخدم كل مستوى معرفة مجموعات تخزين مستقلة:

أمثلة عملية كاملة

المثال 1: معرفة Agent فقط

المثال 2: معرفة Agent و Crew معًا

المثال 3: عدة Agents بمعارف مختلفة

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

إعداد المعرفة

يمكنك تهيئة إعداد المعرفة لـ Crew أو Agent.
Code
results_limit: هو عدد المستندات ذات الصلة المُعادة. القيمة الافتراضية هي 3. score_threshold: هو الحد الأدنى لدرجة اعتبار المستند ذا صلة. القيمة الافتراضية هي 0.35.

معاملات المعرفة المدعومة

sources
List[BaseKnowledgeSource]
مطلوب
قائمة مصادر المعرفة التي توفر المحتوى للتخزين والاستعلام. يمكن أن تشمل ملفات PDF و CSV و Excel و JSON والملفات النصية أو المحتوى النصي.
collection_name
str
اسم المجموعة التي سيتم تخزين المعرفة فيها. يُستخدم لتحديد مجموعات معرفة مختلفة. القيمة الافتراضية هي “knowledge” إذا لم يتم تحديدها.
storage
Optional[KnowledgeStorage]
إعداد تخزين مخصص لإدارة كيفية تخزين المعرفة واسترجاعها. إذا لم يتم تحديده، سيتم إنشاء تخزين افتراضي.

شفافية تخزين المعرفة

فهم تخزين المعرفة: يخزّن CrewAI مصادر المعرفة تلقائيًا في مجلدات خاصة بالمنصة باستخدام ChromaDB للتخزين المتجهي. فهم هذه المواقع والإعدادات الافتراضية يساعد في النشر في بيئة الإنتاج وتصحيح الأخطاء وإدارة التخزين.

أين يخزّن CrewAI ملفات المعرفة

بشكل افتراضي، يستخدم CrewAI نفس نظام التخزين مثل الذاكرة، حيث يخزّن المعرفة في مجلدات خاصة بالمنصة:

مواقع التخزين الافتراضية حسب المنصة

macOS:
Linux:
Windows:

معرفة موقع تخزين المعرفة

لرؤية المكان الذي يخزّن فيه CrewAI ملفات المعرفة بالضبط:

التحكم في مواقع تخزين المعرفة

الخيار 1: متغير البيئة (موصى به)

الخيار 2: تخزين معرفة مخصص

الخيار 3: تخزين معرفة خاص بالمشروع

سلوك مزود التضمين الافتراضي

مزود التضمين الافتراضي: يستخدم CrewAI افتراضيًا تضمينات OpenAI (text-embedding-3-small) لتخزين المعرفة، حتى عند استخدام مزودي LLM مختلفين. يمكنك تخصيص هذا بسهولة ليتوافق مع إعدادك.

فهم السلوك الافتراضي

تخصيص مزودي تضمين المعرفة

إعداد تضمينات Azure OpenAI

عند استخدام تضمينات Azure OpenAI:
  1. تأكد من نشر نموذج التضمين في منصة Azure أولًا
  2. ثم تحتاج إلى استخدام الإعداد التالي:

الميزات المتقدمة

إعادة صياغة الاستعلام

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

كيف تعمل إعادة صياغة الاستعلام

  1. عندما ينفذ وكيل مهمة بمصادر معرفة متاحة، يتم تشغيل دالة _get_knowledge_search_query
  2. يُستخدم LLM الخاص بالوكيل لتحويل موجّه المهمة الأصلي إلى استعلام بحث محسّن
  3. يُستخدم هذا الاستعلام المحسّن بعد ذلك لاسترجاع المعلومات ذات الصلة من مصادر المعرفة

فوائد إعادة صياغة الاستعلام

دقة استرجاع محسّنة

من خلال التركيز على المفاهيم الرئيسية وإزالة المحتوى غير ذي الصلة، تساعد إعادة صياغة الاستعلام في استرجاع معلومات أكثر صلة.

الوعي بالسياق

تم تصميم الاستعلامات المُعاد صياغتها لتكون أكثر تحديدًا ووعيًا بالسياق لاسترجاع قاعدة بيانات المتجهات.

مثال

الاستعلام المُعاد صياغته أكثر تركيزًا على الحاجة الأساسية للمعلومات ويزيل التعليمات غير ذات الصلة حول تنسيق المخرجات.
هذه الآلية تلقائية بالكامل ولا تتطلب أي إعداد من المستخدمين. يُستخدم LLM الخاص بالوكيل لتنفيذ إعادة صياغة الاستعلام، لذا فإن استخدام LLM أكثر قدرة يمكن أن يحسّن جودة الاستعلامات المُعاد صياغتها.

أحداث المعرفة

يُصدر CrewAI أحداثًا أثناء عملية استرجاع المعرفة يمكنك الاستماع إليها باستخدام نظام الأحداث. تتيح لك هذه الأحداث مراقبة وتصحيح أخطاء وتحليل كيفية استرجاع المعرفة واستخدامها بواسطة وكلائك.

أحداث المعرفة المتاحة

  • KnowledgeRetrievalStartedEvent: يُصدر عندما يبدأ وكيل في استرجاع المعرفة من المصادر
  • KnowledgeRetrievalCompletedEvent: يُصدر عند اكتمال استرجاع المعرفة، بما في ذلك الاستعلام المُستخدم والمحتوى المُسترجع
  • KnowledgeQueryStartedEvent: يُصدر عند بدء استعلام مصادر المعرفة
  • KnowledgeQueryCompletedEvent: يُصدر عند اكتمال الاستعلام بنجاح
  • KnowledgeQueryFailedEvent: يُصدر عند فشل استعلام مصادر المعرفة
  • KnowledgeSearchQueryFailedEvent: يُصدر عند فشل استعلام بحث

مثال: مراقبة استرجاع المعرفة

لمزيد من المعلومات حول استخدام الأحداث، انظر وثائق مستمعي الأحداث.

مصادر المعرفة المخصصة

يتيح لك CrewAI إنشاء مصادر معرفة مخصصة لأي نوع من البيانات عن طريق توسيع فئة BaseKnowledgeSource. لنقم بإنشاء مثال عملي يجلب ويعالج مقالات أخبار الفضاء.

مثال مصدر معرفة أخبار الفضاء

تصحيح الأخطاء واستكشاف المشاكل

تصحيح مشاكل المعرفة

التحقق من تهيئة معرفة Agent

التحقق من مواقع تخزين المعرفة

اختبار استرجاع المعرفة

فحص مجموعات المعرفة

التحقق من معالجة المعرفة

مشاكل تخزين المعرفة الشائعة

أخطاء “الملف غير موجود”:
أخطاء “عدم تطابق أبعاد التضمين”:
أخطاء “رفض إذن ChromaDB”:
المعرفة لا تستمر بين عمليات التشغيل:

أوامر إعادة تعيين المعرفة

مسح المعرفة

إذا كنت بحاجة إلى مسح المعرفة المخزّنة في CrewAI، يمكنك استخدام أمر crewai reset-memories مع خيار --knowledge.
Command
هذا مفيد عندما تكون قد حدّثت مصادر المعرفة وتريد التأكد من أن الوكلاء يستخدمون أحدث المعلومات.

أفضل الممارسات

  • حافظ على أحجام القطع مناسبة لنوع المحتوى
  • ضع في اعتبارك تداخل المحتوى للحفاظ على السياق
  • نظّم المعلومات ذات الصلة في مصادر معرفة منفصلة
  • اضبط أحجام القطع بناءً على تعقيد المحتوى
  • أعدّ نماذج تضمين مناسبة
  • ضع في اعتبارك استخدام مزودي تضمين محليين لمعالجة أسرع
  • مع هيكل الملفات النموذجي الذي يوفره CrewAI، يتم تضمين مصادر المعرفة في كل مرة يتم فيها تشغيل kickoff.
  • إذا كانت مصادر المعرفة كبيرة، فإن هذا يؤدي إلى عدم كفاءة وزيادة وقت الاستجابة، حيث يتم تضمين نفس البيانات في كل مرة.
  • لحل هذه المشكلة، قم بتهيئة معامل knowledge مباشرة بدلاً من معامل knowledge_sources.
  • رابط للمشكلة للحصول على فكرة كاملة Github Issue
  • استخدم المعرفة على مستوى Agent للمعلومات الخاصة بالدور
  • استخدم المعرفة على مستوى Crew للمعلومات المشتركة التي يحتاجها جميع الوكلاء
  • عيّن المُضمّنات على مستوى Agent إذا كنت بحاجة إلى استراتيجيات تضمين مختلفة
  • استخدم تسمية مجموعات متسقة بالحفاظ على أدوار Agent وصفية
  • اختبر تهيئة المعرفة بالتحقق من agent.knowledge بعد kickoff
  • راقب مواقع التخزين لفهم أين يتم تخزين المعرفة
  • أعد تعيين المعرفة بشكل مناسب باستخدام أنواع الأوامر الصحيحة
  • عيّن CREWAI_STORAGE_DIR إلى موقع معروف في الإنتاج
  • اختر مزودي تضمين صريحين ليتوافقوا مع إعداد LLM وتجنب تعارضات مفاتيح API
  • راقب حجم تخزين المعرفة مع نموه مع إضافات المستندات
  • نظّم مصادر المعرفة حسب المجال أو الغرض باستخدام أسماء المجموعات
  • ضمّن مجلدات المعرفة في استراتيجيات النسخ الاحتياطي والنشر
  • عيّن أذونات ملفات مناسبة لملفات المعرفة ومجلدات التخزين
  • استخدم متغيرات البيئة لمفاتيح API والإعدادات الحساسة