أدوات بحث Brave
الوصف
تقدم CrewAI عائلة من أدوات بحث Brave، كل منها يستهدف نقطة نهاية محددة في واجهة برمجة تطبيقات Brave Search. بدلاً من أداة واحدة شاملة، يمكنك اختيار الأداة التي تتطابق بدقة مع نوع النتائج التي يحتاجها وكيلك:| الأداة | نقطة النهاية | حالة الاستخدام |
|---|---|---|
BraveWebSearchTool | بحث الويب | نتائج ويب عامة ومقتطفات وعناوين URL |
BraveNewsSearchTool | بحث الأخبار | مقالات إخبارية حديثة وعناوين |
BraveImageSearchTool | بحث الصور | نتائج صور مع الأبعاد وعناوين URL المصدر |
BraveVideoSearchTool | بحث الفيديو | نتائج فيديو من جميع أنحاء الويب |
BraveLocalPOIsTool | نقاط الاهتمام المحلية | العثور على نقاط الاهتمام (مثل المطاعم) |
BraveLocalPOIsDescriptionTool | نقاط الاهتمام المحلية | استرجاع أوصاف المواقع المولّدة بالذكاء الاصطناعي |
BraveLLMContextTool | سياق LLM | محتوى ويب مستخرج مسبقاً ومُحسَّن لوكلاء الذكاء الاصطناعي وتأريض LLM وخطوط أنابيب RAG. |
BraveSearchToolBase) يوفر سلوكاً متسقاً - تحديد المعدل، إعادة المحاولة التلقائية عند استجابات 429، التحقق من صحة الرؤوس والمعاملات، والحفظ الاختياري في الملفات.
لا يزال صنف
BraveSearchTool القديم متاحاً للتوافق مع الإصدارات السابقة، لكنه يُعتبر قديماً ولن يحظى بنفس مستوى الاهتمام في المستقبل. نوصي بالانتقال إلى الأدوات المحددة المدرجة أعلاه، والتي توفر تكويناً أغنى وواجهة أكثر تركيزاً.بينما يمكن استخدام العديد من الأدوات (مثل BraveWebSearchTool و BraveNewsSearchTool و BraveImageSearchTool و BraveVideoSearchTool) مع اشتراك/خطة مجانية لواجهة Brave Search API، تتطلب بعض المعاملات (مثل
enable_snippets) وبعض الأدوات (مثل BraveLocalPOIsTool و BraveLocalPOIsDescriptionTool) خطة مدفوعة. راجع إمكانيات خطة اشتراكك للتوضيح.التثبيت
البدء
- تثبيت الحزمة - تأكد من تثبيت
crewai[tools]في بيئة Python الخاصة بك. - الحصول على مفتاح API - سجّل في api-dashboard.search.brave.com/login لتوليد مفتاح.
- تعيين متغير البيئة - خزّن مفتاحك كـ
BRAVE_API_KEY، أو مرره مباشرة عبر معاملapi_key.
أمثلة سريعة
بحث الويب
Code
بحث الأخبار
Code
بحث الصور
Code
بحث الفيديو
Code
أوصاف نقاط الاهتمام المحلية
Code
معاملات المُنشئ المشتركة
تقبل كل أداة بحث Brave المعاملات التالية عند التهيئة:| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
api_key | str | None | None | مفتاح Brave API. يعود إلى متغير البيئة BRAVE_API_KEY. |
headers | dict | None | None | رؤوس HTTP إضافية لإرسالها مع كل طلب (مثل api-version، رؤوس تحديد الموقع الجغرافي). |
requests_per_second | float | 1.0 | الحد الأقصى لمعدل الطلبات. ستنتظر الأداة بين الاستدعاءات للبقاء ضمن هذا الحد. |
save_file | bool | False | عند True، يتم كتابة كل استجابة في ملف .txt مختوم بالوقت. |
raw | bool | False | عند True، يتم إرجاع استجابة JSON الكاملة من API دون أي تنقيح. |
timeout | int | 30 | مهلة طلب HTTP بالثواني. |
country | str | None | None | اختصار قديم لاستهداف جغرافي (مثل "US"). يُفضل استخدام معامل الاستعلام country مباشرة. |
n_results | int | 10 | اختصار قديم لعدد النتائج. يُفضل استخدام معامل الاستعلام count مباشرة. |
معاملات الاستعلام
تتحقق كل أداة من صحة معاملات الاستعلام مقابل مخطط Pydantic قبل إرسال الطلب. تتنوع المعاملات قليلاً حسب نقطة النهاية - إليك ملخص لأكثرها استخداماً:BraveWebSearchTool
| المعامل | الوصف |
|---|---|
q | (مطلوب) سلسلة استعلام البحث (الحد الأقصى 400 حرف). |
country | رمز بلد من حرفين للاستهداف الجغرافي (مثل "US"). |
search_lang | رمز لغة من حرفين للنتائج (مثل "en"). |
count | الحد الأقصى لعدد النتائج المُرجعة (1-20). |
offset | تخطي أول N صفحة من النتائج (0-9). |
safesearch | مرشح المحتوى: "off" أو "moderate" أو "strict". |
freshness | مرشح الحداثة: "pd" (اليوم الماضي)، "pw" (الأسبوع الماضي)، "pm" (الشهر الماضي)، "py" (السنة الماضية)، أو نطاق تاريخ مثل "2025-01-01to2025-06-01". |
extra_snippets | تضمين حتى 5 مقتطفات نصية إضافية لكل نتيجة. |
goggles | عنوان(عناوين) URL لـ Brave Goggles و/أو المصدر لإعادة الترتيب المخصص. |
BraveNewsSearchTool
| المعامل | الوصف |
|---|---|
q | (مطلوب) سلسلة استعلام البحث (الحد الأقصى 400 حرف). |
country | رمز بلد من حرفين للاستهداف الجغرافي. |
search_lang | رمز لغة من حرفين للنتائج. |
count | الحد الأقصى لعدد النتائج المُرجعة (1-50). |
offset | تخطي أول N صفحة من النتائج (0-9). |
safesearch | مرشح المحتوى: "off" أو "moderate" أو "strict". |
freshness | مرشح الحداثة (نفس خيارات بحث الويب). |
goggles | عنوان(عناوين) URL لـ Brave Goggles و/أو المصدر لإعادة الترتيب المخصص. |
BraveImageSearchTool
| المعامل | الوصف |
|---|---|
q | (مطلوب) سلسلة استعلام البحث (الحد الأقصى 400 حرف). |
country | رمز بلد من حرفين للاستهداف الجغرافي. |
search_lang | رمز لغة من حرفين للنتائج. |
count | الحد الأقصى لعدد النتائج المُرجعة (1-200). |
safesearch | مرشح المحتوى: "off" أو "strict". |
spellcheck | محاولة تصحيح الأخطاء الإملائية في الاستعلام. |
BraveVideoSearchTool
| المعامل | الوصف |
|---|---|
q | (مطلوب) سلسلة استعلام البحث (الحد الأقصى 400 حرف). |
country | رمز بلد من حرفين للاستهداف الجغرافي. |
search_lang | رمز لغة من حرفين للنتائج. |
count | الحد الأقصى لعدد النتائج المُرجعة (1-50). |
offset | تخطي أول N صفحة من النتائج (0-9). |
safesearch | مرشح المحتوى: "off" أو "moderate" أو "strict". |
freshness | مرشح الحداثة (نفس خيارات بحث الويب). |
BraveLocalPOIsTool
| المعامل | الوصف |
|---|---|
ids | (مطلوب) قائمة معرّفات فريدة للمواقع المطلوبة. |
search_lang | رمز لغة من حرفين للنتائج. |
BraveLocalPOIsDescriptionTool
| المعامل | الوصف |
|---|---|
ids | (مطلوب) قائمة معرّفات فريدة للمواقع المطلوبة. |
الرؤوس المخصصة
تدعم جميع الأدوات رؤوس طلبات HTTP مخصصة. أداة بحث الويب، على سبيل المثال، تقبل رؤوس تحديد الموقع الجغرافي للحصول على نتائج واعية بالموقع:Code
set_headers():
Code
الوضع الخام
بشكل افتراضي، تقوم كل أداة بتنقيح استجابة API إلى قائمة نتائج مختصرة. إذا كنت تحتاج إلى استجابة API الكاملة غير المعالجة، فعّل الوضع الخام:Code
مثال على التكامل مع الوكيل
إليك كيفية تزويد وكيل CrewAI بأدوات بحث Brave متعددة:Code
مثال متقدم
الجمع بين معاملات متعددة لبحث مستهدف:Code
الانتقال من BraveSearchTool (القديمة)
إذا كنت تستخدم حالياً BraveSearchTool، فالتبديل إلى الأدوات الجديدة بسيط:
Code
- الاستيراد: استخدم
BraveWebSearchTool(أو متغير الأخبار/الصور/الفيديو) بدلاً منBraveSearchTool. - معامل الاستعلام: استخدم
qبدلاً منsearch_query. (لا يزال كلاsearch_queryوqueryمقبولين للراحة، لكنqهو المعامل المفضل.) - عدد النتائج: مرر
countكمعامل استعلام بدلاً منn_resultsعند التهيئة. - البلد: مرر
countryكمعامل استعلام بدلاً من عند التهيئة. - مفتاح API: يمكن الآن تمريره مباشرة عبر
api_key=بالإضافة إلى متغير البيئةBRAVE_API_KEY. - تحديد المعدل: قابل للتكوين عبر
requests_per_secondمع إعادة محاولة تلقائية عند استجابات429.
