أداة بحث Exa
تتيح أداة ExaSearchTool لوكلاء CrewAI البحث في الويب باستخدام Exa search API. تُرجع النتائج الأكثر صلة لأي استعلام، مع خيارات لمحتوى الصفحة الكامل والمقتطفات الموفرة للرموز.
التثبيت
Section titled “التثبيت”ثبّت حزمة أدوات CrewAI:
pip install 'crewai[tools]'متغيرات البيئة
Section titled “متغيرات البيئة”عيّن مفتاح Exa API كمتغير بيئة:
export EXA_API_KEY='your_exa_api_key'احصل على مفتاح API من لوحة تحكم Exa.
مثال على الاستخدام
Section titled “مثال على الاستخدام”إليك كيفية استخدام ExaSearchTool مع وكيل CrewAI:
import osfrom crewai import Agent, Task, Crewfrom crewai_tools import ExaSearchTool
# Initialize the toolexa_tool = ExaSearchTool()
# Create an agent that uses the toolresearcher = Agent( role='Research Analyst', goal='Find the latest information on any topic', backstory='An expert researcher who finds the most relevant and up-to-date information.', tools=[exa_tool], verbose=True)
# Create a task for the agentresearch_task = Task( description='Find the top 3 recent breakthroughs in quantum computing.', expected_output='A summary of the top 3 breakthroughs with source URLs.', agent=researcher)
# Form the crew and kick it offcrew = Crew( agents=[researcher], tasks=[research_task], verbose=True)
result = crew.kickoff()print(result)خيارات التكوين
Section titled “خيارات التكوين”تقبل أداة ExaSearchTool المعاملات التالية أثناء التهيئة:
type(str، اختياري): نوع البحث المستخدم. الافتراضي هو"auto". الخيارات:"auto"،"instant"،"fast"،"deep".highlights(bool أو dict، اختياري): إرجاع مقتطفات موفرة للرموز أكثر صلة بالاستعلام بدلاً من الصفحة الكاملة. الافتراضي هوTrue. مرر قاموسًا مثل{"max_characters": 4000}للتكوين، أوFalseللتعطيل.content(bool، اختياري): ما إذا كان يجب تضمين محتوى الصفحة الكامل في النتائج. الافتراضي هوFalse.api_key(str، اختياري): مفتاح Exa API الخاص بك. يعود إلى متغير البيئةEXA_API_KEYإذا لم يتم تقديمه.base_url(str، اختياري): عنوان URL مخصص لخادم API. يعود إلى متغير البيئةEXA_BASE_URLإذا لم يتم تقديمه.
عند استدعاء الأداة (أو عندما يستدعيها وكيل)، تتوفر معاملات البحث التالية:
search_query(str): مطلوب. سلسلة استعلام البحث.start_published_date(str، اختياري): تصفية النتائج المنشورة بعد هذا التاريخ (تنسيق ISO 8601، مثل"2024-01-01").end_published_date(str، اختياري): تصفية النتائج المنشورة قبل هذا التاريخ (تنسيق ISO 8601).include_domains(list[str]، اختياري): قائمة بالنطاقات لتقييد البحث عليها.
الاستخدام المتقدم
Section titled “الاستخدام المتقدم”يمكنك تكوين الأداة بمعاملات مخصصة للحصول على نتائج أغنى:
# Use 'deep' for thorough, multi-step searchesexa_tool = ExaSearchTool( highlights=True, type="deep")
# Use it in an agentagent = Agent( role="Deep Researcher", goal="Conduct thorough research", tools=[exa_tool])استخدام Exa عبر MCP
Section titled “استخدام Exa عبر MCP”يمكنك أيضًا ربط وكيلك بخادم MCP المستضاف من Exa. مرّر مفتاح API الخاص بك عبر ترويسة x-api-key:
from crewai import Agentfrom crewai.mcp import MCPServerHTTP
agent = Agent( role="Research Analyst", goal="Find and analyze information on the web", backstory="Expert researcher with access to Exa's tools", mcps=[ MCPServerHTTP( url="https://mcp.exa.ai/mcp", headers={"x-api-key": "YOUR_EXA_API_KEY"}, ), ],)احصل على مفتاح API من لوحة تحكم Exa. لمزيد من المعلومات حول MCP في CrewAI، راجع نظرة عامة على MCP.
الميزات
Section titled “الميزات”- مقتطفات موفرة للرموز: الحصول على المقتطفات الأكثر صلة من كل نتيجة، باستخدام رموز أقل بكثير من النص الكامل
- البحث الدلالي: العثور على نتائج بناءً على المعنى، وليس الكلمات المفتاحية فقط
- استرجاع المحتوى الكامل: الحصول على النص الكامل لصفحات الويب مع نتائج البحث
- تصفية التاريخ: تقييد النتائج لفترات زمنية محددة باستخدام فلاتر تاريخ النشر
- تصفية النطاقات: تقييد عمليات البحث على نطاقات محددة