نظرة عامة
المعرفة في CrewAI هي نظام قوي يتيح لوكلاء الذكاء الاصطناعي الوصول إلى مصادر المعلومات الخارجية واستخدامها أثناء مهامهم. فكّر فيها كمنح وكلائك مكتبة مرجعية يمكنهم الرجوع إليها أثناء العمل.الفوائد الرئيسية لاستخدام المعرفة:
- تعزيز الوكلاء بمعلومات خاصة بالمجال
- دعم القرارات ببيانات من العالم الحقيقي
- الحفاظ على السياق عبر المحادثات
- بناء الاستجابات على معلومات واقعية
أمثلة البدء السريع
إعداد عميل المتجه (RAG)
يوفر CrewAI تجريدًا لعميل RAG محايد بالنسبة للمزود لمتاجر المتجهات. المزود الافتراضي هو ChromaDB، ويتم دعم Qdrant أيضًا. يمكنك التبديل بين المزودين باستخدام أدوات الإعداد. المدعوم حاليًا:- ChromaDB (افتراضي)
- Qdrant
Code
مثال المعرفة النصية الأساسية
Code
مثال معرفة محتوى الويب
تحتاج إلى تثبيت
docling لكي يعمل المثال التالي: uv add doclingCode
مصادر المعرفة المدعومة
يدعم 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 بمعارف مختلفة
إعداد المعرفة
يمكنك تهيئة إعداد المعرفة لـ Crew أو Agent.Code
معاملات المعرفة المدعومة
قائمة مصادر المعرفة التي توفر المحتوى للتخزين والاستعلام. يمكن أن تشمل ملفات PDF و CSV و Excel و JSON والملفات النصية أو المحتوى النصي.
اسم المجموعة التي سيتم تخزين المعرفة فيها. يُستخدم لتحديد مجموعات معرفة مختلفة. القيمة الافتراضية هي “knowledge” إذا لم يتم تحديدها.
إعداد تخزين مخصص لإدارة كيفية تخزين المعرفة واسترجاعها. إذا لم يتم تحديده، سيتم إنشاء تخزين افتراضي.
شفافية تخزين المعرفة
فهم تخزين المعرفة: يخزّن CrewAI مصادر المعرفة تلقائيًا في مجلدات خاصة بالمنصة باستخدام ChromaDB للتخزين المتجهي. فهم هذه المواقع والإعدادات الافتراضية يساعد في النشر في بيئة الإنتاج وتصحيح الأخطاء وإدارة التخزين.
أين يخزّن CrewAI ملفات المعرفة
بشكل افتراضي، يستخدم CrewAI نفس نظام التخزين مثل الذاكرة، حيث يخزّن المعرفة في مجلدات خاصة بالمنصة:مواقع التخزين الافتراضية حسب المنصة
macOS:معرفة موقع تخزين المعرفة
لرؤية المكان الذي يخزّن فيه CrewAI ملفات المعرفة بالضبط:التحكم في مواقع تخزين المعرفة
الخيار 1: متغير البيئة (موصى به)
الخيار 2: تخزين معرفة مخصص
الخيار 3: تخزين معرفة خاص بالمشروع
سلوك مزود التضمين الافتراضي
مزود التضمين الافتراضي: يستخدم CrewAI افتراضيًا تضمينات OpenAI (
text-embedding-3-small) لتخزين المعرفة، حتى عند استخدام مزودي LLM مختلفين. يمكنك تخصيص هذا بسهولة ليتوافق مع إعدادك.فهم السلوك الافتراضي
تخصيص مزودي تضمين المعرفة
إعداد تضمينات Azure OpenAI
عند استخدام تضمينات Azure OpenAI:- تأكد من نشر نموذج التضمين في منصة Azure أولًا
- ثم تحتاج إلى استخدام الإعداد التالي:
الميزات المتقدمة
إعادة صياغة الاستعلام
ينفذ CrewAI آلية إعادة صياغة استعلام ذكية لتحسين استرجاع المعرفة. عندما يحتاج وكيل إلى البحث في مصادر المعرفة، يتم تحويل موجّه المهمة الخام تلقائيًا إلى استعلام بحث أكثر فعالية.كيف تعمل إعادة صياغة الاستعلام
- عندما ينفذ وكيل مهمة بمصادر معرفة متاحة، يتم تشغيل دالة
_get_knowledge_search_query - يُستخدم LLM الخاص بالوكيل لتحويل موجّه المهمة الأصلي إلى استعلام بحث محسّن
- يُستخدم هذا الاستعلام المحسّن بعد ذلك لاسترجاع المعلومات ذات الصلة من مصادر المعرفة
فوائد إعادة صياغة الاستعلام
دقة استرجاع محسّنة
من خلال التركيز على المفاهيم الرئيسية وإزالة المحتوى غير ذي الصلة، تساعد إعادة صياغة الاستعلام في استرجاع معلومات أكثر صلة.
الوعي بالسياق
تم تصميم الاستعلامات المُعاد صياغتها لتكون أكثر تحديدًا ووعيًا بالسياق لاسترجاع قاعدة بيانات المتجهات.
مثال
أحداث المعرفة
يُصدر CrewAI أحداثًا أثناء عملية استرجاع المعرفة يمكنك الاستماع إليها باستخدام نظام الأحداث. تتيح لك هذه الأحداث مراقبة وتصحيح أخطاء وتحليل كيفية استرجاع المعرفة واستخدامها بواسطة وكلائك.أحداث المعرفة المتاحة
- KnowledgeRetrievalStartedEvent: يُصدر عندما يبدأ وكيل في استرجاع المعرفة من المصادر
- KnowledgeRetrievalCompletedEvent: يُصدر عند اكتمال استرجاع المعرفة، بما في ذلك الاستعلام المُستخدم والمحتوى المُسترجع
- KnowledgeQueryStartedEvent: يُصدر عند بدء استعلام مصادر المعرفة
- KnowledgeQueryCompletedEvent: يُصدر عند اكتمال الاستعلام بنجاح
- KnowledgeQueryFailedEvent: يُصدر عند فشل استعلام مصادر المعرفة
- KnowledgeSearchQueryFailedEvent: يُصدر عند فشل استعلام بحث
مثال: مراقبة استرجاع المعرفة
مصادر المعرفة المخصصة
يتيح لك CrewAI إنشاء مصادر معرفة مخصصة لأي نوع من البيانات عن طريق توسيع فئةBaseKnowledgeSource. لنقم بإنشاء مثال عملي يجلب ويعالج مقالات أخبار الفضاء.
مثال مصدر معرفة أخبار الفضاء
تصحيح الأخطاء واستكشاف المشاكل
تصحيح مشاكل المعرفة
التحقق من تهيئة معرفة Agent
التحقق من مواقع تخزين المعرفة
اختبار استرجاع المعرفة
فحص مجموعات المعرفة
التحقق من معالجة المعرفة
مشاكل تخزين المعرفة الشائعة
أخطاء “الملف غير موجود”:أوامر إعادة تعيين المعرفة
مسح المعرفة
إذا كنت بحاجة إلى مسح المعرفة المخزّنة في 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 والإعدادات الحساسة
